From 60607677894a36cf149a0491e6d27f29a646cc07 Mon Sep 17 00:00:00 2001 From: HashEngineering Date: Mon, 15 Jun 2026 08:56:30 -0700 Subject: [PATCH 1/5] chore: start 4.0.0-RC2-SNAPSHOT --- README.md | 2 +- build.gradle | 2 +- dash-sdk-android/src/main/rust/Cargo.toml | 2 +- dash-sdk-bindings/Cargo.toml | 2 +- platform-mobile/Cargo.toml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 26dbfb1..2b3bf33 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ Build the android libraries to publish to Maven Central: ``` ### Use in other projects ```groovy -dppVersion = "2.0.5" +dppVersion = "4.0.0-SNAPSHOT" dependencies { implementation "org.dashj.platform:dash-sdk-java:$dppVersion" implementation "org.dashj.platform:dash-sdk-kotlin:$dppVersion" // dpp diff --git a/build.gradle b/build.gradle index 07dfc6e..4f73ffd 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ buildscript { - ext.version = '2.0.5' + ext.version = '4.0.0-RC2-SNAPSHOT' ext.kotlin_version = '2.1.20' ext.dashj_version = '22.0.1' repositories { diff --git a/dash-sdk-android/src/main/rust/Cargo.toml b/dash-sdk-android/src/main/rust/Cargo.toml index 84594fc..3440652 100644 --- a/dash-sdk-android/src/main/rust/Cargo.toml +++ b/dash-sdk-android/src/main/rust/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "dash-sdk-bindings" -version = "2.0.5" +version = "4.0.0" edition = "2021" [dependencies] diff --git a/dash-sdk-bindings/Cargo.toml b/dash-sdk-bindings/Cargo.toml index 60eb222..765a8ef 100644 --- a/dash-sdk-bindings/Cargo.toml +++ b/dash-sdk-bindings/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "dash-sdk-bindings" -version = "2.0.5" +version = "4.0.0" edition = "2021" [dependencies] diff --git a/platform-mobile/Cargo.toml b/platform-mobile/Cargo.toml index 6b4575e..f0c46ff 100644 --- a/platform-mobile/Cargo.toml +++ b/platform-mobile/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "platform-mobile" -version = "2.0.5" +version = "4.0.0" edition = "2021" [dependencies] From a5ad22ad835fb39483e4ff30d3aaac7cfa02540f Mon Sep 17 00:00:00 2001 From: HashEngineering Date: Mon, 15 Jun 2026 08:58:40 -0700 Subject: [PATCH 2/5] feat: update to platform 4.0.0-rc2 --- dash-sdk-android/src/main/rust/Cargo.lock | 1838 ++- dash-sdk-android/src/main/rust/Cargo.toml | 3 +- .../src/main/rust/src/fermented.rs | 12301 +++++++++------- dash-sdk-bindings/Cargo.lock | 1445 +- dash-sdk-bindings/Cargo.toml | 3 +- dash-sdk-bindings/src/fermented.rs | 12301 +++++++++------- dash-sdk-java/src/main/swig/document.i | 4 +- .../dashj/org/platform/PlatformExplorer.kt | 2 +- platform-mobile/Cargo.lock | 1871 ++- platform-mobile/Cargo.toml | 11 +- platform-mobile/rust-toolchain.toml | 3 + platform-mobile/src/config.rs | 15 +- platform-mobile/src/fetch_document.rs | 2 +- platform-mobile/src/provider.rs | 4 +- platform-mobile/src/put.rs | 23 +- platform-mobile/src/put_test.rs | 9 +- platform-mobile/src/sdk.rs | 12 +- platform-mobile/src/voting.rs | 2 +- 18 files changed, 17387 insertions(+), 12462 deletions(-) create mode 100644 platform-mobile/rust-toolchain.toml diff --git a/dash-sdk-android/src/main/rust/Cargo.lock b/dash-sdk-android/src/main/rust/Cargo.lock index 5aa4718..13de8ef 100644 --- a/dash-sdk-android/src/main/rust/Cargo.lock +++ b/dash-sdk-android/src/main/rust/Cargo.lock @@ -17,6 +17,17 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + [[package]] name = "ahash" version = "0.8.11" @@ -24,9 +35,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", - "getrandom", "once_cell", - "serde", "version_check", "zerocopy", ] @@ -116,15 +125,6 @@ version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" -[[package]] -name = "arbitrary" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" -dependencies = [ - "derive_arbitrary", -] - [[package]] name = "arc-swap" version = "1.7.1" @@ -177,6 +177,28 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +[[package]] +name = "aws-lc-rs" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ec2f1fc3ec205783a5da9a7e6c1509cc69dedf09a1949e412c1e18469326d00" +dependencies = [ + "aws-lc-sys", + "zeroize", +] + +[[package]] +name = "aws-lc-sys" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a2f9779ce85b93ab6170dd940ad0169b5766ff848247aff13bb788b832fe3f4" +dependencies = [ + "cc", + "cmake", + "dunce", + "fs_extra", +] + [[package]] name = "backon" version = "1.5.1" @@ -208,6 +230,15 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" +[[package]] +name = "base58ck" +version = "0.1.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec5dc7e09f7bb15f0062da7c03086d6b71a2c84e0af4fccbbc7d8c6559847816" +dependencies = [ + "bitcoin_hashes", +] + [[package]] name = "base64" version = "0.13.1" @@ -247,23 +278,30 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" +[[package]] +name = "bech32" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32637268377fc7b10a8c6d51de3e7fba1ce5dd371a96e342b34e6078db558e7f" + [[package]] name = "bincode" -version = "2.0.0-rc.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f11ea1a0346b94ef188834a65c068a03aec181c94896d481d7a0a40d85b0ce95" +checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740" dependencies = [ "bincode_derive", "serde", + "unty", ] [[package]] name = "bincode_derive" -version = "2.0.0-rc.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e30759b3b99a1b802a7a3aa21c85c3ded5c28e1c83170d82d70f08bbf7f3e4c" +checksum = "bf95709a440f45e986983918d0e8a1f30a9b1df04918fc828670606804ac3c09" dependencies = [ - "virtue 0.0.13", + "virtue 0.0.18", ] [[package]] @@ -277,20 +315,17 @@ dependencies = [ ] [[package]] -name = "bit-set" -version = "0.5.3" +name = "bip39" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +checksum = "90dbd31c98227229239363921e60fcf5e558e43ec69094d46fc4996f08d1d5bc" dependencies = [ - "bit-vec", + "bitcoin_hashes", + "serde", + "unicode-normalization", + "zeroize", ] -[[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - [[package]] name = "bitcoin-io" version = "0.1.3" @@ -315,9 +350,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.1" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" +checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8" [[package]] name = "bitvec" @@ -354,10 +389,18 @@ dependencies = [ ] [[package]] -name = "blsful" -version = "3.0.0-pre8" +name = "block-padding" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "384e5e9866cb7f830f06a6633ba998697d5a826e99e8c78376deaadd33cda7be" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +dependencies = [ + "generic-array 0.14.7", +] + +[[package]] +name = "blsful" +version = "3.0.0" +source = "git+https://github.com/dashpay/agora-blsful?rev=0c34a7a488a0bd1c9a9a2196e793b303ad35c900#0c34a7a488a0bd1c9a9a2196e793b303ad35c900" dependencies = [ "anyhow", "blstrs_plus", @@ -365,15 +408,15 @@ dependencies = [ "hkdf", "merlin", "pairing", - "rand", - "rand_chacha", - "rand_core", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rand_core 0.6.4", "serde", "serde_bare", "sha2", "sha3", "subtle", - "thiserror 2.0.12", + "thiserror 2.0.18", "uint-zigzag", "vsss-rs", "zeroize", @@ -403,7 +446,7 @@ dependencies = [ "ff", "group", "pairing", - "rand_core", + "rand_core 0.6.4", "serde", "subtle", "zeroize", @@ -420,15 +463,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "bytecount" -version = "0.6.8" +version = "3.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" [[package]] name = "byteorder" @@ -474,7 +511,16 @@ dependencies = [ "semver", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", +] + +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", ] [[package]] @@ -504,7 +550,7 @@ checksum = "eadd868a2ce9ca38de7eeafdcec9c7065ef89b42b32f0839278d55f35c54d1ff" dependencies = [ "clap 4.5.40", "heck 0.4.1", - "indexmap 2.7.0", + "indexmap 2.14.0", "log", "proc-macro2", "quote", @@ -515,12 +561,34 @@ dependencies = [ "toml 0.8.19", ] +[[package]] +name = "cbindgen" +version = "0.29.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ecb53484c9c167ba674026b656d8a27d7657a58e6066aa902bfb1a4aa00ae20" +dependencies = [ + "clap 4.5.40", + "heck 0.5.0", + "indexmap 2.14.0", + "log", + "proc-macro2", + "quote", + "serde", + "serde_json", + "syn 2.0.95", + "tempfile", + "toml 0.9.12+spec-1.1.0", +] + [[package]] name = "cc" -version = "1.1.29" +version = "1.2.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58e804ac3194a48bb129643eb1d62fcc20d18c6b8c181704489353d13120bcd1" +checksum = "dad887fd958be91b5098c0248def011f4523ab786cd411be668777e55063501f" dependencies = [ + "find-msvc-tools", + "jobserver", + "libc", "shlex", ] @@ -530,6 +598,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + [[package]] name = "chrono" version = "0.4.38" @@ -594,6 +668,16 @@ dependencies = [ "half", ] +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + [[package]] name = "clap" version = "3.2.25" @@ -645,12 +729,31 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" +[[package]] +name = "cmake" +version = "0.1.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" +dependencies = [ + "cc", +] + [[package]] name = "colorchoice" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + [[package]] name = "const-oid" version = "0.9.6" @@ -673,6 +776,16 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -699,19 +812,13 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.4.2" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" dependencies = [ "cfg-if", ] -[[package]] -name = "crossbeam-utils" -version = "0.8.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" - [[package]] name = "crunchy" version = "0.2.3" @@ -725,7 +832,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array 0.14.7", - "rand_core", + "rand_core 0.6.4", "serdect", "subtle", "zeroize", @@ -770,28 +877,20 @@ dependencies = [ [[package]] name = "dapi-grpc" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ - "dapi-grpc-macros", + "dash-platform-macros", "futures-core", - "getrandom", + "getrandom 0.2.15", "platform-version", - "prost 0.13.3", + "prost 0.14.4", "serde", "serde_bytes", "serde_json", "tenderdash-proto", - "tonic 0.13.1", - "tonic-build", -] - -[[package]] -name = "dapi-grpc-macros" -version = "2.0.0-rc.17" -dependencies = [ - "heck 0.5.0", - "quote", - "syn 2.0.95", + "tonic 0.14.6", + "tonic-prost", + "tonic-prost-build", ] [[package]] @@ -829,19 +928,69 @@ dependencies = [ "syn 2.0.95", ] +[[package]] +name = "dash-async" +version = "4.0.0-rc.2" +dependencies = [ + "thiserror 2.0.18", + "tokio", + "tracing", +] + +[[package]] +name = "dash-context-provider" +version = "4.0.0-rc.2" +dependencies = [ + "dash-async", + "dpp", + "drive", + "hex", + "serde_json", + "thiserror 1.0.64", +] + +[[package]] +name = "dash-network" +version = "0.43.0" +source = "git+https://github.com/dashpay/rust-dashcore?rev=981e97f1015960ae5d277afdabcba1cbbc0b3a63#981e97f1015960ae5d277afdabcba1cbbc0b3a63" +dependencies = [ + "bincode", + "bincode_derive", + "cbindgen 0.29.4", + "serde", +] + +[[package]] +name = "dash-network-seeds" +version = "0.43.0" +source = "git+https://github.com/dashpay/rust-dashcore?rev=981e97f1015960ae5d277afdabcba1cbbc0b3a63#981e97f1015960ae5d277afdabcba1cbbc0b3a63" +dependencies = [ + "dash-network", +] + +[[package]] +name = "dash-platform-macros" +version = "4.0.0-rc.2" +dependencies = [ + "heck 0.5.0", + "quote", + "syn 2.0.95", +] + [[package]] name = "dash-sdk" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "arc-swap", "async-trait", - "backon", "bip37-bloom-filter", "chrono", "ciborium", "dapi-grpc", - "dapi-grpc-macros", - "dashcore-rpc", + "dash-async", + "dash-context-provider", + "dash-network-seeds", + "dash-platform-macros", "derive_more 1.0.0", "dotenvy", "dpp", @@ -853,13 +1002,14 @@ dependencies = [ "futures", "hex", "http 1.1.0", - "lru", + "js-sys", + "lru 0.16.4", + "platform-encryption", "pollster", "rs-dapi-client", - "rustls-pemfile", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tokio-util", "tracing", @@ -868,7 +1018,7 @@ dependencies = [ [[package]] name = "dash-sdk-bindings" -version = "2.0.5" +version = "4.0.0" dependencies = [ "cbindgen 0.26.0", "dash-sdk", @@ -886,57 +1036,57 @@ dependencies = [ [[package]] name = "dashcore" -version = "0.39.6" -source = "git+https://github.com/dashpay/rust-dashcore?tag=v0.39.6#51df58f5d5d499f5ee80ab17076ff70b5347c7db" +version = "0.43.0" +source = "git+https://github.com/dashpay/rust-dashcore?rev=981e97f1015960ae5d277afdabcba1cbbc0b3a63#981e97f1015960ae5d277afdabcba1cbbc0b3a63" dependencies = [ "anyhow", "base64-compat", - "bech32", - "bitflags 2.9.1", + "bech32 0.9.1", + "bincode", + "bincode_derive", + "bitvec", "blake3", "blsful", - "dashcore-private 0.39.6", - "dashcore_hashes 0.39.6", + "dash-network", + "dashcore-private", + "dashcore_hashes", "ed25519-dalek", "hex", "hex_lit", "rustversion", "secp256k1", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", + "tracing", ] [[package]] name = "dashcore-private" -version = "0.1.0" -source = "git+https://github.com/dashpay/rust-dashcore#db9ad0df2baded4ca478663013f823491bddcd7c" - -[[package]] -name = "dashcore-private" -version = "0.39.6" -source = "git+https://github.com/dashpay/rust-dashcore?tag=v0.39.6#51df58f5d5d499f5ee80ab17076ff70b5347c7db" +version = "0.43.0" +source = "git+https://github.com/dashpay/rust-dashcore?rev=981e97f1015960ae5d277afdabcba1cbbc0b3a63#981e97f1015960ae5d277afdabcba1cbbc0b3a63" [[package]] name = "dashcore-rpc" -version = "0.39.6" -source = "git+https://github.com/dashpay/rust-dashcore?tag=v0.39.6#51df58f5d5d499f5ee80ab17076ff70b5347c7db" +version = "0.43.0" +source = "git+https://github.com/dashpay/rust-dashcore?rev=981e97f1015960ae5d277afdabcba1cbbc0b3a63#981e97f1015960ae5d277afdabcba1cbbc0b3a63" dependencies = [ "dashcore-rpc-json", "hex", "jsonrpc", - "log", "serde", "serde_json", + "tracing", ] [[package]] name = "dashcore-rpc-json" -version = "0.39.6" -source = "git+https://github.com/dashpay/rust-dashcore?tag=v0.39.6#51df58f5d5d499f5ee80ab17076ff70b5347c7db" +version = "0.43.0" +source = "git+https://github.com/dashpay/rust-dashcore?rev=981e97f1015960ae5d277afdabcba1cbbc0b3a63#981e97f1015960ae5d277afdabcba1cbbc0b3a63" dependencies = [ "bincode", "dashcore", "hex", + "key-wallet", "serde", "serde_json", "serde_repr", @@ -945,46 +1095,36 @@ dependencies = [ [[package]] name = "dashcore_hashes" -version = "0.14.0" -source = "git+https://github.com/dashpay/rust-dashcore#db9ad0df2baded4ca478663013f823491bddcd7c" -dependencies = [ - "dashcore-private 0.1.0", - "secp256k1", -] - -[[package]] -name = "dashcore_hashes" -version = "0.39.6" -source = "git+https://github.com/dashpay/rust-dashcore?tag=v0.39.6#51df58f5d5d499f5ee80ab17076ff70b5347c7db" +version = "0.43.0" +source = "git+https://github.com/dashpay/rust-dashcore?rev=981e97f1015960ae5d277afdabcba1cbbc0b3a63#981e97f1015960ae5d277afdabcba1cbbc0b3a63" dependencies = [ - "dashcore-private 0.39.6", - "secp256k1", + "bincode", + "dashcore-private", "serde", ] [[package]] name = "dashpay-contract" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "platform-value", "platform-version", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "data-contracts" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "dashpay-contract", "dpns-contract", - "feature-flags-contract", "keyword-search-contract", "masternode-reward-shares-contract", "platform-value", "platform-version", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", "token-history-contract", "wallet-utils-contract", "withdrawals-contract", @@ -1010,17 +1150,6 @@ dependencies = [ "serde", ] -[[package]] -name = "derive_arbitrary" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - [[package]] name = "derive_more" version = "1.0.0" @@ -1073,17 +1202,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - [[package]] name = "dotenvy" version = "0.15.7" @@ -1092,40 +1210,41 @@ checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" [[package]] name = "dpns-contract" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "platform-value", "platform-version", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "dpp" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "anyhow", "async-trait", "base64 0.22.1", + "bech32 0.11.1", "bincode", - "bincode_derive", "bs58", "byteorder", "chrono", "chrono-tz", "ciborium", "dashcore", + "dashcore-rpc", "data-contracts", "derive_more 1.0.0", + "dpp-json-convertible-derive", "env_logger", "ferment-macro 0.2.3", - "getrandom", + "getrandom 0.2.15", "hex", - "indexmap 2.7.0", + "indexmap 2.14.0", "integer-encoding", "itertools 0.13.0", - "json-schema-compatibility-validator", - "jsonschema", + "key-wallet", "lazy_static", "nohash-hasher", "num_enum 0.7.3", @@ -1135,19 +1254,29 @@ dependencies = [ "platform-value", "platform-version", "platform-versioning", - "rand", + "rand 0.8.5", "regex", "serde", "serde_json", "serde_repr", "sha2", "strum", - "thiserror 2.0.12", + "thiserror 2.0.18", + "tracing", +] + +[[package]] +name = "dpp-json-convertible-derive" +version = "4.0.0-rc.2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.95", ] [[package]] name = "drive" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "bincode", "byteorder", @@ -1160,38 +1289,44 @@ dependencies = [ "grovedb-path", "grovedb-version", "hex", - "indexmap 2.7.0", + "indexmap 2.14.0", "integer-encoding", "nohash-hasher", "platform-value", "platform-version", "serde", "sqlparser", - "thiserror 2.0.12", + "thiserror 2.0.18", "tracing", ] [[package]] name = "drive-proof-verifier" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "bincode", "dapi-grpc", + "dash-context-provider", "derive_more 1.0.0", "dpp", "drive", "ferment-macro 0.2.3", "hex", - "indexmap 2.7.0", + "indexmap 2.14.0", "platform-serialization", "platform-serialization-derive", "serde", - "serde_json", "tenderdash-abci", - "thiserror 2.0.12", + "thiserror 2.0.18", "tracing", ] +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + [[package]] name = "ed" version = "0.2.2" @@ -1231,7 +1366,7 @@ checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" dependencies = [ "curve25519-dalek", "ed25519", - "rand_core", + "rand_core 0.6.4", "serde", "sha2", "subtle", @@ -1258,7 +1393,7 @@ dependencies = [ "group", "hkdf", "pkcs8", - "rand_core", + "rand_core 0.6.4", "sec1", "subtle", "tap", @@ -1267,8 +1402,9 @@ dependencies = [ [[package]] name = "elliptic-curve-tools" -version = "0.1.2" -source = "git+https://github.com/mikelodder7/elliptic-curve-tools?rev=5789c0491252d5af8add829348af9dd6ac09d8f6#5789c0491252d5af8add829348af9dd6ac09d8f6" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1de2b6fae800f08032a6ea32995b52925b1d451bff9d445c8ab2932323277faf" dependencies = [ "elliptic-curve", "heapless", @@ -1335,39 +1471,18 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "fancy-regex" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "531e46835a22af56d1e3b66f04844bed63158bc094a628bec1d321d9b4c44bf2" -dependencies = [ - "bit-set", - "regex-automata 0.4.8", - "regex-syntax 0.8.5", -] - [[package]] name = "fastrand" version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" -[[package]] -name = "feature-flags-contract" -version = "2.0.0-rc.17" -dependencies = [ - "platform-value", - "platform-version", - "serde_json", - "thiserror 2.0.12", -] - [[package]] name = "ferment" version = "0.2.3" source = "git+https://github.com/dashpay/ferment?tag=v0.2.3#867aba9a03b86c8552d3526952af80f566ab0174" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.14.0", "serde_json", ] @@ -1376,7 +1491,7 @@ name = "ferment-interfaces" version = "0.1.4" source = "git+https://github.com/dashpay/ferment?branch=feat%2Fopaque-default#a9cf93872a7bd1229c394ac2443c109fb0d70949" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.14.0", ] [[package]] @@ -1418,7 +1533,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ "bitvec", - "rand_core", + "rand_core 0.6.4", "subtle", ] @@ -1428,29 +1543,27 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + [[package]] name = "fixedbitset" -version = "0.4.2" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" [[package]] name = "flate2" -version = "1.0.34" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" dependencies = [ "crc32fast", "miniz_oxide", -] - -[[package]] -name = "flex-error" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c606d892c9de11507fa0dcffc116434f94e105d0bbdc4e405b61519464c49d7b" -dependencies = [ - "paste", + "zlib-rs", ] [[package]] @@ -1466,19 +1579,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" [[package]] -name = "foreign-types" -version = "0.3.2" +name = "foldhash" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" [[package]] name = "form_urlencoded" @@ -1489,16 +1593,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "fraction" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f158e3ff0a1b334408dc9fb811cd99b446986f4d8b741bb08f9df1604085ae7" -dependencies = [ - "lazy_static", - "num", -] - [[package]] name = "fs_extra" version = "1.3.0" @@ -1634,6 +1728,20 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "r-efi", + "wasip2", + "wasm-bindgen", +] + [[package]] name = "gimli" version = "0.31.1" @@ -1665,63 +1773,105 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", - "rand", - "rand_core", + "rand 0.8.5", + "rand_core 0.6.4", "rand_xorshift", "subtle", ] [[package]] name = "grovedb" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611077565b279965fa34897787ae52f79471f0476db785116cceb92077f237ad" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" dependencies = [ "bincode", "bincode_derive", "blake3", + "grovedb-bulk-append-tree", "grovedb-costs", + "grovedb-dense-fixed-sized-merkle-tree", + "grovedb-element", "grovedb-merk", + "grovedb-merkle-mountain-range", "grovedb-path", + "grovedb-query", "grovedb-version", "hex", "hex-literal", - "indexmap 2.7.0", + "indexmap 2.14.0", "integer-encoding", "reqwest", "sha2", - "thiserror 2.0.12", + "thiserror 2.0.18", +] + +[[package]] +name = "grovedb-bulk-append-tree" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" +dependencies = [ + "bincode", + "blake3", + "grovedb-costs", + "grovedb-dense-fixed-sized-merkle-tree", + "grovedb-merkle-mountain-range", + "grovedb-query", + "hex", + "thiserror 2.0.18", ] [[package]] name = "grovedb-costs" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ab159c3f82b0387f6a27a54930b18aa594b507013de947c8e909cf61abb75fe" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" dependencies = [ "integer-encoding", "intmap", - "thiserror 2.0.12", + "thiserror 2.0.18", +] + +[[package]] +name = "grovedb-dense-fixed-sized-merkle-tree" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" +dependencies = [ + "bincode", + "blake3", + "grovedb-costs", + "grovedb-query", + "thiserror 2.0.18", +] + +[[package]] +name = "grovedb-element" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" +dependencies = [ + "bincode", + "bincode_derive", + "grovedb-path", + "grovedb-version", + "hex", + "integer-encoding", + "thiserror 2.0.18", ] [[package]] name = "grovedb-epoch-based-storage-flags" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dce2f34c6bfddb3a26696b42e6169f986330513e0e9f4c5d7ba290d09867a5e" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" dependencies = [ "grovedb-costs", "hex", "integer-encoding", "intmap", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "grovedb-merk" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4580e54da0031d2f36e50312f3361005099bceeb8adb0f6ccbf87a0880cd1b08" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" dependencies = [ "bincode", "bincode_derive", @@ -1729,39 +1879,62 @@ dependencies = [ "byteorder", "ed", "grovedb-costs", + "grovedb-element", "grovedb-path", + "grovedb-query", "grovedb-version", "grovedb-visualize", "hex", - "indexmap 2.7.0", + "indexmap 2.14.0", "integer-encoding", - "thiserror 2.0.12", + "thiserror 2.0.18", +] + +[[package]] +name = "grovedb-merkle-mountain-range" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" +dependencies = [ + "bincode", + "blake3", + "grovedb-costs", ] [[package]] name = "grovedb-path" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d61e09bb3055358974ceb65b91752064979450092014d91a6bc4a52d77887ea" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" +dependencies = [ + "hex", +] + +[[package]] +name = "grovedb-query" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" dependencies = [ + "bincode", + "byteorder", + "ed", "hex", + "indexmap 2.14.0", + "integer-encoding", + "thiserror 2.0.18", ] [[package]] name = "grovedb-version" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d61d27c76d49758b365a9e4a9da7f995f976b9525626bf645aef258024defd2" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" dependencies = [ - "thiserror 2.0.12", + "thiserror 2.0.18", "versioned-feature-core 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "grovedb-visualize" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaebfe3c1e5f263f14fd25ab060543b31eb4b9d6bdc44fe220e88df6be7ddf59" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" dependencies = [ "hex", "itertools 0.14.0", @@ -1769,9 +1942,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.6" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +checksum = "171fefbc92fe4a4de27e0698d6a5b392d6a0e333506bc49133760b3bcf948733" dependencies = [ "atomic-waker", "bytes", @@ -1779,7 +1952,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.1.0", - "indexmap 2.7.0", + "indexmap 2.14.0", "slab", "tokio", "tokio-util", @@ -1829,9 +2002,26 @@ checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" dependencies = [ "allocator-api2", "equivalent", - "foldhash", + "foldhash 0.1.3", ] +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash 0.2.0", +] + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + [[package]] name = "heapless" version = "0.8.0" @@ -1889,9 +2079,9 @@ dependencies = [ [[package]] name = "hex-literal" -version = "0.4.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" +checksum = "e712f64ec3850b98572bffac52e2c6f282b29fe6c5fa6d42334b30be438d95c1" [[package]] name = "hex_lit" @@ -2003,13 +2193,14 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "1.4.1" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +checksum = "55281c53a1894c864990125767da440a4e630446785086f52523b20033b74498" dependencies = [ + "atomic-waker", "bytes", "futures-channel", - "futures-util", + "futures-core", "h2", "http 1.1.0", "http-body 1.0.1", @@ -2052,39 +2243,29 @@ dependencies = [ "tower-service", ] -[[package]] -name = "hyper-tls" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" -dependencies = [ - "bytes", - "http-body-util", - "hyper", - "hyper-util", - "native-tls", - "tokio", - "tokio-native-tls", - "tower-service", -] - [[package]] name = "hyper-util" -version = "0.1.10" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" dependencies = [ + "base64 0.22.1", "bytes", "futures-channel", "futures-util", "http 1.1.0", "http-body 1.0.1", "hyper", + "ipnet", + "libc", + "percent-encoding", "pin-project-lite", - "socket2", + "socket2 0.6.4", + "system-configuration", "tokio", "tower-service", "tracing", + "windows-registry", ] [[package]] @@ -2139,13 +2320,24 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.7.0" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown 0.15.0", + "hashbrown 0.17.1", "serde", + "serde_core", +] + +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "block-padding", + "generic-array 0.14.7", ] [[package]] @@ -2159,15 +2351,15 @@ dependencies = [ [[package]] name = "integer-encoding" -version = "4.0.2" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d762194228a2f1c11063e46e32e5acb96e66e906382b9eb5441f2e0504bbd5a" +checksum = "14c00403deb17c3221a1fe4fb571b9ed0370b3dcd116553c77fa294a3d918699" [[package]] name = "intmap" -version = "3.1.0" +version = "3.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "210870d5399600055a955c020cc97e462203c234dc2b103b5da5d80fdbd5eed5" +checksum = "a2e611826a1868311677fdcdfbec9e8621d104c732d080f546a854530232f0ee" dependencies = [ "serde", ] @@ -2184,15 +2376,6 @@ version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" -[[package]] -name = "iso8601" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "924e5d73ea28f59011fec52a0d12185d496a9b075d360657aed2a5707f701153" -dependencies = [ - "nom", -] - [[package]] name = "itertools" version = "0.13.0" @@ -2218,72 +2401,84 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] -name = "js-sys" -version = "0.3.77" +name = "jni" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498" dependencies = [ - "once_cell", - "wasm-bindgen", + "cfg-if", + "combine", + "jni-macros", + "jni-sys", + "log", + "simd_cesu8", + "thiserror 2.0.18", + "walkdir", + "windows-link", ] [[package]] -name = "json-patch" -version = "1.4.0" +name = "jni-macros" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec9ad60d674508f3ca8f380a928cfe7b096bc729c4e2dbfe3852bc45da3ab30b" +checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3" dependencies = [ - "serde", - "serde_json", - "thiserror 1.0.64", + "proc-macro2", + "quote", + "rustc_version", + "simd_cesu8", + "syn 2.0.95", ] [[package]] -name = "json-schema-compatibility-validator" -version = "2.0.0-rc.17" +name = "jni-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" dependencies = [ - "json-patch", - "once_cell", - "serde_json", - "thiserror 2.0.12", + "jni-sys-macros", ] [[package]] -name = "jsonrpc" -version = "0.18.0" +name = "jni-sys-macros" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3662a38d341d77efecb73caf01420cfa5aa63c0253fd7bc05289ef9f6616e1bf" +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" dependencies = [ - "base64 0.13.1", - "serde", - "serde_json", + "quote", + "syn 2.0.95", +] + +[[package]] +name = "jobserver" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" +dependencies = [ + "getrandom 0.3.4", + "libc", ] [[package]] -name = "jsonschema" +name = "js-sys" +version = "0.3.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2025f20d7a4fa7785846e7b63d10a76d3f1cee98ee5cb79ea59703f95e42162" +dependencies = [ + "cfg-if", + "futures-util", + "wasm-bindgen", +] + +[[package]] +name = "jsonrpc" version = "0.18.0" -source = "git+https://github.com/dashpay/jsonschema-rs?branch=configure_regexp#7b00a2442ce44772e278b468bc4c2adc5e252226" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3662a38d341d77efecb73caf01420cfa5aa63c0253fd7bc05289ef9f6616e1bf" dependencies = [ - "ahash", - "anyhow", - "base64 0.22.1", - "bytecount", - "fancy-regex", - "fraction", - "getrandom", - "iso8601", - "itoa", - "memchr", - "num-cmp", - "once_cell", - "parking_lot 0.12.3", - "percent-encoding", - "regex", + "base64 0.13.1", "serde", "serde_json", - "time", - "url", - "uuid", ] [[package]] @@ -2295,14 +2490,37 @@ dependencies = [ "cpufeatures", ] +[[package]] +name = "key-wallet" +version = "0.43.0" +source = "git+https://github.com/dashpay/rust-dashcore?rev=981e97f1015960ae5d277afdabcba1cbbc0b3a63#981e97f1015960ae5d277afdabcba1cbbc0b3a63" +dependencies = [ + "async-trait", + "base58ck", + "bip39", + "bitflags 2.13.0", + "dashcore", + "dashcore-private", + "dashcore_hashes", + "getrandom 0.2.15", + "hex", + "secp256k1", + "serde", + "serde_json", + "sha2", + "tracing", + "unicode-normalization", + "zeroize", +] + [[package]] name = "keyword-search-contract" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "platform-value", "platform-version", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -2319,9 +2537,9 @@ checksum = "744a4c881f502e98c2241d2e5f50040ac73b30194d64452bb6260393b53f0dc9" [[package]] name = "libc" -version = "0.2.159" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "linux-raw-sys" @@ -2339,17 +2557,11 @@ dependencies = [ "scopeguard", ] -[[package]] -name = "lockfree-object-pool" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e" - [[package]] name = "log" -version = "0.4.27" +version = "0.4.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +checksum = "953f07c43838f8e6f9758cab68bf5bed85465e7587ebe0b823f1bcd81978ad3a" [[package]] name = "lru" @@ -2360,14 +2572,29 @@ dependencies = [ "hashbrown 0.15.0", ] +[[package]] +name = "lru" +version = "0.16.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f66e8d5d03f609abc3a39e6f08e4164ebf1447a732906d39eb9b99b7919ef39" +dependencies = [ + "hashbrown 0.16.1", +] + +[[package]] +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + [[package]] name = "masternode-reward-shares-contract" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "platform-value", "platform-version", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -2393,7 +2620,7 @@ checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" dependencies = [ "byteorder", "keccak", - "rand_core", + "rand_core 0.6.4", "zeroize", ] @@ -2403,19 +2630,14 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - [[package]] name = "miniz_oxide" -version = "0.8.0" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", + "simd-adler32", ] [[package]] @@ -2455,39 +2677,12 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9252111cf132ba0929b6f8e030cac2a24b507f3a4d6db6fb2896f27b354c714b" -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - [[package]] name = "nohash-hasher" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - [[package]] name = "nu-ansi-term" version = "0.46.0" @@ -2520,16 +2715,10 @@ checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ "num-integer", "num-traits", - "rand", + "rand 0.8.5", "serde", ] -[[package]] -name = "num-cmp" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63335b2e2c34fae2fb0aa2cecfd9f0832a1e24b3b32ecec612c3426d46dc8aaa" - [[package]] name = "num-complex" version = "0.4.6" @@ -2537,7 +2726,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" dependencies = [ "num-traits", - "rand", + "rand 0.8.5", "serde", ] @@ -2666,50 +2855,12 @@ version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" -[[package]] -name = "openssl" -version = "0.10.66" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" -dependencies = [ - "bitflags 2.9.1", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - [[package]] name = "openssl-probe" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" -[[package]] -name = "openssl-sys" -version = "0.9.103" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - [[package]] name = "os_str_bytes" version = "6.6.1" @@ -2739,17 +2890,7 @@ checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" dependencies = [ "instant", "lock_api", - "parking_lot_core 0.8.6", -] - -[[package]] -name = "parking_lot" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" -dependencies = [ - "lock_api", - "parking_lot_core 0.9.10", + "parking_lot_core", ] [[package]] @@ -2761,24 +2902,11 @@ dependencies = [ "cfg-if", "instant", "libc", - "redox_syscall 0.2.16", + "redox_syscall", "smallvec", "winapi", ] -[[package]] -name = "parking_lot_core" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.5.7", - "smallvec", - "windows-targets", -] - [[package]] name = "parse-zoneinfo" version = "0.3.1" @@ -2788,12 +2916,6 @@ dependencies = [ "regex", ] -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - [[package]] name = "percent-encoding" version = "2.3.1" @@ -2802,12 +2924,13 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "petgraph" -version = "0.6.5" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" dependencies = [ "fixedbitset", - "indexmap 2.7.0", + "hashbrown 0.15.0", + "indexmap 2.14.0", ] [[package]] @@ -2836,7 +2959,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" dependencies = [ "phf_shared", - "rand", + "rand 0.8.5", ] [[package]] @@ -2891,14 +3014,18 @@ dependencies = [ ] [[package]] -name = "pkg-config" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" +name = "platform-encryption" +version = "4.0.0-rc.2" +dependencies = [ + "aes", + "cbc", + "dashcore", + "thiserror 1.0.64", +] [[package]] name = "platform-mobile" -version = "2.0.5" +version = "4.0.0" dependencies = [ "async-trait", "base64 0.13.1", @@ -2906,7 +3033,7 @@ dependencies = [ "dash-sdk", "dashcore", "dashcore-rpc", - "dashcore_hashes 0.14.0", + "dashcore_hashes", "dashpay-contract", "data-contracts", "dotenvy", @@ -2921,12 +3048,12 @@ dependencies = [ "http 0.2.12", "lazy_static", "libc", - "lru", - "parking_lot 0.11.2", + "lru 0.12.5", + "parking_lot", "platform-value", "platform-version", "quote", - "rand", + "rand 0.8.5", "rs-dapi-client", "serde", "serde_json", @@ -2943,7 +3070,7 @@ dependencies = [ [[package]] name = "platform-serialization" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "bincode", "platform-version", @@ -2951,7 +3078,7 @@ dependencies = [ [[package]] name = "platform-serialization-derive" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "proc-macro2", "quote", @@ -2961,7 +3088,7 @@ dependencies = [ [[package]] name = "platform-value" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "base64 0.22.1", "bincode", @@ -2970,31 +3097,31 @@ dependencies = [ "ciborium", "ferment-macro 0.2.3", "hex", - "indexmap 2.7.0", + "indexmap 2.14.0", "platform-serialization", "platform-version", - "rand", + "rand 0.8.5", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", "treediff", ] [[package]] name = "platform-version" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "bincode", "ferment-macro 0.2.3", "grovedb-version", "once_cell", - "thiserror 2.0.12", + "thiserror 2.0.18", "versioned-feature-core 1.0.0 (git+https://github.com/dashpay/versioned-feature-core)", ] [[package]] name = "platform-versioning" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "proc-macro2", "quote", @@ -3071,9 +3198,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.13.3" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0487d90e047de87f984913713b85c601c05609aad5b0df4b4573fbf69aa13f" +checksum = "528ac67416ff8646872a3c02cad9cc4ee5dc9f9540c9b10771855c95cb2e5ae1" dependencies = [ "bytes", "prost-derive", @@ -3081,20 +3208,20 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.13.3" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c1318b19085f08681016926435853bbf7858f9c082d0999b80550ff5d9abe15" +checksum = "03da047801ff44bb6a4d407d4860c05fd70bb81714e6b2f3812603d5b145b042" dependencies = [ - "bytes", "heck 0.5.0", - "itertools 0.13.0", + "itertools 0.14.0", "log", "multimap", - "once_cell", "petgraph", "prettyplease", - "prost 0.13.3", + "prost 0.14.4", "prost-types", + "pulldown-cmark", + "pulldown-cmark-to-cmark", "regex", "syn 2.0.95", "tempfile", @@ -3102,12 +3229,12 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.13.3" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9552f850d5f0964a4e4d0bf306459ac29323ddfbae05e35a7c0d35cb0803cc5" +checksum = "b570b25f7617e43d59005d0990ccb79e950a423952cea19671b7a876da390adf" dependencies = [ "anyhow", - "itertools 0.13.0", + "itertools 0.14.0", "proc-macro2", "quote", "syn 2.0.95", @@ -3115,11 +3242,87 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.13.3" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f94967dc7688f3054c7fac87473ffae4cc4c3904800e2d9f5b857246d8963b0a" +dependencies = [ + "prost 0.14.4", +] + +[[package]] +name = "pulldown-cmark" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9f068eba8e7071c5f9511831b44f32c740d5adf574e990f946ddb53db2f314e" +dependencies = [ + "bitflags 2.13.0", + "memchr", + "unicase", +] + +[[package]] +name = "pulldown-cmark-to-cmark" +version = "22.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50793def1b900256624a709439404384204a5dc3a6ec580281bfaac35e882e90" +dependencies = [ + "pulldown-cmark", +] + +[[package]] +name = "quinn" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" +dependencies = [ + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2 0.5.7", + "thiserror 2.0.18", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-proto" +version = "0.11.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" +dependencies = [ + "aws-lc-rs", + "bytes", + "getrandom 0.3.4", + "lru-slab", + "rand 0.9.4", + "ring", + "rustc-hash", + "rustls", + "rustls-pki-types", + "slab", + "thiserror 2.0.18", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4759aa0d3a6232fb8dbdb97b61de2c20047c68aca932c7ed76da9d788508d670" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" dependencies = [ - "prost 0.13.3", + "cfg_aliases", + "libc", + "once_cell", + "socket2 0.5.7", + "tracing", + "windows-sys 0.59.0", ] [[package]] @@ -3131,6 +3334,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + [[package]] name = "radium" version = "0.7.0" @@ -3144,8 +3353,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha", - "rand_core", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.5", ] [[package]] @@ -3155,7 +3374,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.5", ] [[package]] @@ -3164,7 +3393,16 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom", + "getrandom 0.2.15", +] + +[[package]] +name = "rand_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", ] [[package]] @@ -3173,7 +3411,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" dependencies = [ - "rand_core", + "rand_core 0.6.4", ] [[package]] @@ -3185,15 +3423,6 @@ dependencies = [ "bitflags 1.3.2", ] -[[package]] -name = "redox_syscall" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" -dependencies = [ - "bitflags 2.9.1", -] - [[package]] name = "regex" version = "1.11.0" @@ -3240,9 +3469,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwest" -version = "0.12.8" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b" +checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3" dependencies = [ "base64 0.22.1", "bytes", @@ -3256,30 +3485,26 @@ dependencies = [ "http-body-util", "hyper", "hyper-rustls", - "hyper-tls", "hyper-util", - "ipnet", "js-sys", "log", "mime", - "native-tls", - "once_cell", "percent-encoding", - "pin-project-lite", - "rustls-pemfile", - "serde", - "serde_json", - "serde_urlencoded", + "pin-project-lite", + "quinn", + "rustls", + "rustls-pki-types", + "rustls-platform-verifier", "sync_wrapper", - "system-configuration", "tokio", - "tokio-native-tls", + "tokio-rustls", + "tower", + "tower-http", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "windows-registry", ] [[package]] @@ -3290,7 +3515,7 @@ checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", "cfg-if", - "getrandom", + "getrandom 0.2.15", "libc", "spin", "untrusted", @@ -3299,24 +3524,24 @@ dependencies = [ [[package]] name = "rs-dapi-client" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "backon", "chrono", "dapi-grpc", "ferment-macro 0.2.3", "futures", - "getrandom", + "getrandom 0.2.15", "gloo-timers", "hex", "http 1.1.0", "http-serde", - "lru", - "rand", + "lru 0.16.4", + "rand 0.8.5", "serde", "serde_json", "sha2", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tonic-web-wasm-client", "tracing", @@ -3329,6 +3554,12 @@ version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +[[package]] +name = "rustc-hash" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" + [[package]] name = "rustc_version" version = "0.4.1" @@ -3344,7 +3575,7 @@ version = "0.38.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.13.0", "errno", "libc", "linux-raw-sys", @@ -3357,6 +3588,7 @@ version = "0.23.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7160e3e10bf4535308537f3c4e1641468cd0e485175d6163087c0393c7d46643" dependencies = [ + "aws-lc-rs", "log", "once_cell", "ring", @@ -3376,7 +3608,7 @@ dependencies = [ "rustls-pemfile", "rustls-pki-types", "schannel", - "security-framework", + "security-framework 2.11.1", ] [[package]] @@ -3394,15 +3626,44 @@ version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" dependencies = [ + "web-time", "zeroize", ] +[[package]] +name = "rustls-platform-verifier" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d1e2536ce4f35f4846aa13bff16bd0ff40157cdb14cc056c7b14ba41233ba0" +dependencies = [ + "core-foundation 0.10.1", + "core-foundation-sys", + "jni", + "log", + "once_cell", + "rustls", + "rustls-native-certs", + "rustls-platform-verifier-android", + "rustls-webpki", + "security-framework 3.7.0", + "security-framework-sys", + "webpki-root-certs", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustls-platform-verifier-android" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" + [[package]] name = "rustls-webpki" version = "0.103.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435" dependencies = [ + "aws-lc-rs", "ring", "rustls-pki-types", "untrusted", @@ -3465,7 +3726,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" dependencies = [ "bitcoin_hashes", - "rand", + "rand 0.8.5", "secp256k1-sys", "serde", ] @@ -3485,8 +3746,21 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.1", - "core-foundation", + "bitflags 2.13.0", + "core-foundation 0.9.4", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework" +version = "3.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" +dependencies = [ + "bitflags 2.13.0", + "core-foundation 0.10.1", "core-foundation-sys", "libc", "security-framework-sys", @@ -3494,9 +3768,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.12.0" +version = "2.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" +checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" dependencies = [ "core-foundation-sys", "libc", @@ -3513,10 +3787,11 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" dependencies = [ + "serde_core", "serde_derive", ] @@ -3538,11 +3813,20 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", @@ -3555,7 +3839,7 @@ version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.14.0", "itoa", "memchr", "ryu", @@ -3583,15 +3867,12 @@ dependencies = [ ] [[package]] -name = "serde_urlencoded" -version = "0.7.1" +name = "serde_spanned" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", + "serde_core", ] [[package]] @@ -3664,9 +3945,9 @@ dependencies = [ [[package]] name = "shlex" -version = "1.3.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" [[package]] name = "signature" @@ -3674,7 +3955,7 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ - "rand_core", + "rand_core 0.6.4", ] [[package]] @@ -3683,14 +3964,32 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" +[[package]] +name = "simd_cesu8" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94f90157bb87cddf702797c5dadfa0be7d266cdf49e22da2fcaa32eff75b2c33" +dependencies = [ + "rustc_version", + "simdutf8", +] + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + [[package]] name = "simple-signer" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ + "async-trait", "base64 0.22.1", "bincode", - "dashcore-rpc", "dpp", + "hex", + "tracing", ] [[package]] @@ -3724,6 +4023,16 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "socket2" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + [[package]] name = "spin" version = "0.9.8" @@ -3841,21 +4150,21 @@ dependencies = [ [[package]] name = "sync_wrapper" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" dependencies = [ "futures-core", ] [[package]] name = "system-configuration" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" dependencies = [ - "bitflags 2.9.1", - "core-foundation", + "bitflags 2.13.0", + "core-foundation 0.9.4", "system-configuration-sys", ] @@ -3890,41 +4199,41 @@ dependencies = [ [[package]] name = "tenderdash-abci" -version = "1.4.0" -source = "git+https://github.com/dashpay/rs-tenderdash-abci?tag=v1.4.0#e2dd15f39246081e7d569e585ab78ff5340116ac" +version = "1.5.1" +source = "git+https://github.com/dashpay/rs-tenderdash-abci?tag=v1.5.1#fae47294618125fa9d69150e8a7a5b607af6867c" dependencies = [ "bytes", "hex", "lhash", "semver", "tenderdash-proto", - "thiserror 2.0.12", + "thiserror 2.0.18", "tracing", "url", ] [[package]] name = "tenderdash-proto" -version = "1.4.0" -source = "git+https://github.com/dashpay/rs-tenderdash-abci?tag=v1.4.0#e2dd15f39246081e7d569e585ab78ff5340116ac" +version = "1.5.1" +source = "git+https://github.com/dashpay/rs-tenderdash-abci?tag=v1.5.1#fae47294618125fa9d69150e8a7a5b607af6867c" dependencies = [ "bytes", "chrono", "derive_more 2.0.1", - "flex-error", "num-derive", "num-traits", - "prost 0.13.3", + "prost 0.14.4", "serde", "subtle-encoding", "tenderdash-proto-compiler", + "thiserror 2.0.18", "time", ] [[package]] name = "tenderdash-proto-compiler" -version = "1.4.0" -source = "git+https://github.com/dashpay/rs-tenderdash-abci?tag=v1.4.0#e2dd15f39246081e7d569e585ab78ff5340116ac" +version = "1.5.1" +source = "git+https://github.com/dashpay/rs-tenderdash-abci?tag=v1.5.1#fae47294618125fa9d69150e8a7a5b607af6867c" dependencies = [ "fs_extra", "prost-build", @@ -3961,11 +4270,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.12" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ - "thiserror-impl 2.0.12", + "thiserror-impl 2.0.18", ] [[package]] @@ -3981,9 +4290,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", @@ -4057,12 +4366,12 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "token-history-contract" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "platform-value", "platform-version", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -4076,7 +4385,7 @@ dependencies = [ "libc", "mio", "pin-project-lite", - "socket2", + "socket2 0.5.7", "tokio-macros", "windows-sys 0.52.0", ] @@ -4092,16 +4401,6 @@ dependencies = [ "syn 2.0.95", ] -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.26.2" @@ -4152,11 +4451,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" dependencies = [ "serde", - "serde_spanned", - "toml_datetime", + "serde_spanned 0.6.9", + "toml_datetime 0.6.8", "toml_edit 0.22.22", ] +[[package]] +name = "toml" +version = "0.9.12+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" +dependencies = [ + "indexmap 2.14.0", + "serde_core", + "serde_spanned 1.1.1", + "toml_datetime 0.7.5+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 0.7.15", +] + [[package]] name = "toml_datetime" version = "0.6.8" @@ -4166,14 +4480,23 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.7.5+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +dependencies = [ + "serde_core", +] + [[package]] name = "toml_edit" version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.7.0", - "toml_datetime", + "indexmap 2.14.0", + "toml_datetime 0.6.8", "winnow 0.5.40", ] @@ -4183,13 +4506,28 @@ version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.14.0", "serde", - "serde_spanned", - "toml_datetime", + "serde_spanned 0.6.9", + "toml_datetime 0.6.8", "winnow 0.6.20", ] +[[package]] +name = "toml_parser" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" +dependencies = [ + "winnow 1.0.3", +] + +[[package]] +name = "toml_writer" +version = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db" + [[package]] name = "tonic" version = "0.11.0" @@ -4213,9 +4551,9 @@ dependencies = [ [[package]] name = "tonic" -version = "0.13.1" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e581ba15a835f4d9ea06c55ab1bd4dce26fc53752c69a04aac00703bfb49ba9" +checksum = "ac2a5518c70fa84342385732db33fb3f44bc4cc748936eb5833d2df34d6445ef" dependencies = [ "async-trait", "base64 0.22.1", @@ -4229,9 +4567,9 @@ dependencies = [ "hyper-util", "percent-encoding", "pin-project", - "prost 0.13.3", "rustls-native-certs", - "socket2", + "socket2 0.6.4", + "sync_wrapper", "tokio", "tokio-rustls", "tokio-stream", @@ -4244,9 +4582,32 @@ dependencies = [ [[package]] name = "tonic-build" -version = "0.13.1" +version = "0.14.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c68f61875ac5293cf72e6c8cf0158086428c82c37229e98c840878f1706b0322" +dependencies = [ + "prettyplease", + "proc-macro2", + "quote", + "syn 2.0.95", +] + +[[package]] +name = "tonic-prost" +version = "0.14.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50849f68853be452acf590cde0b146665b8d507b3b8af17261df47e02c209ea0" +dependencies = [ + "bytes", + "prost 0.14.4", + "tonic 0.14.6", +] + +[[package]] +name = "tonic-prost-build" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac6f67be712d12f0b41328db3137e0d0757645d8904b4cb7d51cd9c2279e847" +checksum = "654e5643eff75d7f8c99197ce1440ed19a3474eada74c12bbac488b2cafdae27" dependencies = [ "prettyplease", "proc-macro2", @@ -4254,13 +4615,15 @@ dependencies = [ "prost-types", "quote", "syn 2.0.95", + "tempfile", + "tonic-build", ] [[package]] name = "tonic-web-wasm-client" -version = "0.7.1" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66e3bb7acca55e6790354be650f4042d418fcf8e2bc42ac382348f2b6bf057e5" +checksum = "3c0469c353de5f665c95f898074b5b004b500c6722214c3249f1dc79c0a2a3f6" dependencies = [ "base64 0.22.1", "byteorder", @@ -4272,8 +4635,8 @@ dependencies = [ "httparse", "js-sys", "pin-project", - "thiserror 2.0.12", - "tonic 0.13.1", + "thiserror 2.0.18", + "tonic 0.14.6", "tower-service", "wasm-bindgen", "wasm-bindgen-futures", @@ -4289,7 +4652,7 @@ checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ "futures-core", "futures-util", - "indexmap 2.7.0", + "indexmap 2.14.0", "pin-project-lite", "slab", "sync_wrapper", @@ -4300,6 +4663,24 @@ dependencies = [ "tracing", ] +[[package]] +name = "tower-http" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" +dependencies = [ + "bitflags 2.13.0", + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", + "url", +] + [[package]] name = "tower-layer" version = "0.3.3" @@ -4314,9 +4695,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -4325,9 +4706,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", @@ -4336,9 +4717,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" dependencies = [ "once_cell", "valuable", @@ -4396,6 +4777,12 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +[[package]] +name = "typed-path" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e" + [[package]] name = "typenum" version = "1.17.0" @@ -4411,6 +4798,12 @@ dependencies = [ "core2", ] +[[package]] +name = "unicase" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" + [[package]] name = "unicode-bidi" version = "0.3.17" @@ -4444,30 +4837,34 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" +[[package]] +name = "unty" +version = "0.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" + [[package]] name = "ureq" -version = "3.0.3" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "217751151c53226090391713e533d9a5e904ba2570dabaaace29032687589c3e" +checksum = "dea7109cdcd5864d4eeb1b58a1648dc9bf520360d7af16ec26d0a9354bafcfc0" dependencies = [ "base64 0.22.1", - "cc", "flate2", "log", "percent-encoding", "rustls", - "rustls-pemfile", "rustls-pki-types", "ureq-proto", - "utf-8", + "utf8-zero", "webpki-roots", ] [[package]] name = "ureq-proto" -version = "0.3.5" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae239d0a3341aebc94259414d1dc67cfce87d41cbebc816772c91b77902fafa4" +checksum = "e994ba84b0bd1b1b0cf92878b7ef898a5c1760108fe7b6010327e274917a808c" dependencies = [ "base64 0.22.1", "http 1.1.0", @@ -4487,10 +4884,10 @@ dependencies = [ ] [[package]] -name = "utf-8" -version = "0.7.6" +name = "utf8-zero" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +checksum = "b8c0a043c9540bae7c578c88f91dda8bd82e59ae27c21baca69c8b191aaf5a6e" [[package]] name = "utf8parse" @@ -4498,24 +4895,12 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" -[[package]] -name = "uuid" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" - [[package]] name = "valuable" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - [[package]] name = "version_check" version = "0.9.5" @@ -4535,21 +4920,20 @@ source = "git+https://github.com/dashpay/versioned-feature-core#560157096c8405a4 [[package]] name = "virtue" -version = "0.0.13" +version = "0.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dcc60c0624df774c82a0ef104151231d37da4962957d691c011c852b2473314" +checksum = "7302ac74a033bf17b6e609ceec0f891ca9200d502d31f02dc7908d3d98767c9d" [[package]] name = "virtue" -version = "0.0.17" +version = "0.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7302ac74a033bf17b6e609ceec0f891ca9200d502d31f02dc7908d3d98767c9d" +checksum = "051eb1abcf10076295e815102942cc58f9d5e3b4560e46e53c21e8ff6f3af7b1" [[package]] name = "vsss-rs" -version = "5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d100efd4ff7ccba787b1b1bb0045c2fe1df5ad75f74e3a63f738635d87d50da4" +version = "5.1.0" +source = "git+https://github.com/dashpay/vsss-rs?branch=main#668f1406bf25a4b9a95cd97c9069f7a1632897c3" dependencies = [ "crypto-bigint", "elliptic-curve", @@ -4557,7 +4941,7 @@ dependencies = [ "generic-array 1.1.1", "hex", "num", - "rand_core", + "rand_core 0.6.4", "serde", "sha3", "subtle", @@ -4576,12 +4960,12 @@ dependencies = [ [[package]] name = "wallet-utils-contract" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "platform-value", "platform-version", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -4600,49 +4984,42 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] -name = "wasm-bindgen" -version = "0.2.100" +name = "wasip2" +version = "1.0.4+wasi-0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" dependencies = [ - "cfg-if", - "once_cell", - "rustversion", - "wasm-bindgen-macro", + "wit-bindgen", ] [[package]] -name = "wasm-bindgen-backend" -version = "0.2.100" +name = "wasm-bindgen" +version = "0.2.123" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +checksum = "a254a4b10c19a76f09a27640e7ffbf9bc30bf67e16a3bf28aaefa4920fe81563" dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn 2.0.95", + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.50" +version = "0.4.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +checksum = "54568702fabf5d4849ce2b90fadfa64168a097eaf4b351ce9df8b687a0086aaf" dependencies = [ - "cfg-if", "js-sys", - "once_cell", "wasm-bindgen", - "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.123" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "24a40fc75b0ec6f3746ceb10d36f53a93dcd68a93b11b6445983945d79eba0dc" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -4650,31 +5027,31 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.123" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "908f34bd9b9ce3d4caf07b72dfab63d61504d156856c6bd3cd87fa350cf3985b" dependencies = [ + "bumpalo", "proc-macro2", "quote", "syn 2.0.95", - "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.123" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "7acbf7616c27b194bbb550bf77ed0c2c3e5b7fd1260a93082b95fb7f47959b92" dependencies = [ "unicode-ident", ] [[package]] name = "wasm-streams" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" +checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb" dependencies = [ "futures-util", "js-sys", @@ -4685,19 +5062,38 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.77" +version = "0.3.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e0871acf327f283dc6da28a1696cdc64fb355ba9f935d052021fa77f35cce69" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ "js-sys", "wasm-bindgen", ] +[[package]] +name = "webpki-root-certs" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31141ce3fc3e300ae89b78c0dd67f9708061d1d2eda54b8209346fd6be9a92c" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "webpki-roots" -version = "0.26.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" +checksum = "52f5ee44c96cf55f1b349600768e3ece3a8f26010c05265ab73f945bb1a2eb9d" dependencies = [ "rustls-pki-types", ] @@ -4742,34 +5138,39 @@ dependencies = [ "windows-targets", ] +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + [[package]] name = "windows-registry" -version = "0.2.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" +checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" dependencies = [ + "windows-link", "windows-result", "windows-strings", - "windows-targets", ] [[package]] name = "windows-result" -version = "0.2.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ - "windows-targets", + "windows-link", ] [[package]] name = "windows-strings" -version = "0.1.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ - "windows-result", - "windows-targets", + "windows-link", ] [[package]] @@ -4790,6 +5191,15 @@ dependencies = [ "windows-targets", ] +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + [[package]] name = "windows-targets" version = "0.52.6" @@ -4872,9 +5282,27 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "0.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" + +[[package]] +name = "winnow" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1" + +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + [[package]] name = "withdrawals-contract" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "num_enum 0.5.11", "platform-value", @@ -4882,7 +5310,7 @@ dependencies = [ "serde", "serde_json", "serde_repr", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -4938,35 +5366,41 @@ dependencies = [ [[package]] name = "zip" -version = "2.2.0" +version = "8.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc5e4288ea4057ae23afc69a4472434a87a2495cafce6632fd1c4ec9f5cf3494" +checksum = "2d04a6b5381502aa6087c94c669499eb1602eb9c5e8198e534de571f7154809b" dependencies = [ - "arbitrary", "crc32fast", - "crossbeam-utils", - "displaydoc", "flate2", - "indexmap 2.7.0", + "indexmap 2.14.0", "memchr", - "thiserror 1.0.64", + "typed-path", "zopfli", ] +[[package]] +name = "zlib-rs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be3d40e40a133f9c916ee3f9f4fa2d9d63435b5fbe1bfc6d9dae0aa0ada1513" + [[package]] name = "zopfli" -version = "0.8.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5019f391bac5cf252e93bbcc53d039ffd62c7bfb7c150414d61369afe57e946" +checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" dependencies = [ "bumpalo", "crc32fast", - "lockfree-object-pool", "log", - "once_cell", "simd-adler32", ] +[[patch.unused]] +name = "elliptic-curve-tools" +version = "0.1.2" +source = "git+https://github.com/mikelodder7/elliptic-curve-tools?rev=5789c0491252d5af8add829348af9dd6ac09d8f6#5789c0491252d5af8add829348af9dd6ac09d8f6" + [[patch.unused]] name = "rs-x11-hash" version = "0.1.9" diff --git a/dash-sdk-android/src/main/rust/Cargo.toml b/dash-sdk-android/src/main/rust/Cargo.toml index 3440652..670c1f1 100644 --- a/dash-sdk-android/src/main/rust/Cargo.toml +++ b/dash-sdk-android/src/main/rust/Cargo.toml @@ -17,12 +17,11 @@ dpp = { path = "../../../../../platform/packages/rs-dpp" } #rs-dapi-client = { path = "../../../../../platform/packages/rs-dapi-client" } #platform-version = { path = "../../../../../platform/packages/rs-platform-version" } dashcore = { git = "https://github.com/dashpay/rust-dashcore", features = [ - "std", "secp-recovery", "rand", "signer", "serde", -], default-features = false, tag = "v0.39.6" } +], default-features = false, rev = "981e97f1015960ae5d277afdabcba1cbbc0b3a63" } drive = { path = "../../../../../platform/packages/rs-drive", default-features = false, features = [ "verify", "serde", diff --git a/dash-sdk-android/src/main/rust/src/fermented.rs b/dash-sdk-android/src/main/rust/src/fermented.rs index 4e6ed43..e6537fe 100644 --- a/dash-sdk-android/src/main/rust/src/fermented.rs +++ b/dash-sdk-android/src/main/rust/src/fermented.rs @@ -16,3941 +16,3847 @@ unused_variables )] pub mod types { - pub mod rs_dapi_client { - use crate as dash_sdk_bindings; - - pub mod transport { use crate as dash_sdk_bindings; } - } - - pub mod dpp { + pub mod platform_mobile { use crate as dash_sdk_bindings; - pub mod fee { + pub mod clone { use crate as dash_sdk_bindings; - pub mod epoch { - use crate as dash_sdk_bindings; - - #[cfg(feature = "fee-distribution")] - pub mod distribution { - use crate as dash_sdk_bindings; - - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } - } + #[doc = "FFI-representation of the [`platform_mobile::clone::ResourceVotesByIdentity_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_ResourceVotesByIdentity_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ResourceVotesByIdentity) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ResourceVotesByIdentity { + let obj = platform_mobile::clone::ResourceVotesByIdentity_clone(>::ffi_from(o)); + >::ffi_to(obj) } - #[cfg(feature = "fee-distribution")] - pub mod fee_result { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::clone::CoreBlockHeight_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_CoreBlockHeight_clone(height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { + let obj = platform_mobile::clone::CoreBlockHeight_clone(>::ffi_from(height)); + >::ffi_to(obj) + } - pub mod refunds { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::clone::Voter_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Voter_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Voter) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Voter { + let obj = platform_mobile::clone::Voter_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } - } + #[doc = "FFI-representation of the [`platform_mobile::clone::DocumentV0_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_DocumentV0_clone(document: *mut crate::fermented::types::dpp::document::v0::dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::document::v0::dpp_document_v0_DocumentV0 { + let obj = platform_mobile::clone::DocumentV0_clone(>::ffi_from(document)); + >::ffi_to(obj) } - pub mod default_costs { use crate as dash_sdk_bindings; } - } + #[doc = "FFI-representation of the [`platform_mobile::clone::Arr_u8_32_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Arr_u8_32_clone(slice: *mut crate::fermented::generics::Arr_u8_32) -> *mut crate::fermented::generics::Arr_u8_32 { + let obj = platform_mobile::clone::Arr_u8_32_clone(>::ffi_from(slice)); + >::ffi_to(obj) + } - pub mod group { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::clone::prelude_TimestampMillis_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_prelude_TimestampMillis_clone(time: *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis { + let obj = platform_mobile::clone::prelude_TimestampMillis_clone(>::ffi_from(time)); + >::ffi_to(obj) + } - pub mod group_action { use crate as dash_sdk_bindings; } - } + #[doc = "FFI-representation of the [`platform_mobile::clone::ResourceVoteChoice_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_ResourceVoteChoice_clone(o: *mut crate::fermented::types::dpp::voting::vote_choices::resource_vote_choice::dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice) -> *mut crate::fermented::types::dpp::voting::vote_choices::resource_vote_choice::dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { + let obj = platform_mobile::clone::ResourceVoteChoice_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - #[cfg(feature = "core-types")] - pub mod core_types { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::clone::Contenders_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Contenders_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Contenders) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Contenders { + let obj = platform_mobile::clone::Contenders_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - pub mod validator_set { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::clone::ValueMap_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_ValueMap_clone(value_map: *mut crate::fermented::types::platform_value::value_map::platform_value_value_map_ValueMap) -> *mut crate::fermented::types::platform_value::value_map::platform_value_value_map_ValueMap { + let obj = platform_mobile::clone::ValueMap_clone(>::ffi_from(value_map)); + >::ffi_to(obj) + } - pub mod v0 { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::clone::Value_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Value_clone(value: *mut crate::fermented::types::platform_value::platform_value_Value) -> *mut crate::fermented::types::platform_value::platform_value_Value { + let obj = platform_mobile::clone::Value_clone(>::ffi_from(value)); + >::ffi_to(obj) } - pub mod validator { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::clone::Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_clone(o: *mut crate::fermented::generics::Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) -> *mut crate::fermented::generics::Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { + let obj = platform_mobile::clone::Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_clone()>>::ffi_from(o)); + )>>::ffi_to(obj) + } - pub mod v0 { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::clone::KeyID_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_KeyID_clone(id: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID { + let obj = platform_mobile::clone::KeyID_clone(>::ffi_from(id)); + >::ffi_to(obj) } - } - pub mod bls { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::clone::Vec_Value_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Vec_Value_clone(value_vec: *mut crate::fermented::generics::Vec_platform_value_Value) -> *mut crate::fermented::generics::Vec_platform_value_Value { + let obj = platform_mobile::clone::Vec_Value_clone(>>::ffi_from(value_vec)); + >>::ffi_to(obj) + } - pub mod asset_lock { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::clone::std_collections_Map_keys_String_values_platform_value_Value_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_std_collections_Map_keys_String_values_platform_value_Value_clone(map: *mut crate::fermented::generics::std_collections_Map_keys_String_values_platform_value_Value) -> *mut crate::fermented::generics::std_collections_Map_keys_String_values_platform_value_Value { + let obj = platform_mobile::clone::std_collections_Map_keys_String_values_platform_value_Value_clone(>>::ffi_from(map)); + >>::ffi_to(obj) + } - pub mod reduced_asset_lock_value { use crate as dash_sdk_bindings; } - } + #[doc = "FFI-representation of the [`platform_mobile::clone::ContestedDocumentResourceVotePoll_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_ContestedDocumentResourceVotePoll_clone(o: *mut crate::fermented::types::dpp::voting::vote_polls::contested_document_resource_vote_poll::dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut crate::fermented::types::dpp::voting::vote_polls::contested_document_resource_vote_poll::dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { + let obj = platform_mobile::clone::ContestedDocumentResourceVotePoll_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - pub mod validation { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::clone::Vote_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Vote_clone(o: *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote) -> *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote { + let obj = platform_mobile::clone::Vote_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - #[cfg(feature = "validation")] - pub mod byte_array_keyword { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::clone::ContenderWithSerializedDocument_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_ContenderWithSerializedDocument_clone(o: *mut crate::fermented::types::dpp::voting::contender_structs::contender::dpp_voting_contender_structs_contender_ContenderWithSerializedDocument) -> *mut crate::fermented::types::dpp::voting::contender_structs::contender::dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { + let obj = platform_mobile::clone::ContenderWithSerializedDocument_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } + #[doc = "FFI-representation of the [`platform_mobile::clone::ResourceVote_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_ResourceVote_clone(o: *mut crate::fermented::types::dpp::voting::votes::resource_vote::dpp_voting_votes_resource_vote_ResourceVote) -> *mut crate::fermented::types::dpp::voting::votes::resource_vote::dpp_voting_votes_resource_vote_ResourceVote { + let obj = platform_mobile::clone::ResourceVote_clone(>::ffi_from(o)); + >::ffi_to(obj) } - #[cfg(feature = "validation")] - pub mod json_schema_validator { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::clone::VotePollsGroupedByTimestamp_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_VotePollsGroupedByTimestamp_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_VotePollsGroupedByTimestamp) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_VotePollsGroupedByTimestamp { + let obj = platform_mobile::clone::VotePollsGroupedByTimestamp_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - pub mod methods { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::clone::WhereClause_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_WhereClause_clone(o: *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereClause) -> *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereClause { + let obj = platform_mobile::clone::WhereClause_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - pub mod new { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::clone::ContenderWithSerializedDocumentV0_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_ContenderWithSerializedDocumentV0_clone(o: *mut crate::fermented::types::dpp::voting::contender_structs::contender::v0::dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut crate::fermented::types::dpp::voting::contender_structs::contender::v0::dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { + let obj = platform_mobile::clone::ContenderWithSerializedDocumentV0_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - pub mod compile { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::clone::VotePoll_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_VotePoll_clone(o: *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll) -> *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll { + let obj = platform_mobile::clone::VotePoll_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - pub mod validate { use crate as dash_sdk_bindings; } - } + #[doc = "FFI-representation of the [`platform_mobile::clone::Arr_u8_36_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Arr_u8_36_clone(slice: *mut crate::fermented::generics::Arr_u8_36) -> *mut crate::fermented::generics::Arr_u8_36 { + let obj = platform_mobile::clone::Arr_u8_36_clone(>::ffi_from(slice)); + >::ffi_to(obj) } - } - pub mod block { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::clone::OrderClause_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_OrderClause_clone(o: *mut crate::fermented::types::drive::query::ordering::drive_query_ordering_OrderClause) -> *mut crate::fermented::types::drive::query::ordering::drive_query_ordering_OrderClause { + let obj = platform_mobile::clone::OrderClause_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - pub mod block_info { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::clone::std_collections_BTreeSet_drive_proof_verifier_types_Voter_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_std_collections_BTreeSet_drive_proof_verifier_types_Voter_clone(o: *mut crate::fermented::generics::std_collections_BTreeSet_drive_proof_verifier_types_Voter) -> *mut crate::fermented::generics::std_collections_BTreeSet_drive_proof_verifier_types_Voter { + let obj = platform_mobile::clone::std_collections_BTreeSet_drive_proof_verifier_types_Voter_clone(>>::ffi_from(o)); + >>::ffi_to(obj) + } - #[doc = "FFI-representation of the [`BlockInfo`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_block_block_info_BlockInfo { - pub time_ms: *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis, - pub height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, - pub core_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, - pub epoch: *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_Epoch, - } + #[doc = "FFI-representation of the [`platform_mobile::clone::Voters_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Voters_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Voters) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Voters { + let obj = platform_mobile::clone::Voters_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - impl ferment::FFIConversionFrom for dpp_block_block_info_BlockInfo { - unsafe fn ffi_from_const(ffi: *const dpp_block_block_info_BlockInfo) -> dpp::block::block_info::BlockInfo { - let ffi_ref = &*ffi; - dpp::block::block_info::BlockInfo { time_ms: >::ffi_from(ffi_ref.time_ms), height: >::ffi_from(ffi_ref.height), core_height: >::ffi_from(ffi_ref.core_height), epoch: >::ffi_from(ffi_ref.epoch) } - } - } + #[doc = "FFI-representation of the [`platform_mobile::clone::Revision_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Revision_clone(revision: *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision { + let obj = platform_mobile::clone::Revision_clone(>::ffi_from(revision)); + >::ffi_to(obj) + } - impl ferment::FFIConversionTo for dpp_block_block_info_BlockInfo { unsafe fn ffi_to_const(obj: dpp::block::block_info::BlockInfo) -> *const dpp_block_block_info_BlockInfo { ferment::boxed(dpp_block_block_info_BlockInfo { time_ms: >::ffi_to(obj.time_ms), height: >::ffi_to(obj.height), core_height: >::ffi_to(obj.core_height), epoch: >::ffi_to(obj.epoch) }) } } + #[doc = "FFI-representation of the [`platform_mobile::clone::Hash256_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Hash256_clone(o: *mut crate::fermented::types::platform_value::platform_value_Hash256) -> *mut crate::fermented::types::platform_value::platform_value_Hash256 { + let obj = platform_mobile::clone::Hash256_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - impl Drop for dpp_block_block_info_BlockInfo { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.time_ms); - ferment::unbox_any(ffi_ref.height); - ferment::unbox_any(ffi_ref.core_height); - ferment::unbox_any(ffi_ref.epoch); - } - } - } + #[doc = "FFI-representation of the [`platform_mobile::clone::Document_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Document_clone(document: *mut crate::fermented::types::dpp::document::dpp_document_Document) -> *mut crate::fermented::types::dpp::document::dpp_document_Document { + let obj = platform_mobile::clone::Document_clone(>::ffi_from(document)); + >::ffi_to(obj) + } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_ctor<>(time_ms: *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis, height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, core_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, epoch: *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_Epoch) -> *mut dpp_block_block_info_BlockInfo { ferment::boxed(dpp_block_block_info_BlockInfo { time_ms, height, core_height, epoch }) } + #[doc = "FFI-representation of the [`platform_mobile::clone::BlockHeight_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_BlockHeight_clone(height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { + let obj = platform_mobile::clone::BlockHeight_clone(>::ffi_from(height)); + >::ffi_to(obj) + } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_destroy<>(ffi: *mut dpp_block_block_info_BlockInfo) { ferment::unbox_any(ffi); } + #[doc = "FFI-representation of the [`platform_mobile::clone::Vec_u8_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Vec_u8_clone(vec: *mut crate::fermented::generics::Vec_u8) -> *mut crate::fermented::generics::Vec_u8 { + let obj = platform_mobile::clone::Vec_u8_clone(>>::ffi_from(vec)); + >>::ffi_to(obj) + } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_get_time_ms<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis { (*obj).time_ms } + #[doc = "FFI-representation of the [`platform_mobile::clone::WhereOperator_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_WhereOperator_clone(o: *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereOperator) -> *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereOperator { + let obj = platform_mobile::clone::WhereOperator_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_get_height<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).height } + #[doc = "FFI-representation of the [`platform_mobile::clone::Arr_u8_20_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Arr_u8_20_clone(slice: *mut crate::fermented::generics::Arr_u8_20) -> *mut crate::fermented::generics::Arr_u8_20 { + let obj = platform_mobile::clone::Arr_u8_20_clone(>::ffi_from(slice)); + >::ffi_to(obj) + } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_get_core_height<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).core_height } + #[doc = "FFI-representation of the [`platform_mobile::clone::ContestedResource_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_ContestedResource_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResource) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResource { + let obj = platform_mobile::clone::ContestedResource_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_get_epoch<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_Epoch { (*obj).epoch } + #[doc = "FFI-representation of the [`platform_mobile::clone::ContestedResources_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_ContestedResources_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResources) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResources { + let obj = platform_mobile::clone::ContestedResources_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_set_time_ms<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis { (*obj).time_ms } + #[doc = "FFI-representation of the [`platform_mobile::clone::TimestampMillis_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_TimestampMillis_clone(time: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { + let obj = platform_mobile::clone::TimestampMillis_clone(>::ffi_from(time)); + >::ffi_to(obj) + } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_set_height<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).height } + #[doc = "FFI-representation of the [`platform_mobile::clone::ResourceVoteV0_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_ResourceVoteV0_clone(o: *mut crate::fermented::types::dpp::voting::votes::resource_vote::v0::dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> *mut crate::fermented::types::dpp::voting::votes::resource_vote::v0::dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { + let obj = platform_mobile::clone::ResourceVoteV0_clone(>::ffi_from(o)); + >::ffi_to(obj) + } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_set_core_height<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).core_height } + pub mod put { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_set_epoch<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_Epoch { (*obj).epoch } + #[doc = "FFI-representation of the [`platform_mobile::put::put_identity_sdk`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_put_identity_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, identity: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, asset_lock_proof: *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_AssetLockProofFFI, asset_lock_proof_private_key: *mut crate::fermented::generics::Vec_u8, signer_context: usize, signer_callback: u64, is_testnet: bool) -> *mut crate::fermented::generics::Result_ok_dpp_identity_identity_Identity_err_String { + let obj = platform_mobile::put::put_identity_sdk(rust_sdk, >::ffi_from(identity), >::ffi_from(asset_lock_proof), >>::ffi_from(asset_lock_proof_private_key), signer_context, signer_callback, is_testnet); + >>::ffi_to(obj) } - pub mod extended_block_info { - use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::put::put_document_sdk`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_put_document_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, document: *mut crate::fermented::types::dpp::document::dpp_document_Document, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type_str: *mut std::os::raw::c_char, identity_public_key: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey, block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, signer_context: usize, signer_callback: u64) -> *mut crate::fermented::generics::Result_ok_dpp_document_Document_err_String { + let obj = platform_mobile::put::put_document_sdk(rust_sdk, >::ffi_from(document), >::ffi_from(data_contract_id), >::ffi_from(document_type_str), >::ffi_from(identity_public_key), >::ffi_from(block_height), >::ffi_from(core_block_height), signer_context, signer_callback); + >>::ffi_to(obj) } - pub mod epoch { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::put::InstantAssetLockProofFFI_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_clone(a: *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_InstantAssetLockProofFFI) -> *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_InstantAssetLockProofFFI { + let obj = platform_mobile::put::InstantAssetLockProofFFI_clone(>::ffi_from(a)); + >::ffi_to(obj) + } - #[doc = "FFI-representation of the [`EpochIndex`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_block_epoch_EpochIndex(u16); + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`AssetLockProofFFI`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum platform_mobile_put_AssetLockProofFFI { Instant(*mut crate::fermented::types::platform_mobile::put::platform_mobile_put_InstantAssetLockProofFFI), Chain(*mut crate::fermented::types::platform_mobile::put::platform_mobile_put_ChainAssetLockProofFFI) } - impl ferment::FFIConversionFrom for dpp_block_epoch_EpochIndex { - unsafe fn ffi_from_const(ffi: *const dpp_block_epoch_EpochIndex) -> dpp::block::epoch::EpochIndex { - let ffi_ref = &*ffi; - ffi_ref.0 + impl ferment::FFIConversionFrom for platform_mobile_put_AssetLockProofFFI { + unsafe fn ffi_from_const(ffi: *const platform_mobile_put_AssetLockProofFFI) -> platform_mobile::put::AssetLockProofFFI { + let ffi_ref = &*ffi; + match ffi_ref { + platform_mobile_put_AssetLockProofFFI::Instant(o_0) => platform_mobile::put::AssetLockProofFFI::Instant(>::ffi_from(*o_0)), + platform_mobile_put_AssetLockProofFFI::Chain(o_0) => platform_mobile::put::AssetLockProofFFI::Chain(>::ffi_from(*o_0)) } } + } - impl ferment::FFIConversionTo for dpp_block_epoch_EpochIndex { unsafe fn ffi_to_const(obj: dpp::block::epoch::EpochIndex) -> *const dpp_block_epoch_EpochIndex { ferment::boxed(dpp_block_epoch_EpochIndex(obj)) } } + impl ferment::FFIConversionTo for platform_mobile_put_AssetLockProofFFI { + unsafe fn ffi_to_const(obj: platform_mobile::put::AssetLockProofFFI) -> *const platform_mobile_put_AssetLockProofFFI { + ferment::boxed(match obj { + platform_mobile::put::AssetLockProofFFI::Instant(o_0) => platform_mobile_put_AssetLockProofFFI::Instant(>::ffi_to(o_0)), + platform_mobile::put::AssetLockProofFFI::Chain(o_0) => platform_mobile_put_AssetLockProofFFI::Chain(>::ffi_to(o_0)), + _ => unreachable!("This is unreachable") + }) + } + } - impl Drop for dpp_block_epoch_EpochIndex { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ; - } + impl Drop for platform_mobile_put_AssetLockProofFFI { + fn drop(&mut self) { + unsafe { + match self { + platform_mobile_put_AssetLockProofFFI::Instant(o_0) => { ferment::unbox_any(*o_0); } + platform_mobile_put_AssetLockProofFFI::Chain(o_0) => { ferment::unbox_any(*o_0); } + _ => unreachable!("This is unreachable") + }; } } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_epoch_EpochIndex_ctor<>(o_0: u16) -> *mut dpp_block_epoch_EpochIndex { ferment::boxed(dpp_block_epoch_EpochIndex(o_0)) } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_AssetLockProofFFI_Instant_ctor(o_o_0: *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_InstantAssetLockProofFFI) -> *mut platform_mobile_put_AssetLockProofFFI { ferment::boxed(platform_mobile_put_AssetLockProofFFI::Instant(o_o_0)) } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_epoch_EpochIndex_destroy<>(ffi: *mut dpp_block_epoch_EpochIndex) { ferment::unbox_any(ffi); } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_AssetLockProofFFI_Chain_ctor(o_o_0: *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_ChainAssetLockProofFFI) -> *mut platform_mobile_put_AssetLockProofFFI { ferment::boxed(platform_mobile_put_AssetLockProofFFI::Chain(o_o_0)) } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_epoch_EpochIndex_get_0<>(obj: *const dpp_block_epoch_EpochIndex) -> u16 { (*obj).0 } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_AssetLockProofFFI_destroy<>(ffi: *mut platform_mobile_put_AssetLockProofFFI) { ferment::unbox_any(ffi); } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_epoch_EpochIndex_set_0<>(obj: *const dpp_block_epoch_EpochIndex) -> u16 { (*obj).0 } + #[doc = "FFI-representation of the [`platform_mobile::put::topup_identity_sdk`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_topup_identity_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, identity: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, asset_lock_proof: *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_AssetLockProofFFI, asset_lock_proof_private_key: *mut crate::fermented::generics::Vec_u8, is_testnet: bool) -> *mut crate::fermented::generics::Result_ok_u64_err_String { + let obj = platform_mobile::put::topup_identity_sdk(rust_sdk, >::ffi_from(identity), >::ffi_from(asset_lock_proof), >>::ffi_from(asset_lock_proof_private_key), is_testnet); + >>::ffi_to(obj) + } - #[doc = "FFI-representation of the [`Epoch`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_block_epoch_Epoch { - pub index: *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_EpochIndex, - pub key: *mut crate::fermented::generics::Arr_u8_2, - } + #[doc = "FFI-representation of the [`ChainAssetLockProofFFI`]"] + #[repr(C)] + #[derive(Clone)] + pub struct platform_mobile_put_ChainAssetLockProofFFI { + pub core_chain_locked_height: u32, + pub out_point: *mut platform_mobile::custom::OutPoint, + } - impl ferment::FFIConversionFrom for dpp_block_epoch_Epoch { - unsafe fn ffi_from_const(ffi: *const dpp_block_epoch_Epoch) -> dpp::block::epoch::Epoch { - let ffi_ref = &*ffi; - dpp::block::epoch::Epoch { index: >::ffi_from(ffi_ref.index), key: >::ffi_from(ffi_ref.key) } - } + impl ferment::FFIConversionFrom for platform_mobile_put_ChainAssetLockProofFFI { + unsafe fn ffi_from_const(ffi: *const platform_mobile_put_ChainAssetLockProofFFI) -> platform_mobile::put::ChainAssetLockProofFFI { + let ffi_ref = &*ffi; + platform_mobile::put::ChainAssetLockProofFFI { core_chain_locked_height: ffi_ref.core_chain_locked_height, out_point: >::ffi_from(ffi_ref.out_point) } } + } - impl ferment::FFIConversionTo for dpp_block_epoch_Epoch { unsafe fn ffi_to_const(obj: dpp::block::epoch::Epoch) -> *const dpp_block_epoch_Epoch { ferment::boxed(dpp_block_epoch_Epoch { index: >::ffi_to(obj.index), key: >::ffi_to(obj.key) }) } } + impl ferment::FFIConversionTo for platform_mobile_put_ChainAssetLockProofFFI { unsafe fn ffi_to_const(obj: platform_mobile::put::ChainAssetLockProofFFI) -> *const platform_mobile_put_ChainAssetLockProofFFI { ferment::boxed(platform_mobile_put_ChainAssetLockProofFFI { core_chain_locked_height: obj.core_chain_locked_height, out_point: >::ffi_to(obj.out_point) }) } } - impl Drop for dpp_block_epoch_Epoch { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.index); - ferment::unbox_any(ffi_ref.key); - } + impl Drop for platform_mobile_put_ChainAssetLockProofFFI { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ; + ferment::unbox_any(ffi_ref.out_point); } } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_epoch_Epoch_ctor<>(index: *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_EpochIndex, key: *mut crate::fermented::generics::Arr_u8_2) -> *mut dpp_block_epoch_Epoch { ferment::boxed(dpp_block_epoch_Epoch { index, key }) } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_ctor<>(core_chain_locked_height: u32, out_point: *mut platform_mobile::custom::OutPoint) -> *mut platform_mobile_put_ChainAssetLockProofFFI { ferment::boxed(platform_mobile_put_ChainAssetLockProofFFI { core_chain_locked_height, out_point }) } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_epoch_Epoch_destroy<>(ffi: *mut dpp_block_epoch_Epoch) { ferment::unbox_any(ffi); } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_destroy<>(ffi: *mut platform_mobile_put_ChainAssetLockProofFFI) { ferment::unbox_any(ffi); } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_epoch_Epoch_get_index<>(obj: *const dpp_block_epoch_Epoch) -> *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_EpochIndex { (*obj).index } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_get_core_chain_locked_height<>(obj: *const platform_mobile_put_ChainAssetLockProofFFI) -> u32 { (*obj).core_chain_locked_height } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_epoch_Epoch_get_key<>(obj: *const dpp_block_epoch_Epoch) -> *mut crate::fermented::generics::Arr_u8_2 { (*obj).key } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_get_out_point<>(obj: *const platform_mobile_put_ChainAssetLockProofFFI) -> *mut platform_mobile::custom::OutPoint { (*obj).out_point } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_epoch_Epoch_set_index<>(obj: *const dpp_block_epoch_Epoch) -> *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_EpochIndex { (*obj).index } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_set_core_chain_locked_height<>(obj: *const platform_mobile_put_ChainAssetLockProofFFI) -> u32 { (*obj).core_chain_locked_height } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_epoch_Epoch_set_key<>(obj: *const dpp_block_epoch_Epoch) -> *mut crate::fermented::generics::Arr_u8_2 { (*obj).key } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_set_out_point<>(obj: *const platform_mobile_put_ChainAssetLockProofFFI) -> *mut platform_mobile::custom::OutPoint { (*obj).out_point } + + #[doc = "FFI-representation of the [`InstantAssetLockProofFFI`]"] + #[repr(C)] + #[derive(Clone)] + pub struct platform_mobile_put_InstantAssetLockProofFFI { + pub instant_lock: *mut crate::fermented::generics::Vec_u8, + pub transaction: *mut crate::fermented::generics::Vec_u8, + pub output_index: u32, } - pub mod extended_epoch_info { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for platform_mobile_put_InstantAssetLockProofFFI { + unsafe fn ffi_from_const(ffi: *const platform_mobile_put_InstantAssetLockProofFFI) -> platform_mobile::put::InstantAssetLockProofFFI { + let ffi_ref = &*ffi; + platform_mobile::put::InstantAssetLockProofFFI { instant_lock: >>::ffi_from(ffi_ref.instant_lock), transaction: >>::ffi_from(ffi_ref.transaction), output_index: ffi_ref.output_index } + } + } - pub mod finalized_epoch_info { - use crate as dash_sdk_bindings; + impl ferment::FFIConversionTo for platform_mobile_put_InstantAssetLockProofFFI { unsafe fn ffi_to_const(obj: platform_mobile::put::InstantAssetLockProofFFI) -> *const platform_mobile_put_InstantAssetLockProofFFI { ferment::boxed(platform_mobile_put_InstantAssetLockProofFFI { instant_lock: >>::ffi_to(obj.instant_lock), transaction: >>::ffi_to(obj.transaction), output_index: obj.output_index }) } } - pub mod v0 { use crate as dash_sdk_bindings; } + impl Drop for platform_mobile_put_InstantAssetLockProofFFI { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.instant_lock); + ferment::unbox_any(ffi_ref.transaction); + ; + } + } } - } - - pub mod withdrawal { - use crate as dash_sdk_bindings; - #[cfg(feature = "system_contracts")] - pub mod document_try_into_asset_unlock_base_transaction_info { - use crate as dash_sdk_bindings; - } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_ctor<>(instant_lock: *mut crate::fermented::generics::Vec_u8, transaction: *mut crate::fermented::generics::Vec_u8, output_index: u32) -> *mut platform_mobile_put_InstantAssetLockProofFFI { ferment::boxed(platform_mobile_put_InstantAssetLockProofFFI { instant_lock, transaction, output_index }) } - pub mod daily_withdrawal_limit { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_destroy<>(ffi: *mut platform_mobile_put_InstantAssetLockProofFFI) { ferment::unbox_any(ffi); } - pub mod v0 { use crate as dash_sdk_bindings; } - } - } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_get_instant_lock<>(obj: *const platform_mobile_put_InstantAssetLockProofFFI) -> *mut crate::fermented::generics::Vec_u8 { (*obj).instant_lock } - pub mod serialization { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_get_transaction<>(obj: *const platform_mobile_put_InstantAssetLockProofFFI) -> *mut crate::fermented::generics::Vec_u8 { (*obj).transaction } - pub mod errors { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_get_output_index<>(obj: *const platform_mobile_put_InstantAssetLockProofFFI) -> u32 { (*obj).output_index } - pub mod non_consensus_error { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_set_instant_lock<>(obj: *const platform_mobile_put_InstantAssetLockProofFFI) -> *mut crate::fermented::generics::Vec_u8 { (*obj).instant_lock } - pub mod consensus { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_set_transaction<>(obj: *const platform_mobile_put_InstantAssetLockProofFFI) -> *mut crate::fermented::generics::Vec_u8 { (*obj).transaction } - pub mod state { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_set_output_index<>(obj: *const platform_mobile_put_InstantAssetLockProofFFI) -> u32 { (*obj).output_index } - pub mod voting { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::put::ChainAssetLockProofFFI_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_clone(a: *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_ChainAssetLockProofFFI) -> *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_ChainAssetLockProofFFI { + let obj = platform_mobile::put::ChainAssetLockProofFFI_clone(>::ffi_from(a)); + >::ffi_to(obj) + } - pub mod data_contract { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`OutPointFFI`]"] + #[repr(C)] + #[derive(Clone)] + pub struct platform_mobile_put_OutPointFFI { + pub txid: *mut crate::fermented::generics::Arr_u8_32, + pub vout: u32, + } - pub mod document { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for platform_mobile_put_OutPointFFI { + unsafe fn ffi_from_const(ffi: *const platform_mobile_put_OutPointFFI) -> platform_mobile::put::OutPointFFI { + let ffi_ref = &*ffi; + platform_mobile::put::OutPointFFI { txid: >::ffi_from(ffi_ref.txid), vout: ffi_ref.vout } + } + } - pub mod token { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for platform_mobile_put_OutPointFFI { unsafe fn ffi_to_const(obj: platform_mobile::put::OutPointFFI) -> *const platform_mobile_put_OutPointFFI { ferment::boxed(platform_mobile_put_OutPointFFI { txid: >::ffi_to(obj.txid), vout: obj.vout }) } } - pub mod data_trigger { use crate as dash_sdk_bindings; } + impl Drop for platform_mobile_put_OutPointFFI { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.txid); + ; + } + } + } - pub mod group { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_ctor<>(txid: *mut crate::fermented::generics::Arr_u8_32, vout: u32) -> *mut platform_mobile_put_OutPointFFI { ferment::boxed(platform_mobile_put_OutPointFFI { txid, vout }) } - pub mod prefunded_specialized_balances { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_destroy<>(ffi: *mut platform_mobile_put_OutPointFFI) { ferment::unbox_any(ffi); } - pub mod identity { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_get_txid<>(obj: *const platform_mobile_put_OutPointFFI) -> *mut crate::fermented::generics::Arr_u8_32 { (*obj).txid } - pub mod signature { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_get_vout<>(obj: *const platform_mobile_put_OutPointFFI) -> u32 { (*obj).vout } - pub mod fee { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_set_txid<>(obj: *const platform_mobile_put_OutPointFFI) -> *mut crate::fermented::generics::Arr_u8_32 { (*obj).txid } - pub mod basic { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_set_vout<>(obj: *const platform_mobile_put_OutPointFFI) -> u32 { (*obj).vout } - pub mod token { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::put::replace_document_sdk`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_replace_document_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, document: *mut crate::fermented::types::dpp::document::dpp_document_Document, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type_str: *mut std::os::raw::c_char, identity_public_key: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey, block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, signer_context: usize, signer_callback: u64) -> *mut crate::fermented::generics::Result_ok_dpp_document_Document_err_String { + let obj = platform_mobile::put::replace_document_sdk(rust_sdk, >::ffi_from(document), >::ffi_from(data_contract_id), >::ffi_from(document_type_str), >::ffi_from(identity_public_key), >::ffi_from(block_height), >::ffi_from(core_block_height), signer_context, signer_callback); + >>::ffi_to(obj) + } - pub mod state_transition { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::put::OutPointFFI_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_clone(a: *mut platform_mobile::custom::OutPoint) -> *mut platform_mobile::custom::OutPoint { + let obj = platform_mobile::put::OutPointFFI_clone(>::ffi_from(a)); + >::ffi_to(obj) + } - pub mod json_schema_error { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::put::put_identity_update_sdk`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_put_identity_update_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, identity: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, master_public_key_id: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID, add_public_keys: *mut crate::fermented::generics::Vec_dpp_identity_identity_public_key_IdentityPublicKey, disable_public_keys: *mut crate::fermented::generics::Vec_dpp_identity_identity_public_key_KeyID, signer_context: usize, signer_callback: u64) -> *mut crate::fermented::generics::Result_ok_dpp_identity_identity_Identity_err_String { + let obj = platform_mobile::put::put_identity_update_sdk(rust_sdk, >::ffi_from(identity), >::ffi_from(master_public_key_id), >>::ffi_from(add_public_keys), >>::ffi_from(disable_public_keys), signer_context, signer_callback); + >>::ffi_to(obj) + } + } - pub mod group { use crate as dash_sdk_bindings; } + pub mod voting { + use crate as dash_sdk_bindings; - pub mod unsupported_version_error { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::voting::get_votes`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_voting_get_votes(rust_sdk: *mut platform_mobile::sdk::DashSdk, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::generics::Result_ok_Option_dpp_voting_votes_Vote_err_String { + let obj = platform_mobile::voting::get_votes(rust_sdk, >::ffi_from(data_contract_id)); + , String>>>::ffi_to(obj) + } - pub mod identity { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::voting::get_vote_contenders`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_voting_get_vote_contenders(rust_sdk: *mut platform_mobile::sdk::DashSdk, index_name: *mut std::os::raw::c_char, index_values: *mut crate::fermented::generics::Vec_platform_value_Value, document_type_name: *mut std::os::raw::c_char, contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::generics::Result_ok_drive_proof_verifier_types_Contenders_err_String { + let obj = platform_mobile::voting::get_vote_contenders(rust_sdk, >::ffi_from(index_name), >>::ffi_from(index_values), >::ffi_from(document_type_name), >::ffi_from(contract_id)); + >>::ffi_to(obj) + } - pub mod unsupported_protocol_version_error { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::voting::get_vote_polls`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_voting_get_vote_polls(rust_sdk: *mut platform_mobile::sdk::DashSdk, start_time: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, start_time_included: bool, end_time: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, end_time_included: bool, limit: u16, offset: u16, order_ascending: bool) -> *mut crate::fermented::generics::Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { + let obj = platform_mobile::voting::get_vote_polls(rust_sdk, >::ffi_from(start_time), start_time_included, >::ffi_from(end_time), end_time_included, limit, offset, order_ascending); + >>::ffi_to(obj) + } - pub mod document { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::voting::get_last_vote_from_masternode`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_voting_get_last_vote_from_masternode(rust_sdk: *mut platform_mobile::sdk::DashSdk, masternode_protxhash: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, index_name: *mut std::os::raw::c_char, index_values: *mut crate::fermented::generics::Vec_platform_value_Value, document_type_name: *mut std::os::raw::c_char, contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::generics::Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { + let obj = platform_mobile::voting::get_last_vote_from_masternode(rust_sdk, >::ffi_from(masternode_protxhash), >::ffi_from(index_name), >>::ffi_from(index_values), >::ffi_from(document_type_name), >::ffi_from(contract_id)); + >>::ffi_to(obj) + } - pub mod decode { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::voting::get_contested_resources`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_voting_get_contested_resources(rust_sdk: *mut platform_mobile::sdk::DashSdk, document_type_name: *mut std::os::raw::c_char, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, limit: u16, start_at: *mut crate::fermented::types::platform_value::platform_value_Value, start_at_include: bool) -> *mut crate::fermented::generics::Result_ok_drive_proof_verifier_types_ContestedResources_err_String { + let obj = platform_mobile::voting::get_contested_resources(rust_sdk, >::ffi_from(document_type_name), >::ffi_from(data_contract_id), limit, >::ffi_from_opt(start_at), start_at_include); + >>::ffi_to(obj) + } - pub mod data_contract { use crate as dash_sdk_bindings; } - } + #[doc = "FFI-representation of the [`platform_mobile::voting::put_vote_to_platform`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_voting_put_vote_to_platform(rust_sdk: *mut platform_mobile::sdk::DashSdk, vote: *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote, voter_pro_tx_hash: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, voting_public_key: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey, signer_context: usize, signer_callback: u64) -> *mut crate::fermented::generics::Result_ok_dpp_voting_votes_Vote_err_String { + let obj = platform_mobile::voting::put_vote_to_platform(rust_sdk, >::ffi_from(vote), >::ffi_from(voter_pro_tx_hash), >::ffi_from(voting_public_key), signer_context, signer_callback); + >>::ffi_to(obj) } } - #[cfg(feature = "state-transitions")] - pub mod state_transition { + pub mod fetch_document { use crate as dash_sdk_bindings; - pub mod serialization { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`StartPoint`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum platform_mobile_fetch_document_StartPoint { StartAfter(*mut crate::fermented::generics::Vec_u8), StartAt(*mut crate::fermented::generics::Vec_u8) } - pub mod traits { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for platform_mobile_fetch_document_StartPoint { + unsafe fn ffi_from_const(ffi: *const platform_mobile_fetch_document_StartPoint) -> platform_mobile::fetch_document::StartPoint { + let ffi_ref = &*ffi; + match ffi_ref { + platform_mobile_fetch_document_StartPoint::StartAfter(o_0) => platform_mobile::fetch_document::StartPoint::StartAfter(>>::ffi_from(*o_0)), + platform_mobile_fetch_document_StartPoint::StartAt(o_0) => platform_mobile::fetch_document::StartPoint::StartAt(>>::ffi_from(*o_0)) + } + } + } - pub mod abstract_state_transition { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for platform_mobile_fetch_document_StartPoint { + unsafe fn ffi_to_const(obj: platform_mobile::fetch_document::StartPoint) -> *const platform_mobile_fetch_document_StartPoint { + ferment::boxed(match obj { + platform_mobile::fetch_document::StartPoint::StartAfter(o_0) => platform_mobile_fetch_document_StartPoint::StartAfter(>>::ffi_to(o_0)), + platform_mobile::fetch_document::StartPoint::StartAt(o_0) => platform_mobile_fetch_document_StartPoint::StartAt(>>::ffi_to(o_0)), + _ => unreachable!("This is unreachable") + }) + } + } - pub mod errors { use crate as dash_sdk_bindings; } + impl Drop for platform_mobile_fetch_document_StartPoint { + fn drop(&mut self) { + unsafe { + match self { + platform_mobile_fetch_document_StartPoint::StartAfter(o_0) => { ferment::unbox_any(*o_0); } + platform_mobile_fetch_document_StartPoint::StartAt(o_0) => { ferment::unbox_any(*o_0); } + _ => unreachable!("This is unreachable") + }; + } + } + } - pub mod state_transitions { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_fetch_document_StartPoint_StartAfter_ctor(o_o_0: *mut crate::fermented::generics::Vec_u8) -> *mut platform_mobile_fetch_document_StartPoint { ferment::boxed(platform_mobile_fetch_document_StartPoint::StartAfter(o_o_0)) } - pub mod document { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_fetch_document_StartPoint_StartAt_ctor(o_o_0: *mut crate::fermented::generics::Vec_u8) -> *mut platform_mobile_fetch_document_StartPoint { ferment::boxed(platform_mobile_fetch_document_StartPoint::StartAt(o_o_0)) } - pub mod batch_transition { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_fetch_document_StartPoint_destroy<>(ffi: *mut platform_mobile_fetch_document_StartPoint) { ferment::unbox_any(ffi); } - pub mod batched_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::fetch_document::deserialize_document_sdk`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_fetch_document_deserialize_document_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, bytes: *mut crate::fermented::generics::Vec_u8, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type: *mut std::os::raw::c_char) -> *mut crate::fermented::generics::Result_ok_dpp_document_Document_err_String { + let obj = platform_mobile::fetch_document::deserialize_document_sdk(rust_sdk, >>::ffi_from(bytes), >::ffi_from(data_contract_id), >::ffi_from(document_type)); + >>::ffi_to(obj) + } - pub mod token_config_update_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::fetch_document::document_to_string`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_fetch_document_document_to_string(document: *mut crate::fermented::types::dpp::document::dpp_document_Document) -> *mut std::os::raw::c_char { + let obj = platform_mobile::fetch_document::document_to_string(>::ffi_from(document)); + >::ffi_to(obj) + } - pub mod v0 { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::fetch_document::fetch_documents_with_query_and_sdk`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_fetch_document_fetch_documents_with_query_and_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type: *mut std::os::raw::c_char, where_clauses: *mut crate::fermented::generics::Vec_drive_query_conditions_WhereClause, order_clauses: *mut crate::fermented::generics::Vec_drive_query_ordering_OrderClause, limit: u32, start: *mut crate::fermented::types::platform_mobile::fetch_document::platform_mobile_fetch_document_StartPoint) -> *mut crate::fermented::generics::Result_ok_Vec_dpp_document_Document_err_String { + let obj = platform_mobile::fetch_document::fetch_documents_with_query_and_sdk(rust_sdk, >::ffi_from(data_contract_id), >::ffi_from(document_type), >>::ffi_from(where_clauses), >>::ffi_from(order_clauses), limit, >::ffi_from_opt(start)); + , String>>>::ffi_to(obj) + } + } - pub mod validate_structure { use crate as dash_sdk_bindings; } - } + pub mod data_contracts { + use crate as dash_sdk_bindings; - pub mod document_transfer_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`DataContractFFI`]"] + #[repr(C)] + #[derive(Clone)] + pub struct platform_mobile_data_contracts_DataContractFFI { + pub id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, + pub owner_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, + pub doc_types: *mut crate::fermented::generics::Vec_String, + pub version: u32, + } - pub mod v0 { use crate as dash_sdk_bindings; } - } - - pub mod token_destroy_frozen_funds_transition { - use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for platform_mobile_data_contracts_DataContractFFI { + unsafe fn ffi_from_const(ffi: *const platform_mobile_data_contracts_DataContractFFI) -> platform_mobile::data_contracts::DataContractFFI { + let ffi_ref = &*ffi; + platform_mobile::data_contracts::DataContractFFI { id: >::ffi_from(ffi_ref.id), owner_id: >::ffi_from(ffi_ref.owner_id), doc_types: >>::ffi_from(ffi_ref.doc_types), version: ffi_ref.version } + } + } - pub mod validate_structure { use crate as dash_sdk_bindings; } - } + impl ferment::FFIConversionTo for platform_mobile_data_contracts_DataContractFFI { unsafe fn ffi_to_const(obj: platform_mobile::data_contracts::DataContractFFI) -> *const platform_mobile_data_contracts_DataContractFFI { ferment::boxed(platform_mobile_data_contracts_DataContractFFI { id: >::ffi_to(obj.id), owner_id: >::ffi_to(obj.owner_id), doc_types: >>::ffi_to(obj.doc_types), version: obj.version }) } } - pub mod token_mint_transition { - use crate as dash_sdk_bindings; + impl Drop for platform_mobile_data_contracts_DataContractFFI { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.id); + ferment::unbox_any(ffi_ref.owner_id); + ferment::unbox_any(ffi_ref.doc_types); + ; + } + } + } - pub mod validate_structure { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_ctor<>(id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, owner_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, doc_types: *mut crate::fermented::generics::Vec_String, version: u32) -> *mut platform_mobile_data_contracts_DataContractFFI { ferment::boxed(platform_mobile_data_contracts_DataContractFFI { id, owner_id, doc_types, version }) } - pub mod v0 { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_destroy<>(ffi: *mut platform_mobile_data_contracts_DataContractFFI) { ferment::unbox_any(ffi); } - pub mod document_purchase_transition { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_get_id<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).id } - pub mod v0 { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_get_owner_id<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).owner_id } - pub mod token_claim_transition { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_get_doc_types<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::generics::Vec_String { (*obj).doc_types } - pub mod validate_structure { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_get_version<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> u32 { (*obj).version } - pub mod v0 { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_set_id<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).id } - pub mod token_unfreeze_transition { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_set_owner_id<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).owner_id } - pub mod validate_structure { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_set_doc_types<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::generics::Vec_String { (*obj).doc_types } - pub mod v0 { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_set_version<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> u32 { (*obj).version } - pub mod token_burn_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::data_contracts::fetch_data_contract`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_data_contracts_fetch_data_contract(rust_sdk: *mut platform_mobile::sdk::DashSdk, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::generics::Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { + let obj = platform_mobile::data_contracts::fetch_data_contract(rust_sdk, >::ffi_from(data_contract_id)); + , String>>>::ffi_to(obj) + } - pub mod validate_structure { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::data_contracts::DataContractFFI_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_clone(value: *mut crate::fermented::types::platform_mobile::data_contracts::platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::types::platform_mobile::data_contracts::platform_mobile_data_contracts_DataContractFFI { + let obj = platform_mobile::data_contracts::DataContractFFI_clone(>::ffi_from(value)); + >::ffi_to(obj) + } + } - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod fetch_identity { + use crate as dash_sdk_bindings; - pub mod document_create_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::fetch_identity::fetch_identity_with_sdk`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_fetch_identity_fetch_identity_with_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, identifier: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::generics::Result_ok_Option_dpp_identity_identity_Identity_err_String { + let obj = platform_mobile::fetch_identity::fetch_identity_with_sdk(rust_sdk, >::ffi_from(identifier)); + , String>>>::ffi_to(obj) + } - pub mod v0 { use crate as dash_sdk_bindings; } - } + #[doc = "FFI-representation of the [`platform_mobile::fetch_identity::fetch_identity_balance_with_sdk`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_fetch_identity_fetch_identity_balance_with_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, identifier: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::generics::Result_ok_u64_err_String { + let obj = platform_mobile::fetch_identity::fetch_identity_balance_with_sdk(rust_sdk, >::ffi_from(identifier)); + >>::ffi_to(obj) + } - pub mod token_set_price_for_direct_purchase_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::fetch_identity::fetch_identity_with_keyhash_sdk`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_fetch_identity_fetch_identity_with_keyhash_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, key_hash: *mut crate::fermented::generics::Arr_u8_20) -> *mut crate::fermented::generics::Result_ok_dpp_identity_identity_Identity_err_String { + let obj = platform_mobile::fetch_identity::fetch_identity_with_keyhash_sdk(rust_sdk, >::ffi_from(key_hash)); + >>::ffi_to(obj) + } + } - pub mod v0 { use crate as dash_sdk_bindings; } + pub mod operators { + use crate as dash_sdk_bindings; - pub mod validate_structure { use crate as dash_sdk_bindings; } - } + #[doc = "FFI-representation of the [`platform_mobile::operators::Value_eq`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_operators_Value_eq(a: *mut crate::fermented::types::platform_value::platform_value_Value, b: *mut crate::fermented::types::platform_value::platform_value_Value) -> bool { + let obj = platform_mobile::operators::Value_eq(>::ffi_from(a), >::ffi_from(b)); + obj + } - pub mod document_delete_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::operators::Value_hash`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_operators_Value_hash(a: *mut crate::fermented::types::platform_value::platform_value_Value) -> i32 { + let obj = platform_mobile::operators::Value_hash(>::ffi_from(a)); + obj + } + } - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod sdk { + use crate as dash_sdk_bindings; - pub mod token_freeze_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::sdk::create_dash_sdk_with_context`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_sdk_create_dash_sdk_with_context(context_provider_context: usize, quorum_public_key_callback: u64, data_contract_callback: u64, is_testnet: bool, connect_timeout: usize, timeout: usize, retries: usize) -> *mut platform_mobile::sdk::DashSdk { + let obj = platform_mobile::sdk::create_dash_sdk_with_context(context_provider_context, quorum_public_key_callback, data_contract_callback, is_testnet, connect_timeout, timeout, retries); + ferment::boxed(obj) + } - pub mod v0 { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::sdk::create_dash_sdk`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_sdk_create_dash_sdk(quorum_public_key_callback: u64, data_contract_callback: u64, is_testnet: bool) -> *mut platform_mobile::sdk::DashSdk { + let obj = platform_mobile::sdk::create_dash_sdk(quorum_public_key_callback, data_contract_callback, is_testnet); + ferment::boxed(obj) + } - pub mod validate_structure { use crate as dash_sdk_bindings; } - } + #[doc = "FFI-representation of the [`platform_mobile::sdk::create_dash_sdk_using_single_evonode`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_sdk_create_dash_sdk_using_single_evonode(evonode: *mut std::os::raw::c_char, quorum_public_key_callback: u64, data_contract_callback: u64, is_testnet: bool) -> *mut platform_mobile::sdk::DashSdk { + let obj = platform_mobile::sdk::create_dash_sdk_using_single_evonode(>::ffi_from(evonode), quorum_public_key_callback, data_contract_callback, is_testnet); + ferment::boxed(obj) + } - pub mod token_transfer_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::sdk::destroy_dash_sdk`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_sdk_destroy_dash_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk) { + let obj = platform_mobile::sdk::destroy_dash_sdk(rust_sdk); + ; + } + } - pub mod v0 { use crate as dash_sdk_bindings; } + pub mod core { + use crate as dash_sdk_bindings; - pub mod validate_structure { use crate as dash_sdk_bindings; } - } + #[doc = "FFI-representation of the [`platform_mobile::core::get_transaction`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_core_get_transaction(txid: *mut crate::fermented::generics::Arr_u8_32, quorum_public_key_callback: u64, data_contract_callback: u64) -> *mut crate::fermented::generics::Result_ok_Vec_u8_err_String { + let obj = platform_mobile::core::get_transaction(>::ffi_from(txid), quorum_public_key_callback, data_contract_callback); + , String>>>::ffi_to(obj) + } - pub mod document_update_price_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::core::get_transaction_sdk`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_core_get_transaction_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, txid: *mut crate::fermented::generics::Arr_u8_32) -> *mut crate::fermented::generics::Result_ok_Vec_u8_err_String { + let obj = platform_mobile::core::get_transaction_sdk(rust_sdk, >::ffi_from(txid)); + , String>>>::ffi_to(obj) + } + } - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod config { + use crate as dash_sdk_bindings; - pub mod document_replace_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::config::testnet_address_list`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_config_testnet_address_list() -> *mut crate::fermented::generics::Vec_String { + let obj = platform_mobile::config::testnet_address_list(); + >>::ffi_to(obj) + } + } - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod identity { + use crate as dash_sdk_bindings; - pub mod token_direct_purchase_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::identity::Identity_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_identity_Identity_clone(identity: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity) -> *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity { + let obj = platform_mobile::identity::Identity_clone(>::ffi_from(identity)); + >::ffi_to(obj) + } - pub mod validate_structure { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::identity::get_identity2`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_identity_get_identity2(identifier: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity { + let obj = platform_mobile::identity::get_identity2(>::ffi_from(identifier)); + >::ffi_to(obj) + } - pub mod v0 { use crate as dash_sdk_bindings; } - } + #[doc = "FFI-representation of the [`platform_mobile::identity::IdentityV0_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_identity_IdentityV0_clone(identity: *mut crate::fermented::types::dpp::identity::v0::dpp_identity_v0_IdentityV0) -> *mut crate::fermented::types::dpp::identity::v0::dpp_identity_v0_IdentityV0 { + let obj = platform_mobile::identity::IdentityV0_clone(>::ffi_from(identity)); + >::ffi_to(obj) + } - pub mod token_emergency_action_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::identity::IdentityPublicKeyV0_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_identity_IdentityPublicKeyV0_clone(identity_public_key: *mut crate::fermented::types::dpp::identity::identity_public_key::v0::dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::v0::dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { + let obj = platform_mobile::identity::IdentityPublicKeyV0_clone(>::ffi_from(identity_public_key)); + >::ffi_to(obj) + } - pub mod v0 { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::identity::IdentityPublicKey_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_identity_IdentityPublicKey_clone(identity_public_key: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey { + let obj = platform_mobile::identity::IdentityPublicKey_clone(>::ffi_from(identity_public_key)); + >::ffi_to(obj) + } - pub mod validate_structure { use crate as dash_sdk_bindings; } - } + #[doc = "FFI-representation of the [`platform_mobile::identity::get_identity_contract_bounds`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_identity_get_identity_contract_bounds(identifier: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, contract_identifier: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity { + let obj = platform_mobile::identity::get_identity_contract_bounds(>::ffi_from(identifier), >::ffi_from_opt(contract_identifier)); + >::ffi_to(obj) + } - pub mod token_base_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::identity::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_identity_std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey_clone(public_keys: *mut crate::fermented::generics::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey) -> *mut crate::fermented::generics::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { + let obj = platform_mobile::identity::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey_clone(>>::ffi_from(public_keys)); + >>::ffi_to(obj) + } - pub mod fields { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::identity::Identifier_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_identity_Identifier_clone(identifier: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { + let obj = platform_mobile::identity::Identifier_clone(>::ffi_from(identifier)); + >::ffi_to(obj) + } - pub mod v0 { use crate as dash_sdk_bindings; } - } - - pub mod document_base_transition { - use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } - - pub mod fields { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::identity::create_basic_identity`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_identity_create_basic_identity(id: *mut crate::fermented::generics::Arr_u8_32) -> *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity { + let obj = platform_mobile::identity::create_basic_identity(>::ffi_from(id)); + >::ffi_to(obj) + } + } + } - pub mod v1 { use crate as dash_sdk_bindings; } - } - } + pub mod drive { + use crate as dash_sdk_bindings; - pub mod v1 { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod cache { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } + pub mod data_contract { + use crate as dash_sdk_bindings; - pub mod fields { use crate as dash_sdk_bindings; } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + } - pub mod accessors { use crate as dash_sdk_bindings; } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod query { + use crate as dash_sdk_bindings; - pub mod resolvers { use crate as dash_sdk_bindings; } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod contested_resource_votes_given_by_identity_query { + use crate as dash_sdk_bindings; + } - pub mod methods { use crate as dash_sdk_bindings; } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod vote_poll_vote_state_query { + use crate as dash_sdk_bindings; + } - #[cfg(feature = "validation")] - pub mod validation { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod test_index { + use crate as dash_sdk_bindings; + } - pub mod find_duplicates_by_id { - use crate as dash_sdk_bindings; + #[cfg(any(feature = "server", feature = "verify"))] + pub mod drive_document_sum_query { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod mode_detection { + use crate as dash_sdk_bindings; - pub mod validate_basic_structure { use crate as dash_sdk_bindings; } - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod v0 { + use crate as dash_sdk_bindings; } } - pub mod contract { + #[cfg(test)] + pub mod tests { use crate as dash_sdk_bindings; + } - pub mod data_contract_update_transition { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod executors { + use crate as dash_sdk_bindings; + } - pub mod v0 { use crate as dash_sdk_bindings; } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod path_query { + use crate as dash_sdk_bindings; + } + } - pub mod methods { use crate as dash_sdk_bindings; } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod vote_polls_by_end_date_query { + use crate as dash_sdk_bindings; + } - pub mod accessors { use crate as dash_sdk_bindings; } - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod vote_polls_by_document_type_query { + use crate as dash_sdk_bindings; + } - pub mod data_contract_create_transition { - use crate as dash_sdk_bindings; + #[cfg(any(feature = "server", feature = "verify"))] + pub mod filter { + use crate as dash_sdk_bindings; + } - pub mod v0 { use crate as dash_sdk_bindings; } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod conditions { + use crate as dash_sdk_bindings; - #[cfg(feature = "state-transition-json-conversion")] - pub mod json_conversion { - use crate as dash_sdk_bindings; - } + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`WhereOperator`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum drive_query_conditions_WhereOperator { Equal, GreaterThan, GreaterThanOrEquals, LessThan, LessThanOrEquals, Between, BetweenExcludeBounds, BetweenExcludeLeft, BetweenExcludeRight, In, StartsWith } - pub mod accessors { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for drive_query_conditions_WhereOperator { + unsafe fn ffi_from_const(ffi: *const drive_query_conditions_WhereOperator) -> drive::query::conditions::WhereOperator { + let ffi_ref = &*ffi; + match ffi_ref { + drive_query_conditions_WhereOperator::Equal => drive::query::conditions::WhereOperator::Equal, + drive_query_conditions_WhereOperator::GreaterThan => drive::query::conditions::WhereOperator::GreaterThan, + drive_query_conditions_WhereOperator::GreaterThanOrEquals => drive::query::conditions::WhereOperator::GreaterThanOrEquals, + drive_query_conditions_WhereOperator::LessThan => drive::query::conditions::WhereOperator::LessThan, + drive_query_conditions_WhereOperator::LessThanOrEquals => drive::query::conditions::WhereOperator::LessThanOrEquals, + drive_query_conditions_WhereOperator::Between => drive::query::conditions::WhereOperator::Between, + drive_query_conditions_WhereOperator::BetweenExcludeBounds => drive::query::conditions::WhereOperator::BetweenExcludeBounds, + drive_query_conditions_WhereOperator::BetweenExcludeLeft => drive::query::conditions::WhereOperator::BetweenExcludeLeft, + drive_query_conditions_WhereOperator::BetweenExcludeRight => drive::query::conditions::WhereOperator::BetweenExcludeRight, + drive_query_conditions_WhereOperator::In => drive::query::conditions::WhereOperator::In, + drive_query_conditions_WhereOperator::StartsWith => drive::query::conditions::WhereOperator::StartsWith + } + } + } - pub mod methods { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for drive_query_conditions_WhereOperator { + unsafe fn ffi_to_const(obj: drive::query::conditions::WhereOperator) -> *const drive_query_conditions_WhereOperator { + ferment::boxed(match obj { + drive::query::conditions::WhereOperator::Equal => drive_query_conditions_WhereOperator::Equal, + drive::query::conditions::WhereOperator::GreaterThan => drive_query_conditions_WhereOperator::GreaterThan, + drive::query::conditions::WhereOperator::GreaterThanOrEquals => drive_query_conditions_WhereOperator::GreaterThanOrEquals, + drive::query::conditions::WhereOperator::LessThan => drive_query_conditions_WhereOperator::LessThan, + drive::query::conditions::WhereOperator::LessThanOrEquals => drive_query_conditions_WhereOperator::LessThanOrEquals, + drive::query::conditions::WhereOperator::Between => drive_query_conditions_WhereOperator::Between, + drive::query::conditions::WhereOperator::BetweenExcludeBounds => drive_query_conditions_WhereOperator::BetweenExcludeBounds, + drive::query::conditions::WhereOperator::BetweenExcludeLeft => drive_query_conditions_WhereOperator::BetweenExcludeLeft, + drive::query::conditions::WhereOperator::BetweenExcludeRight => drive_query_conditions_WhereOperator::BetweenExcludeRight, + drive::query::conditions::WhereOperator::In => drive_query_conditions_WhereOperator::In, + drive::query::conditions::WhereOperator::StartsWith => drive_query_conditions_WhereOperator::StartsWith, + _ => unreachable!("This is unreachable") + }) } + } - pub mod common_fields { use crate as dash_sdk_bindings; } + impl Drop for drive_query_conditions_WhereOperator { + fn drop(&mut self) { + unsafe { + match self { + drive_query_conditions_WhereOperator::Equal => {} + drive_query_conditions_WhereOperator::GreaterThan => {} + drive_query_conditions_WhereOperator::GreaterThanOrEquals => {} + drive_query_conditions_WhereOperator::LessThan => {} + drive_query_conditions_WhereOperator::LessThanOrEquals => {} + drive_query_conditions_WhereOperator::Between => {} + drive_query_conditions_WhereOperator::BetweenExcludeBounds => {} + drive_query_conditions_WhereOperator::BetweenExcludeLeft => {} + drive_query_conditions_WhereOperator::BetweenExcludeRight => {} + drive_query_conditions_WhereOperator::In => {} + drive_query_conditions_WhereOperator::StartsWith => {} + _ => unreachable!("This is unreachable") + }; + } + } } - pub mod identity { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereOperator_Equal_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::Equal {}) } - pub mod identity_create_transition { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereOperator_GreaterThan_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::GreaterThan {}) } - pub mod accessors { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereOperator_GreaterThanOrEquals_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::GreaterThanOrEquals {}) } - pub mod v0 { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereOperator_LessThan_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::LessThan {}) } - pub mod methods { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereOperator_LessThanOrEquals_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::LessThanOrEquals {}) } - pub mod public_key_in_creation { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereOperator_Between_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::Between {}) } - pub mod v0 { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereOperator_BetweenExcludeBounds_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::BetweenExcludeBounds {}) } - pub mod methods { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereOperator_BetweenExcludeLeft_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::BetweenExcludeLeft {}) } - pub mod hash { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereOperator_BetweenExcludeRight_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::BetweenExcludeRight {}) } - pub mod duplicated_key_ids_witness { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereOperator_In_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::In {}) } - pub mod duplicated_keys_witness { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereOperator_StartsWith_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::StartsWith {}) } - pub mod validate_identity_public_keys_structure { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereOperator_destroy<>(ffi: *mut drive_query_conditions_WhereOperator) { ferment::unbox_any(ffi); } - #[cfg(feature = "state-transition-signing")] - pub mod from_public_key_signed_with_private_key { - use crate as dash_sdk_bindings; - } + #[doc = "FFI-representation of the [`WhereClause`]"] + #[repr(C)] + #[derive(Clone)] + pub struct drive_query_conditions_WhereClause { + pub field: *mut std::os::raw::c_char, + pub operator: *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereOperator, + pub value: *mut crate::fermented::types::platform_value::platform_value_Value, + } - #[cfg(feature = "state-transition-signing")] - pub mod from_public_key_signed_external { - use crate as dash_sdk_bindings; - } - } + impl ferment::FFIConversionFrom for drive_query_conditions_WhereClause { + unsafe fn ffi_from_const(ffi: *const drive_query_conditions_WhereClause) -> drive::query::conditions::WhereClause { + let ffi_ref = &*ffi; + drive::query::conditions::WhereClause { field: >::ffi_from(ffi_ref.field), operator: >::ffi_from(ffi_ref.operator), value: >::ffi_from(ffi_ref.value) } } + } - pub mod identity_credit_withdrawal_transition { - use crate as dash_sdk_bindings; - - pub mod accessors { use crate as dash_sdk_bindings; } - - pub mod methods { use crate as dash_sdk_bindings; } - - pub mod v1 { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for drive_query_conditions_WhereClause { unsafe fn ffi_to_const(obj: drive::query::conditions::WhereClause) -> *const drive_query_conditions_WhereClause { ferment::boxed(drive_query_conditions_WhereClause { field: >::ffi_to(obj.field), operator: >::ffi_to(obj.operator), value: >::ffi_to(obj.value) }) } } - pub mod v0 { use crate as dash_sdk_bindings; } + impl Drop for drive_query_conditions_WhereClause { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_string(ffi_ref.field); + ferment::unbox_any(ffi_ref.operator); + ferment::unbox_any(ffi_ref.value); + } } + } - pub mod common_fields { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereClause_ctor<>(field: *mut std::os::raw::c_char, operator: *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereOperator, value: *mut crate::fermented::types::platform_value::platform_value_Value) -> *mut drive_query_conditions_WhereClause { ferment::boxed(drive_query_conditions_WhereClause { field, operator, value }) } - pub mod identity_update_transition { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereClause_destroy<>(ffi: *mut drive_query_conditions_WhereClause) { ferment::unbox_any(ffi); } - pub mod v0 { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereClause_get_field<>(obj: *const drive_query_conditions_WhereClause) -> *mut std::os::raw::c_char { (*obj).field } - #[cfg(feature = "state-transition-json-conversion")] - pub mod json_conversion { - use crate as dash_sdk_bindings; - } - } + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereClause_get_operator<>(obj: *const drive_query_conditions_WhereClause) -> *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereOperator { (*obj).operator } - pub mod accessors { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereClause_get_value<>(obj: *const drive_query_conditions_WhereClause) -> *mut crate::fermented::types::platform_value::platform_value_Value { (*obj).value } - pub mod methods { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereClause_set_field<>(obj: *const drive_query_conditions_WhereClause) -> *mut std::os::raw::c_char { (*obj).field } - pub mod fields { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereClause_set_operator<>(obj: *const drive_query_conditions_WhereClause) -> *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereOperator { (*obj).operator } - pub mod masternode_vote_transition { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereClause_set_value<>(obj: *const drive_query_conditions_WhereClause) -> *mut crate::fermented::types::platform_value::platform_value_Value { (*obj).value } + } - pub mod fields { use crate as dash_sdk_bindings; } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod ordering { + use crate as dash_sdk_bindings; - pub mod accessors { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`OrderClause`]"] + #[repr(C)] + #[derive(Clone)] + pub struct drive_query_ordering_OrderClause { + pub field: *mut std::os::raw::c_char, + pub ascending: bool, + } - pub mod v0 { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for drive_query_ordering_OrderClause { + unsafe fn ffi_from_const(ffi: *const drive_query_ordering_OrderClause) -> drive::query::ordering::OrderClause { + let ffi_ref = &*ffi; + drive::query::ordering::OrderClause { field: >::ffi_from(ffi_ref.field), ascending: ffi_ref.ascending } + } + } - pub mod methods { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for drive_query_ordering_OrderClause { unsafe fn ffi_to_const(obj: drive::query::ordering::OrderClause) -> *const drive_query_ordering_OrderClause { ferment::boxed(drive_query_ordering_OrderClause { field: >::ffi_to(obj.field), ascending: obj.ascending }) } } + + impl Drop for drive_query_ordering_OrderClause { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_string(ffi_ref.field); + ; + } } + } - pub mod identity_credit_transfer_transition { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_query_ordering_OrderClause_ctor<>(field: *mut std::os::raw::c_char, ascending: bool) -> *mut drive_query_ordering_OrderClause { ferment::boxed(drive_query_ordering_OrderClause { field, ascending }) } - pub mod v0 { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_query_ordering_OrderClause_destroy<>(ffi: *mut drive_query_ordering_OrderClause) { ferment::unbox_any(ffi); } - pub mod fields { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_query_ordering_OrderClause_get_field<>(obj: *const drive_query_ordering_OrderClause) -> *mut std::os::raw::c_char { (*obj).field } - pub mod methods { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_query_ordering_OrderClause_get_ascending<>(obj: *const drive_query_ordering_OrderClause) -> bool { (*obj).ascending } - pub mod accessors { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn drive_query_ordering_OrderClause_set_field<>(obj: *const drive_query_ordering_OrderClause) -> *mut std::os::raw::c_char { (*obj).field } - pub mod identity_topup_transition { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_query_ordering_OrderClause_set_ascending<>(obj: *const drive_query_ordering_OrderClause) -> bool { (*obj).ascending } + } - pub mod v0 { use crate as dash_sdk_bindings; } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod drive_document_average_query { + use crate as dash_sdk_bindings; - pub mod accessors { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod drive_dispatcher { + use crate as dash_sdk_bindings; + } + } - pub mod methods { use crate as dash_sdk_bindings; } - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod drive_document_count_query { + use crate as dash_sdk_bindings; + + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; } - pub mod common_fields { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod executors { + use crate as dash_sdk_bindings; + } + } + + #[cfg(feature = "server")] + pub mod drive_document_count_and_sum_query { + use crate as dash_sdk_bindings; + + #[cfg(feature = "server")] + pub mod executors { + use crate as dash_sdk_bindings; + } + } + + #[cfg(any(feature = "server", feature = "verify"))] + pub mod vote_poll_contestant_votes_query { + use crate as dash_sdk_bindings; } } - pub mod voting { + #[cfg(any(feature = "server", feature = "verify"))] + pub mod error { use crate as dash_sdk_bindings; + } - pub mod vote_polls { + #[cfg(feature = "server")] + pub mod prove { + use crate as dash_sdk_bindings; + + pub mod prove_multiple_state_transition_results { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`VotePoll`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum dpp_voting_vote_polls_VotePoll { ContestedDocumentResourceVotePoll(*mut crate::fermented::types::dpp::voting::vote_polls::contested_document_resource_vote_poll::dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionFrom for dpp_voting_vote_polls_VotePoll { - unsafe fn ffi_from_const(ffi: *const dpp_voting_vote_polls_VotePoll) -> dpp::voting::vote_polls::VotePoll { - let ffi_ref = &*ffi; - match ffi_ref { dpp_voting_vote_polls_VotePoll::ContestedDocumentResourceVotePoll(o_0) => dpp::voting::vote_polls::VotePoll::ContestedDocumentResourceVotePoll(>::ffi_from(*o_0)) } - } - } + pub mod prove_elements { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionTo for dpp_voting_vote_polls_VotePoll { - unsafe fn ffi_to_const(obj: dpp::voting::vote_polls::VotePoll) -> *const dpp_voting_vote_polls_VotePoll { - ferment::boxed(match obj { - dpp::voting::vote_polls::VotePoll::ContestedDocumentResourceVotePoll(o_0) => dpp_voting_vote_polls_VotePoll::ContestedDocumentResourceVotePoll(>::ffi_to(o_0)), - _ => unreachable!("This is unreachable") - }) - } - } + #[cfg(feature = "server")] + pub mod prove_state_transition { + use crate as dash_sdk_bindings; + } + } - impl Drop for dpp_voting_vote_polls_VotePoll { - fn drop(&mut self) { - unsafe { - match self { - dpp_voting_vote_polls_VotePoll::ContestedDocumentResourceVotePoll(o_0) => { ferment::unbox_any(*o_0); } - _ => unreachable!("This is unreachable") - }; - } - } - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod verify { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_polls_VotePoll_ContestedDocumentResourceVotePoll_ctor(o_o_0: *mut crate::fermented::types::dpp::voting::vote_polls::contested_document_resource_vote_poll::dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut dpp_voting_vote_polls_VotePoll { ferment::boxed(dpp_voting_vote_polls_VotePoll::ContestedDocumentResourceVotePoll(o_o_0)) } + pub mod document_count { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_polls_VotePoll_destroy<>(ffi: *mut dpp_voting_vote_polls_VotePoll) { ferment::unbox_any(ffi); } + pub mod verify_carrier_aggregate_count_proof { use crate as dash_sdk_bindings; } - pub mod contested_document_resource_vote_poll { - use crate as dash_sdk_bindings; + pub mod verify_primary_key_count_tree_proof { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`ContestedDocumentResourceVotePoll`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { - pub contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, - pub document_type_name: *mut std::os::raw::c_char, - pub index_name: *mut std::os::raw::c_char, - pub index_values: *mut crate::fermented::generics::Vec_platform_value_Value, - } + pub mod verify_point_lookup_count_proof { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionFrom for dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { - unsafe fn ffi_from_const(ffi: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> dpp::voting::vote_polls::contested_document_resource_vote_poll::ContestedDocumentResourceVotePoll { - let ffi_ref = &*ffi; - dpp::voting::vote_polls::contested_document_resource_vote_poll::ContestedDocumentResourceVotePoll { contract_id: >::ffi_from(ffi_ref.contract_id), document_type_name: >::ffi_from(ffi_ref.document_type_name), index_name: >::ffi_from(ffi_ref.index_name), index_values: >>::ffi_from(ffi_ref.index_values) } - } - } + pub mod verify_aggregate_count_proof { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionTo for dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { - unsafe fn ffi_to_const(obj: dpp::voting::vote_polls::contested_document_resource_vote_poll::ContestedDocumentResourceVotePoll) -> *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { ferment::boxed(dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { contract_id: >::ffi_to(obj.contract_id), document_type_name: >::ffi_to(obj.document_type_name), index_name: >::ffi_to(obj.index_name), index_values: >>::ffi_to(obj.index_values) }) } - } + pub mod verify_distinct_count_proof { use crate as dash_sdk_bindings; } + } - impl Drop for dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.contract_id); - ferment::unbox_string(ffi_ref.document_type_name); - ferment::unbox_string(ffi_ref.index_name); - ferment::unbox_any(ffi_ref.index_values); - } - } - } + pub mod single_document { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_ctor<>(contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type_name: *mut std::os::raw::c_char, index_name: *mut std::os::raw::c_char, index_values: *mut crate::fermented::generics::Vec_platform_value_Value) -> *mut dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { ferment::boxed(dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { contract_id, document_type_name, index_name, index_values }) } + pub mod verify_proof { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_destroy<>(ffi: *mut dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) { ferment::unbox_any(ffi); } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_get_contract_id<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).contract_id } + pub mod verify_proof_keep_serialized { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_get_document_type_name<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut std::os::raw::c_char { (*obj).document_type_name } + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_get_index_name<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut std::os::raw::c_char { (*obj).index_name } + pub mod document { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_get_index_values<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut crate::fermented::generics::Vec_platform_value_Value { (*obj).index_values } + pub mod verify_document_history { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_set_contract_id<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).contract_id } + pub mod verify_proof { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_set_document_type_name<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut std::os::raw::c_char { (*obj).document_type_name } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_set_index_name<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut std::os::raw::c_char { (*obj).index_name } + pub mod verify_proof_keep_serialized { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_set_index_values<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut crate::fermented::generics::Vec_platform_value_Value { (*obj).index_values } + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod verify_start_at_document_in_proof { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } } - pub mod votes { + pub mod voting { use crate as dash_sdk_bindings; - pub mod resource_vote { + pub mod verify_vote_poll_votes_proof { use crate as dash_sdk_bindings; - pub mod v0 { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[doc = "FFI-representation of the [`ResourceVoteV0`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { - pub vote_poll: *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll, - pub resource_vote_choice: *mut crate::fermented::types::dpp::voting::vote_choices::resource_vote_choice::dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice, - } + pub mod verify_identity_votes_given_proof { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { - unsafe fn ffi_from_const(ffi: *const dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> dpp::voting::votes::resource_vote::v0::ResourceVoteV0 { - let ffi_ref = &*ffi; - dpp::voting::votes::resource_vote::v0::ResourceVoteV0 { vote_poll: >::ffi_from(ffi_ref.vote_poll), resource_vote_choice: >::ffi_from(ffi_ref.resource_vote_choice) } - } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionTo for dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { unsafe fn ffi_to_const(obj: dpp::voting::votes::resource_vote::v0::ResourceVoteV0) -> *const dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { ferment::boxed(dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { vote_poll: >::ffi_to(obj.vote_poll), resource_vote_choice: >::ffi_to(obj.resource_vote_choice) }) } } + pub mod verify_vote_poll_vote_state_proof { + use crate as dash_sdk_bindings; - impl Drop for dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.vote_poll); - ferment::unbox_any(ffi_ref.resource_vote_choice); - } - } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_votes_resource_vote_v0_ResourceVoteV0_ctor<>(vote_poll: *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll, resource_vote_choice: *mut crate::fermented::types::dpp::voting::vote_choices::resource_vote_choice::dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice) -> *mut dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { ferment::boxed(dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { vote_poll, resource_vote_choice }) } + pub mod verify_vote_polls_end_date_query { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_votes_resource_vote_v0_ResourceVoteV0_destroy<>(ffi: *mut dpp_voting_votes_resource_vote_v0_ResourceVoteV0) { ferment::unbox_any(ffi); } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_votes_resource_vote_v0_ResourceVoteV0_get_vote_poll<>(obj: *const dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll { (*obj).vote_poll } + pub mod verify_masternode_vote { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_votes_resource_vote_v0_ResourceVoteV0_get_resource_vote_choice<>(obj: *const dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> *mut crate::fermented::types::dpp::voting::vote_choices::resource_vote_choice::dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { (*obj).resource_vote_choice } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_votes_resource_vote_v0_ResourceVoteV0_set_vote_poll<>(obj: *const dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll { (*obj).vote_poll } + pub mod verify_contests_proof { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_votes_resource_vote_v0_ResourceVoteV0_set_resource_vote_choice<>(obj: *const dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> *mut crate::fermented::types::dpp::voting::vote_choices::resource_vote_choice::dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { (*obj).resource_vote_choice } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`ResourceVote`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum dpp_voting_votes_resource_vote_ResourceVote { V0(*mut crate::fermented::types::dpp::voting::votes::resource_vote::v0::dpp_voting_votes_resource_vote_v0_ResourceVoteV0) } + pub mod verify_specialized_balance { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for dpp_voting_votes_resource_vote_ResourceVote { - unsafe fn ffi_from_const(ffi: *const dpp_voting_votes_resource_vote_ResourceVote) -> dpp::voting::votes::resource_vote::ResourceVote { - let ffi_ref = &*ffi; - match ffi_ref { dpp_voting_votes_resource_vote_ResourceVote::V0(o_0) => dpp::voting::votes::resource_vote::ResourceVote::V0(>::ffi_from(*o_0)) } - } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - impl ferment::FFIConversionTo for dpp_voting_votes_resource_vote_ResourceVote { - unsafe fn ffi_to_const(obj: dpp::voting::votes::resource_vote::ResourceVote) -> *const dpp_voting_votes_resource_vote_ResourceVote { - ferment::boxed(match obj { - dpp::voting::votes::resource_vote::ResourceVote::V0(o_0) => dpp_voting_votes_resource_vote_ResourceVote::V0(>::ffi_to(o_0)), - _ => unreachable!("This is unreachable") - }) - } - } + pub mod address_funds { + use crate as dash_sdk_bindings; - impl Drop for dpp_voting_votes_resource_vote_ResourceVote { - fn drop(&mut self) { - unsafe { - match self { - dpp_voting_votes_resource_vote_ResourceVote::V0(o_0) => { ferment::unbox_any(*o_0); } - _ => unreachable!("This is unreachable") - }; - } - } - } + pub mod verify_addresses_infos { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_votes_resource_vote_ResourceVote_V0_ctor(o_o_0: *mut crate::fermented::types::dpp::voting::votes::resource_vote::v0::dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> *mut dpp_voting_votes_resource_vote_ResourceVote { ferment::boxed(dpp_voting_votes_resource_vote_ResourceVote::V0(o_o_0)) } + pub mod verify_address_funds_trunk_query { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_votes_resource_vote_ResourceVote_destroy<>(ffi: *mut dpp_voting_votes_resource_vote_ResourceVote) { ferment::unbox_any(ffi); } + pub mod verify_address_info { + use crate as dash_sdk_bindings; - pub mod accessors { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`Vote`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum dpp_voting_votes_Vote { ResourceVote(*mut crate::fermented::types::dpp::voting::votes::resource_vote::dpp_voting_votes_resource_vote_ResourceVote) } + pub mod verify_recent_address_balance_changes { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for dpp_voting_votes_Vote { - unsafe fn ffi_from_const(ffi: *const dpp_voting_votes_Vote) -> dpp::voting::votes::Vote { - let ffi_ref = &*ffi; - match ffi_ref { dpp_voting_votes_Vote::ResourceVote(o_0) => dpp::voting::votes::Vote::ResourceVote(>::ffi_from(*o_0)) } - } + pub mod v0 { use crate as dash_sdk_bindings; } } - impl ferment::FFIConversionTo for dpp_voting_votes_Vote { - unsafe fn ffi_to_const(obj: dpp::voting::votes::Vote) -> *const dpp_voting_votes_Vote { - ferment::boxed(match obj { - dpp::voting::votes::Vote::ResourceVote(o_0) => dpp_voting_votes_Vote::ResourceVote(>::ffi_to(o_0)), - _ => unreachable!("This is unreachable") - }) - } - } + pub mod verify_compacted_address_balance_changes { + use crate as dash_sdk_bindings; - impl Drop for dpp_voting_votes_Vote { - fn drop(&mut self) { - unsafe { - match self { - dpp_voting_votes_Vote::ResourceVote(o_0) => { ferment::unbox_any(*o_0); } - _ => unreachable!("This is unreachable") - }; - } - } + pub mod v0 { use crate as dash_sdk_bindings; } } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_votes_Vote_ResourceVote_ctor(o_o_0: *mut crate::fermented::types::dpp::voting::votes::resource_vote::dpp_voting_votes_resource_vote_ResourceVote) -> *mut dpp_voting_votes_Vote { ferment::boxed(dpp_voting_votes_Vote::ResourceVote(o_o_0)) } - - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_votes_Vote_destroy<>(ffi: *mut dpp_voting_votes_Vote) { ferment::unbox_any(ffi); } + pub mod verify_address_funds_branch_query { use crate as dash_sdk_bindings; } } - pub mod contender_structs { + pub mod identity { use crate as dash_sdk_bindings; - pub mod contender { + pub mod verify_identity_ids_by_unique_public_key_hashes { use crate as dash_sdk_bindings; } + + pub mod verify_identity_revision_for_identity_id { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`ContenderWithSerializedDocument`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { V0(*mut crate::fermented::types::dpp::voting::contender_structs::contender::v0::dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionFrom for dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { - unsafe fn ffi_from_const(ffi: *const dpp_voting_contender_structs_contender_ContenderWithSerializedDocument) -> dpp::voting::contender_structs::contender::ContenderWithSerializedDocument { - let ffi_ref = &*ffi; - match ffi_ref { dpp_voting_contender_structs_contender_ContenderWithSerializedDocument::V0(o_0) => dpp::voting::contender_structs::contender::ContenderWithSerializedDocument::V0(>::ffi_from(*o_0)) } - } - } + pub mod verify_identity_nonce { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionTo for dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { - unsafe fn ffi_to_const(obj: dpp::voting::contender_structs::contender::ContenderWithSerializedDocument) -> *const dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { - ferment::boxed(match obj { - dpp::voting::contender_structs::contender::ContenderWithSerializedDocument::V0(o_0) => dpp_voting_contender_structs_contender_ContenderWithSerializedDocument::V0(>::ffi_to(o_0)), - _ => unreachable!("This is unreachable") - }) - } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl Drop for dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { - fn drop(&mut self) { - unsafe { - match self { - dpp_voting_contender_structs_contender_ContenderWithSerializedDocument::V0(o_0) => { ferment::unbox_any(*o_0); } - _ => unreachable!("This is unreachable") - }; - } - } - } + pub mod verify_identity_id_by_non_unique_public_key_hash { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_contender_structs_contender_ContenderWithSerializedDocument_V0_ctor(o_o_0: *mut crate::fermented::types::dpp::voting::contender_structs::contender::v0::dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { ferment::boxed(dpp_voting_contender_structs_contender_ContenderWithSerializedDocument::V0(o_o_0)) } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_contender_structs_contender_ContenderWithSerializedDocument_destroy<>(ffi: *mut dpp_voting_contender_structs_contender_ContenderWithSerializedDocument) { ferment::unbox_any(ffi); } + pub mod verify_identities_contract_keys { use crate as dash_sdk_bindings; } - pub mod v0 { - use crate as dash_sdk_bindings; + pub mod verify_full_identities_by_public_key_hashes { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`ContenderWithSerializedDocumentV0`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { - pub identity_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, - pub serialized_document: *mut crate::fermented::generics::Vec_u8, - pub vote_tally: *mut u32, - } + pub mod verify_identity_id_by_unique_public_key_hash { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionFrom for dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { - unsafe fn ffi_from_const(ffi: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> dpp::voting::contender_structs::contender::v0::ContenderWithSerializedDocumentV0 { - let ffi_ref = &*ffi; - dpp::voting::contender_structs::contender::v0::ContenderWithSerializedDocumentV0 { identity_id: >::ffi_from(ffi_ref.identity_id), serialized_document: >>::ffi_from_opt(ffi_ref.serialized_document), vote_tally: ferment::from_opt_primitive(ffi_ref.vote_tally) } - } - } + pub mod verify_identity_contract_nonce { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionTo for dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { unsafe fn ffi_to_const(obj: dpp::voting::contender_structs::contender::v0::ContenderWithSerializedDocumentV0) -> *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { ferment::boxed(dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { identity_id: >::ffi_to(obj.identity_id), serialized_document: >>::ffi_to_opt(obj.serialized_document), vote_tally: ferment::to_opt_primitive(obj.vote_tally) }) } } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl Drop for dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.identity_id); - ferment::unbox_any_opt(ffi_ref.serialized_document); - ferment::destroy_opt_primitive(ffi_ref.vote_tally); - } - } - } + pub mod verify_identity_balance_and_revision_for_identity_id { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_ctor<>(identity_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, serialized_document: *mut crate::fermented::generics::Vec_u8, vote_tally: *mut u32) -> *mut dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { ferment::boxed(dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { identity_id, serialized_document, vote_tally }) } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_destroy<>(ffi: *mut dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) { ferment::unbox_any(ffi); } + pub mod verify_identity_keys_by_identity_id { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_get_identity_id<>(obj: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).identity_id } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_get_serialized_document<>(obj: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut crate::fermented::generics::Vec_u8 { (*obj).serialized_document } + pub mod verify_full_identity_by_identity_id { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_get_vote_tally<>(obj: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut u32 { (*obj).vote_tally } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_set_identity_id<>(obj: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).identity_id } + pub mod verify_identity_balances_for_identity_ids { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_set_serialized_document<>(obj: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut crate::fermented::generics::Vec_u8 { (*obj).serialized_document } + pub mod verify_full_identity_by_non_unique_public_key_hash { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_set_vote_tally<>(obj: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut u32 { (*obj).vote_tally } - } + pub mod v0 { use crate as dash_sdk_bindings; } } + + pub mod verify_identity_balance_for_identity_id { use crate as dash_sdk_bindings; } + + pub mod verify_full_identity_by_unique_public_key_hash { use crate as dash_sdk_bindings; } + + pub mod verify_identity_balance_revision_and_addresses_from_inputs { use crate as dash_sdk_bindings; } } - pub mod vote_info_storage { + pub mod system { use crate as dash_sdk_bindings; - pub mod contested_document_vote_poll_stored_info { use crate as dash_sdk_bindings; } + pub mod verify_epoch_proposers { use crate as dash_sdk_bindings; } - pub mod contested_document_vote_poll_winner_info { + pub mod verify_epoch_infos { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`ContestedDocumentVotePollWinnerInfo`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { NoWinner, WonByIdentity(*mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier), Locked } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionFrom for dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { - unsafe fn ffi_from_const(ffi: *const dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo) -> dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo { - let ffi_ref = &*ffi; - match ffi_ref { - dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::NoWinner => dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo::NoWinner, - dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::WonByIdentity(o_0) => dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo::WonByIdentity(>::ffi_from(*o_0)), - dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::Locked => dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo::Locked - } - } - } + pub mod verify_upgrade_vote_status { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionTo for dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { - unsafe fn ffi_to_const(obj: dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo) -> *const dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { - ferment::boxed(match obj { - dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo::NoWinner => dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::NoWinner, - dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo::WonByIdentity(o_0) => dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::WonByIdentity(>::ffi_to(o_0)), - dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo::Locked => dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::Locked, - _ => unreachable!("This is unreachable") - }) - } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl Drop for dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { - fn drop(&mut self) { - unsafe { - match self { - dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::NoWinner => {} - dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::WonByIdentity(o_0) => { ferment::unbox_any(*o_0); } - dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::Locked => {} - _ => unreachable!("This is unreachable") - }; - } - } - } + pub mod verify_elements { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_NoWinner_ctor() -> *mut dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { ferment::boxed(dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::NoWinner {}) } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_WonByIdentity_ctor(o_o_0: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { ferment::boxed(dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::WonByIdentity(o_o_0)) } + pub mod verify_upgrade_state { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_Locked_ctor() -> *mut dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { ferment::boxed(dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::Locked {}) } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_destroy<>(ffi: *mut dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo) { ferment::unbox_any(ffi); } + pub mod verify_finalized_epoch_infos { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } + + pub mod verify_total_credits_in_system { use crate as dash_sdk_bindings; } } - pub mod vote_choices { + pub mod contract { use crate as dash_sdk_bindings; - pub mod resource_vote_choice { + pub mod verify_contract { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`ResourceVoteChoice`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { TowardsIdentity(*mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier), Abstain, Lock } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionFrom for dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { - unsafe fn ffi_from_const(ffi: *const dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice) -> dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice { - let ffi_ref = &*ffi; - match ffi_ref { - dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::TowardsIdentity(o_0) => dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice::TowardsIdentity(>::ffi_from(*o_0)), - dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Abstain => dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice::Abstain, - dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Lock => dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice::Lock - } - } - } + pub mod verify_contract_history { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionTo for dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { - unsafe fn ffi_to_const(obj: dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice) -> *const dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { - ferment::boxed(match obj { - dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice::TowardsIdentity(o_0) => dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::TowardsIdentity(>::ffi_to(o_0)), - dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice::Abstain => dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Abstain, - dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice::Lock => dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Lock, - _ => unreachable!("This is unreachable") - }) - } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl Drop for dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { - fn drop(&mut self) { - unsafe { - match self { - dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::TowardsIdentity(o_0) => { ferment::unbox_any(*o_0); } - dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Abstain => {} - dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Lock => {} - _ => unreachable!("This is unreachable") - }; - } - } - } + pub mod verify_contract_return_serialization { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice_TowardsIdentity_ctor(o_o_0: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { ferment::boxed(dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::TowardsIdentity(o_o_0)) } + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice_Abstain_ctor() -> *mut dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { ferment::boxed(dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Abstain {}) } + pub mod tokens { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice_Lock_ctor() -> *mut dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { ferment::boxed(dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Lock {}) } + pub mod verify_token_balances_for_identity_id { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice_destroy<>(ffi: *mut dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice) { ferment::unbox_any(ffi); } + pub mod verify_token_total_supply_and_aggregated_identity_balance { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - } - } - pub mod balances { use crate as dash_sdk_bindings; } + pub mod verify_token_contract_info { use crate as dash_sdk_bindings; } - pub mod tokens { - use crate as dash_sdk_bindings; + pub mod verify_token_balance_for_identity_id { + use crate as dash_sdk_bindings; - pub mod token_payment_info { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod methods { use crate as dash_sdk_bindings; } + pub mod verify_token_info_for_identity_id { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod info { use crate as dash_sdk_bindings; } + pub mod verify_token_infos_for_identity_id { + use crate as dash_sdk_bindings; - pub mod contract_info { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod status { use crate as dash_sdk_bindings; } - } + pub mod verify_token_direct_selling_prices { + use crate as dash_sdk_bindings; - pub mod document { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[cfg(feature = "factories")] - pub mod specialized_document_factory { - use crate as dash_sdk_bindings; - } + pub mod verify_token_status { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`Document`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum dpp_document_Document { V0(*mut crate::fermented::types::dpp::document::v0::dpp_document_v0_DocumentV0) } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionFrom for dpp_document_Document { - unsafe fn ffi_from_const(ffi: *const dpp_document_Document) -> dpp::document::Document { - let ffi_ref = &*ffi; - match ffi_ref { dpp_document_Document::V0(o_0) => dpp::document::Document::V0(>::ffi_from(*o_0)) } + pub mod verify_token_direct_selling_price { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - } - impl ferment::FFIConversionTo for dpp_document_Document { - unsafe fn ffi_to_const(obj: dpp::document::Document) -> *const dpp_document_Document { - ferment::boxed(match obj { - dpp::document::Document::V0(o_0) => dpp_document_Document::V0(>::ffi_to(o_0)), - _ => unreachable!("This is unreachable") - }) + pub mod verify_token_statuses { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - } - impl Drop for dpp_document_Document { - fn drop(&mut self) { - unsafe { - match self { - dpp_document_Document::V0(o_0) => { ferment::unbox_any(*o_0); } - _ => unreachable!("This is unreachable") - }; - } + pub mod verify_token_infos_for_identity_ids { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_Document_V0_ctor(o_o_0: *mut crate::fermented::types::dpp::document::v0::dpp_document_v0_DocumentV0) -> *mut dpp_document_Document { ferment::boxed(dpp_document_Document::V0(o_o_0)) } + pub mod verify_token_pre_programmed_distributions { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_document_Document_destroy<>(ffi: *mut dpp_document_Document) { ferment::unbox_any(ffi); } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[cfg(feature = "extended-document")] - pub mod extended_document { - use crate as dash_sdk_bindings; + pub mod verify_token_balances_for_identity_ids { use crate as dash_sdk_bindings; } - pub mod v0 { use crate as dash_sdk_bindings; } + pub mod verify_token_perpetual_distribution_last_paid_time { + use crate as dash_sdk_bindings; - pub mod fields { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } } - pub mod document_methods { + pub mod state_transition { use crate as dash_sdk_bindings; - pub mod get_raw_for_contract { use crate as dash_sdk_bindings; } + pub mod verify_state_transition_was_executed_with_proof { + use crate as dash_sdk_bindings; - pub mod hash { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod get_raw_for_document_type { use crate as dash_sdk_bindings; } + pub mod state_transition_execution_path_queries { + use crate as dash_sdk_bindings; - pub mod is_equal_ignoring_timestamps { use crate as dash_sdk_bindings; } + pub mod token_transition { use crate as dash_sdk_bindings; } + } } - pub mod accessors { use crate as dash_sdk_bindings; } + pub mod document_sum { + use crate as dash_sdk_bindings; - #[cfg(feature = "factories")] - pub mod document_factory { + pub mod verify_aggregate_count_and_sum_proof { use crate as dash_sdk_bindings; } + + pub mod verify_carrier_aggregate_count_and_sum_proof { use crate as dash_sdk_bindings; } + + pub mod verify_distinct_sum_proof { use crate as dash_sdk_bindings; } + + pub mod verify_aggregate_sum_proof { use crate as dash_sdk_bindings; } + + pub mod verify_carrier_aggregate_sum_proof { use crate as dash_sdk_bindings; } + + pub mod verify_primary_key_sum_tree_proof { use crate as dash_sdk_bindings; } + + pub mod verify_distinct_count_and_sum_proof { use crate as dash_sdk_bindings; } + + pub mod verify_primary_key_count_sum_tree_proof { use crate as dash_sdk_bindings; } + + pub mod verify_point_lookup_count_and_sum_proof { use crate as dash_sdk_bindings; } + + pub mod verify_point_lookup_sum_proof { use crate as dash_sdk_bindings; } + } + + pub mod group { use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } + pub mod verify_active_action_infos { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod verify_action_signers_total_power { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod verify_group_info { use crate as dash_sdk_bindings; } + + pub mod verify_action_signers { use crate as dash_sdk_bindings; } + + pub mod verify_group_infos_in_contract { use crate as dash_sdk_bindings; } } - pub mod serialization_traits { + pub mod shielded { use crate as dash_sdk_bindings; - pub mod platform_serialization_conversion { + pub mod verify_shielded_notes_count { use crate as dash_sdk_bindings; - pub mod deserialize { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod serialize { use crate as dash_sdk_bindings; } + pub mod verify_most_recent_shielded_anchor { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - #[cfg(feature = "document-json-conversion")] - pub mod json_conversion { + pub mod verify_shielded_anchors { use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - #[cfg(feature = "document-cbor-conversion")] - pub mod cbor_conversion { + pub mod verify_shielded_encrypted_notes { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod verify_shielded_pool_state { use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - #[cfg(feature = "document-value-conversion")] - pub mod platform_value_conversion { + pub mod verify_shielded_nullifiers { use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } } + } - pub mod v0 { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod open { + use crate as dash_sdk_bindings; + } - #[doc = "FFI-representation of the [`DocumentV0`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_document_v0_DocumentV0 { - pub id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, - pub owner_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, - pub properties: *mut crate::fermented::generics::std_collections_Map_keys_String_values_platform_value_Value, - pub revision: *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision, - pub created_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, - pub updated_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, - pub transferred_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, - pub created_at_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, - pub updated_at_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, - pub transferred_at_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, - pub created_at_core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, - pub updated_at_core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, - pub transferred_at_core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, - } - - impl ferment::FFIConversionFrom for dpp_document_v0_DocumentV0 { - unsafe fn ffi_from_const(ffi: *const dpp_document_v0_DocumentV0) -> dpp::document::v0::DocumentV0 { - let ffi_ref = &*ffi; - dpp::document::v0::DocumentV0 { - id: >::ffi_from(ffi_ref.id), - owner_id: >::ffi_from(ffi_ref.owner_id), - properties: >>::ffi_from(ffi_ref.properties), - revision: >::ffi_from_opt(ffi_ref.revision), - created_at: >::ffi_from_opt(ffi_ref.created_at), - updated_at: >::ffi_from_opt(ffi_ref.updated_at), - transferred_at: >::ffi_from_opt(ffi_ref.transferred_at), - created_at_block_height: >::ffi_from_opt(ffi_ref.created_at_block_height), - updated_at_block_height: >::ffi_from_opt(ffi_ref.updated_at_block_height), - transferred_at_block_height: >::ffi_from_opt(ffi_ref.transferred_at_block_height), - created_at_core_block_height: >::ffi_from_opt(ffi_ref.created_at_core_block_height), - updated_at_core_block_height: >::ffi_from_opt(ffi_ref.updated_at_core_block_height), - transferred_at_core_block_height: >::ffi_from_opt(ffi_ref.transferred_at_core_block_height), - } - } - } + #[cfg(feature = "server")] + pub mod fees { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionTo for dpp_document_v0_DocumentV0 { - unsafe fn ffi_to_const(obj: dpp::document::v0::DocumentV0) -> *const dpp_document_v0_DocumentV0 { - ferment::boxed(dpp_document_v0_DocumentV0 { - id: >::ffi_to(obj.id), - owner_id: >::ffi_to(obj.owner_id), - properties: >>::ffi_to(obj.properties), - revision: >::ffi_to_opt(obj.revision), - created_at: >::ffi_to_opt(obj.created_at), - updated_at: >::ffi_to_opt(obj.updated_at), - transferred_at: >::ffi_to_opt(obj.transferred_at), - created_at_block_height: >::ffi_to_opt(obj.created_at_block_height), - updated_at_block_height: >::ffi_to_opt(obj.updated_at_block_height), - transferred_at_block_height: >::ffi_to_opt(obj.transferred_at_block_height), - created_at_core_block_height: >::ffi_to_opt(obj.created_at_core_block_height), - updated_at_core_block_height: >::ffi_to_opt(obj.updated_at_core_block_height), - transferred_at_core_block_height: >::ffi_to_opt(obj.transferred_at_core_block_height), - }) - } - } + pub mod op { use crate as dash_sdk_bindings; } - impl Drop for dpp_document_v0_DocumentV0 { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.id); - ferment::unbox_any(ffi_ref.owner_id); - ferment::unbox_any(ffi_ref.properties); - ferment::unbox_any_opt(ffi_ref.revision); - ferment::unbox_any_opt(ffi_ref.created_at); - ferment::unbox_any_opt(ffi_ref.updated_at); - ferment::unbox_any_opt(ffi_ref.transferred_at); - ferment::unbox_any_opt(ffi_ref.created_at_block_height); - ferment::unbox_any_opt(ffi_ref.updated_at_block_height); - ferment::unbox_any_opt(ffi_ref.transferred_at_block_height); - ferment::unbox_any_opt(ffi_ref.created_at_core_block_height); - ferment::unbox_any_opt(ffi_ref.updated_at_core_block_height); - ferment::unbox_any_opt(ffi_ref.transferred_at_core_block_height); - } - } - } + pub mod calculate_fee { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_ctor<>(id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, owner_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, properties: *mut crate::fermented::generics::std_collections_Map_keys_String_values_platform_value_Value, revision: *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision, created_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, updated_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, transferred_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, created_at_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, updated_at_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, transferred_at_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, created_at_core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, updated_at_core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, transferred_at_core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight) -> *mut dpp_document_v0_DocumentV0 { ferment::boxed(dpp_document_v0_DocumentV0 { id, owner_id, properties, revision, created_at, updated_at, transferred_at, created_at_block_height, updated_at_block_height, transferred_at_block_height, created_at_core_block_height, updated_at_core_block_height, transferred_at_core_block_height }) } + #[cfg(any(feature = "server", feature = "verify", feature = "fixtures-and-mocks"))] + pub mod util { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_destroy<>(ffi: *mut dpp_document_v0_DocumentV0) { ferment::unbox_any(ffi); } + #[cfg(feature = "server")] + pub mod operations { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_id<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).id } + pub mod apply_partial_batch_grovedb_operations { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_owner_id<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).owner_id } + pub mod apply_partial_batch_low_level_drive_operations { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_properties<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::generics::std_collections_Map_keys_String_values_platform_value_Value { (*obj).properties } + pub mod rollback_transaction { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_revision<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision { (*obj).revision } + pub mod apply_batch_low_level_drive_operations { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_created_at<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).created_at } + pub mod drop_cache { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_updated_at<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).updated_at } + pub mod apply_batch_grovedb_operations { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_transferred_at<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).transferred_at } + pub mod commit_transaction { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_created_at_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).created_at_block_height } + #[cfg(feature = "server")] + pub mod grove_operations { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_updated_at_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).updated_at_block_height } + pub mod batch_insert_empty_tree_if_not_exists_check_existing_operations { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_transferred_at_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).transferred_at_block_height } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_created_at_core_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).created_at_core_block_height } + pub mod grove_apply_operation { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_updated_at_core_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).updated_at_core_block_height } + pub mod grove_get_raw_path_query { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_transferred_at_core_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).transferred_at_core_block_height } + pub mod batch_insert { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_id<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).id } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_owner_id<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).owner_id } + pub mod grove_get_raw_path_query_with_optional { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_properties<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::generics::std_collections_Map_keys_String_values_platform_value_Value { (*obj).properties } + pub mod batch_insert_empty_provable_count_tree { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_revision<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision { (*obj).revision } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_created_at<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).created_at } + pub mod grove_get_proved_path_query_v1 { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_updated_at<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).updated_at } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_transferred_at<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).transferred_at } + pub mod batch_insert_if_not_exists { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_created_at_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).created_at_block_height } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_updated_at_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).updated_at_block_height } + pub mod grove_batch_operations_costs { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_transferred_at_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).transferred_at_block_height } + pub mod batch_delete_items_in_path_query { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_created_at_core_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).created_at_core_block_height } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_updated_at_core_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).updated_at_core_block_height } + pub mod batch_replace { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_transferred_at_core_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).transferred_at_core_block_height } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod fields { use crate as dash_sdk_bindings; } - } + pub mod grove_get_raw_optional { use crate as dash_sdk_bindings; } - pub mod prelude { - use crate as dash_sdk_bindings; + pub mod grove_get_proved_trunk_chunk_query { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`TimestampMillis`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_prelude_TimestampMillis(u64); + pub mod batch_move { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for dpp_prelude_TimestampMillis { - unsafe fn ffi_from_const(ffi: *const dpp_prelude_TimestampMillis) -> dpp::prelude::TimestampMillis { - let ffi_ref = &*ffi; - ffi_ref.0 + pub mod v0 { use crate as dash_sdk_bindings; } } - } - impl ferment::FFIConversionTo for dpp_prelude_TimestampMillis { unsafe fn ffi_to_const(obj: dpp::prelude::TimestampMillis) -> *const dpp_prelude_TimestampMillis { ferment::boxed(dpp_prelude_TimestampMillis(obj)) } } + pub mod batch_insert_empty_provable_count_provable_sum_tree { use crate as dash_sdk_bindings; } - impl Drop for dpp_prelude_TimestampMillis { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ; - } + pub mod grove_has_raw { use crate as dash_sdk_bindings; } + + pub mod batch_insert_empty_tree_if_not_exists { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - } - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_TimestampMillis_ctor<>(o_0: u64) -> *mut dpp_prelude_TimestampMillis { ferment::boxed(dpp_prelude_TimestampMillis(o_0)) } + pub mod grove_get_proved_path_query { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_TimestampMillis_destroy<>(ffi: *mut dpp_prelude_TimestampMillis) { ferment::unbox_any(ffi); } + pub mod grove_get_raw_optional_item { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_TimestampMillis_get_0<>(obj: *const dpp_prelude_TimestampMillis) -> u64 { (*obj).0 } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_TimestampMillis_set_0<>(obj: *const dpp_prelude_TimestampMillis) -> u64 { (*obj).0 } + pub mod batch_keep_item_insert_sum_item_or_add_to_if_already_exists { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`Revision`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_prelude_Revision(u64); + pub mod batch_delete { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionFrom for dpp_prelude_Revision { - unsafe fn ffi_from_const(ffi: *const dpp_prelude_Revision) -> dpp::prelude::Revision { - let ffi_ref = &*ffi; - ffi_ref.0 - } - } + pub mod grove_apply_batch_with_add_costs { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionTo for dpp_prelude_Revision { unsafe fn ffi_to_const(obj: dpp::prelude::Revision) -> *const dpp_prelude_Revision { ferment::boxed(dpp_prelude_Revision(obj)) } } + pub mod grove_get_path_query_serialized_or_sum_results { + use crate as dash_sdk_bindings; - impl Drop for dpp_prelude_Revision { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ; - } + pub mod v0 { use crate as dash_sdk_bindings; } } - } - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_Revision_ctor<>(o_0: u64) -> *mut dpp_prelude_Revision { ferment::boxed(dpp_prelude_Revision(o_0)) } + pub mod grove_apply_partial_batch_with_add_costs { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_Revision_destroy<>(ffi: *mut dpp_prelude_Revision) { ferment::unbox_any(ffi); } + pub mod batch_move_items_in_path_query { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_Revision_get_0<>(obj: *const dpp_prelude_Revision) -> u64 { (*obj).0 } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_Revision_set_0<>(obj: *const dpp_prelude_Revision) -> u64 { (*obj).0 } - - #[doc = "FFI-representation of the [`BlockHeight`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_prelude_BlockHeight(u64); + pub mod grove_get { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for dpp_prelude_BlockHeight { - unsafe fn ffi_from_const(ffi: *const dpp_prelude_BlockHeight) -> dpp::prelude::BlockHeight { - let ffi_ref = &*ffi; - ffi_ref.0 + pub mod v0 { use crate as dash_sdk_bindings; } } - } - impl ferment::FFIConversionTo for dpp_prelude_BlockHeight { unsafe fn ffi_to_const(obj: dpp::prelude::BlockHeight) -> *const dpp_prelude_BlockHeight { ferment::boxed(dpp_prelude_BlockHeight(obj)) } } + pub mod grove_get_raw { use crate as dash_sdk_bindings; } - impl Drop for dpp_prelude_BlockHeight { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ; - } + pub mod batch_insert_sum_item_or_add_to_if_already_exists { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - } - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_BlockHeight_ctor<>(o_0: u64) -> *mut dpp_prelude_BlockHeight { ferment::boxed(dpp_prelude_BlockHeight(o_0)) } + pub mod batch_insert_empty_provable_count_sum_tree { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_BlockHeight_destroy<>(ffi: *mut dpp_prelude_BlockHeight) { ferment::unbox_any(ffi); } + pub mod grove_get_big_sum_tree_total_value { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_BlockHeight_get_0<>(obj: *const dpp_prelude_BlockHeight) -> u64 { (*obj).0 } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_BlockHeight_set_0<>(obj: *const dpp_prelude_BlockHeight) -> u64 { (*obj).0 } + pub mod batch_insert_empty_count_tree { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`CoreBlockHeight`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_prelude_CoreBlockHeight(u32); + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionFrom for dpp_prelude_CoreBlockHeight { - unsafe fn ffi_from_const(ffi: *const dpp_prelude_CoreBlockHeight) -> dpp::prelude::CoreBlockHeight { - let ffi_ref = &*ffi; - ffi_ref.0 + pub mod grove_insert_if_not_exists_return_existing_element { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - } - impl ferment::FFIConversionTo for dpp_prelude_CoreBlockHeight { unsafe fn ffi_to_const(obj: dpp::prelude::CoreBlockHeight) -> *const dpp_prelude_CoreBlockHeight { ferment::boxed(dpp_prelude_CoreBlockHeight(obj)) } } + pub mod batch_insert_empty_count_sum_tree { + use crate as dash_sdk_bindings; - impl Drop for dpp_prelude_CoreBlockHeight { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ; - } + pub mod v0 { use crate as dash_sdk_bindings; } } - } - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_CoreBlockHeight_ctor<>(o_0: u32) -> *mut dpp_prelude_CoreBlockHeight { ferment::boxed(dpp_prelude_CoreBlockHeight(o_0)) } + pub mod grove_insert { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_CoreBlockHeight_destroy<>(ffi: *mut dpp_prelude_CoreBlockHeight) { ferment::unbox_any(ffi); } + pub mod grove_clear { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_CoreBlockHeight_get_0<>(obj: *const dpp_prelude_CoreBlockHeight) -> u32 { (*obj).0 } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_CoreBlockHeight_set_0<>(obj: *const dpp_prelude_CoreBlockHeight) -> u32 { (*obj).0 } - } + pub mod batch_insert_if_changed_value { + use crate as dash_sdk_bindings; - pub mod identity { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod identity_nonce { use crate as dash_sdk_bindings; } + pub mod grove_commitment_tree_count { use crate as dash_sdk_bindings; } - pub mod identity_public_key { - use crate as dash_sdk_bindings; + pub mod grove_delete { use crate as dash_sdk_bindings; } - pub mod key_type { + pub mod batch_insert_if_not_exists_return_existing_element { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`KeyType`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum dpp_identity_identity_public_key_key_type_KeyType { ECDSA_SECP256K1 = 0, BLS12_381 = 1, ECDSA_HASH160 = 2, BIP13_SCRIPT_HASH = 3, EDDSA_25519_HASH160 = 4 } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_key_type_KeyType { - unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_key_type_KeyType) -> dpp::identity::identity_public_key::key_type::KeyType { - let ffi_ref = &*ffi; - match ffi_ref { - dpp_identity_identity_public_key_key_type_KeyType::ECDSA_SECP256K1 => dpp::identity::identity_public_key::key_type::KeyType::ECDSA_SECP256K1, - dpp_identity_identity_public_key_key_type_KeyType::BLS12_381 => dpp::identity::identity_public_key::key_type::KeyType::BLS12_381, - dpp_identity_identity_public_key_key_type_KeyType::ECDSA_HASH160 => dpp::identity::identity_public_key::key_type::KeyType::ECDSA_HASH160, - dpp_identity_identity_public_key_key_type_KeyType::BIP13_SCRIPT_HASH => dpp::identity::identity_public_key::key_type::KeyType::BIP13_SCRIPT_HASH, - dpp_identity_identity_public_key_key_type_KeyType::EDDSA_25519_HASH160 => dpp::identity::identity_public_key::key_type::KeyType::EDDSA_25519_HASH160 - } - } - } + pub mod grove_get_proved_path_query_with_conditional { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionTo for dpp_identity_identity_public_key_key_type_KeyType { - unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::key_type::KeyType) -> *const dpp_identity_identity_public_key_key_type_KeyType { - ferment::boxed(match obj { - dpp::identity::identity_public_key::key_type::KeyType::ECDSA_SECP256K1 => dpp_identity_identity_public_key_key_type_KeyType::ECDSA_SECP256K1, - dpp::identity::identity_public_key::key_type::KeyType::BLS12_381 => dpp_identity_identity_public_key_key_type_KeyType::BLS12_381, - dpp::identity::identity_public_key::key_type::KeyType::ECDSA_HASH160 => dpp_identity_identity_public_key_key_type_KeyType::ECDSA_HASH160, - dpp::identity::identity_public_key::key_type::KeyType::BIP13_SCRIPT_HASH => dpp_identity_identity_public_key_key_type_KeyType::BIP13_SCRIPT_HASH, - dpp::identity::identity_public_key::key_type::KeyType::EDDSA_25519_HASH160 => dpp_identity_identity_public_key_key_type_KeyType::EDDSA_25519_HASH160, - _ => unreachable!("This is unreachable") - }) - } - } + pub mod batch_insert_empty_provable_sum_tree { use crate as dash_sdk_bindings; } - impl Drop for dpp_identity_identity_public_key_key_type_KeyType { - fn drop(&mut self) { - unsafe { - match self { - dpp_identity_identity_public_key_key_type_KeyType::ECDSA_SECP256K1 => {} - dpp_identity_identity_public_key_key_type_KeyType::BLS12_381 => {} - dpp_identity_identity_public_key_key_type_KeyType::ECDSA_HASH160 => {} - dpp_identity_identity_public_key_key_type_KeyType::BIP13_SCRIPT_HASH => {} - dpp_identity_identity_public_key_key_type_KeyType::EDDSA_25519_HASH160 => {} - _ => unreachable!("This is unreachable") - }; - } - } - } + pub mod grove_get_path_query_serialized_results { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_key_type_KeyType_ECDSA_SECP256K1_ctor() -> *mut dpp_identity_identity_public_key_key_type_KeyType { ferment::boxed(dpp_identity_identity_public_key_key_type_KeyType::ECDSA_SECP256K1 {}) } + pub mod batch_delete_up_tree_while_empty { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_key_type_KeyType_BLS12_381_ctor() -> *mut dpp_identity_identity_public_key_key_type_KeyType { ferment::boxed(dpp_identity_identity_public_key_key_type_KeyType::BLS12_381 {}) } + pub mod grove_insert_if_not_exists { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_key_type_KeyType_ECDSA_HASH160_ctor() -> *mut dpp_identity_identity_public_key_key_type_KeyType { ferment::boxed(dpp_identity_identity_public_key_key_type_KeyType::ECDSA_HASH160 {}) } + pub mod batch_insert_item_with_sum_item_if_not_exists { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_key_type_KeyType_BIP13_SCRIPT_HASH_ctor() -> *mut dpp_identity_identity_public_key_key_type_KeyType { ferment::boxed(dpp_identity_identity_public_key_key_type_KeyType::BIP13_SCRIPT_HASH {}) } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_key_type_KeyType_EDDSA_25519_HASH160_ctor() -> *mut dpp_identity_identity_public_key_key_type_KeyType { ferment::boxed(dpp_identity_identity_public_key_key_type_KeyType::EDDSA_25519_HASH160 {}) } + pub mod batch_insert_empty_tree { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_key_type_KeyType_destroy<>(ffi: *mut dpp_identity_identity_public_key_key_type_KeyType) { ferment::unbox_any(ffi); } + pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod conversion { - use crate as dash_sdk_bindings; + pub mod grove_get_raw_value_u64_from_encoded_var_vec { use crate as dash_sdk_bindings; } - #[cfg(feature = "platform-value")] - pub mod platform_value { - use crate as dash_sdk_bindings; - } + pub mod grove_get_path_query { use crate as dash_sdk_bindings; } - #[cfg(feature = "json-object")] - pub mod json { - use crate as dash_sdk_bindings; - } - } + pub mod grove_get_proved_branch_chunk_query { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`KeyID`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_identity_identity_public_key_KeyID(u32); + pub mod grove_insert_empty_tree { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_KeyID { - unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_KeyID) -> dpp::identity::identity_public_key::KeyID { - let ffi_ref = &*ffi; - ffi_ref.0 - } + pub mod v0 { use crate as dash_sdk_bindings; } } - impl ferment::FFIConversionTo for dpp_identity_identity_public_key_KeyID { unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::KeyID) -> *const dpp_identity_identity_public_key_KeyID { ferment::boxed(dpp_identity_identity_public_key_KeyID(obj)) } } + pub mod batch_remove_raw { use crate as dash_sdk_bindings; } - impl Drop for dpp_identity_identity_public_key_KeyID { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ; - } - } + pub mod grove_get_raw_item { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyID_ctor<>(o_0: u32) -> *mut dpp_identity_identity_public_key_KeyID { ferment::boxed(dpp_identity_identity_public_key_KeyID(o_0)) } + pub mod batch_refresh_reference { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyID_destroy<>(ffi: *mut dpp_identity_identity_public_key_KeyID) { ferment::unbox_any(ffi); } + pub mod grove_get_optional_sum_tree_total_value { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyID_get_0<>(obj: *const dpp_identity_identity_public_key_KeyID) -> u32 { (*obj).0 } + pub mod batch_insert_empty_sum_tree { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyID_set_0<>(obj: *const dpp_identity_identity_public_key_KeyID) -> u32 { (*obj).0 } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[doc = "FFI-representation of the [`TimestampMillis`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_identity_identity_public_key_TimestampMillis(u64); + pub mod grove_get_path_query_with_optional { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_TimestampMillis { - unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_TimestampMillis) -> dpp::identity::identity_public_key::TimestampMillis { - let ffi_ref = &*ffi; - ffi_ref.0 - } + pub mod grove_get_sum_tree_total_value { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - impl ferment::FFIConversionTo for dpp_identity_identity_public_key_TimestampMillis { unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::TimestampMillis) -> *const dpp_identity_identity_public_key_TimestampMillis { ferment::boxed(dpp_identity_identity_public_key_TimestampMillis(obj)) } } + pub mod batch_insert_sum_item_if_not_exists { + use crate as dash_sdk_bindings; - impl Drop for dpp_identity_identity_public_key_TimestampMillis { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ; - } - } + pub mod v0 { use crate as dash_sdk_bindings; } } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_TimestampMillis_ctor<>(o_0: u64) -> *mut dpp_identity_identity_public_key_TimestampMillis { ferment::boxed(dpp_identity_identity_public_key_TimestampMillis(o_0)) } + #[cfg(feature = "server")] + pub mod batch { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_TimestampMillis_destroy<>(ffi: *mut dpp_identity_identity_public_key_TimestampMillis) { ferment::unbox_any(ffi); } + pub mod drive_op_batch { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_TimestampMillis_get_0<>(obj: *const dpp_identity_identity_public_key_TimestampMillis) -> u64 { (*obj).0 } + pub mod token { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_TimestampMillis_set_0<>(obj: *const dpp_identity_identity_public_key_TimestampMillis) -> u64 { (*obj).0 } + pub mod drive_methods { + use crate as dash_sdk_bindings; - pub mod purpose { - use crate as dash_sdk_bindings; + pub mod convert_drive_operations_to_grove_operations { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`Purpose`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum dpp_identity_identity_public_key_purpose_Purpose { AUTHENTICATION = 0, ENCRYPTION = 1, DECRYPTION = 2, TRANSFER = 3, SYSTEM = 4, VOTING = 5, OWNER = 6 } + pub mod apply_drive_operations { use crate as dash_sdk_bindings; } + } + } + } - impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_purpose_Purpose { - unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_purpose_Purpose) -> dpp::identity::identity_public_key::purpose::Purpose { - let ffi_ref = &*ffi; - match ffi_ref { - dpp_identity_identity_public_key_purpose_Purpose::AUTHENTICATION => dpp::identity::identity_public_key::purpose::Purpose::AUTHENTICATION, - dpp_identity_identity_public_key_purpose_Purpose::ENCRYPTION => dpp::identity::identity_public_key::purpose::Purpose::ENCRYPTION, - dpp_identity_identity_public_key_purpose_Purpose::DECRYPTION => dpp::identity::identity_public_key::purpose::Purpose::DECRYPTION, - dpp_identity_identity_public_key_purpose_Purpose::TRANSFER => dpp::identity::identity_public_key::purpose::Purpose::TRANSFER, - dpp_identity_identity_public_key_purpose_Purpose::SYSTEM => dpp::identity::identity_public_key::purpose::Purpose::SYSTEM, - dpp_identity_identity_public_key_purpose_Purpose::VOTING => dpp::identity::identity_public_key::purpose::Purpose::VOTING, - dpp_identity_identity_public_key_purpose_Purpose::OWNER => dpp::identity::identity_public_key::purpose::Purpose::OWNER - } - } - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod object_size_info { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionTo for dpp_identity_identity_public_key_purpose_Purpose { - unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::purpose::Purpose) -> *const dpp_identity_identity_public_key_purpose_Purpose { - ferment::boxed(match obj { - dpp::identity::identity_public_key::purpose::Purpose::AUTHENTICATION => dpp_identity_identity_public_key_purpose_Purpose::AUTHENTICATION, - dpp::identity::identity_public_key::purpose::Purpose::ENCRYPTION => dpp_identity_identity_public_key_purpose_Purpose::ENCRYPTION, - dpp::identity::identity_public_key::purpose::Purpose::DECRYPTION => dpp_identity_identity_public_key_purpose_Purpose::DECRYPTION, - dpp::identity::identity_public_key::purpose::Purpose::TRANSFER => dpp_identity_identity_public_key_purpose_Purpose::TRANSFER, - dpp::identity::identity_public_key::purpose::Purpose::SYSTEM => dpp_identity_identity_public_key_purpose_Purpose::SYSTEM, - dpp::identity::identity_public_key::purpose::Purpose::VOTING => dpp_identity_identity_public_key_purpose_Purpose::VOTING, - dpp::identity::identity_public_key::purpose::Purpose::OWNER => dpp_identity_identity_public_key_purpose_Purpose::OWNER, - _ => unreachable!("This is unreachable") - }) - } - } + #[cfg(feature = "server")] + pub mod path_key_info { + use crate as dash_sdk_bindings; + } - impl Drop for dpp_identity_identity_public_key_purpose_Purpose { - fn drop(&mut self) { - unsafe { - match self { - dpp_identity_identity_public_key_purpose_Purpose::AUTHENTICATION => {} - dpp_identity_identity_public_key_purpose_Purpose::ENCRYPTION => {} - dpp_identity_identity_public_key_purpose_Purpose::DECRYPTION => {} - dpp_identity_identity_public_key_purpose_Purpose::TRANSFER => {} - dpp_identity_identity_public_key_purpose_Purpose::SYSTEM => {} - dpp_identity_identity_public_key_purpose_Purpose::VOTING => {} - dpp_identity_identity_public_key_purpose_Purpose::OWNER => {} - _ => unreachable!("This is unreachable") - }; - } - } - } + #[cfg(feature = "server")] + pub mod drive_key_info { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_AUTHENTICATION_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::AUTHENTICATION {}) } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod contract_info { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_ENCRYPTION_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::ENCRYPTION {}) } + #[cfg(feature = "server")] + pub mod document_info { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_DECRYPTION_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::DECRYPTION {}) } + #[cfg(feature = "server")] + pub mod key_value_info { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_TRANSFER_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::TRANSFER {}) } + #[cfg(feature = "server")] + pub mod path_info { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_SYSTEM_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::SYSTEM {}) } + #[cfg(feature = "server")] + pub mod path_key_element_info { + use crate as dash_sdk_bindings; + } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_VOTING_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::VOTING {}) } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod common { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_OWNER_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::OWNER {}) } + pub mod encode { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_destroy<>(ffi: *mut dpp_identity_identity_public_key_purpose_Purpose) { ferment::unbox_any(ffi); } + #[cfg(any(test, feature = "server", feature = "fixtures-and-mocks"))] + pub mod test_helpers { + use crate as dash_sdk_bindings; + + #[cfg(any(test, feature = "fixtures-and-mocks"))] + pub mod test_utils { + use crate as dash_sdk_bindings; } + } + } - pub mod v0 { + #[cfg(feature = "server")] + pub mod state_transition_action { + use crate as dash_sdk_bindings; + + pub mod system { + use crate as dash_sdk_bindings; + + pub mod bump_identity_data_contract_nonce_action { use crate as dash_sdk_bindings; - pub mod methods { use crate as dash_sdk_bindings; } + pub mod v0 { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`IdentityPublicKeyV0`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { - pub id: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID, - pub purpose: *mut crate::fermented::types::dpp::identity::identity_public_key::purpose::dpp_identity_identity_public_key_purpose_Purpose, - pub security_level: *mut crate::fermented::types::dpp::identity::identity_public_key::security_level::dpp_identity_identity_public_key_security_level_SecurityLevel, - pub contract_bounds: *mut crate::fermented::types::dpp::identity::identity_public_key::contract_bounds::dpp_identity_identity_public_key_contract_bounds_ContractBounds, - pub key_type: *mut crate::fermented::types::dpp::identity::identity_public_key::key_type::dpp_identity_identity_public_key_key_type_KeyType, - pub read_only: bool, - pub data: *mut crate::fermented::types::platform_value::types::binary_data::platform_value_types_binary_data_BinaryData, - pub disabled_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, + pub mod transformer { use crate as dash_sdk_bindings; } } - impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { - unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> dpp::identity::identity_public_key::v0::IdentityPublicKeyV0 { - let ffi_ref = &*ffi; - dpp::identity::identity_public_key::v0::IdentityPublicKeyV0 { - id: >::ffi_from(ffi_ref.id), - purpose: >::ffi_from(ffi_ref.purpose), - security_level: >::ffi_from(ffi_ref.security_level), - contract_bounds: >::ffi_from_opt(ffi_ref.contract_bounds), - key_type: >::ffi_from(ffi_ref.key_type), - read_only: ffi_ref.read_only, - data: >::ffi_from(ffi_ref.data), - disabled_at: >::ffi_from_opt(ffi_ref.disabled_at), - } - } - } + pub mod transformer { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionTo for dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { - unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::v0::IdentityPublicKeyV0) -> *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { - ferment::boxed(dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { - id: >::ffi_to(obj.id), - purpose: >::ffi_to(obj.purpose), - security_level: >::ffi_to(obj.security_level), - contract_bounds: >::ffi_to_opt(obj.contract_bounds), - key_type: >::ffi_to(obj.key_type), - read_only: obj.read_only, - data: >::ffi_to(obj.data), - disabled_at: >::ffi_to_opt(obj.disabled_at), - }) - } - } + pub mod partially_use_asset_lock_action { + use crate as dash_sdk_bindings; - impl Drop for dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.id); - ferment::unbox_any(ffi_ref.purpose); - ferment::unbox_any(ffi_ref.security_level); - ferment::unbox_any_opt(ffi_ref.contract_bounds); - ferment::unbox_any(ffi_ref.key_type); - ; - ferment::unbox_any(ffi_ref.data); - ferment::unbox_any_opt(ffi_ref.disabled_at); - } - } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_ctor<>(id: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID, purpose: *mut crate::fermented::types::dpp::identity::identity_public_key::purpose::dpp_identity_identity_public_key_purpose_Purpose, security_level: *mut crate::fermented::types::dpp::identity::identity_public_key::security_level::dpp_identity_identity_public_key_security_level_SecurityLevel, contract_bounds: *mut crate::fermented::types::dpp::identity::identity_public_key::contract_bounds::dpp_identity_identity_public_key_contract_bounds_ContractBounds, key_type: *mut crate::fermented::types::dpp::identity::identity_public_key::key_type::dpp_identity_identity_public_key_key_type_KeyType, read_only: bool, data: *mut crate::fermented::types::platform_value::types::binary_data::platform_value_types_binary_data_BinaryData, disabled_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis) -> *mut dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { ferment::boxed(dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { id, purpose, security_level, contract_bounds, key_type, read_only, data, disabled_at }) } + pub mod bump_identity_nonce_action { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_destroy<>(ffi: *mut dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) { ferment::unbox_any(ffi); } + pub mod v0 { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_id<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID { (*obj).id } + pub mod transformer { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_purpose<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::purpose::dpp_identity_identity_public_key_purpose_Purpose { (*obj).purpose } + pub mod transformer { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_security_level<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::security_level::dpp_identity_identity_public_key_security_level_SecurityLevel { (*obj).security_level } + pub mod bump_address_input_nonces_action { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_contract_bounds<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::contract_bounds::dpp_identity_identity_public_key_contract_bounds_ContractBounds { (*obj).contract_bounds } + pub mod v0 { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_key_type<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::key_type::dpp_identity_identity_public_key_key_type_KeyType { (*obj).key_type } + pub mod transformer { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_read_only<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> bool { (*obj).read_only } + pub mod transformer { use crate as dash_sdk_bindings; } + } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_data<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::platform_value::types::binary_data::platform_value_types_binary_data_BinaryData { (*obj).data } + pub mod identity { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_disabled_at<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).disabled_at } + pub mod identity_credit_withdrawal { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_id<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID { (*obj).id } + pub mod v0 { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_purpose<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::purpose::dpp_identity_identity_public_key_purpose_Purpose { (*obj).purpose } + pub mod transformer { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_security_level<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::security_level::dpp_identity_identity_public_key_security_level_SecurityLevel { (*obj).security_level } + pub mod masternode_vote { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_contract_bounds<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::contract_bounds::dpp_identity_identity_public_key_contract_bounds_ContractBounds { (*obj).contract_bounds } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_key_type<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::key_type::dpp_identity_identity_public_key_key_type_KeyType { (*obj).key_type } + pub mod identity_update { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_read_only<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> bool { (*obj).read_only } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_data<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::platform_value::types::binary_data::platform_value_types_binary_data_BinaryData { (*obj).data } + pub mod identity_create_from_addresses { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_disabled_at<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).disabled_at } + pub mod v0 { + use crate as dash_sdk_bindings; - pub mod conversion { use crate as dash_sdk_bindings; } + pub mod transformer { use crate as dash_sdk_bindings; } + } } - pub mod security_level { + pub mod identity_topup_from_addresses { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`SecurityLevel`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum dpp_identity_identity_public_key_security_level_SecurityLevel { MASTER = 0, CRITICAL = 1, HIGH = 2, MEDIUM = 3 } + pub mod v0 { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_security_level_SecurityLevel { - unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_security_level_SecurityLevel) -> dpp::identity::identity_public_key::security_level::SecurityLevel { - let ffi_ref = &*ffi; - match ffi_ref { - dpp_identity_identity_public_key_security_level_SecurityLevel::MASTER => dpp::identity::identity_public_key::security_level::SecurityLevel::MASTER, - dpp_identity_identity_public_key_security_level_SecurityLevel::CRITICAL => dpp::identity::identity_public_key::security_level::SecurityLevel::CRITICAL, - dpp_identity_identity_public_key_security_level_SecurityLevel::HIGH => dpp::identity::identity_public_key::security_level::SecurityLevel::HIGH, - dpp_identity_identity_public_key_security_level_SecurityLevel::MEDIUM => dpp::identity::identity_public_key::security_level::SecurityLevel::MEDIUM - } - } + pub mod transformer { use crate as dash_sdk_bindings; } } + } - impl ferment::FFIConversionTo for dpp_identity_identity_public_key_security_level_SecurityLevel { - unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::security_level::SecurityLevel) -> *const dpp_identity_identity_public_key_security_level_SecurityLevel { - ferment::boxed(match obj { - dpp::identity::identity_public_key::security_level::SecurityLevel::MASTER => dpp_identity_identity_public_key_security_level_SecurityLevel::MASTER, - dpp::identity::identity_public_key::security_level::SecurityLevel::CRITICAL => dpp_identity_identity_public_key_security_level_SecurityLevel::CRITICAL, - dpp::identity::identity_public_key::security_level::SecurityLevel::HIGH => dpp_identity_identity_public_key_security_level_SecurityLevel::HIGH, - dpp::identity::identity_public_key::security_level::SecurityLevel::MEDIUM => dpp_identity_identity_public_key_security_level_SecurityLevel::MEDIUM, - _ => unreachable!("This is unreachable") - }) - } - } + pub mod identity_create { + use crate as dash_sdk_bindings; - impl Drop for dpp_identity_identity_public_key_security_level_SecurityLevel { - fn drop(&mut self) { - unsafe { - match self { - dpp_identity_identity_public_key_security_level_SecurityLevel::MASTER => {} - dpp_identity_identity_public_key_security_level_SecurityLevel::CRITICAL => {} - dpp_identity_identity_public_key_security_level_SecurityLevel::HIGH => {} - dpp_identity_identity_public_key_security_level_SecurityLevel::MEDIUM => {} - _ => unreachable!("This is unreachable") - }; - } - } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_security_level_SecurityLevel_MASTER_ctor() -> *mut dpp_identity_identity_public_key_security_level_SecurityLevel { ferment::boxed(dpp_identity_identity_public_key_security_level_SecurityLevel::MASTER {}) } + pub mod identity_credit_transfer { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_security_level_SecurityLevel_CRITICAL_ctor() -> *mut dpp_identity_identity_public_key_security_level_SecurityLevel { ferment::boxed(dpp_identity_identity_public_key_security_level_SecurityLevel::CRITICAL {}) } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_security_level_SecurityLevel_HIGH_ctor() -> *mut dpp_identity_identity_public_key_security_level_SecurityLevel { ferment::boxed(dpp_identity_identity_public_key_security_level_SecurityLevel::HIGH {}) } + pub mod identity_topup { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_security_level_SecurityLevel_MEDIUM_ctor() -> *mut dpp_identity_identity_public_key_security_level_SecurityLevel { ferment::boxed(dpp_identity_identity_public_key_security_level_SecurityLevel::MEDIUM {}) } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_security_level_SecurityLevel_destroy<>(ffi: *mut dpp_identity_identity_public_key_security_level_SecurityLevel) { ferment::unbox_any(ffi); } + pub mod identity_credit_transfer_to_addresses { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } + } - pub mod accessors { use crate as dash_sdk_bindings; } + pub mod contract { + use crate as dash_sdk_bindings; - pub mod contract_bounds { + pub mod data_contract_create { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`ContractBounds`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum dpp_identity_identity_public_key_contract_bounds_ContractBounds { SingleContract { id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier }, SingleContractDocumentType { id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type_name: *mut std::os::raw::c_char } } - - impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_contract_bounds_ContractBounds { - unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_contract_bounds_ContractBounds) -> dpp::identity::identity_public_key::contract_bounds::ContractBounds { - let ffi_ref = &*ffi; - match ffi_ref { - dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContract { id } => dpp::identity::identity_public_key::contract_bounds::ContractBounds::SingleContract { id: >::ffi_from(*id) }, - dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContractDocumentType { id, document_type_name } => dpp::identity::identity_public_key::contract_bounds::ContractBounds::SingleContractDocumentType { id: >::ffi_from(*id), document_type_name: >::ffi_from(*document_type_name) } - } - } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionTo for dpp_identity_identity_public_key_contract_bounds_ContractBounds { - unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::contract_bounds::ContractBounds) -> *const dpp_identity_identity_public_key_contract_bounds_ContractBounds { - ferment::boxed(match obj { - dpp::identity::identity_public_key::contract_bounds::ContractBounds::SingleContract { id } => dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContract { id: >::ffi_to(id) }, - dpp::identity::identity_public_key::contract_bounds::ContractBounds::SingleContractDocumentType { id, document_type_name } => dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContractDocumentType { id: >::ffi_to(id), document_type_name: >::ffi_to(document_type_name) }, - _ => unreachable!("This is unreachable") - }) - } - } + pub mod data_contract_update { + use crate as dash_sdk_bindings; - impl Drop for dpp_identity_identity_public_key_contract_bounds_ContractBounds { - fn drop(&mut self) { - unsafe { - match self { - dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContract { id } => { ferment::unbox_any(*id); } - dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContractDocumentType { id, document_type_name } => { - ferment::unbox_any(*id); - ; - ferment::unbox_string(*document_type_name); - } - _ => unreachable!("This is unreachable") - }; - } - } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_contract_bounds_ContractBounds_SingleContract_ctor(id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut dpp_identity_identity_public_key_contract_bounds_ContractBounds { ferment::boxed(dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContract { id }) } + pub mod address_funds { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_contract_bounds_ContractBounds_SingleContractDocumentType_ctor(id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type_name: *mut std::os::raw::c_char) -> *mut dpp_identity_identity_public_key_contract_bounds_ContractBounds { ferment::boxed(dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContractDocumentType { id, document_type_name }) } + pub mod address_credit_withdrawal { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_contract_bounds_ContractBounds_destroy<>(ffi: *mut dpp_identity_identity_public_key_contract_bounds_ContractBounds) { ferment::unbox_any(ffi); } + pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod methods { + pub mod address_funds_transfer { use crate as dash_sdk_bindings; - pub mod hash { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } - #[doc = "FFI-representation of the [`KeyCount`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_identity_identity_public_key_KeyCount(*mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID); + pub mod address_funding_from_asset_lock { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_KeyCount { - unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_KeyCount) -> dpp::identity::identity_public_key::KeyCount { - let ffi_ref = &*ffi; - >::ffi_from(ffi_ref.0) - } + pub mod v0 { use crate as dash_sdk_bindings; } } + } - impl ferment::FFIConversionTo for dpp_identity_identity_public_key_KeyCount { unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::KeyCount) -> *const dpp_identity_identity_public_key_KeyCount { ferment::boxed(dpp_identity_identity_public_key_KeyCount(>::ffi_to(obj))) } } + pub mod shielded { + use crate as dash_sdk_bindings; - impl Drop for dpp_identity_identity_public_key_KeyCount { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.0); - } - } + pub mod unshield { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyCount_ctor<>(o_0: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID) -> *mut dpp_identity_identity_public_key_KeyCount { ferment::boxed(dpp_identity_identity_public_key_KeyCount(o_0)) } + pub mod shield_from_asset_lock { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyCount_destroy<>(ffi: *mut dpp_identity_identity_public_key_KeyCount) { ferment::unbox_any(ffi); } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyCount_get_0<>(obj: *const dpp_identity_identity_public_key_KeyCount) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID { (*obj).0 } + pub mod shielded_transfer { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyCount_set_0<>(obj: *const dpp_identity_identity_public_key_KeyCount) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID { (*obj).0 } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`IdentityPublicKey`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum dpp_identity_identity_public_key_IdentityPublicKey { V0(*mut crate::fermented::types::dpp::identity::identity_public_key::v0::dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) } + pub mod shielded_withdrawal { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_IdentityPublicKey { - unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_IdentityPublicKey) -> dpp::identity::identity_public_key::IdentityPublicKey { - let ffi_ref = &*ffi; - match ffi_ref { dpp_identity_identity_public_key_IdentityPublicKey::V0(o_0) => dpp::identity::identity_public_key::IdentityPublicKey::V0(>::ffi_from(*o_0)) } - } + pub mod v0 { use crate as dash_sdk_bindings; } } - impl ferment::FFIConversionTo for dpp_identity_identity_public_key_IdentityPublicKey { - unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::IdentityPublicKey) -> *const dpp_identity_identity_public_key_IdentityPublicKey { - ferment::boxed(match obj { - dpp::identity::identity_public_key::IdentityPublicKey::V0(o_0) => dpp_identity_identity_public_key_IdentityPublicKey::V0(>::ffi_to(o_0)), - _ => unreachable!("This is unreachable") - }) - } - } + pub mod shield { + use crate as dash_sdk_bindings; - impl Drop for dpp_identity_identity_public_key_IdentityPublicKey { - fn drop(&mut self) { - unsafe { - match self { - dpp_identity_identity_public_key_IdentityPublicKey::V0(o_0) => { ferment::unbox_any(*o_0); } - _ => unreachable!("This is unreachable") - }; - } - } + pub mod v0 { use crate as dash_sdk_bindings; } } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_IdentityPublicKey_V0_ctor(o_o_0: *mut crate::fermented::types::dpp::identity::identity_public_key::v0::dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut dpp_identity_identity_public_key_IdentityPublicKey { ferment::boxed(dpp_identity_identity_public_key_IdentityPublicKey::V0(o_o_0)) } + pub mod identity_create_from_shielded_pool { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_IdentityPublicKey_destroy<>(ffi: *mut dpp_identity_identity_public_key_IdentityPublicKey) { ferment::unbox_any(ffi); } + pub mod v0 { use crate as dash_sdk_bindings; } + } } - pub mod accessors { use crate as dash_sdk_bindings; } - - pub mod identity { + pub mod action_convert_to_operations { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`Identity`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum dpp_identity_identity_Identity { V0(*mut crate::fermented::types::dpp::identity::v0::dpp_identity_v0_IdentityV0) } + pub mod identity { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for dpp_identity_identity_Identity { - unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_Identity) -> dpp::identity::identity::Identity { - let ffi_ref = &*ffi; - match ffi_ref { dpp_identity_identity_Identity::V0(o_0) => dpp::identity::identity::Identity::V0(>::ffi_from(*o_0)) } - } - } + pub mod identity_credit_withdrawal_transition { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionTo for dpp_identity_identity_Identity { - unsafe fn ffi_to_const(obj: dpp::identity::identity::Identity) -> *const dpp_identity_identity_Identity { - ferment::boxed(match obj { - dpp::identity::identity::Identity::V0(o_0) => dpp_identity_identity_Identity::V0(>::ffi_to(o_0)), - _ => unreachable!("This is unreachable") - }) - } - } + pub mod identity_top_up_from_addresses_transition { use crate as dash_sdk_bindings; } - impl Drop for dpp_identity_identity_Identity { - fn drop(&mut self) { - unsafe { - match self { - dpp_identity_identity_Identity::V0(o_0) => { ferment::unbox_any(*o_0); } - _ => unreachable!("This is unreachable") - }; - } - } - } + pub mod identity_top_up_transition { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_Identity_V0_ctor(o_o_0: *mut crate::fermented::types::dpp::identity::v0::dpp_identity_v0_IdentityV0) -> *mut dpp_identity_identity_Identity { ferment::boxed(dpp_identity_identity_Identity::V0(o_o_0)) } + pub mod identity_credit_transfer_transition { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_Identity_destroy<>(ffi: *mut dpp_identity_identity_Identity) { ferment::unbox_any(ffi); } - } + pub mod masternode_vote_transition { use crate as dash_sdk_bindings; } - pub mod credits_converter { use crate as dash_sdk_bindings; } + pub mod identity_create_transition { use crate as dash_sdk_bindings; } - pub mod conversion { - use crate as dash_sdk_bindings; + pub mod identity_update_transition { use crate as dash_sdk_bindings; } - #[cfg(feature = "identity-cbor-conversion")] - pub mod cbor { - use crate as dash_sdk_bindings; + pub mod identity_create_from_addresses_transition { use crate as dash_sdk_bindings; } + + pub mod identity_credit_transfer_to_addresses_transition { use crate as dash_sdk_bindings; } } - #[cfg(feature = "identity-value-conversion")] - pub mod platform_value { + pub mod batch { use crate as dash_sdk_bindings; + + pub mod token { use crate as dash_sdk_bindings; } + + pub mod batch_transition { use crate as dash_sdk_bindings; } + + pub mod document { use crate as dash_sdk_bindings; } } - #[cfg(feature = "identity-json-conversion")] - pub mod json { + pub mod system { use crate as dash_sdk_bindings; + + pub mod partially_use_asset_lock { use crate as dash_sdk_bindings; } + + pub mod bump_identity_nonce { use crate as dash_sdk_bindings; } + + pub mod bump_identity_data_contract_nonce { use crate as dash_sdk_bindings; } + + pub mod bump_address_input_nonces { use crate as dash_sdk_bindings; } } - } - pub mod methods { - use crate as dash_sdk_bindings; + pub mod address_funds { + use crate as dash_sdk_bindings; - pub mod create_basic_identity { use crate as dash_sdk_bindings; } - } + pub mod address_credit_withdrawal_transition { use crate as dash_sdk_bindings; } - pub mod v0 { - use crate as dash_sdk_bindings; + pub mod address_funding_from_asset_lock_transition { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`IdentityV0`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_identity_v0_IdentityV0 { - pub id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, - pub public_keys: *mut crate::fermented::generics::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey, - pub balance: u64, - pub revision: *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision, + pub mod address_funds_transfer_transition { use crate as dash_sdk_bindings; } } - impl ferment::FFIConversionFrom for dpp_identity_v0_IdentityV0 { - unsafe fn ffi_from_const(ffi: *const dpp_identity_v0_IdentityV0) -> dpp::identity::v0::IdentityV0 { - let ffi_ref = &*ffi; - dpp::identity::v0::IdentityV0 { id: >::ffi_from(ffi_ref.id), public_keys: >>::ffi_from(ffi_ref.public_keys), balance: ffi_ref.balance, revision: >::ffi_from(ffi_ref.revision) } - } - } + pub mod contract { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionTo for dpp_identity_v0_IdentityV0 { unsafe fn ffi_to_const(obj: dpp::identity::v0::IdentityV0) -> *const dpp_identity_v0_IdentityV0 { ferment::boxed(dpp_identity_v0_IdentityV0 { id: >::ffi_to(obj.id), public_keys: >>::ffi_to(obj.public_keys), balance: obj.balance, revision: >::ffi_to(obj.revision) }) } } + pub mod data_contract_create_transition { use crate as dash_sdk_bindings; } - impl Drop for dpp_identity_v0_IdentityV0 { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.id); - ferment::unbox_any(ffi_ref.public_keys); - ; - ferment::unbox_any(ffi_ref.revision); - } - } + pub mod data_contract_update_transition { use crate as dash_sdk_bindings; } } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_ctor<>(id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, public_keys: *mut crate::fermented::generics::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey, balance: u64, revision: *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision) -> *mut dpp_identity_v0_IdentityV0 { ferment::boxed(dpp_identity_v0_IdentityV0 { id, public_keys, balance, revision }) } - - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_destroy<>(ffi: *mut dpp_identity_v0_IdentityV0) { ferment::unbox_any(ffi); } - - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_get_id<>(obj: *const dpp_identity_v0_IdentityV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).id } - - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_get_public_keys<>(obj: *const dpp_identity_v0_IdentityV0) -> *mut crate::fermented::generics::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { (*obj).public_keys } - - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_get_balance<>(obj: *const dpp_identity_v0_IdentityV0) -> u64 { (*obj).balance } + pub mod shielded { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_get_revision<>(obj: *const dpp_identity_v0_IdentityV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision { (*obj).revision } + pub mod shield_from_asset_lock_transition { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_set_id<>(obj: *const dpp_identity_v0_IdentityV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).id } + pub mod shield_transition { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_set_public_keys<>(obj: *const dpp_identity_v0_IdentityV0) -> *mut crate::fermented::generics::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { (*obj).public_keys } + pub mod unshield_transition { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_set_balance<>(obj: *const dpp_identity_v0_IdentityV0) -> u64 { (*obj).balance } + pub mod shielded_transfer_transition { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_set_revision<>(obj: *const dpp_identity_v0_IdentityV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision { (*obj).revision } + pub mod identity_create_from_shielded_pool_transition { use crate as dash_sdk_bindings; } - pub mod conversion { use crate as dash_sdk_bindings; } + pub mod shielded_withdrawal_transition { use crate as dash_sdk_bindings; } + } } - pub mod state_transition { + pub mod batch { use crate as dash_sdk_bindings; - pub mod asset_lock_proof { + pub mod batched_transition { use crate as dash_sdk_bindings; - pub mod validate_asset_lock_transaction_structure { use crate as dash_sdk_bindings; } - - pub mod chain { use crate as dash_sdk_bindings; } - - pub mod instant { + pub mod token_transition { use crate as dash_sdk_bindings; - pub mod methods { + pub mod token_burn_transition_action { use crate as dash_sdk_bindings; - pub mod validate_structure { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } - } - } - } - pub mod errors { use crate as dash_sdk_bindings; } + pub mod token_mint_transition_action { + use crate as dash_sdk_bindings; - pub mod fields { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[cfg(feature = "fixtures-and-mocks")] - pub mod tests { - use crate as dash_sdk_bindings; + pub mod token_freeze_transition_action { + use crate as dash_sdk_bindings; - pub mod fixtures { use crate as dash_sdk_bindings; } - } + pub mod v0 { + use crate as dash_sdk_bindings; - pub mod util { - use crate as dash_sdk_bindings; + pub mod transformer { use crate as dash_sdk_bindings; } + } + } - #[cfg(feature = "cbor")] - pub mod cbor_value { - use crate as dash_sdk_bindings; + pub mod token_emergency_action_transition_action { + use crate as dash_sdk_bindings; - pub mod convert { use crate as dash_sdk_bindings; } + pub mod v0 { + use crate as dash_sdk_bindings; - pub mod canonical { use crate as dash_sdk_bindings; } - } + pub mod transformer { use crate as dash_sdk_bindings; } + } + } - pub mod json_schema { use crate as dash_sdk_bindings; } + pub mod token_base_transition_action { + use crate as dash_sdk_bindings; - pub mod strings { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } - } + pub mod token_transition_action_type { use crate as dash_sdk_bindings; } - pub mod json_value { - use crate as dash_sdk_bindings; + pub mod token_direct_purchase_transition_action { + use crate as dash_sdk_bindings; - pub mod remove_path { use crate as dash_sdk_bindings; } + pub mod v0 { + use crate as dash_sdk_bindings; - pub mod insert_with_path { use crate as dash_sdk_bindings; } - } + pub mod transformer { use crate as dash_sdk_bindings; } + } + } - pub mod json_path { use crate as dash_sdk_bindings; } + pub mod token_claim_transition_action { + use crate as dash_sdk_bindings; - pub mod deserializer { use crate as dash_sdk_bindings; } - } + pub mod v0 { + use crate as dash_sdk_bindings; - pub mod core_subsidy { - use crate as dash_sdk_bindings; + pub mod transformer { use crate as dash_sdk_bindings; } + } + } - pub mod epoch_core_reward_credits_for_distribution { - use crate as dash_sdk_bindings; + pub mod token_config_update_transition_action { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } - } + pub mod v0 { + use crate as dash_sdk_bindings; - #[cfg(feature = "system_contracts")] - pub mod system_data_contracts { - use crate as dash_sdk_bindings; - } + pub mod transformer { use crate as dash_sdk_bindings; } + } + } - pub mod data_contract { - use crate as dash_sdk_bindings; + pub mod token_destroy_frozen_funds_transition_action { + use crate as dash_sdk_bindings; - pub mod serialized_version { use crate as dash_sdk_bindings; } + pub mod v0 { + use crate as dash_sdk_bindings; - #[cfg(any(feature = "state-transitions", feature = "factories"))] - pub mod created_data_contract { - use crate as dash_sdk_bindings; + pub mod transformer { use crate as dash_sdk_bindings; } + } + } - pub mod fields { use crate as dash_sdk_bindings; } - } + pub mod token_unfreeze_transition_action { + use crate as dash_sdk_bindings; - pub mod accessors { use crate as dash_sdk_bindings; } + pub mod v0 { + use crate as dash_sdk_bindings; - pub mod group { - use crate as dash_sdk_bindings; + pub mod transformer { use crate as dash_sdk_bindings; } + } + } - pub mod accessors { use crate as dash_sdk_bindings; } + pub mod token_transfer_transition_action { + use crate as dash_sdk_bindings; - pub mod v0 { - use crate as dash_sdk_bindings; + pub mod v0 { + use crate as dash_sdk_bindings; - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } - } + pub mod transformer { use crate as dash_sdk_bindings; } + } + } - pub mod methods { use crate as dash_sdk_bindings; } - } + pub mod token_set_price_for_direct_purchase_transition_action { + use crate as dash_sdk_bindings; - pub mod v1 { - use crate as dash_sdk_bindings; + pub mod v0 { + use crate as dash_sdk_bindings; - pub mod serialization { use crate as dash_sdk_bindings; } + pub mod transformer { use crate as dash_sdk_bindings; } + } + } + } - pub mod methods { - use crate as dash_sdk_bindings; + pub mod document_transition { + use crate as dash_sdk_bindings; - pub mod schema { use crate as dash_sdk_bindings; } - } + pub mod document_base_transition_action { + use crate as dash_sdk_bindings; - pub mod conversion { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod document_type { - use crate as dash_sdk_bindings; + pub mod document_replace_transition_action { + use crate as dash_sdk_bindings; - pub mod token_costs { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod v0 { use crate as dash_sdk_bindings; } + pub mod document_create_transition_action { + use crate as dash_sdk_bindings; - pub mod class_methods { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod try_from_schema { - use crate as dash_sdk_bindings; + pub mod document_delete_transition_action { + use crate as dash_sdk_bindings; - pub mod v0 { + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod document_update_price_transition_action { use crate as dash_sdk_bindings; - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } + pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod v1 { + pub mod document_purchase_transition_action { use crate as dash_sdk_bindings; - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } + pub mod v0 { use crate as dash_sdk_bindings; } } - } - pub mod create_document_types_from_document_schemas { - use crate as dash_sdk_bindings; + pub mod document_transfer_transition_action { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } } } + } + } - pub mod schema { - use crate as dash_sdk_bindings; + #[cfg(any(feature = "server", feature = "verify"))] + pub mod drive { + use crate as dash_sdk_bindings; - pub mod enrich_with_base_schema { use crate as dash_sdk_bindings; } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod identity { + use crate as dash_sdk_bindings; - #[cfg(feature = "validation")] - pub mod validate_schema_compatibility { - use crate as dash_sdk_bindings; - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod balance { + use crate as dash_sdk_bindings; - #[cfg(feature = "validation")] - pub mod recursive_schema_validator { + #[cfg(feature = "server")] + pub mod update { use crate as dash_sdk_bindings; - pub mod traversal_validator { use crate as dash_sdk_bindings; } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } } - pub mod find_identifier_and_binary_paths { use crate as dash_sdk_bindings; } - - #[cfg(feature = "validation")] - pub mod validate_max_depth { + #[cfg(feature = "server")] + pub mod prove { use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } } } - pub mod methods { + #[cfg(any(feature = "server", feature = "verify"))] + pub mod fetch { use crate as dash_sdk_bindings; - #[cfg(feature = "validation")] - pub mod validate_update { + #[cfg(feature = "server")] + pub mod prove { use crate as dash_sdk_bindings; - pub mod v0 { + pub mod prove_full_identity_by_non_unique_public_key_hash { use crate as dash_sdk_bindings; - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } + pub mod v0 { use crate as dash_sdk_bindings; } } - } - } - pub mod property { use crate as dash_sdk_bindings; } + pub mod prove_identity_id_by_unique_public_key_hash { + use crate as dash_sdk_bindings; - pub mod index_level { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod v1 { use crate as dash_sdk_bindings; } + pub mod prove_full_identity { + use crate as dash_sdk_bindings; - pub mod index { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod accessors { use crate as dash_sdk_bindings; } - } + pub mod prove_identity_ids_by_unique_public_key_hashes { + use crate as dash_sdk_bindings; - pub mod change_control_rules { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod associated_token { - use crate as dash_sdk_bindings; + pub mod prove_full_identity_by_unique_public_key_hash { + use crate as dash_sdk_bindings; - pub mod token_marketplace_rules { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod accessors { use crate as dash_sdk_bindings; } + pub mod prove_full_identities { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod token_distribution_rules { - use crate as dash_sdk_bindings; + pub mod prove_full_identities_by_unique_public_key_hashes { + use crate as dash_sdk_bindings; - pub mod accessors { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod prove_identities_contract_keys { use crate as dash_sdk_bindings; } + } - pub mod token_perpetual_distribution { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod partial_identity { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } + pub mod fetch_identity_balance_with_keys { use crate as dash_sdk_bindings; } - pub mod reward_distribution_moment { use crate as dash_sdk_bindings; } + pub mod fetch_identity_keys { use crate as dash_sdk_bindings; } - pub mod reward_distribution_type { - use crate as dash_sdk_bindings; + pub mod fetch_identity_balance_with_keys_and_revision { use crate as dash_sdk_bindings; } - pub mod validation { use crate as dash_sdk_bindings; } - } + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } - pub mod methods { use crate as dash_sdk_bindings; } + pub mod fetch_identity_revision_with_keys { use crate as dash_sdk_bindings; } - pub mod distribution_function { + pub mod fetch_identity_with_balance { use crate as dash_sdk_bindings; } + } + + #[cfg(feature = "server")] + pub mod revision { use crate as dash_sdk_bindings; - pub mod evaluate_interval { - use crate as dash_sdk_bindings; + pub mod fetch_identity_revision { use crate as dash_sdk_bindings; } - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; } + } - pub mod validation { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod nonce { + use crate as dash_sdk_bindings; - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; } - pub mod evaluate { - use crate as dash_sdk_bindings; + pub mod prove_identity_nonce { use crate as dash_sdk_bindings; } - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } - } + pub mod fetch_identity_nonce { use crate as dash_sdk_bindings; } } - } - pub mod token_pre_programmed_distribution { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod fetch_by_public_key_hashes { + use crate as dash_sdk_bindings; - pub mod accessors { use crate as dash_sdk_bindings; } - } + pub mod fetch_full_identities_by_unique_public_key_hashes { use crate as dash_sdk_bindings; } - pub mod token_configuration_convention { - use crate as dash_sdk_bindings; + pub mod fetch_full_identity_by_non_unique_public_key_hash { use crate as dash_sdk_bindings; } - pub mod accessors { use crate as dash_sdk_bindings; } + pub mod fetch_identity_ids_by_unique_public_key_hashes { use crate as dash_sdk_bindings; } - pub mod methods { - use crate as dash_sdk_bindings; + pub mod has_non_unique_public_key_hash { use crate as dash_sdk_bindings; } - pub mod validate_localizations { use crate as dash_sdk_bindings; } - } - } + pub mod fetch_full_identity_by_unique_public_key_hash { use crate as dash_sdk_bindings; } - pub mod token_keeps_history_rules { - use crate as dash_sdk_bindings; + pub mod fetch_identity_id_by_unique_public_key_hash { use crate as dash_sdk_bindings; } - pub mod v0 { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } - pub mod accessors { use crate as dash_sdk_bindings; } - } + pub mod has_non_unique_public_key_hash_already_for_identity { use crate as dash_sdk_bindings; } - pub mod token_configuration { - use crate as dash_sdk_bindings; + pub mod has_unique_public_key_hash { use crate as dash_sdk_bindings; } - pub mod v0 { use crate as dash_sdk_bindings; } + pub mod has_any_of_unique_public_key_hashes { use crate as dash_sdk_bindings; } - pub mod methods { + pub mod fetch_identity_ids_by_non_unique_public_key_hash { use crate as dash_sdk_bindings; } + } + + #[cfg(feature = "server")] + pub mod balance { use crate as dash_sdk_bindings; - pub mod validate_token_configuration_update { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } - pub mod apply_token_configuration_item { use crate as dash_sdk_bindings; } + pub mod fetch_identity_negative_balance { use crate as dash_sdk_bindings; } - pub mod can_apply_token_configuration_item { use crate as dash_sdk_bindings; } + pub mod fetch_identity_balance_include_debt { use crate as dash_sdk_bindings; } - pub mod validate_token_configuration_groups_exist { use crate as dash_sdk_bindings; } + pub mod fetch_identity_balance { use crate as dash_sdk_bindings; } + } - pub mod authorized_action_takers_for_configuration_item { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; } - pub mod accessors { use crate as dash_sdk_bindings; } - } + #[cfg(feature = "server")] + pub mod full_identity { + use crate as dash_sdk_bindings; - pub mod token_configuration_localization { - use crate as dash_sdk_bindings; + pub mod fetch_full_identity { use crate as dash_sdk_bindings; } - pub mod accessors { use crate as dash_sdk_bindings; } + pub mod fetch_full_identities { use crate as dash_sdk_bindings; } - pub mod v0 { use crate as dash_sdk_bindings; } - } - } + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } - #[cfg(any( - feature = "data-contract-value-conversion", - feature = "data-contract-cbor-conversion", - feature = "data-contract-json-conversion" - ))] - pub mod conversion { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod contract_keys { + use crate as dash_sdk_bindings; - #[cfg(feature = "data-contract-cbor-conversion")] - pub mod cbor { - use crate as dash_sdk_bindings; - } + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } - #[cfg(feature = "data-contract-value-conversion")] - pub mod value { - use crate as dash_sdk_bindings; - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod queries { + use crate as dash_sdk_bindings; - #[cfg(feature = "data-contract-json-conversion")] - pub mod json { - use crate as dash_sdk_bindings; + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } } - } - - pub mod extra { - use crate as dash_sdk_bindings; - #[cfg(test)] - pub mod drive_api_tests { + #[cfg(feature = "server")] + pub mod withdrawals { use crate as dash_sdk_bindings; - } - } - pub mod storage_requirements { use crate as dash_sdk_bindings; } + pub mod calculate_current_withdrawal_limit { use crate as dash_sdk_bindings; } - pub mod methods { - use crate as dash_sdk_bindings; + pub mod transaction { + use crate as dash_sdk_bindings; - pub mod registration_cost { use crate as dash_sdk_bindings; } + pub mod index { + use crate as dash_sdk_bindings; - pub mod schema { use crate as dash_sdk_bindings; } + pub mod add_update_next_withdrawal_transaction_index_operation { use crate as dash_sdk_bindings; } - #[cfg(feature = "validation")] - pub mod validate_document { - use crate as dash_sdk_bindings; - } + pub mod fetch_next_withdrawal_transaction_index { use crate as dash_sdk_bindings; } + } - pub mod equal_ignoring_time_based_fields { use crate as dash_sdk_bindings; } + pub mod queue { + use crate as dash_sdk_bindings; - #[cfg(feature = "validation")] - pub mod validate_update { - use crate as dash_sdk_bindings; + pub mod add_enqueue_untied_withdrawal_transaction_operations { use crate as dash_sdk_bindings; } - pub mod v0 { + pub mod move_broadcasted_withdrawal_transactions_back_to_queue_operations { use crate as dash_sdk_bindings; } + + pub mod dequeue_untied_withdrawal_transactions { use crate as dash_sdk_bindings; } + + pub mod remove_broadcasted_withdrawal_transactions_after_completion { use crate as dash_sdk_bindings; } + } + } + + pub mod document { use crate as dash_sdk_bindings; - #[cfg(test)] - pub mod tests { + pub mod find_withdrawal_documents_by_status_and_transaction_indices { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod fetch_oldest_withdrawal_documents_by_status { use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } } } - #[cfg(feature = "validation")] - pub mod validate_groups { + #[cfg(any(feature = "server", feature = "verify"))] + pub mod key { use crate as dash_sdk_bindings; - } - } - pub mod v0 { - use crate as dash_sdk_bindings; + #[cfg(any(feature = "server", feature = "verify"))] + pub mod queries { + use crate as dash_sdk_bindings; + } - pub mod data_contract { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod insert_key_hash_identity_reference { + use crate as dash_sdk_bindings; - pub mod conversion { use crate as dash_sdk_bindings; } + pub mod insert_non_unique_public_key_hash_reference_to_identity { use crate as dash_sdk_bindings; } - pub mod serialization { use crate as dash_sdk_bindings; } + pub mod estimation_costs { + use crate as dash_sdk_bindings; - pub mod methods { - use crate as dash_sdk_bindings; + pub mod add_estimation_costs_for_insert_non_unique_public_key_hash_reference { use crate as dash_sdk_bindings; } - pub mod schema { use crate as dash_sdk_bindings; } - } - } + pub mod add_estimation_costs_for_insert_unique_public_key_hash_reference { use crate as dash_sdk_bindings; } + } - #[cfg(feature = "factories")] - pub mod factory { - use crate as dash_sdk_bindings; + pub mod insert_reference_to_non_unique_key { use crate as dash_sdk_bindings; } - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod insert_unique_public_key_hash_reference_to_identity { use crate as dash_sdk_bindings; } - pub mod config { - use crate as dash_sdk_bindings; + pub mod insert_reference_to_unique_key { use crate as dash_sdk_bindings; } + } - pub mod fields { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod insert { + use crate as dash_sdk_bindings; - pub mod methods { - use crate as dash_sdk_bindings; + pub mod replace_key_in_storage { use crate as dash_sdk_bindings; } - pub mod validate_update { use crate as dash_sdk_bindings; } - } - } + pub mod insert_key_searchable_references { use crate as dash_sdk_bindings; } - pub mod errors { use crate as dash_sdk_bindings; } - } - } + pub mod insert_key_to_storage { use crate as dash_sdk_bindings; } - pub mod drive_proof_verifier { - use crate as dash_sdk_bindings; + pub mod create_key_tree_with_keys { use crate as dash_sdk_bindings; } - pub mod types { - use crate as dash_sdk_bindings; + pub mod create_new_identity_key_query_trees { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`VotePollsGroupedByTimestamp`]"] - #[repr(C)] - #[derive(Clone)] - pub struct drive_proof_verifier_types_VotePollsGroupedByTimestamp(*mut crate::fermented::generics::Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll); + pub mod insert_new_unique_key { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionFrom for drive_proof_verifier_types_VotePollsGroupedByTimestamp { - unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_VotePollsGroupedByTimestamp) -> drive_proof_verifier::types::VotePollsGroupedByTimestamp { - let ffi_ref = &*ffi; - drive_proof_verifier::types::VotePollsGroupedByTimestamp()>>>::ffi_from(ffi_ref.0)) - } - } + pub mod insert_new_non_unique_key { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionTo for drive_proof_verifier_types_VotePollsGroupedByTimestamp { unsafe fn ffi_to_const(obj: drive_proof_verifier::types::VotePollsGroupedByTimestamp) -> *const drive_proof_verifier_types_VotePollsGroupedByTimestamp { ferment::boxed(drive_proof_verifier_types_VotePollsGroupedByTimestamp()>>>::ffi_to(obj.0))) } } + #[cfg(feature = "server")] + pub mod prove { + use crate as dash_sdk_bindings; - impl Drop for drive_proof_verifier_types_VotePollsGroupedByTimestamp { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.0); - } - } - } + pub mod prove_identity_keys { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_VotePollsGroupedByTimestamp_ctor<>(o_0: *mut crate::fermented::generics::Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) -> *mut drive_proof_verifier_types_VotePollsGroupedByTimestamp { ferment::boxed(drive_proof_verifier_types_VotePollsGroupedByTimestamp(o_0)) } + pub mod prove_identities_all_keys { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_VotePollsGroupedByTimestamp_destroy<>(ffi: *mut drive_proof_verifier_types_VotePollsGroupedByTimestamp) { ferment::unbox_any(ffi); } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod fetch { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_VotePollsGroupedByTimestamp_get_0<>(obj: *const drive_proof_verifier_types_VotePollsGroupedByTimestamp) -> *mut crate::fermented::generics::Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { (*obj).0 } + #[cfg(feature = "server")] + pub mod fetch_identities_all_keys { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_VotePollsGroupedByTimestamp_set_0<>(obj: *const drive_proof_verifier_types_VotePollsGroupedByTimestamp) -> *mut crate::fermented::generics::Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { (*obj).0 } + #[cfg(feature = "server")] + pub mod fetch_all_current_identity_keys { + use crate as dash_sdk_bindings; + } - #[doc = "FFI-representation of the [`ContestedResources`]"] - #[repr(C)] - #[derive(Clone)] - pub struct drive_proof_verifier_types_ContestedResources(*mut crate::fermented::generics::Vec_drive_proof_verifier_types_ContestedResource); + #[cfg(feature = "server")] + pub mod fetch_all_identity_keys { + use crate as dash_sdk_bindings; + } - impl ferment::FFIConversionFrom for drive_proof_verifier_types_ContestedResources { - unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_ContestedResources) -> drive_proof_verifier::types::ContestedResources { - let ffi_ref = &*ffi; - drive_proof_verifier::types::ContestedResources(>>::ffi_from(ffi_ref.0)) + #[cfg(feature = "server")] + pub mod fetch_identity_keys { + use crate as dash_sdk_bindings; + } + } } - } - impl ferment::FFIConversionTo for drive_proof_verifier_types_ContestedResources { unsafe fn ffi_to_const(obj: drive_proof_verifier::types::ContestedResources) -> *const drive_proof_verifier_types_ContestedResources { ferment::boxed(drive_proof_verifier_types_ContestedResources(>>::ffi_to(obj.0))) } } + #[cfg(feature = "server")] + pub mod insert { + use crate as dash_sdk_bindings; - impl Drop for drive_proof_verifier_types_ContestedResources { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.0); - } + pub mod add_new_identity { use crate as dash_sdk_bindings; } } - } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResources_ctor<>(o_0: *mut crate::fermented::generics::Vec_drive_proof_verifier_types_ContestedResource) -> *mut drive_proof_verifier_types_ContestedResources { ferment::boxed(drive_proof_verifier_types_ContestedResources(o_0)) } + #[cfg(feature = "server")] + pub mod estimation_costs { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResources_destroy<>(ffi: *mut drive_proof_verifier_types_ContestedResources) { ferment::unbox_any(ffi); } + pub mod for_identity_contract_info { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResources_get_0<>(obj: *const drive_proof_verifier_types_ContestedResources) -> *mut crate::fermented::generics::Vec_drive_proof_verifier_types_ContestedResource { (*obj).0 } + pub mod for_update_revision { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResources_set_0<>(obj: *const drive_proof_verifier_types_ContestedResources) -> *mut crate::fermented::generics::Vec_drive_proof_verifier_types_ContestedResource { (*obj).0 } + pub mod for_identity_contract_info_group_key_purpose { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`Contenders`]"] - #[repr(C)] - #[derive(Clone)] - pub struct drive_proof_verifier_types_Contenders { - pub winner: *mut crate::fermented::generics::Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo, - pub contenders: *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument, - pub abstain_vote_tally: *mut u32, - pub lock_vote_tally: *mut u32, - } + pub mod for_identity_contract_info_group { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionFrom for drive_proof_verifier_types_Contenders { - unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_Contenders) -> drive_proof_verifier::types::Contenders { - let ffi_ref = &*ffi; - drive_proof_verifier::types::Contenders { - winner: >::ffi_from_opt(ffi_ref.winner), - contenders: >>::ffi_from(ffi_ref.contenders), - abstain_vote_tally: ferment::from_opt_primitive(ffi_ref.abstain_vote_tally), - lock_vote_tally: ferment::from_opt_primitive(ffi_ref.lock_vote_tally), - } - } - } + pub mod for_update_nonce { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionTo for drive_proof_verifier_types_Contenders { - unsafe fn ffi_to_const(obj: drive_proof_verifier::types::Contenders) -> *const drive_proof_verifier_types_Contenders { - ferment::boxed(drive_proof_verifier_types_Contenders { winner: >::ffi_to_opt(obj.winner), contenders: >>::ffi_to(obj.contenders), abstain_vote_tally: ferment::to_opt_primitive(obj.abstain_vote_tally), lock_vote_tally: ferment::to_opt_primitive(obj.lock_vote_tally) }) - } - } + pub mod for_keys_for_identity_id { use crate as dash_sdk_bindings; } - impl Drop for drive_proof_verifier_types_Contenders { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any_opt(ffi_ref.winner); - ferment::unbox_any(ffi_ref.contenders); - ferment::destroy_opt_primitive(ffi_ref.abstain_vote_tally); - ferment::destroy_opt_primitive(ffi_ref.lock_vote_tally); - } - } - } + pub mod for_identity_contract_info_group_keys { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_ctor<>(winner: *mut crate::fermented::generics::Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo, contenders: *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument, abstain_vote_tally: *mut u32, lock_vote_tally: *mut u32) -> *mut drive_proof_verifier_types_Contenders { ferment::boxed(drive_proof_verifier_types_Contenders { winner, contenders, abstain_vote_tally, lock_vote_tally }) } + pub mod for_balances { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_destroy<>(ffi: *mut drive_proof_verifier_types_Contenders) { ferment::unbox_any(ffi); } + pub mod for_root_key_reference_tree { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_get_winner<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut crate::fermented::generics::Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { (*obj).winner } - - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_get_contenders<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { (*obj).contenders } - - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_get_abstain_vote_tally<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut u32 { (*obj).abstain_vote_tally } - - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_get_lock_vote_tally<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut u32 { (*obj).lock_vote_tally } - - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_set_winner<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut crate::fermented::generics::Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { (*obj).winner } - - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_set_contenders<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { (*obj).contenders } + pub mod for_authentication_keys_security_level_in_key_reference_tree { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_set_abstain_vote_tally<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut u32 { (*obj).abstain_vote_tally } + pub mod for_negative_credit { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_set_lock_vote_tally<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut u32 { (*obj).lock_vote_tally } + pub mod for_purpose_in_key_reference_tree { use crate as dash_sdk_bindings; } + } - #[doc = "FFI-representation of the [`Voters`]"] - #[repr(C)] - #[derive(Clone)] - pub struct drive_proof_verifier_types_Voters(*mut crate::fermented::generics::std_collections_BTreeSet_drive_proof_verifier_types_Voter); + #[cfg(feature = "server")] + pub mod update { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for drive_proof_verifier_types_Voters { - unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_Voters) -> drive_proof_verifier::types::Voters { - let ffi_ref = &*ffi; - drive_proof_verifier::types::Voters(>>::ffi_from(ffi_ref.0)) - } - } + pub mod structs { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionTo for drive_proof_verifier_types_Voters { unsafe fn ffi_to_const(obj: drive_proof_verifier::types::Voters) -> *const drive_proof_verifier_types_Voters { ferment::boxed(drive_proof_verifier_types_Voters(>>::ffi_to(obj.0))) } } + pub mod apply_balance_change_outcome { use crate as dash_sdk_bindings; } - impl Drop for drive_proof_verifier_types_Voters { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.0); + pub mod add_to_previous_balance_outcome { use crate as dash_sdk_bindings; } } - } - } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Voters_ctor<>(o_0: *mut crate::fermented::generics::std_collections_BTreeSet_drive_proof_verifier_types_Voter) -> *mut drive_proof_verifier_types_Voters { ferment::boxed(drive_proof_verifier_types_Voters(o_0)) } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Voters_destroy<>(ffi: *mut drive_proof_verifier_types_Voters) { ferment::unbox_any(ffi); } + pub mod methods { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Voters_get_0<>(obj: *const drive_proof_verifier_types_Voters) -> *mut crate::fermented::generics::std_collections_BTreeSet_drive_proof_verifier_types_Voter { (*obj).0 } + pub mod merge_identity_nonce { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Voters_set_0<>(obj: *const drive_proof_verifier_types_Voters) -> *mut crate::fermented::generics::std_collections_BTreeSet_drive_proof_verifier_types_Voter { (*obj).0 } + pub mod add_new_unique_keys_to_identity { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`ResourceVotesByIdentity`]"] - #[repr(C)] - #[derive(Clone)] - pub struct drive_proof_verifier_types_ResourceVotesByIdentity(*mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote); + pub mod apply_balance_change_from_fee_to_identity { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionFrom for drive_proof_verifier_types_ResourceVotesByIdentity { - unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_ResourceVotesByIdentity) -> drive_proof_verifier::types::ResourceVotesByIdentity { - let ffi_ref = &*ffi; - >>>::ffi_from(ffi_ref.0) - } - } + pub mod refresh_identity_key_reference_operations { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionTo for drive_proof_verifier_types_ResourceVotesByIdentity { unsafe fn ffi_to_const(obj: drive_proof_verifier::types::ResourceVotesByIdentity) -> *const drive_proof_verifier_types_ResourceVotesByIdentity { ferment::boxed(drive_proof_verifier_types_ResourceVotesByIdentity(>>>::ffi_to(obj))) } } + pub mod re_enable_identity_keys { use crate as dash_sdk_bindings; } - impl Drop for drive_proof_verifier_types_ResourceVotesByIdentity { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.0); - } - } - } + pub mod remove_from_identity_balance { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_ResourceVotesByIdentity_ctor<>(o_0: *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote) -> *mut drive_proof_verifier_types_ResourceVotesByIdentity { ferment::boxed(drive_proof_verifier_types_ResourceVotesByIdentity(o_0)) } + pub mod disable_identity_keys { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_ResourceVotesByIdentity_destroy<>(ffi: *mut drive_proof_verifier_types_ResourceVotesByIdentity) { ferment::unbox_any(ffi); } + pub mod add_new_non_unique_keys_to_identity { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_ResourceVotesByIdentity_get_0<>(obj: *const drive_proof_verifier_types_ResourceVotesByIdentity) -> *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { (*obj).0 } + pub mod update_identity_revision { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_ResourceVotesByIdentity_set_0<>(obj: *const drive_proof_verifier_types_ResourceVotesByIdentity) -> *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { (*obj).0 } + pub mod add_to_identity_balance { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`ContestedResource`]"] - #[repr(C)] - #[derive(Clone)] - pub struct drive_proof_verifier_types_ContestedResource(*mut crate::fermented::types::platform_value::platform_value_Value); + pub mod add_to_previous_balance { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionFrom for drive_proof_verifier_types_ContestedResource { - unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_ContestedResource) -> drive_proof_verifier::types::ContestedResource { - let ffi_ref = &*ffi; - drive_proof_verifier::types::ContestedResource(>::ffi_from(ffi_ref.0)) - } - } + pub mod add_new_keys_to_identity { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionTo for drive_proof_verifier_types_ContestedResource { unsafe fn ffi_to_const(obj: drive_proof_verifier::types::ContestedResource) -> *const drive_proof_verifier_types_ContestedResource { ferment::boxed(drive_proof_verifier_types_ContestedResource(>::ffi_to(obj.0))) } } + pub mod operations { + use crate as dash_sdk_bindings; - impl Drop for drive_proof_verifier_types_ContestedResource { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.0); - } - } - } + pub mod update_identity_revision_operation { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResource_ctor<>(o_0: *mut crate::fermented::types::platform_value::platform_value_Value) -> *mut drive_proof_verifier_types_ContestedResource { ferment::boxed(drive_proof_verifier_types_ContestedResource(o_0)) } + pub mod initialize_negative_identity_balance_operation { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResource_destroy<>(ffi: *mut drive_proof_verifier_types_ContestedResource) { ferment::unbox_any(ffi); } + pub mod update_identity_negative_credit_operation { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResource_get_0<>(obj: *const drive_proof_verifier_types_ContestedResource) -> *mut crate::fermented::types::platform_value::platform_value_Value { (*obj).0 } + pub mod initialize_identity_revision_operation { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResource_set_0<>(obj: *const drive_proof_verifier_types_ContestedResource) -> *mut crate::fermented::types::platform_value::platform_value_Value { (*obj).0 } + pub mod initialize_identity_nonce_operation { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`Voter`]"] - #[repr(C)] - #[derive(Clone)] - pub struct drive_proof_verifier_types_Voter(*mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier); + pub mod merge_identity_nonce_operations { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for drive_proof_verifier_types_Voter { - unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_Voter) -> drive_proof_verifier::types::Voter { - let ffi_ref = &*ffi; - drive_proof_verifier::types::Voter(>::ffi_from(ffi_ref.0)) - } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionTo for drive_proof_verifier_types_Voter { unsafe fn ffi_to_const(obj: drive_proof_verifier::types::Voter) -> *const drive_proof_verifier_types_Voter { ferment::boxed(drive_proof_verifier_types_Voter(>::ffi_to(obj.0))) } } + pub mod insert_identity_balance_operation { use crate as dash_sdk_bindings; } - impl Drop for drive_proof_verifier_types_Voter { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.0); + pub mod update_identity_balance_operation { use crate as dash_sdk_bindings; } } } - } - - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Voter_ctor<>(o_0: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut drive_proof_verifier_types_Voter { ferment::boxed(drive_proof_verifier_types_Voter(o_0)) } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Voter_destroy<>(ffi: *mut drive_proof_verifier_types_Voter) { ferment::unbox_any(ffi); } - - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Voter_get_0<>(obj: *const drive_proof_verifier_types_Voter) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).0 } + #[cfg(all(test, any(feature = "server", feature = "verify")))] + pub mod tests { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Voter_set_0<>(obj: *const drive_proof_verifier_types_Voter) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).0 } - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod contract_info { + use crate as dash_sdk_bindings; - pub mod proof { use crate as dash_sdk_bindings; } - } + #[cfg(feature = "server")] + pub mod identity_contract_nonce { + use crate as dash_sdk_bindings; - pub mod dash_sdk { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod fetch_identity_contract_nonce { + use crate as dash_sdk_bindings; - pub mod error { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } - } + #[cfg(feature = "server")] + pub mod prove_identity_contract_nonce { + use crate as dash_sdk_bindings; - pub mod mock { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[cfg(feature = "mocks")] - pub mod sdk { - use crate as dash_sdk_bindings; - } - } + pub mod merge_identity_contract_nonce { + use crate as dash_sdk_bindings; - pub mod sync { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - pub mod core { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod keys { + use crate as dash_sdk_bindings; - pub mod platform { - use crate as dash_sdk_bindings; + pub mod add_potential_contract_info_for_contract_bounded_key { use crate as dash_sdk_bindings; } - pub mod transition { use crate as dash_sdk_bindings; } + pub mod refresh_potential_contract_info_key_references { use crate as dash_sdk_bindings; } + } + } + } - pub mod tokens { + #[cfg(feature = "server")] + pub mod platform_state { use crate as dash_sdk_bindings; - pub mod transitions { use crate as dash_sdk_bindings; } + pub mod fetch_platform_state_bytes { use crate as dash_sdk_bindings; } - pub mod builders { use crate as dash_sdk_bindings; } + pub mod store_platform_state_bytes { use crate as dash_sdk_bindings; } } - pub mod documents { + #[cfg(any(feature = "server", feature = "verify"))] + pub mod address_funds { use crate as dash_sdk_bindings; - pub mod transitions { use crate as dash_sdk_bindings; } - } + #[cfg(feature = "server")] + pub mod fetch { + use crate as dash_sdk_bindings; - pub mod types { - use crate as dash_sdk_bindings; + pub mod fetch_balances_with_nonces { use crate as dash_sdk_bindings; } - pub mod identity { + pub mod fetch_balance_and_nonce { use crate as dash_sdk_bindings; } + } + + #[cfg(feature = "server")] + pub mod add_balance_to_address { use crate as dash_sdk_bindings; + } - #[doc = "FFI-representation of the [`PublicKeyHash`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dash_sdk_platform_types_identity_PublicKeyHash(*mut crate::fermented::generics::Arr_u8_20); + #[cfg(feature = "server")] + pub mod estimated_costs { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for dash_sdk_platform_types_identity_PublicKeyHash { - unsafe fn ffi_from_const(ffi: *const dash_sdk_platform_types_identity_PublicKeyHash) -> dash_sdk::platform::types::identity::PublicKeyHash { - let ffi_ref = &*ffi; - dash_sdk::platform::types::identity::PublicKeyHash(>::ffi_from(ffi_ref.0)) - } + pub mod for_address_balance_update { use crate as dash_sdk_bindings; } + } + + #[cfg(feature = "server")] + pub mod prove { + use crate as dash_sdk_bindings; + + pub mod prove_balances_with_nonces { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - impl ferment::FFIConversionTo for dash_sdk_platform_types_identity_PublicKeyHash { unsafe fn ffi_to_const(obj: dash_sdk::platform::types::identity::PublicKeyHash) -> *const dash_sdk_platform_types_identity_PublicKeyHash { ferment::boxed(dash_sdk_platform_types_identity_PublicKeyHash(>::ffi_to(obj.0))) } } + pub mod prove_balance_and_nonce { + use crate as dash_sdk_bindings; - impl Drop for dash_sdk_platform_types_identity_PublicKeyHash { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.0); - } - } + pub mod v0 { use crate as dash_sdk_bindings; } } - #[no_mangle] - pub unsafe extern "C" fn dash_sdk_platform_types_identity_PublicKeyHash_ctor<>(o_0: *mut crate::fermented::generics::Arr_u8_20) -> *mut dash_sdk_platform_types_identity_PublicKeyHash { ferment::boxed(dash_sdk_platform_types_identity_PublicKeyHash(o_0)) } + pub mod prove_address_funds_trunk_query { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dash_sdk_platform_types_identity_PublicKeyHash_destroy<>(ffi: *mut dash_sdk_platform_types_identity_PublicKeyHash) { ferment::unbox_any(ffi); } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dash_sdk_platform_types_identity_PublicKeyHash_get_0<>(obj: *const dash_sdk_platform_types_identity_PublicKeyHash) -> *mut crate::fermented::generics::Arr_u8_20 { (*obj).0 } + pub mod prove_address_funds_branch_query { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dash_sdk_platform_types_identity_PublicKeyHash_set_0<>(obj: *const dash_sdk_platform_types_identity_PublicKeyHash) -> *mut crate::fermented::generics::Arr_u8_20 { (*obj).0 } + pub mod v0 { use crate as dash_sdk_bindings; } + } } - } - } - - pub mod sdk { use crate as dash_sdk_bindings; } - } - pub mod drive { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod set_balance_to_address { + use crate as dash_sdk_bindings; + } - #[cfg(feature = "server")] - pub mod state_transition_action { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod remove_balance_from_address { + use crate as dash_sdk_bindings; + } + } - pub mod batch { + #[cfg(any(feature = "server", feature = "verify"))] + pub mod group { use crate as dash_sdk_bindings; - pub mod batched_transition { + #[cfg(feature = "server")] + pub mod prove { use crate as dash_sdk_bindings; - pub mod token_transition { + pub mod prove_group_infos { use crate as dash_sdk_bindings; - pub mod token_claim_transition_action { - use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } - } - - pub mod token_unfreeze_transition_action { - use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } - } - - pub mod token_freeze_transition_action { - use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } - } - - pub mod token_mint_transition_action { - use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod token_base_transition_action { - use crate as dash_sdk_bindings; + pub mod prove_group_info { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod token_set_price_for_direct_purchase_transition_action { - use crate as dash_sdk_bindings; + pub mod prove_action_infos { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod token_direct_purchase_transition_action { - use crate as dash_sdk_bindings; + pub mod prove_action_signers { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - pub mod token_transfer_transition_action { - use crate as dash_sdk_bindings; + pub mod paths { use crate as dash_sdk_bindings; } - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod queries { use crate as dash_sdk_bindings; } - pub mod token_emergency_action_transition_action { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod estimated_costs { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod for_add_group_action { use crate as dash_sdk_bindings; } - pub mod token_destroy_frozen_funds_transition_action { - use crate as dash_sdk_bindings; + pub mod for_add_groups { use crate as dash_sdk_bindings; } + } - pub mod v0 { use crate as dash_sdk_bindings; } - } + #[cfg(feature = "server")] + pub mod fetch { + use crate as dash_sdk_bindings; - pub mod token_burn_transition_action { - use crate as dash_sdk_bindings; + pub mod fetch_group_info { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod token_config_update_transition_action { - use crate as dash_sdk_bindings; + pub mod fetch_action_id_has_signer { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod document_transition { + pub mod fetch_action_is_closed { use crate as dash_sdk_bindings; - pub mod document_purchase_transition_action { - use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod document_replace_transition_action { - use crate as dash_sdk_bindings; + pub mod fetch_action_id_info_keep_serialized { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod document_transfer_transition_action { - use crate as dash_sdk_bindings; + pub mod fetch_action_id_signers_power { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod document_create_transition_action { - use crate as dash_sdk_bindings; + pub mod fetch_action_infos { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod document_base_transition_action { - use crate as dash_sdk_bindings; + pub mod fetch_action_signers { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod document_delete_transition_action { - use crate as dash_sdk_bindings; + pub mod fetch_group_infos { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod document_update_price_transition_action { - use crate as dash_sdk_bindings; + pub mod fetch_active_action_info { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } } } - } - - pub mod action_convert_to_operations { - use crate as dash_sdk_bindings; - - pub mod system { use crate as dash_sdk_bindings; } - pub mod batch { + #[cfg(feature = "server")] + pub mod insert { use crate as dash_sdk_bindings; - pub mod document { use crate as dash_sdk_bindings; } + pub mod add_group_action { use crate as dash_sdk_bindings; } - pub mod token { use crate as dash_sdk_bindings; } + pub mod add_new_groups { use crate as dash_sdk_bindings; } } - - pub mod contract { use crate as dash_sdk_bindings; } - - pub mod identity { use crate as dash_sdk_bindings; } } - pub mod identity { + #[cfg(any(feature = "server", feature = "verify"))] + pub mod balances { use crate as dash_sdk_bindings; - pub mod identity_update { + #[cfg(feature = "server")] + pub mod calculate_total_credits_balance { use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod identity_create { + #[cfg(feature = "server")] + pub mod remove_from_system_credits_operations { use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod identity_credit_transfer { + #[cfg(feature = "server")] + pub mod remove_from_system_credits { use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod identity_topup { + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod masternode_vote { + #[cfg(feature = "server")] + pub mod add_to_system_credits_operations { use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod identity_credit_withdrawal { + #[cfg(feature = "server")] + pub mod add_to_system_credits { use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } - - pub mod transformer { use crate as dash_sdk_bindings; } } } - pub mod system { + #[cfg(any(feature = "server", feature = "verify"))] + pub mod prefunded_specialized_balances { use crate as dash_sdk_bindings; - pub mod bump_identity_nonce_action { + #[cfg(feature = "server")] + pub mod estimation_costs { use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } + pub mod for_prefunded_specialized_balance_update { use crate as dash_sdk_bindings; } } - pub mod partially_use_asset_lock_action { + #[cfg(feature = "server")] + pub mod empty_prefunded_specialized_balance { use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod bump_identity_data_contract_nonce_action { + #[cfg(feature = "server")] + pub mod fetch { use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } - } + pub mod single_balance { + use crate as dash_sdk_bindings; - pub mod contract { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - pub mod data_contract_create { + #[cfg(feature = "server")] + pub mod add_prefunded_specialized_balance_operations { use crate as dash_sdk_bindings; pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod v1 { use crate as dash_sdk_bindings; } } - pub mod data_contract_update { + #[cfg(feature = "server")] + pub mod prove { use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } - } - } + pub mod single_balance { + use crate as dash_sdk_bindings; - #[cfg(any(feature = "server", feature = "verify"))] - pub mod drive { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - #[cfg(feature = "server")] - pub mod platform_state { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod add_prefunded_specialized_balance { + use crate as dash_sdk_bindings; + } - pub mod fetch_platform_state_bytes { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod empty_prefunded_specialized_balance_operations { + use crate as dash_sdk_bindings; - pub mod store_platform_state_bytes { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[cfg(feature = "server")] - pub mod initialization { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod deduct_from_prefunded_specialized_balance_operations { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } + pub mod v1 { use crate as dash_sdk_bindings; } - pub mod genesis_core_height { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } } #[cfg(any(feature = "server", feature = "verify"))] - pub mod votes { + pub mod shielded { use crate as dash_sdk_bindings; - #[cfg(any(feature = "server", feature = "verify"))] - pub mod resolved { + #[cfg(feature = "server")] + pub mod has_nullifier { use crate as dash_sdk_bindings; - pub mod votes { - use crate as dash_sdk_bindings; - - pub mod resolved_resource_vote { - use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } - - pub mod accessors { use crate as dash_sdk_bindings; } - } - } - - pub mod vote_polls { - use crate as dash_sdk_bindings; - - pub mod contested_document_resource_vote_poll { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod cleanup { + pub mod insert_note { use crate as dash_sdk_bindings; - pub mod remove_all_votes_given_by_identities { use crate as dash_sdk_bindings; } - - pub mod remove_contested_resource_vote_poll_top_level_index_operations { use crate as dash_sdk_bindings; } - - pub mod remove_contested_resource_vote_poll_votes_operations { use crate as dash_sdk_bindings; } - - pub mod remove_specific_votes_given_by_identity { use crate as dash_sdk_bindings; } - - pub mod remove_contested_resource_vote_poll_end_date_query_operations { use crate as dash_sdk_bindings; } - - pub mod remove_contested_resource_vote_poll_info_operations { use crate as dash_sdk_bindings; } - - pub mod remove_contested_resource_vote_poll_contenders_operations { use crate as dash_sdk_bindings; } - - pub mod remove_contested_resource_vote_poll_documents_operations { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod fetch { + pub mod prune_anchors { use crate as dash_sdk_bindings; - pub mod fetch_identities_voting_for_contenders { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod fetch_contested_document_vote_poll_stored_info { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod update_total_balance { + use crate as dash_sdk_bindings; - pub mod fetch_identity_contested_resource_vote { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod insert { + pub mod read_total_balance { use crate as dash_sdk_bindings; - pub mod register_identity_vote { use crate as dash_sdk_bindings; } - - pub mod vote_poll { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod add_vote_poll_end_date_query_operations { use crate as dash_sdk_bindings; } - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod paths { + use crate as dash_sdk_bindings; + } - pub mod contested_resource { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod record_anchor_if_changed { + use crate as dash_sdk_bindings; - pub mod individual_vote { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod register_contested_resource_identity_vote { use crate as dash_sdk_bindings; } - } + #[cfg(feature = "server")] + pub mod insert_nullifiers { + use crate as dash_sdk_bindings; - pub mod insert_stored_info_for_contested_resource_vote_poll { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod storage_form { + #[cfg(feature = "server")] + pub mod has_anchor { use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod setup { + pub mod notes_count { use crate as dash_sdk_bindings; - pub mod setup_initial_vote_tree_main_structure { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } } #[cfg(any(feature = "server", feature = "verify"))] - pub mod identity { + pub mod tokens { use crate as dash_sdk_bindings; - #[cfg(any(feature = "server", feature = "verify"))] - pub mod contract_info { + pub mod balance { use crate as dash_sdk_bindings; #[cfg(feature = "server")] - pub mod identity_contract_nonce { + pub mod add_to_previous_token_balance { use crate as dash_sdk_bindings; - pub mod merge_identity_contract_nonce { + pub mod v0 { use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } } + } - #[cfg(feature = "server")] - pub mod fetch_identity_contract_nonce { - use crate as dash_sdk_bindings; - } + #[cfg(feature = "server")] + pub mod prove_identity_token_balances { + use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod prove_identity_contract_nonce { - use crate as dash_sdk_bindings; - } + pub mod v0 { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod keys { + pub mod fetch_identity_token_balance { use crate as dash_sdk_bindings; - pub mod add_potential_contract_info_for_contract_bounded_key { use crate as dash_sdk_bindings; } - - pub mod refresh_potential_contract_info_key_references { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } - } - - #[cfg(feature = "server")] - pub mod withdrawals { - use crate as dash_sdk_bindings; - pub mod transaction { + #[cfg(feature = "server")] + pub mod fetch_identities_token_balances { use crate as dash_sdk_bindings; - pub mod index { - use crate as dash_sdk_bindings; - - pub mod add_update_next_withdrawal_transaction_index_operation { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod fetch_next_withdrawal_transaction_index { use crate as dash_sdk_bindings; } - } + #[cfg(feature = "server")] + pub mod update { + use crate as dash_sdk_bindings; - pub mod queue { + #[cfg(test)] + pub mod tests { use crate as dash_sdk_bindings; - - pub mod add_enqueue_untied_withdrawal_transaction_operations { use crate as dash_sdk_bindings; } - - pub mod dequeue_untied_withdrawal_transactions { use crate as dash_sdk_bindings; } - - pub mod remove_broadcasted_withdrawal_transactions_after_completion { use crate as dash_sdk_bindings; } - - pub mod move_broadcasted_withdrawal_transactions_back_to_queue_operations { use crate as dash_sdk_bindings; } } } - pub mod document { + #[cfg(feature = "server")] + pub mod prove_identities_token_balances { use crate as dash_sdk_bindings; - pub mod fetch_oldest_withdrawal_documents_by_status { - use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod find_withdrawal_documents_by_status_and_transaction_indices { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod fetch_identity_token_balances { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod calculate_current_withdrawal_limit { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod remove_from_identity_token_balance { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } } #[cfg(feature = "server")] - pub mod update { + pub mod mint { use crate as dash_sdk_bindings; + } - pub mod operations { + pub mod direct_purchase { + use crate as dash_sdk_bindings; + + #[cfg(feature = "server")] + pub mod prove_tokens_direct_purchase_price { use crate as dash_sdk_bindings; + } - pub mod update_identity_balance_operation { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod fetch_token_direct_purchase_price { + use crate as dash_sdk_bindings; + } - pub mod insert_identity_balance_operation { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod set_direct_purchase_price { + use crate as dash_sdk_bindings; + } - pub mod initialize_negative_identity_balance_operation { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod fetch_tokens_direct_purchase_price { + use crate as dash_sdk_bindings; + } + } - pub mod merge_identity_nonce_operations { - use crate as dash_sdk_bindings; + pub mod paths { use crate as dash_sdk_bindings; } - pub mod v0 { use crate as dash_sdk_bindings; } - } + #[cfg(feature = "server")] + pub mod calculate_total_tokens_balance { + use crate as dash_sdk_bindings; + } - pub mod update_identity_revision_operation { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod transfer { + use crate as dash_sdk_bindings; + } - pub mod initialize_identity_revision_operation { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod freeze { + use crate as dash_sdk_bindings; + } - pub mod initialize_identity_nonce_operation { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod burn { + use crate as dash_sdk_bindings; + } - pub mod update_identity_negative_credit_operation { use crate as dash_sdk_bindings; } - } + pub mod status { + use crate as dash_sdk_bindings; - #[cfg(test)] - pub mod tests { + #[cfg(feature = "server")] + pub mod fetch_token_statuses { use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod methods { + #[cfg(feature = "server")] + pub mod prove_token_statuses { use crate as dash_sdk_bindings; - pub mod add_to_identity_balance { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod add_to_previous_balance { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod fetch_token_status { + use crate as dash_sdk_bindings; - pub mod apply_balance_change_from_fee_to_identity { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - pub mod re_enable_identity_keys { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod unfreeze { + use crate as dash_sdk_bindings; + } - pub mod add_new_unique_keys_to_identity { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod apply_status { + use crate as dash_sdk_bindings; + } - pub mod add_new_non_unique_keys_to_identity { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod estimated_costs { + use crate as dash_sdk_bindings; - pub mod update_identity_revision { use crate as dash_sdk_bindings; } + pub mod for_token_pre_programmed_distribution { use crate as dash_sdk_bindings; } - pub mod refresh_identity_key_reference_operations { use crate as dash_sdk_bindings; } + pub mod for_token_identity_infos { use crate as dash_sdk_bindings; } - pub mod remove_from_identity_balance { use crate as dash_sdk_bindings; } + pub mod for_token_contract_infos { use crate as dash_sdk_bindings; } - pub mod merge_identity_nonce { use crate as dash_sdk_bindings; } + pub mod for_token_direct_selling_prices { use crate as dash_sdk_bindings; } - pub mod disable_identity_keys { use crate as dash_sdk_bindings; } + pub mod for_token_perpetual_distribution { use crate as dash_sdk_bindings; } - pub mod add_new_keys_to_identity { use crate as dash_sdk_bindings; } - } + pub mod for_token_balances { use crate as dash_sdk_bindings; } - pub mod structs { - use crate as dash_sdk_bindings; + pub mod for_root_token_ms_interval_distribution { use crate as dash_sdk_bindings; } - pub mod add_to_previous_balance_outcome { use crate as dash_sdk_bindings; } + pub mod for_token_status_infos { use crate as dash_sdk_bindings; } - pub mod apply_balance_change_outcome { use crate as dash_sdk_bindings; } - } + pub mod for_token_total_supply { use crate as dash_sdk_bindings; } } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod fetch { + pub mod info { use crate as dash_sdk_bindings; #[cfg(feature = "server")] - pub mod contract_keys { + pub mod fetch_identities_token_infos { use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod fetch_by_public_key_hashes { + pub mod prove_identities_token_infos { use crate as dash_sdk_bindings; - pub mod fetch_full_identity_by_non_unique_public_key_hash { use crate as dash_sdk_bindings; } - - pub mod fetch_full_identities_by_unique_public_key_hashes { use crate as dash_sdk_bindings; } - - pub mod fetch_identity_id_by_unique_public_key_hash { use crate as dash_sdk_bindings; } - - pub mod fetch_identity_ids_by_non_unique_public_key_hash { use crate as dash_sdk_bindings; } - - pub mod fetch_full_identity_by_unique_public_key_hash { use crate as dash_sdk_bindings; } - - pub mod has_any_of_unique_public_key_hashes { use crate as dash_sdk_bindings; } - - pub mod has_non_unique_public_key_hash_already_for_identity { use crate as dash_sdk_bindings; } - - pub mod fetch_identity_ids_by_unique_public_key_hashes { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod has_non_unique_public_key_hash { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod fetch_identity_token_info { + use crate as dash_sdk_bindings; - pub mod has_unique_public_key_hash { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod revision { + pub mod prove_identity_token_infos { use crate as dash_sdk_bindings; - pub mod fetch_identity_revision { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } + pub mod queries { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] - pub mod balance { + pub mod fetch_identity_token_infos { use crate as dash_sdk_bindings; - pub mod fetch_identity_balance { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - pub mod fetch_identity_balance_include_debt { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod add_transaction_history_operations { + use crate as dash_sdk_bindings; + } - pub mod fetch_identity_negative_balance { use crate as dash_sdk_bindings; } - } + pub mod contract_info { + use crate as dash_sdk_bindings; #[cfg(feature = "server")] - pub mod nonce { + pub mod fetch_token_contract_info { use crate as dash_sdk_bindings; + } - pub mod prove_identity_nonce { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod prove_token_contract_info { + use crate as dash_sdk_bindings; - pub mod fetch_identity_nonce { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } + } - #[cfg(feature = "server")] - pub mod full_identity { + #[cfg(feature = "server")] + pub mod system { + use crate as dash_sdk_bindings; + + pub mod add_to_token_total_supply { use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod fetch_full_identities { use crate as dash_sdk_bindings; } + pub mod fetch_token_total_aggregated_identity_balances { + use crate as dash_sdk_bindings; - pub mod fetch_full_identity { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } - #[cfg(feature = "server")] - pub mod partial_identity { + pub mod fetch_token_total_supply { use crate as dash_sdk_bindings; - pub mod fetch_identity_keys { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod fetch_identity_balance_with_keys { use crate as dash_sdk_bindings; } + pub mod remove_from_token_total_supply { + use crate as dash_sdk_bindings; - pub mod fetch_identity_revision_with_keys { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod fetch_identity_with_balance { use crate as dash_sdk_bindings; } + pub mod create_token_trees { + use crate as dash_sdk_bindings; - pub mod fetch_identity_balance_with_keys_and_revision { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } - #[cfg(feature = "server")] - pub mod prove { + pub mod prove_token_total_supply_and_aggregated_identity_balances { use crate as dash_sdk_bindings; - pub mod prove_full_identity_by_non_unique_public_key_hash { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - pub mod v0 { use crate as dash_sdk_bindings; } - } + #[cfg(feature = "server")] + pub mod mint_many { + use crate as dash_sdk_bindings; - pub mod prove_full_identities { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod distribution { + use crate as dash_sdk_bindings; - pub mod prove_identity_ids_by_unique_public_key_hashes { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod fetch { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod perpetual_distribution_last_paid_moment { use crate as dash_sdk_bindings; } - pub mod prove_full_identities_by_unique_public_key_hashes { - use crate as dash_sdk_bindings; + pub mod pre_programmed_distribution_last_paid_time_ms { use crate as dash_sdk_bindings; } - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod pre_programmed_distributions { use crate as dash_sdk_bindings; } + } - pub mod prove_identity_id_by_unique_public_key_hash { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod add_perpetual_distribution { + use crate as dash_sdk_bindings; + } - pub mod v0 { use crate as dash_sdk_bindings; } - } + #[cfg(feature = "server")] + pub mod prove { + use crate as dash_sdk_bindings; - pub mod prove_full_identity { - use crate as dash_sdk_bindings; + pub mod perpetual_distribution_last_paid_moment { use crate as dash_sdk_bindings; } - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod pre_programmed_distributions { use crate as dash_sdk_bindings; } + } - pub mod prove_identities_contract_keys { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod mark_perpetual_release_as_distributed { + use crate as dash_sdk_bindings; + } - pub mod prove_full_identity_by_unique_public_key_hash { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod add_pre_programmed_distribution { + use crate as dash_sdk_bindings; + } - pub mod v0 { use crate as dash_sdk_bindings; } - } + #[cfg(feature = "server")] + pub mod mark_pre_programmed_release_as_distributed { + use crate as dash_sdk_bindings; } } + } + + #[cfg(feature = "server")] + pub mod system { + use crate as dash_sdk_bindings; - #[cfg(feature = "server")] pub mod estimation_costs { use crate as dash_sdk_bindings; - pub mod for_keys_for_identity_id { use crate as dash_sdk_bindings; } - - pub mod for_balances { use crate as dash_sdk_bindings; } + pub mod for_total_system_credits_update { use crate as dash_sdk_bindings; } + } - pub mod for_update_nonce { use crate as dash_sdk_bindings; } + pub mod fetch_elements { use crate as dash_sdk_bindings; } - pub mod for_identity_contract_info_group { use crate as dash_sdk_bindings; } + pub mod protocol_version { use crate as dash_sdk_bindings; } - pub mod for_identity_contract_info_group_keys { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod genesis_time { + use crate as dash_sdk_bindings; - pub mod for_purpose_in_key_reference_tree { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + } - pub mod for_identity_contract_info_group_key_purpose { use crate as dash_sdk_bindings; } + #[cfg(any(feature = "server", feature = "verify", feature = "fixtures-and-mocks"))] + pub mod contract { + use crate as dash_sdk_bindings; - pub mod for_identity_contract_info { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod insert { + use crate as dash_sdk_bindings; - pub mod for_root_key_reference_tree { use crate as dash_sdk_bindings; } + pub mod insert_contract { + use crate as dash_sdk_bindings; - pub mod for_update_revision { use crate as dash_sdk_bindings; } + pub mod v1 { use crate as dash_sdk_bindings; } - pub mod for_negative_credit { use crate as dash_sdk_bindings; } + pub mod v0 { + use crate as dash_sdk_bindings; - pub mod for_authentication_keys_security_level_in_key_reference_tree { use crate as dash_sdk_bindings; } - } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod key { - use crate as dash_sdk_bindings; + pub mod add_description { + use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod insert_key_hash_identity_reference { + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod add_contract_to_storage { use crate as dash_sdk_bindings; - pub mod insert_reference_to_non_unique_key { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod insert_reference_to_unique_key { use crate as dash_sdk_bindings; } + pub mod add_new_keywords { + use crate as dash_sdk_bindings; - pub mod insert_non_unique_public_key_hash_reference_to_identity { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - pub mod insert_unique_public_key_hash_reference_to_identity { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod migration { + use crate as dash_sdk_bindings; + } - pub mod estimation_costs { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod get_fetch { + use crate as dash_sdk_bindings; - pub mod add_estimation_costs_for_insert_unique_public_key_hash_reference { use crate as dash_sdk_bindings; } + pub mod get_contracts_with_fetch_info { use crate as dash_sdk_bindings; } - pub mod add_estimation_costs_for_insert_non_unique_public_key_hash_reference { use crate as dash_sdk_bindings; } - } + pub mod get_contract_with_fetch_info { use crate as dash_sdk_bindings; } + + pub mod get_cached_contract_with_fetch_info { use crate as dash_sdk_bindings; } + + pub mod fetch_contracts { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - #[cfg(feature = "server")] - pub mod insert { + pub mod fetch_contract { use crate as dash_sdk_bindings; } + + pub mod fetch_contract_ids { use crate as dash_sdk_bindings; - pub mod create_key_tree_with_keys { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod insert_new_non_unique_key { use crate as dash_sdk_bindings; } + pub mod get_system_or_user_contract_with_fee { use crate as dash_sdk_bindings; } - pub mod create_new_identity_key_query_trees { use crate as dash_sdk_bindings; } + pub mod fetch_contract_with_history { use crate as dash_sdk_bindings; } + } - pub mod replace_key_in_storage { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod prove { + use crate as dash_sdk_bindings; - pub mod insert_key_to_storage { use crate as dash_sdk_bindings; } + pub mod prove_contract_history { use crate as dash_sdk_bindings; } - pub mod insert_new_unique_key { use crate as dash_sdk_bindings; } + pub mod prove_contracts { use crate as dash_sdk_bindings; } - pub mod insert_key_searchable_references { use crate as dash_sdk_bindings; } - } + pub mod prove_contract { use crate as dash_sdk_bindings; } + } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod fetch { + #[cfg(feature = "server")] + pub mod update { + use crate as dash_sdk_bindings; + + pub mod update_contract { use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod fetch_all_identity_keys { - use crate as dash_sdk_bindings; - } + pub mod v1 { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod fetch_all_current_identity_keys { - use crate as dash_sdk_bindings; - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[cfg(feature = "server")] - pub mod fetch_identity_keys { - use crate as dash_sdk_bindings; - } + pub mod update_keywords { + use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod fetch_identities_all_keys { - use crate as dash_sdk_bindings; - } + pub mod v0 { use crate as dash_sdk_bindings; } } - #[cfg(feature = "server")] - pub mod prove { + pub mod update_description { use crate as dash_sdk_bindings; - pub mod prove_identity_keys { use crate as dash_sdk_bindings; } - - pub mod prove_identities_all_keys { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } } #[cfg(feature = "server")] - pub mod insert { + pub mod apply { use crate as dash_sdk_bindings; - pub mod add_new_identity { use crate as dash_sdk_bindings; } + pub mod apply_contract { use crate as dash_sdk_bindings; } + + pub mod apply_contract_with_serialization { use crate as dash_sdk_bindings; } } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod balance { + #[cfg(feature = "server")] + pub mod estimation_costs { use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod prove { - use crate as dash_sdk_bindings; - - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } - } - - #[cfg(feature = "server")] - pub mod update { + pub mod add_estimation_costs_for_contract_insertion { use crate as dash_sdk_bindings; - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } + pub mod v1 { use crate as dash_sdk_bindings; } } } } @@ -3963,3021 +3869,5024 @@ pub mod types { pub mod shared_estimation_costs { use crate as dash_sdk_bindings; - pub mod add_estimation_costs_for_levels_up_to_contract_document_type_excluded { use crate as dash_sdk_bindings; } + pub mod add_estimation_costs_for_contested_document_tree_levels_up_to_contract { use crate as dash_sdk_bindings; } pub mod add_estimation_costs_for_levels_up_to_contract { use crate as dash_sdk_bindings; } - pub mod add_estimation_costs_for_contested_document_tree_levels_up_to_contract { use crate as dash_sdk_bindings; } - pub mod add_estimation_costs_for_contested_document_tree_levels_up_to_contract_document_type_excluded { use crate as dash_sdk_bindings; } + + pub mod add_estimation_costs_for_levels_up_to_contract_document_type_excluded { use crate as dash_sdk_bindings; } } } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod credit_pools { + #[cfg(feature = "server")] + pub mod asset_lock { use crate as dash_sdk_bindings; - #[cfg(any(feature = "server", feature = "verify"))] - pub mod epochs { + pub mod estimation_costs { use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod get_finalized_epoch_info { - use crate as dash_sdk_bindings; - } - - #[cfg(feature = "server")] - pub mod get_epochs_protocol_versions { - use crate as dash_sdk_bindings; - } - - #[cfg(feature = "server")] - pub mod start_block { - use crate as dash_sdk_bindings; - - pub mod get_epoch_start_block_core_height { use crate as dash_sdk_bindings; } + pub mod add_estimation_costs_for_adding_asset_lock { use crate as dash_sdk_bindings; } + } - #[cfg(feature = "server")] - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } + pub mod add_asset_lock_outpoint_operations { use crate as dash_sdk_bindings; } - pub mod get_first_epoch_start_block_info_between_epochs { use crate as dash_sdk_bindings; } + pub mod fetch_asset_lock_outpoint_info { use crate as dash_sdk_bindings; } + } - pub mod get_epoch_start_block_height { use crate as dash_sdk_bindings; } - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod credit_pools { + use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod get_epoch_protocol_version { - use crate as dash_sdk_bindings; - } + #[cfg(feature = "server")] + pub mod unpaid_epoch { + use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod credit_distribution_pools { + pub mod get_unpaid_epoch_index { use crate as dash_sdk_bindings; - pub mod add_epoch_processing_credits_for_distribution_operation { use crate as dash_sdk_bindings; } - - pub mod add_epoch_final_info_operation { use crate as dash_sdk_bindings; } - - pub mod get_epoch_fee_multiplier { + pub mod v0 { use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } } + } + } - pub mod get_epoch_total_credits_for_distribution { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod pending_epoch_refunds { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod methods { + use crate as dash_sdk_bindings; - pub mod get_epoch_processing_credits_for_distribution { + pub mod add_delete_pending_epoch_refunds_except_specified { use crate as dash_sdk_bindings; pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod get_storage_credits_for_distribution_for_epochs_in_range { use crate as dash_sdk_bindings; } + pub mod fetch_pending_epoch_refunds { use crate as dash_sdk_bindings; } - pub mod get_epoch_storage_credits_for_distribution { + pub mod fetch_and_add_pending_epoch_refunds_to_collection { use crate as dash_sdk_bindings; pub mod v0 { use crate as dash_sdk_bindings; } } } - #[cfg(feature = "server")] - pub mod get_epochs_infos { + pub mod operations { use crate as dash_sdk_bindings; + + pub mod add_update_pending_epoch_refunds_operations { use crate as dash_sdk_bindings; } } + } - #[cfg(feature = "server")] - pub mod prove_epochs_infos { + #[cfg(feature = "server")] + pub mod operations { + use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod tests { use crate as dash_sdk_bindings; } + } - #[cfg(feature = "server")] - pub mod proposers { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } - pub mod prove_epoch_proposers { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod storage_fee_distribution_pool { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod get_storage_fees_from_distribution_pool { + use crate as dash_sdk_bindings; - pub mod get_epochs_proposer_block_count { + pub mod v0 { use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } } + } + } - pub mod fetch_epoch_proposers { - use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod epochs { + use crate as dash_sdk_bindings; - pub mod is_epochs_proposers_tree_empty { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod prove_finalized_epoch_infos { + use crate as dash_sdk_bindings; } #[cfg(feature = "server")] - pub mod prove_finalized_epoch_infos { + pub mod get_finalized_epoch_info { use crate as dash_sdk_bindings; } #[cfg(feature = "server")] - pub mod operations_factory { + pub mod start_block { use crate as dash_sdk_bindings; + pub mod get_epoch_start_block_height { use crate as dash_sdk_bindings; } + + #[cfg(feature = "server")] #[cfg(test)] pub mod tests { use crate as dash_sdk_bindings; } + + pub mod get_epoch_start_block_core_height { use crate as dash_sdk_bindings; } + + pub mod get_first_epoch_start_block_info_between_epochs { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod start_time { + pub mod has_epoch_tree_exists { use crate as dash_sdk_bindings; - pub mod get_epoch_start_time { + #[cfg(test)] + pub mod tests { use crate as dash_sdk_bindings; - - pub mod v0 { - use crate as dash_sdk_bindings; - - #[cfg(feature = "server")] - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } - } } } #[cfg(feature = "server")] - pub mod has_epoch_tree_exists { + pub mod credit_distribution_pools { use crate as dash_sdk_bindings; - #[cfg(test)] - pub mod tests { + pub mod add_epoch_processing_credits_for_distribution_operation { use crate as dash_sdk_bindings; } + + pub mod get_epoch_storage_credits_for_distribution { use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - } - } - #[cfg(feature = "server")] - pub mod storage_fee_distribution_pool { - use crate as dash_sdk_bindings; + pub mod add_epoch_final_info_operation { use crate as dash_sdk_bindings; } - pub mod get_storage_fees_from_distribution_pool { - use crate as dash_sdk_bindings; + pub mod get_epoch_processing_credits_for_distribution { + use crate as dash_sdk_bindings; - pub mod v0 { + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod get_epoch_total_credits_for_distribution { use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod get_epoch_fee_multiplier { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } + + pub mod get_storage_credits_for_distribution_for_epochs_in_range { use crate as dash_sdk_bindings; } } - } - #[cfg(feature = "server")] - pub mod operations { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod get_epochs_protocol_versions { + use crate as dash_sdk_bindings; + } - #[cfg(test)] - pub mod tests { + #[cfg(feature = "server")] + pub mod get_epochs_infos { use crate as dash_sdk_bindings; } - } - #[cfg(feature = "server")] - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } + #[cfg(feature = "server")] + pub mod operations_factory { + use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod unpaid_epoch { - use crate as dash_sdk_bindings; + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } - pub mod get_unpaid_epoch_index { + #[cfg(feature = "server")] + pub mod start_time { use crate as dash_sdk_bindings; - pub mod v0 { + pub mod get_epoch_start_time { use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - #[cfg(test)] - pub mod tests { + pub mod v0 { use crate as dash_sdk_bindings; + + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } } } } - } - - #[cfg(feature = "server")] - pub mod pending_epoch_refunds { - use crate as dash_sdk_bindings; - pub mod methods { + #[cfg(feature = "server")] + pub mod proposers { use crate as dash_sdk_bindings; - pub mod add_delete_pending_epoch_refunds_except_specified { + pub mod is_epochs_proposers_tree_empty { use crate as dash_sdk_bindings; } + + pub mod get_epochs_proposer_block_count { use crate as dash_sdk_bindings; pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod fetch_and_add_pending_epoch_refunds_to_collection { + pub mod prove_epoch_proposers { use crate as dash_sdk_bindings; pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod fetch_pending_epoch_refunds { use crate as dash_sdk_bindings; } + pub mod fetch_epoch_proposers { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } } - pub mod operations { + #[cfg(feature = "server")] + pub mod prove_epochs_infos { use crate as dash_sdk_bindings; + } - pub mod add_update_pending_epoch_refunds_operations { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod get_epoch_protocol_version { + use crate as dash_sdk_bindings; } } } #[cfg(feature = "server")] - pub mod asset_lock { + pub mod saved_block_transactions { use crate as dash_sdk_bindings; - pub mod fetch_asset_lock_outpoint_info { use crate as dash_sdk_bindings; } - - pub mod add_asset_lock_outpoint_operations { use crate as dash_sdk_bindings; } - - pub mod estimation_costs { + pub mod fetch_compacted_address_balances { use crate as dash_sdk_bindings; - pub mod add_estimation_costs_for_adding_asset_lock { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } - } - - #[cfg(any(feature = "server", feature = "verify"))] - pub mod balances { - use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod remove_from_system_credits { + pub mod fetch_address_balances { use crate as dash_sdk_bindings; - } - #[cfg(feature = "server")] - pub mod add_to_system_credits { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } } - #[cfg(feature = "server")] - pub mod calculate_total_credits_balance { - use crate as dash_sdk_bindings; - } + pub mod compact_address_balances { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod add_to_system_credits_operations { + pub mod store_address_balances { use crate as dash_sdk_bindings; - } - #[cfg(feature = "server")] - pub mod remove_from_system_credits_operations { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } } + + pub mod cleanup_expired_address_balances { use crate as dash_sdk_bindings; } } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod prefunded_specialized_balances { + #[cfg(feature = "server")] + pub mod initialization { use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod estimation_costs { - use crate as dash_sdk_bindings; - - pub mod for_prefunded_specialized_balance_update { use crate as dash_sdk_bindings; } - } + pub mod genesis_core_height { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod prove { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod single_balance { use crate as dash_sdk_bindings; } - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod protocol_upgrade { + use crate as dash_sdk_bindings; #[cfg(feature = "server")] - pub mod deduct_from_prefunded_specialized_balance { + pub mod fetch_proved_validator_version_votes { use crate as dash_sdk_bindings; } #[cfg(feature = "server")] - pub mod empty_prefunded_specialized_balance_operations { + pub mod fetch_proved_versions_with_counter { use crate as dash_sdk_bindings; } #[cfg(feature = "server")] - pub mod deduct_from_prefunded_specialized_balance_operations { + pub mod fetch_validator_version_votes { use crate as dash_sdk_bindings; } #[cfg(feature = "server")] - pub mod add_prefunded_specialized_balance { + pub mod remove_validators_proposed_app_versions { use crate as dash_sdk_bindings; } #[cfg(feature = "server")] - pub mod fetch { + pub mod fetch_versions_with_counter { use crate as dash_sdk_bindings; - - pub mod single_balance { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod add_prefunded_specialized_balance_operations { + pub mod update_validator_proposed_app_version { use crate as dash_sdk_bindings; } #[cfg(feature = "server")] - pub mod empty_prefunded_specialized_balance { + pub mod clear_version_information { use crate as dash_sdk_bindings; } } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod group { + #[cfg(any(feature = "server", feature = "verify", feature = "fixtures-and-mocks"))] + pub mod document { use crate as dash_sdk_bindings; #[cfg(feature = "server")] - pub mod insert { + pub mod prove { use crate as dash_sdk_bindings; - pub mod add_new_groups { use crate as dash_sdk_bindings; } - - pub mod add_group_action { use crate as dash_sdk_bindings; } + pub mod prove_document_history { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod prove { + pub mod primary_key_tree_type { use crate as dash_sdk_bindings; + } - pub mod prove_group_infos { + #[cfg(any(feature = "server", feature = "fixtures-and-mocks"))] + pub mod query { + use crate as dash_sdk_bindings; + + pub mod query_contested_documents_storage { use crate as dash_sdk_bindings; pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod prove_group_info { + pub mod query_contested_documents_vote_state { use crate as dash_sdk_bindings; pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod prove_action_infos { + pub mod fetch_document_history_query { use crate as dash_sdk_bindings; } + + pub mod query_documents_with_flags { use crate as dash_sdk_bindings; pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod prove_action_signers { + pub mod query_documents { use crate as dash_sdk_bindings; pub mod v0 { use crate as dash_sdk_bindings; } } } - #[cfg(feature = "server")] - pub mod fetch { + #[cfg(any(feature = "server", feature = "fixtures-and-mocks"))] + pub mod update { use crate as dash_sdk_bindings; - pub mod fetch_action_signers { use crate as dash_sdk_bindings; } - - pub mod fetch_active_action_info { use crate as dash_sdk_bindings; } - - pub mod fetch_group_info { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod add_update_multiple_documents_operations { + use crate as dash_sdk_bindings; + } - pub mod fetch_group_infos { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod update_document_for_contract { + use crate as dash_sdk_bindings; + } - pub mod fetch_action_infos { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod update_document_for_contract_id { + use crate as dash_sdk_bindings; + } - pub mod fetch_action_id_signers_power { use crate as dash_sdk_bindings; } + pub mod internal { + use crate as dash_sdk_bindings; - pub mod fetch_action_is_closed { use crate as dash_sdk_bindings; } + pub mod update_document_for_contract_operations { use crate as dash_sdk_bindings; } - pub mod fetch_action_id_info_keep_serialized { use crate as dash_sdk_bindings; } + pub mod update_document_for_contract_apply_and_add_to_operations { use crate as dash_sdk_bindings; } + } - pub mod fetch_action_id_has_signer { use crate as dash_sdk_bindings; } + pub mod update_document_with_serialization_for_contract { use crate as dash_sdk_bindings; } } - #[cfg(feature = "server")] - pub mod estimated_costs { + #[cfg(any(feature = "server", feature = "fixtures-and-mocks"))] + pub mod insert_contested { use crate as dash_sdk_bindings; - pub mod for_add_groups { use crate as dash_sdk_bindings; } + pub mod add_contested_indices_for_contract_operations { use crate as dash_sdk_bindings; } - pub mod for_add_group_action { use crate as dash_sdk_bindings; } - } - } + pub mod add_contested_vote_subtrees_for_non_identities_operations { use crate as dash_sdk_bindings; } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod protocol_upgrade { - use crate as dash_sdk_bindings; + pub mod add_contested_reference_and_vote_subtree_to_document_operations { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod update_validator_proposed_app_version { - use crate as dash_sdk_bindings; - } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } - #[cfg(feature = "server")] - pub mod fetch_proved_validator_version_votes { - use crate as dash_sdk_bindings; - } + pub mod add_contested_document_for_contract { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod remove_validators_proposed_app_versions { - use crate as dash_sdk_bindings; - } + pub mod add_contested_document_to_primary_storage { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod fetch_versions_with_counter { - use crate as dash_sdk_bindings; - } + pub mod add_contested_document { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod fetch_proved_versions_with_counter { - use crate as dash_sdk_bindings; - } + pub mod add_contested_document_for_contract_apply_and_add_to_operations { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod fetch_validator_version_votes { - use crate as dash_sdk_bindings; + pub mod add_contested_document_for_contract_operations { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod clear_version_information { - use crate as dash_sdk_bindings; - } - } - - #[cfg(any(feature = "server", feature = "verify"))] - pub mod tokens { - use crate as dash_sdk_bindings; - - pub mod status { + pub mod index_uniqueness { use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod fetch_token_statuses { + pub mod internal { use crate as dash_sdk_bindings; - } - #[cfg(feature = "server")] - pub mod fetch_token_status { - use crate as dash_sdk_bindings; + pub mod validate_uniqueness_of_data { use crate as dash_sdk_bindings; } } - #[cfg(feature = "server")] - pub mod prove_token_statuses { - use crate as dash_sdk_bindings; + pub mod validate_document_update_price_transition_action_uniqueness { use crate as dash_sdk_bindings; } - pub mod v0 { use crate as dash_sdk_bindings; } - } - } + pub mod validate_document_replace_transition_action_uniqueness { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod apply_status { - use crate as dash_sdk_bindings; - } + pub mod validate_document_create_transition_action_uniqueness { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod freeze { - use crate as dash_sdk_bindings; + pub mod validate_document_purchase_transition_action_uniqueness { use crate as dash_sdk_bindings; } + + pub mod validate_document_transfer_transition_action_uniqueness { use crate as dash_sdk_bindings; } } - pub mod balance { + #[cfg(feature = "server")] + pub mod delete { use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod remove_from_identity_token_balance { - use crate as dash_sdk_bindings; - } + pub mod remove_document_from_primary_storage { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod prove_identities_token_balances { - use crate as dash_sdk_bindings; + pub mod delete_document_for_contract_operations { use crate as dash_sdk_bindings; } - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod delete_document_for_contract_apply_and_add_to_operations { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod prove_identity_token_balances { - use crate as dash_sdk_bindings; + pub mod remove_reference_for_index_level_for_contract_operations { use crate as dash_sdk_bindings; } - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod remove_indices_for_top_index_level_for_contract_operations { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod fetch_identities_token_balances { + pub mod internal { use crate as dash_sdk_bindings; - } - #[cfg(feature = "server")] - pub mod fetch_identity_token_balances { - use crate as dash_sdk_bindings; + pub mod add_estimation_costs_for_remove_document_to_primary_storage { use crate as dash_sdk_bindings; } } - #[cfg(feature = "server")] - pub mod add_to_previous_token_balance { - use crate as dash_sdk_bindings; - } + pub mod remove_indices_for_index_level_for_contract_operations { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod update { - use crate as dash_sdk_bindings; + pub mod delete_document_for_contract_id { use crate as dash_sdk_bindings; } - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } - } + pub mod delete_document_for_contract_id_with_named_type_operations { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod fetch_identity_token_balance { - use crate as dash_sdk_bindings; - } - } + pub mod delete_document_for_contract_with_named_type_operations { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod calculate_total_tokens_balance { - use crate as dash_sdk_bindings; + pub mod delete_document_for_contract { use crate as dash_sdk_bindings; } } - pub mod contract_info { + #[cfg(any(feature = "server", feature = "fixtures-and-mocks"))] + pub mod insert { use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod prove_token_contract_info { + pub mod add_document_for_contract_operations { use crate as dash_sdk_bindings; } + + pub mod add_document { use crate as dash_sdk_bindings; } + + pub mod add_document_for_contract_apply_and_add_to_operations { use crate as dash_sdk_bindings; } + + pub mod add_document_to_primary_storage { use crate as dash_sdk_bindings; pub mod v0 { use crate as dash_sdk_bindings; } } - #[cfg(feature = "server")] - pub mod fetch_token_contract_info { - use crate as dash_sdk_bindings; - } + pub mod add_document_for_contract { use crate as dash_sdk_bindings; } + + pub mod add_reference_for_index_level_for_contract_operations { use crate as dash_sdk_bindings; } + + pub mod add_indices_for_index_level_for_contract_operations { use crate as dash_sdk_bindings; } + + pub mod add_indices_for_top_index_level_for_contract_operations { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod mint_many { + pub mod estimation_costs { use crate as dash_sdk_bindings; + + pub mod add_estimation_costs_for_add_contested_document_to_primary_storage { use crate as dash_sdk_bindings; } + + pub mod add_estimation_costs_for_add_document_to_primary_storage { use crate as dash_sdk_bindings; } + + pub mod stateless_delete_of_non_tree_for_costs { use crate as dash_sdk_bindings; } } - pub mod distribution { + #[cfg(any(feature = "server", feature = "fixtures-and-mocks"))] + pub mod get_fetch { use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod mark_pre_programmed_release_as_distributed { - use crate as dash_sdk_bindings; - } + pub mod fetch_document_history { use crate as dash_sdk_bindings; } + } + } - #[cfg(feature = "server")] - pub mod mark_perpetual_release_as_distributed { - use crate as dash_sdk_bindings; - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod votes { + use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod fetch { + #[cfg(feature = "server")] + pub mod insert { + use crate as dash_sdk_bindings; + + pub mod register_identity_vote { use crate as dash_sdk_bindings; } + + pub mod contested_resource { use crate as dash_sdk_bindings; - pub mod pre_programmed_distribution_last_paid_time_ms { use crate as dash_sdk_bindings; } + pub mod individual_vote { + use crate as dash_sdk_bindings; - pub mod pre_programmed_distributions { use crate as dash_sdk_bindings; } + pub mod register_contested_resource_identity_vote { + use crate as dash_sdk_bindings; - pub mod perpetual_distribution_last_paid_moment { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - #[cfg(feature = "server")] - pub mod add_perpetual_distribution { - use crate as dash_sdk_bindings; - } + pub mod insert_stored_info_for_contested_resource_vote_poll { + use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod add_pre_programmed_distribution { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } } - #[cfg(feature = "server")] - pub mod prove { + pub mod vote_poll { use crate as dash_sdk_bindings; - pub mod perpetual_distribution_last_paid_moment { use crate as dash_sdk_bindings; } - - pub mod pre_programmed_distributions { use crate as dash_sdk_bindings; } + pub mod add_vote_poll_end_date_query_operations { use crate as dash_sdk_bindings; } } } - pub mod info { + #[cfg(any(feature = "server", feature = "verify"))] + pub mod resolved { use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod fetch_identities_token_infos { + pub mod vote_polls { use crate as dash_sdk_bindings; + + pub mod contested_document_resource_vote_poll { use crate as dash_sdk_bindings; } } - #[cfg(feature = "server")] - pub mod fetch_identity_token_infos { - use crate as dash_sdk_bindings; - } - - #[cfg(feature = "server")] - pub mod prove_identity_token_infos { - use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } - } - - #[cfg(feature = "server")] - pub mod prove_identities_token_infos { - use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } - } - - #[cfg(feature = "server")] - pub mod fetch_identity_token_info { - use crate as dash_sdk_bindings; - } - } - - #[cfg(feature = "server")] - pub mod burn { - use crate as dash_sdk_bindings; - } - - pub mod direct_purchase { - use crate as dash_sdk_bindings; - - #[cfg(feature = "server")] - pub mod set_direct_purchase_price { + pub mod votes { use crate as dash_sdk_bindings; - } - #[cfg(feature = "server")] - pub mod prove_tokens_direct_purchase_price { - use crate as dash_sdk_bindings; - } + pub mod resolved_resource_vote { + use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod fetch_token_direct_purchase_price { - use crate as dash_sdk_bindings; - } + pub mod accessors { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod fetch_tokens_direct_purchase_price { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } } } - #[cfg(feature = "server")] - pub mod unfreeze { - use crate as dash_sdk_bindings; - } - - #[cfg(feature = "server")] - pub mod transfer { + #[cfg(any(feature = "server", feature = "verify"))] + pub mod paths { use crate as dash_sdk_bindings; } #[cfg(feature = "server")] - pub mod estimated_costs { + pub mod cleanup { use crate as dash_sdk_bindings; - pub mod for_token_status_infos { use crate as dash_sdk_bindings; } - - pub mod for_token_total_supply { use crate as dash_sdk_bindings; } + pub mod remove_contested_resource_vote_poll_end_date_query_operations { use crate as dash_sdk_bindings; } - pub mod for_token_balances { use crate as dash_sdk_bindings; } + pub mod remove_specific_votes_given_by_identity { use crate as dash_sdk_bindings; } - pub mod for_root_token_ms_interval_distribution { use crate as dash_sdk_bindings; } + pub mod remove_all_votes_given_by_identities { use crate as dash_sdk_bindings; } - pub mod for_token_identity_infos { use crate as dash_sdk_bindings; } + pub mod remove_contested_resource_vote_poll_votes_operations { use crate as dash_sdk_bindings; } - pub mod for_token_direct_selling_prices { use crate as dash_sdk_bindings; } + pub mod remove_contested_resource_vote_poll_info_operations { use crate as dash_sdk_bindings; } - pub mod for_token_contract_infos { use crate as dash_sdk_bindings; } + pub mod remove_contested_resource_vote_poll_documents_operations { use crate as dash_sdk_bindings; } - pub mod for_token_perpetual_distribution { use crate as dash_sdk_bindings; } + pub mod remove_contested_resource_vote_poll_top_level_index_operations { use crate as dash_sdk_bindings; } - pub mod for_token_pre_programmed_distribution { use crate as dash_sdk_bindings; } + pub mod remove_contested_resource_vote_poll_contenders_operations { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod mint { + pub mod setup { use crate as dash_sdk_bindings; - } - #[cfg(feature = "server")] - pub mod add_transaction_history_operations { - use crate as dash_sdk_bindings; + pub mod setup_initial_vote_tree_main_structure { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod system { + pub mod fetch { use crate as dash_sdk_bindings; - pub mod add_to_token_total_supply { use crate as dash_sdk_bindings; } - - pub mod fetch_token_total_aggregated_identity_balances { use crate as dash_sdk_bindings; } + pub mod fetch_identities_voting_for_contenders { use crate as dash_sdk_bindings; } - pub mod create_token_trees { use crate as dash_sdk_bindings; } + pub mod fetch_contested_document_vote_poll_stored_info { use crate as dash_sdk_bindings; } - pub mod fetch_token_total_supply { use crate as dash_sdk_bindings; } + pub mod fetch_identity_contested_resource_vote { use crate as dash_sdk_bindings; } + } - pub mod prove_token_total_supply_and_aggregated_identity_balances { - use crate as dash_sdk_bindings; + #[cfg(any(feature = "server", feature = "verify"))] + pub mod storage_form { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod contested_document_resource_storage_form { use crate as dash_sdk_bindings; } - pub mod remove_from_token_total_supply { use crate as dash_sdk_bindings; } + pub mod vote_storage_form { use crate as dash_sdk_bindings; } } } + } + } - #[cfg(any(feature = "server", feature = "verify", feature = "fixtures-and-mocks"))] - pub mod contract { - use crate as dash_sdk_bindings; - - #[cfg(feature = "server")] - pub mod prove { - use crate as dash_sdk_bindings; + pub mod drive_proof_verifier { + use crate as dash_sdk_bindings; - pub mod prove_contracts { use crate as dash_sdk_bindings; } + pub mod types { + use crate as dash_sdk_bindings; - pub mod prove_contract { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`VotePollsGroupedByTimestamp`]"] + #[repr(C)] + #[derive(Clone)] + pub struct drive_proof_verifier_types_VotePollsGroupedByTimestamp(*mut crate::fermented::generics::Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll); - pub mod prove_contract_history { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for drive_proof_verifier_types_VotePollsGroupedByTimestamp { + unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_VotePollsGroupedByTimestamp) -> drive_proof_verifier::types::VotePollsGroupedByTimestamp { + let ffi_ref = &*ffi; + drive_proof_verifier::types::VotePollsGroupedByTimestamp()>>>::ffi_from(ffi_ref.0)) } + } - #[cfg(feature = "server")] - pub mod get_fetch { - use crate as dash_sdk_bindings; - - pub mod fetch_contract { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for drive_proof_verifier_types_VotePollsGroupedByTimestamp { unsafe fn ffi_to_const(obj: drive_proof_verifier::types::VotePollsGroupedByTimestamp) -> *const drive_proof_verifier_types_VotePollsGroupedByTimestamp { ferment::boxed(drive_proof_verifier_types_VotePollsGroupedByTimestamp()>>>::ffi_to(obj.0))) } } - pub mod get_contract_with_fetch_info { use crate as dash_sdk_bindings; } + impl Drop for drive_proof_verifier_types_VotePollsGroupedByTimestamp { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.0); + } + } + } - pub mod get_cached_contract_with_fetch_info { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_VotePollsGroupedByTimestamp_ctor<>(o_0: *mut crate::fermented::generics::Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) -> *mut drive_proof_verifier_types_VotePollsGroupedByTimestamp { ferment::boxed(drive_proof_verifier_types_VotePollsGroupedByTimestamp(o_0)) } - pub mod get_contracts_with_fetch_info { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_VotePollsGroupedByTimestamp_destroy<>(ffi: *mut drive_proof_verifier_types_VotePollsGroupedByTimestamp) { ferment::unbox_any(ffi); } - pub mod fetch_contract_with_history { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_VotePollsGroupedByTimestamp_get_0<>(obj: *const drive_proof_verifier_types_VotePollsGroupedByTimestamp) -> *mut crate::fermented::generics::Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { (*obj).0 } - #[cfg(feature = "server")] - pub mod insert { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_VotePollsGroupedByTimestamp_set_0<>(obj: *const drive_proof_verifier_types_VotePollsGroupedByTimestamp) -> *mut crate::fermented::generics::Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { (*obj).0 } - pub mod add_description { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`Voter`]"] + #[repr(C)] + #[derive(Clone)] + pub struct drive_proof_verifier_types_Voter(*mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier); - pub mod add_contract_to_storage { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for drive_proof_verifier_types_Voter { + unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_Voter) -> drive_proof_verifier::types::Voter { + let ffi_ref = &*ffi; + drive_proof_verifier::types::Voter(>::ffi_from(ffi_ref.0)) + } + } - pub mod add_new_keywords { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for drive_proof_verifier_types_Voter { unsafe fn ffi_to_const(obj: drive_proof_verifier::types::Voter) -> *const drive_proof_verifier_types_Voter { ferment::boxed(drive_proof_verifier_types_Voter(>::ffi_to(obj.0))) } } - pub mod insert_contract { use crate as dash_sdk_bindings; } + impl Drop for drive_proof_verifier_types_Voter { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.0); + } } + } - #[cfg(feature = "server")] - pub mod update { - use crate as dash_sdk_bindings; - - pub mod update_contract { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Voter_ctor<>(o_0: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut drive_proof_verifier_types_Voter { ferment::boxed(drive_proof_verifier_types_Voter(o_0)) } - pub mod update_keywords { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Voter_destroy<>(ffi: *mut drive_proof_verifier_types_Voter) { ferment::unbox_any(ffi); } - pub mod update_description { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Voter_get_0<>(obj: *const drive_proof_verifier_types_Voter) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).0 } - #[cfg(feature = "server")] - pub mod apply { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Voter_set_0<>(obj: *const drive_proof_verifier_types_Voter) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).0 } - pub mod apply_contract_with_serialization { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`ResourceVotesByIdentity`]"] + #[repr(C)] + #[derive(Clone)] + pub struct drive_proof_verifier_types_ResourceVotesByIdentity(*mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote); - pub mod apply_contract { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for drive_proof_verifier_types_ResourceVotesByIdentity { + unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_ResourceVotesByIdentity) -> drive_proof_verifier::types::ResourceVotesByIdentity { + let ffi_ref = &*ffi; + >>>::ffi_from(ffi_ref.0) } + } - #[cfg(feature = "server")] - pub mod estimation_costs { - use crate as dash_sdk_bindings; + impl ferment::FFIConversionTo for drive_proof_verifier_types_ResourceVotesByIdentity { unsafe fn ffi_to_const(obj: drive_proof_verifier::types::ResourceVotesByIdentity) -> *const drive_proof_verifier_types_ResourceVotesByIdentity { ferment::boxed(drive_proof_verifier_types_ResourceVotesByIdentity(>>>::ffi_to(obj))) } } - pub mod add_estimation_costs_for_contract_insertion { use crate as dash_sdk_bindings; } + impl Drop for drive_proof_verifier_types_ResourceVotesByIdentity { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.0); + } } } - #[cfg(feature = "server")] - pub mod system { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_ResourceVotesByIdentity_ctor<>(o_0: *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote) -> *mut drive_proof_verifier_types_ResourceVotesByIdentity { ferment::boxed(drive_proof_verifier_types_ResourceVotesByIdentity(o_0)) } - pub mod fetch_elements { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_ResourceVotesByIdentity_destroy<>(ffi: *mut drive_proof_verifier_types_ResourceVotesByIdentity) { ferment::unbox_any(ffi); } - pub mod estimation_costs { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_ResourceVotesByIdentity_get_0<>(obj: *const drive_proof_verifier_types_ResourceVotesByIdentity) -> *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { (*obj).0 } - pub mod for_total_system_credits_update { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_ResourceVotesByIdentity_set_0<>(obj: *const drive_proof_verifier_types_ResourceVotesByIdentity) -> *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { (*obj).0 } + + #[doc = "FFI-representation of the [`ContestedResources`]"] + #[repr(C)] + #[derive(Clone)] + pub struct drive_proof_verifier_types_ContestedResources(*mut crate::fermented::generics::Vec_drive_proof_verifier_types_ContestedResource); + + impl ferment::FFIConversionFrom for drive_proof_verifier_types_ContestedResources { + unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_ContestedResources) -> drive_proof_verifier::types::ContestedResources { + let ffi_ref = &*ffi; + drive_proof_verifier::types::ContestedResources(>>::ffi_from(ffi_ref.0)) } + } - #[cfg(feature = "server")] - pub mod genesis_time { - use crate as dash_sdk_bindings; + impl ferment::FFIConversionTo for drive_proof_verifier_types_ContestedResources { unsafe fn ffi_to_const(obj: drive_proof_verifier::types::ContestedResources) -> *const drive_proof_verifier_types_ContestedResources { ferment::boxed(drive_proof_verifier_types_ContestedResources(>>::ffi_to(obj.0))) } } - #[cfg(feature = "server")] - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; + impl Drop for drive_proof_verifier_types_ContestedResources { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.0); } } - - pub mod protocol_version { use crate as dash_sdk_bindings; } } - #[cfg(any(feature = "server", feature = "verify", feature = "fixtures-and-mocks"))] - pub mod document { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResources_ctor<>(o_0: *mut crate::fermented::generics::Vec_drive_proof_verifier_types_ContestedResource) -> *mut drive_proof_verifier_types_ContestedResources { ferment::boxed(drive_proof_verifier_types_ContestedResources(o_0)) } - #[cfg(any(feature = "server", feature = "fixtures-and-mocks"))] - pub mod update { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResources_destroy<>(ffi: *mut drive_proof_verifier_types_ContestedResources) { ferment::unbox_any(ffi); } - #[cfg(feature = "server")] - pub mod update_document_for_contract { - use crate as dash_sdk_bindings; - } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResources_get_0<>(obj: *const drive_proof_verifier_types_ContestedResources) -> *mut crate::fermented::generics::Vec_drive_proof_verifier_types_ContestedResource { (*obj).0 } - #[cfg(feature = "server")] - pub mod add_update_multiple_documents_operations { - use crate as dash_sdk_bindings; - } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResources_set_0<>(obj: *const drive_proof_verifier_types_ContestedResources) -> *mut crate::fermented::generics::Vec_drive_proof_verifier_types_ContestedResource { (*obj).0 } - pub mod update_document_with_serialization_for_contract { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`Contenders`]"] + #[repr(C)] + #[derive(Clone)] + pub struct drive_proof_verifier_types_Contenders { + pub winner: *mut crate::fermented::generics::Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo, + pub contenders: *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument, + pub abstain_vote_tally: *mut u32, + pub lock_vote_tally: *mut u32, + } - #[cfg(feature = "server")] - pub mod update_document_for_contract_id { - use crate as dash_sdk_bindings; + impl ferment::FFIConversionFrom for drive_proof_verifier_types_Contenders { + unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_Contenders) -> drive_proof_verifier::types::Contenders { + let ffi_ref = &*ffi; + drive_proof_verifier::types::Contenders { + winner: >::ffi_from_opt(ffi_ref.winner), + contenders: >>::ffi_from(ffi_ref.contenders), + abstain_vote_tally: ferment::from_opt_primitive(ffi_ref.abstain_vote_tally), + lock_vote_tally: ferment::from_opt_primitive(ffi_ref.lock_vote_tally), } + } + } - pub mod internal { - use crate as dash_sdk_bindings; - - pub mod update_document_for_contract_operations { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for drive_proof_verifier_types_Contenders { + unsafe fn ffi_to_const(obj: drive_proof_verifier::types::Contenders) -> *const drive_proof_verifier_types_Contenders { + ferment::boxed(drive_proof_verifier_types_Contenders { winner: >::ffi_to_opt(obj.winner), contenders: >>::ffi_to(obj.contenders), abstain_vote_tally: ferment::to_opt_primitive(obj.abstain_vote_tally), lock_vote_tally: ferment::to_opt_primitive(obj.lock_vote_tally) }) + } + } - pub mod update_document_for_contract_apply_and_add_to_operations { use crate as dash_sdk_bindings; } + impl Drop for drive_proof_verifier_types_Contenders { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any_opt(ffi_ref.winner); + ferment::unbox_any(ffi_ref.contenders); + ferment::destroy_opt_primitive(ffi_ref.abstain_vote_tally); + ferment::destroy_opt_primitive(ffi_ref.lock_vote_tally); } } + } - #[cfg(any(feature = "server", feature = "fixtures-and-mocks"))] - pub mod insert { - use crate as dash_sdk_bindings; - - pub mod add_document { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_ctor<>(winner: *mut crate::fermented::generics::Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo, contenders: *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument, abstain_vote_tally: *mut u32, lock_vote_tally: *mut u32) -> *mut drive_proof_verifier_types_Contenders { ferment::boxed(drive_proof_verifier_types_Contenders { winner, contenders, abstain_vote_tally, lock_vote_tally }) } - pub mod add_reference_for_index_level_for_contract_operations { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_destroy<>(ffi: *mut drive_proof_verifier_types_Contenders) { ferment::unbox_any(ffi); } - pub mod add_document_for_contract_operations { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_get_winner<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut crate::fermented::generics::Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { (*obj).winner } - pub mod add_indices_for_index_level_for_contract_operations { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_get_contenders<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { (*obj).contenders } - pub mod add_document_to_primary_storage { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_get_abstain_vote_tally<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut u32 { (*obj).abstain_vote_tally } - pub mod add_indices_for_top_index_level_for_contract_operations { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_get_lock_vote_tally<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut u32 { (*obj).lock_vote_tally } - pub mod add_document_for_contract_apply_and_add_to_operations { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_set_winner<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut crate::fermented::generics::Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { (*obj).winner } - pub mod add_document_for_contract { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_set_contenders<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { (*obj).contenders } - #[cfg(any(feature = "server", feature = "fixtures-and-mocks"))] - pub mod insert_contested { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_set_abstain_vote_tally<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut u32 { (*obj).abstain_vote_tally } - pub mod add_contested_document_to_primary_storage { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_set_lock_vote_tally<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut u32 { (*obj).lock_vote_tally } - pub mod add_contested_document { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`Voters`]"] + #[repr(C)] + #[derive(Clone)] + pub struct drive_proof_verifier_types_Voters(*mut crate::fermented::generics::std_collections_BTreeSet_drive_proof_verifier_types_Voter); - pub mod add_contested_document_for_contract_apply_and_add_to_operations { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for drive_proof_verifier_types_Voters { + unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_Voters) -> drive_proof_verifier::types::Voters { + let ffi_ref = &*ffi; + drive_proof_verifier::types::Voters(>>::ffi_from(ffi_ref.0)) + } + } - pub mod add_contested_vote_subtrees_for_non_identities_operations { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for drive_proof_verifier_types_Voters { unsafe fn ffi_to_const(obj: drive_proof_verifier::types::Voters) -> *const drive_proof_verifier_types_Voters { ferment::boxed(drive_proof_verifier_types_Voters(>>::ffi_to(obj.0))) } } - pub mod add_contested_document_for_contract_operations { use crate as dash_sdk_bindings; } + impl Drop for drive_proof_verifier_types_Voters { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.0); + } + } + } - pub mod add_contested_document_for_contract { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Voters_ctor<>(o_0: *mut crate::fermented::generics::std_collections_BTreeSet_drive_proof_verifier_types_Voter) -> *mut drive_proof_verifier_types_Voters { ferment::boxed(drive_proof_verifier_types_Voters(o_0)) } - pub mod add_contested_indices_for_contract_operations { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Voters_destroy<>(ffi: *mut drive_proof_verifier_types_Voters) { ferment::unbox_any(ffi); } - pub mod add_contested_reference_and_vote_subtree_to_document_operations { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Voters_get_0<>(obj: *const drive_proof_verifier_types_Voters) -> *mut crate::fermented::generics::std_collections_BTreeSet_drive_proof_verifier_types_Voter { (*obj).0 } - #[cfg(any(feature = "server", feature = "fixtures-and-mocks"))] - pub mod query { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Voters_set_0<>(obj: *const drive_proof_verifier_types_Voters) -> *mut crate::fermented::generics::std_collections_BTreeSet_drive_proof_verifier_types_Voter { (*obj).0 } - pub mod query_documents { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`ContestedResource`]"] + #[repr(C)] + #[derive(Clone)] + pub struct drive_proof_verifier_types_ContestedResource(*mut crate::fermented::types::platform_value::platform_value_Value); - pub mod query_contested_documents_storage { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for drive_proof_verifier_types_ContestedResource { + unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_ContestedResource) -> drive_proof_verifier::types::ContestedResource { + let ffi_ref = &*ffi; + drive_proof_verifier::types::ContestedResource(>::ffi_from(ffi_ref.0)) + } + } - pub mod query_contested_documents_vote_state { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for drive_proof_verifier_types_ContestedResource { unsafe fn ffi_to_const(obj: drive_proof_verifier::types::ContestedResource) -> *const drive_proof_verifier_types_ContestedResource { ferment::boxed(drive_proof_verifier_types_ContestedResource(>::ffi_to(obj.0))) } } - pub mod query_documents_with_flags { use crate as dash_sdk_bindings; } + impl Drop for drive_proof_verifier_types_ContestedResource { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.0); + } } + } - #[cfg(feature = "server")] - pub mod estimation_costs { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResource_ctor<>(o_0: *mut crate::fermented::types::platform_value::platform_value_Value) -> *mut drive_proof_verifier_types_ContestedResource { ferment::boxed(drive_proof_verifier_types_ContestedResource(o_0)) } - pub mod add_estimation_costs_for_add_document_to_primary_storage { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResource_destroy<>(ffi: *mut drive_proof_verifier_types_ContestedResource) { ferment::unbox_any(ffi); } - pub mod stateless_delete_of_non_tree_for_costs { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResource_get_0<>(obj: *const drive_proof_verifier_types_ContestedResource) -> *mut crate::fermented::types::platform_value::platform_value_Value { (*obj).0 } - pub mod add_estimation_costs_for_add_contested_document_to_primary_storage { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResource_set_0<>(obj: *const drive_proof_verifier_types_ContestedResource) -> *mut crate::fermented::types::platform_value::platform_value_Value { (*obj).0 } + } - #[cfg(feature = "server")] - pub mod index_uniqueness { - use crate as dash_sdk_bindings; + pub mod verify { use crate as dash_sdk_bindings; } - pub mod validate_document_create_transition_action_uniqueness { use crate as dash_sdk_bindings; } + pub mod from_request { use crate as dash_sdk_bindings; } - pub mod validate_document_replace_transition_action_uniqueness { use crate as dash_sdk_bindings; } + pub mod proof { use crate as dash_sdk_bindings; } - pub mod internal { - use crate as dash_sdk_bindings; + pub mod unproved { use crate as dash_sdk_bindings; } - pub mod validate_uniqueness_of_data { use crate as dash_sdk_bindings; } - } + pub mod error { use crate as dash_sdk_bindings; } + } - pub mod validate_document_purchase_transition_action_uniqueness { use crate as dash_sdk_bindings; } + pub mod platform_value { + use crate as dash_sdk_bindings; - pub mod validate_document_update_price_transition_action_uniqueness { use crate as dash_sdk_bindings; } + pub mod macros { use crate as dash_sdk_bindings; } - pub mod validate_document_uniqueness { use crate as dash_sdk_bindings; } + pub mod system_bytes { use crate as dash_sdk_bindings; } - pub mod validate_document_transfer_transition_action_uniqueness { use crate as dash_sdk_bindings; } - } + pub mod types { + use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod delete { - use crate as dash_sdk_bindings; + pub mod bytes_36 { use crate as dash_sdk_bindings; } - pub mod remove_indices_for_top_index_level_for_contract_operations { use crate as dash_sdk_bindings; } + pub mod identifier { + use crate as dash_sdk_bindings; - pub mod remove_document_from_primary_storage { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`Identifier`]"] + #[repr(C)] + #[derive(Clone)] + pub struct platform_value_types_identifier_Identifier(*mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_IdentifierBytes32); - pub mod delete_document_for_contract_with_named_type_operations { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for platform_value_types_identifier_Identifier { + unsafe fn ffi_from_const(ffi: *const platform_value_types_identifier_Identifier) -> platform_value::types::identifier::Identifier { + let ffi_ref = &*ffi; + platform_value::types::identifier::Identifier(>::ffi_from(ffi_ref.0)) + } + } - pub mod internal { - use crate as dash_sdk_bindings; + impl ferment::FFIConversionTo for platform_value_types_identifier_Identifier { unsafe fn ffi_to_const(obj: platform_value::types::identifier::Identifier) -> *const platform_value_types_identifier_Identifier { ferment::boxed(platform_value_types_identifier_Identifier(>::ffi_to(obj.0))) } } - pub mod add_estimation_costs_for_remove_document_to_primary_storage { use crate as dash_sdk_bindings; } + impl Drop for platform_value_types_identifier_Identifier { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.0); + } } + } - pub mod delete_document_for_contract_id_with_named_type_operations { use crate as dash_sdk_bindings; } - - pub mod delete_document_for_contract_operations { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_types_identifier_Identifier_ctor<>(o_0: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_IdentifierBytes32) -> *mut platform_value_types_identifier_Identifier { ferment::boxed(platform_value_types_identifier_Identifier(o_0)) } - pub mod delete_document_for_contract { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_types_identifier_Identifier_destroy<>(ffi: *mut platform_value_types_identifier_Identifier) { ferment::unbox_any(ffi); } - pub mod delete_document_for_contract_apply_and_add_to_operations { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_types_identifier_Identifier_get_0<>(obj: *const platform_value_types_identifier_Identifier) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_IdentifierBytes32 { (*obj).0 } - pub mod delete_document_for_contract_id { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_types_identifier_Identifier_set_0<>(obj: *const platform_value_types_identifier_Identifier) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_IdentifierBytes32 { (*obj).0 } - pub mod remove_reference_for_index_level_for_contract_operations { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`IdentifierBytes32`]"] + #[repr(C)] + #[derive(Clone)] + pub struct platform_value_types_identifier_IdentifierBytes32(*mut crate::fermented::generics::Arr_u8_32); - pub mod remove_indices_for_index_level_for_contract_operations { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for platform_value_types_identifier_IdentifierBytes32 { + unsafe fn ffi_from_const(ffi: *const platform_value_types_identifier_IdentifierBytes32) -> platform_value::types::identifier::IdentifierBytes32 { + let ffi_ref = &*ffi; + platform_value::types::identifier::IdentifierBytes32(>::ffi_from(ffi_ref.0)) + } } - } - } - - #[cfg(any(feature = "server", feature = "verify"))] - pub mod verify { - use crate as dash_sdk_bindings; - - pub mod group { - use crate as dash_sdk_bindings; - pub mod verify_action_signers_total_power { use crate as dash_sdk_bindings; } - - pub mod verify_active_action_infos { use crate as dash_sdk_bindings; } - - pub mod verify_group_info { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for platform_value_types_identifier_IdentifierBytes32 { unsafe fn ffi_to_const(obj: platform_value::types::identifier::IdentifierBytes32) -> *const platform_value_types_identifier_IdentifierBytes32 { ferment::boxed(platform_value_types_identifier_IdentifierBytes32(>::ffi_to(obj.0))) } } - pub mod verify_group_infos_in_contract { use crate as dash_sdk_bindings; } + impl Drop for platform_value_types_identifier_IdentifierBytes32 { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.0); + } + } + } - pub mod verify_action_signers { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn platform_value_types_identifier_IdentifierBytes32_ctor<>(o_0: *mut crate::fermented::generics::Arr_u8_32) -> *mut platform_value_types_identifier_IdentifierBytes32 { ferment::boxed(platform_value_types_identifier_IdentifierBytes32(o_0)) } - pub mod state_transition { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_value_types_identifier_IdentifierBytes32_destroy<>(ffi: *mut platform_value_types_identifier_IdentifierBytes32) { ferment::unbox_any(ffi); } - pub mod verify_state_transition_was_executed_with_proof { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_types_identifier_IdentifierBytes32_get_0<>(obj: *const platform_value_types_identifier_IdentifierBytes32) -> *mut crate::fermented::generics::Arr_u8_32 { (*obj).0 } - pub mod state_transition_execution_path_queries { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_types_identifier_IdentifierBytes32_set_0<>(obj: *const platform_value_types_identifier_IdentifierBytes32) -> *mut crate::fermented::generics::Arr_u8_32 { (*obj).0 } } - pub mod single_document { - use crate as dash_sdk_bindings; - - pub mod verify_proof_keep_serialized { use crate as dash_sdk_bindings; } + pub mod bytes_32 { use crate as dash_sdk_bindings; } - pub mod verify_proof { use crate as dash_sdk_bindings; } - } + pub mod bytes_20 { use crate as dash_sdk_bindings; } - pub mod tokens { + pub mod binary_data { use crate as dash_sdk_bindings; - pub mod verify_token_direct_selling_prices { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`BinaryData`]"] + #[repr(C)] + #[derive(Clone)] + pub struct platform_value_types_binary_data_BinaryData(*mut crate::fermented::generics::Vec_u8); - pub mod verify_token_infos_for_identity_id { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for platform_value_types_binary_data_BinaryData { + unsafe fn ffi_from_const(ffi: *const platform_value_types_binary_data_BinaryData) -> platform_value::types::binary_data::BinaryData { + let ffi_ref = &*ffi; + platform_value::types::binary_data::BinaryData(>>::ffi_from(ffi_ref.0)) + } + } - pub mod verify_token_perpetual_distribution_last_paid_time { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for platform_value_types_binary_data_BinaryData { unsafe fn ffi_to_const(obj: platform_value::types::binary_data::BinaryData) -> *const platform_value_types_binary_data_BinaryData { ferment::boxed(platform_value_types_binary_data_BinaryData(>>::ffi_to(obj.0))) } } - pub mod verify_token_balances_for_identity_id { use crate as dash_sdk_bindings; } + impl Drop for platform_value_types_binary_data_BinaryData { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.0); + } + } + } - pub mod verify_token_direct_selling_price { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_types_binary_data_BinaryData_ctor<>(o_0: *mut crate::fermented::generics::Vec_u8) -> *mut platform_value_types_binary_data_BinaryData { ferment::boxed(platform_value_types_binary_data_BinaryData(o_0)) } - pub mod verify_token_balance_for_identity_id { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_types_binary_data_BinaryData_destroy<>(ffi: *mut platform_value_types_binary_data_BinaryData) { ferment::unbox_any(ffi); } - pub mod verify_token_status { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_types_binary_data_BinaryData_get_0<>(obj: *const platform_value_types_binary_data_BinaryData) -> *mut crate::fermented::generics::Vec_u8 { (*obj).0 } - pub mod verify_token_balances_for_identity_ids { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_types_binary_data_BinaryData_set_0<>(obj: *const platform_value_types_binary_data_BinaryData) -> *mut crate::fermented::generics::Vec_u8 { (*obj).0 } + } + } - pub mod verify_token_info_for_identity_id { use crate as dash_sdk_bindings; } + pub mod converter { + use crate as dash_sdk_bindings; - pub mod verify_token_total_supply_and_aggregated_identity_balance { use crate as dash_sdk_bindings; } + #[cfg(feature = "json")] + pub mod serde_json { + use crate as dash_sdk_bindings; + } - pub mod verify_token_pre_programmed_distributions { use crate as dash_sdk_bindings; } + #[cfg(feature = "cbor")] + pub mod ciborium { + use crate as dash_sdk_bindings; + } + } - pub mod verify_token_statuses { use crate as dash_sdk_bindings; } + pub mod patch { + use crate as dash_sdk_bindings; - pub mod verify_token_infos_for_identity_ids { use crate as dash_sdk_bindings; } + pub mod diff { use crate as dash_sdk_bindings; } + } - pub mod verify_token_contract_info { use crate as dash_sdk_bindings; } - } + pub mod eq { use crate as dash_sdk_bindings; } - pub mod contract { - use crate as dash_sdk_bindings; + pub mod inner_value { use crate as dash_sdk_bindings; } - pub mod verify_contract { use crate as dash_sdk_bindings; } + pub mod inner_value_at_path { + use crate as dash_sdk_bindings; - pub mod verify_contract_history { use crate as dash_sdk_bindings; } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; } + } - pub mod document { - use crate as dash_sdk_bindings; + pub mod btreemap_extensions { + use crate as dash_sdk_bindings; - pub mod verify_proof_keep_serialized { use crate as dash_sdk_bindings; } + pub mod btreemap_path_extensions { use crate as dash_sdk_bindings; } - pub mod verify_proof { use crate as dash_sdk_bindings; } + pub mod btreemap_removal_extensions { + use crate as dash_sdk_bindings; - pub mod verify_start_at_document_in_proof { use crate as dash_sdk_bindings; } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } } - pub mod system { - use crate as dash_sdk_bindings; + pub mod btreemap_field_replacement { use crate as dash_sdk_bindings; } + } - pub mod verify_elements { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`Value`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum platform_value_Value { U128(*mut [u8; 16]), I128(*mut [u8; 16]), U64(u64), I64(i64), U32(u32), I32(i32), U16(u16), I16(i16), U8(u8), I8(i8), Bytes(*mut crate::fermented::generics::Vec_u8), Bytes20(*mut crate::fermented::generics::Arr_u8_20), Bytes32(*mut crate::fermented::generics::Arr_u8_32), Bytes36(*mut crate::fermented::generics::Arr_u8_36), EnumU8(*mut crate::fermented::generics::Vec_u8), EnumString(*mut crate::fermented::generics::Vec_String), Identifier(*mut crate::fermented::types::platform_value::platform_value_Hash256), Float(f64), Text(*mut std::os::raw::c_char), Bool(bool), Null, Array(*mut crate::fermented::generics::Vec_platform_value_Value), Map(*mut crate::fermented::types::platform_value::value_map::platform_value_value_map_ValueMap) } - pub mod verify_finalized_epoch_infos { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for platform_value_Value { + unsafe fn ffi_from_const(ffi: *const platform_value_Value) -> platform_value::Value { + let ffi_ref = &*ffi; + match ffi_ref { + platform_value_Value::U128(o_0) => platform_value::Value::U128(<[u8; 16] as ferment::FFIConversionFrom>::ffi_from(*o_0)), + platform_value_Value::I128(o_0) => platform_value::Value::I128(<[u8; 16] as ferment::FFIConversionFrom>::ffi_from(*o_0)), + platform_value_Value::U64(o_0) => platform_value::Value::U64(*o_0), + platform_value_Value::I64(o_0) => platform_value::Value::I64(*o_0), + platform_value_Value::U32(o_0) => platform_value::Value::U32(*o_0), + platform_value_Value::I32(o_0) => platform_value::Value::I32(*o_0), + platform_value_Value::U16(o_0) => platform_value::Value::U16(*o_0), + platform_value_Value::I16(o_0) => platform_value::Value::I16(*o_0), + platform_value_Value::U8(o_0) => platform_value::Value::U8(*o_0), + platform_value_Value::I8(o_0) => platform_value::Value::I8(*o_0), + platform_value_Value::Bytes(o_0) => platform_value::Value::Bytes(>>::ffi_from(*o_0)), + platform_value_Value::Bytes20(o_0) => platform_value::Value::Bytes20(>::ffi_from(*o_0)), + platform_value_Value::Bytes32(o_0) => platform_value::Value::Bytes32(>::ffi_from(*o_0)), + platform_value_Value::Bytes36(o_0) => platform_value::Value::Bytes36(>::ffi_from(*o_0)), + platform_value_Value::EnumU8(o_0) => platform_value::Value::EnumU8(>>::ffi_from(*o_0)), + platform_value_Value::EnumString(o_0) => platform_value::Value::EnumString(>>::ffi_from(*o_0)), + platform_value_Value::Identifier(o_0) => platform_value::Value::Identifier(>::ffi_from(*o_0)), + platform_value_Value::Float(o_0) => platform_value::Value::Float(*o_0), + platform_value_Value::Text(o_0) => platform_value::Value::Text(>::ffi_from(*o_0)), + platform_value_Value::Bool(o_0) => platform_value::Value::Bool(*o_0), + platform_value_Value::Null => platform_value::Value::Null, + platform_value_Value::Array(o_0) => platform_value::Value::Array(>>::ffi_from(*o_0)), + platform_value_Value::Map(o_0) => platform_value::Value::Map(>::ffi_from(*o_0)) + } + } + } - pub mod verify_epoch_infos { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for platform_value_Value { + unsafe fn ffi_to_const(obj: platform_value::Value) -> *const platform_value_Value { + ferment::boxed(match obj { + platform_value::Value::U128(o_0) => platform_value_Value::U128(<[u8; 16] as ferment::FFIConversionTo>::ffi_to(o_0)), + platform_value::Value::I128(o_0) => platform_value_Value::I128(<[u8; 16] as ferment::FFIConversionTo>::ffi_to(o_0)), + platform_value::Value::U64(o_0) => platform_value_Value::U64(o_0), + platform_value::Value::I64(o_0) => platform_value_Value::I64(o_0), + platform_value::Value::U32(o_0) => platform_value_Value::U32(o_0), + platform_value::Value::I32(o_0) => platform_value_Value::I32(o_0), + platform_value::Value::U16(o_0) => platform_value_Value::U16(o_0), + platform_value::Value::I16(o_0) => platform_value_Value::I16(o_0), + platform_value::Value::U8(o_0) => platform_value_Value::U8(o_0), + platform_value::Value::I8(o_0) => platform_value_Value::I8(o_0), + platform_value::Value::Bytes(o_0) => platform_value_Value::Bytes(>>::ffi_to(o_0)), + platform_value::Value::Bytes20(o_0) => platform_value_Value::Bytes20(>::ffi_to(o_0)), + platform_value::Value::Bytes32(o_0) => platform_value_Value::Bytes32(>::ffi_to(o_0)), + platform_value::Value::Bytes36(o_0) => platform_value_Value::Bytes36(>::ffi_to(o_0)), + platform_value::Value::EnumU8(o_0) => platform_value_Value::EnumU8(>>::ffi_to(o_0)), + platform_value::Value::EnumString(o_0) => platform_value_Value::EnumString(>>::ffi_to(o_0)), + platform_value::Value::Identifier(o_0) => platform_value_Value::Identifier(>::ffi_to(o_0)), + platform_value::Value::Float(o_0) => platform_value_Value::Float(o_0), + platform_value::Value::Text(o_0) => platform_value_Value::Text(>::ffi_to(o_0)), + platform_value::Value::Bool(o_0) => platform_value_Value::Bool(o_0), + platform_value::Value::Null => platform_value_Value::Null, + platform_value::Value::Array(o_0) => platform_value_Value::Array(>>::ffi_to(o_0)), + platform_value::Value::Map(o_0) => platform_value_Value::Map(>::ffi_to(o_0)), + _ => unreachable!("This is unreachable") + }) + } + } - pub mod verify_epoch_proposers { use crate as dash_sdk_bindings; } + impl Drop for platform_value_Value { + fn drop(&mut self) { + unsafe { + match self { + platform_value_Value::U128(o_0) => { ferment::unbox_any_opt(*o_0); } + platform_value_Value::I128(o_0) => { ferment::unbox_any_opt(*o_0); } + platform_value_Value::U64(o_0) => { ; } + platform_value_Value::I64(o_0) => { ; } + platform_value_Value::U32(o_0) => { ; } + platform_value_Value::I32(o_0) => { ; } + platform_value_Value::U16(o_0) => { ; } + platform_value_Value::I16(o_0) => { ; } + platform_value_Value::U8(o_0) => { ; } + platform_value_Value::I8(o_0) => { ; } + platform_value_Value::Bytes(o_0) => { ferment::unbox_any(*o_0); } + platform_value_Value::Bytes20(o_0) => { ferment::unbox_any(*o_0); } + platform_value_Value::Bytes32(o_0) => { ferment::unbox_any(*o_0); } + platform_value_Value::Bytes36(o_0) => { ferment::unbox_any(*o_0); } + platform_value_Value::EnumU8(o_0) => { ferment::unbox_any(*o_0); } + platform_value_Value::EnumString(o_0) => { ferment::unbox_any(*o_0); } + platform_value_Value::Identifier(o_0) => { ferment::unbox_any(*o_0); } + platform_value_Value::Float(o_0) => { ; } + platform_value_Value::Text(o_0) => { ferment::unbox_string(*o_0); } + platform_value_Value::Bool(o_0) => { ; } + platform_value_Value::Null => {} + platform_value_Value::Array(o_0) => { ferment::unbox_any(*o_0); } + platform_value_Value::Map(o_0) => { ferment::unbox_any(*o_0); } + _ => unreachable!("This is unreachable") + }; + } + } + } - pub mod verify_upgrade_state { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_U128_ctor(o_o_0: *mut [u8; 16]) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::U128(o_o_0)) } - pub mod verify_upgrade_vote_status { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_I128_ctor(o_o_0: *mut [u8; 16]) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::I128(o_o_0)) } - pub mod verify_total_credits_in_system { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_U64_ctor(o_o_0: u64) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::U64(o_o_0)) } - pub mod voting { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_I64_ctor(o_o_0: i64) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::I64(o_o_0)) } - pub mod verify_vote_poll_vote_state_proof { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_U32_ctor(o_o_0: u32) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::U32(o_o_0)) } - pub mod verify_vote_polls_end_date_query { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_I32_ctor(o_o_0: i32) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::I32(o_o_0)) } - pub mod verify_vote_poll_votes_proof { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_U16_ctor(o_o_0: u16) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::U16(o_o_0)) } - pub mod verify_masternode_vote { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_I16_ctor(o_o_0: i16) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::I16(o_o_0)) } - pub mod verify_contests_proof { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_U8_ctor(o_o_0: u8) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::U8(o_o_0)) } - pub mod verify_identity_votes_given_proof { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_I8_ctor(o_o_0: i8) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::I8(o_o_0)) } - pub mod verify_specialized_balance { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_Bytes_ctor(o_o_0: *mut crate::fermented::generics::Vec_u8) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Bytes(o_o_0)) } - pub mod identity { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_Bytes20_ctor(o_o_0: *mut crate::fermented::generics::Arr_u8_20) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Bytes20(o_o_0)) } - pub mod verify_identity_balance_for_identity_id { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_Bytes32_ctor(o_o_0: *mut crate::fermented::generics::Arr_u8_32) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Bytes32(o_o_0)) } - pub mod verify_identity_revision_for_identity_id { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_Bytes36_ctor(o_o_0: *mut crate::fermented::generics::Arr_u8_36) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Bytes36(o_o_0)) } - pub mod verify_full_identity_by_identity_id { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_EnumU8_ctor(o_o_0: *mut crate::fermented::generics::Vec_u8) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::EnumU8(o_o_0)) } - pub mod verify_identity_id_by_unique_public_key_hash { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_EnumString_ctor(o_o_0: *mut crate::fermented::generics::Vec_String) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::EnumString(o_o_0)) } - pub mod verify_identity_ids_by_unique_public_key_hashes { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_Identifier_ctor(o_o_0: *mut crate::fermented::types::platform_value::platform_value_Hash256) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Identifier(o_o_0)) } - pub mod verify_identity_nonce { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_Float_ctor(o_o_0: f64) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Float(o_o_0)) } - pub mod verify_identity_balance_and_revision_for_identity_id { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_Text_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Text(o_o_0)) } - pub mod verify_full_identities_by_public_key_hashes { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_Bool_ctor(o_o_0: bool) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Bool(o_o_0)) } - pub mod verify_identity_keys_by_identity_id { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_Null_ctor() -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Null {}) } - pub mod verify_full_identity_by_unique_public_key_hash { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_Array_ctor(o_o_0: *mut crate::fermented::generics::Vec_platform_value_Value) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Array(o_o_0)) } - pub mod verify_full_identity_by_non_unique_public_key_hash { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_Map_ctor(o_o_0: *mut crate::fermented::types::platform_value::value_map::platform_value_value_map_ValueMap) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Map(o_o_0)) } - pub mod verify_identity_id_by_non_unique_public_key_hash { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_destroy<>(ffi: *mut platform_value_Value) { ferment::unbox_any(ffi); } - pub mod verify_identity_balances_for_identity_ids { use crate as dash_sdk_bindings; } + pub mod pointer { use crate as dash_sdk_bindings; } - pub mod verify_identities_contract_keys { use crate as dash_sdk_bindings; } + pub mod replace { use crate as dash_sdk_bindings; } - pub mod verify_identity_contract_nonce { use crate as dash_sdk_bindings; } - } - } + pub mod index { use crate as dash_sdk_bindings; } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod query { + pub mod value_map { + use crate as dash_sdk_bindings; + + #[doc = "FFI-representation of the [`ValueMap`]"] + #[repr(C)] + #[derive(Clone)] + pub struct platform_value_value_map_ValueMap(*mut crate::fermented::generics::Vec_Tuple_platform_value_Value_platform_value_Value); + + impl ferment::FFIConversionFrom for platform_value_value_map_ValueMap { + unsafe fn ffi_from_const(ffi: *const platform_value_value_map_ValueMap) -> platform_value::value_map::ValueMap { + let ffi_ref = &*ffi; + >>::ffi_from(ffi_ref.0) + } + } + + impl ferment::FFIConversionTo for platform_value_value_map_ValueMap { unsafe fn ffi_to_const(obj: platform_value::value_map::ValueMap) -> *const platform_value_value_map_ValueMap { ferment::boxed(platform_value_value_map_ValueMap(>>::ffi_to(obj))) } } + + impl Drop for platform_value_value_map_ValueMap { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.0); + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_value_map_ValueMap_ctor<>(o_0: *mut crate::fermented::generics::Vec_Tuple_platform_value_Value_platform_value_Value) -> *mut platform_value_value_map_ValueMap { ferment::boxed(platform_value_value_map_ValueMap(o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_value_map_ValueMap_destroy<>(ffi: *mut platform_value_value_map_ValueMap) { ferment::unbox_any(ffi); } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_value_map_ValueMap_get_0<>(obj: *const platform_value_value_map_ValueMap) -> *mut crate::fermented::generics::Vec_Tuple_platform_value_Value_platform_value_Value { (*obj).0 } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_value_map_ValueMap_set_0<>(obj: *const platform_value_value_map_ValueMap) -> *mut crate::fermented::generics::Vec_Tuple_platform_value_Value_platform_value_Value { (*obj).0 } + } + + #[doc = "FFI-representation of the [`Hash256`]"] + #[repr(C)] + #[derive(Clone)] + pub struct platform_value_Hash256(*mut crate::fermented::generics::Arr_u8_32); + + impl ferment::FFIConversionFrom for platform_value_Hash256 { + unsafe fn ffi_from_const(ffi: *const platform_value_Hash256) -> platform_value::Hash256 { + let ffi_ref = &*ffi; + >::ffi_from(ffi_ref.0) + } + } + + impl ferment::FFIConversionTo for platform_value_Hash256 { unsafe fn ffi_to_const(obj: platform_value::Hash256) -> *const platform_value_Hash256 { ferment::boxed(platform_value_Hash256(>::ffi_to(obj))) } } + + impl Drop for platform_value_Hash256 { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.0); + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_Hash256_ctor<>(o_0: *mut crate::fermented::generics::Arr_u8_32) -> *mut platform_value_Hash256 { ferment::boxed(platform_value_Hash256(o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_Hash256_destroy<>(ffi: *mut platform_value_Hash256) { ferment::unbox_any(ffi); } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_Hash256_get_0<>(obj: *const platform_value_Hash256) -> *mut crate::fermented::generics::Arr_u8_32 { (*obj).0 } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_Hash256_set_0<>(obj: *const platform_value_Hash256) -> *mut crate::fermented::generics::Arr_u8_32 { (*obj).0 } + + pub mod value_serialization { + use crate as dash_sdk_bindings; + + pub mod ser { use crate as dash_sdk_bindings; } + + pub mod de { use crate as dash_sdk_bindings; } + } + + pub mod error { + use crate as dash_sdk_bindings; + + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`Error`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum platform_value_error_Error { Unsupported(*mut std::os::raw::c_char), StructureError(*mut std::os::raw::c_char), PathError(*mut std::os::raw::c_char), IntegerSizeError, IntegerParsingError, StringDecodingError(*mut std::os::raw::c_char), KeyMustBeAString, ByteLengthNot20BytesError(*mut std::os::raw::c_char), ByteLengthNot32BytesError(*mut std::os::raw::c_char), ByteLengthNot36BytesError(*mut std::os::raw::c_char), SerdeSerializationError(*mut std::os::raw::c_char), SerdeDeserializationError(*mut std::os::raw::c_char), CborSerializationError(*mut std::os::raw::c_char) } + + impl ferment::FFIConversionFrom for platform_value_error_Error { + unsafe fn ffi_from_const(ffi: *const platform_value_error_Error) -> platform_value::error::Error { + let ffi_ref = &*ffi; + match ffi_ref { + platform_value_error_Error::Unsupported(o_0) => platform_value::error::Error::Unsupported(>::ffi_from(*o_0)), + platform_value_error_Error::StructureError(o_0) => platform_value::error::Error::StructureError(>::ffi_from(*o_0)), + platform_value_error_Error::PathError(o_0) => platform_value::error::Error::PathError(>::ffi_from(*o_0)), + platform_value_error_Error::IntegerSizeError => platform_value::error::Error::IntegerSizeError, + platform_value_error_Error::IntegerParsingError => platform_value::error::Error::IntegerParsingError, + platform_value_error_Error::StringDecodingError(o_0) => platform_value::error::Error::StringDecodingError(>::ffi_from(*o_0)), + platform_value_error_Error::KeyMustBeAString => platform_value::error::Error::KeyMustBeAString, + platform_value_error_Error::ByteLengthNot20BytesError(o_0) => platform_value::error::Error::ByteLengthNot20BytesError(>::ffi_from(*o_0)), + platform_value_error_Error::ByteLengthNot32BytesError(o_0) => platform_value::error::Error::ByteLengthNot32BytesError(>::ffi_from(*o_0)), + platform_value_error_Error::ByteLengthNot36BytesError(o_0) => platform_value::error::Error::ByteLengthNot36BytesError(>::ffi_from(*o_0)), + platform_value_error_Error::SerdeSerializationError(o_0) => platform_value::error::Error::SerdeSerializationError(>::ffi_from(*o_0)), + platform_value_error_Error::SerdeDeserializationError(o_0) => platform_value::error::Error::SerdeDeserializationError(>::ffi_from(*o_0)), + platform_value_error_Error::CborSerializationError(o_0) => platform_value::error::Error::CborSerializationError(>::ffi_from(*o_0)) + } + } + } + + impl ferment::FFIConversionTo for platform_value_error_Error { + unsafe fn ffi_to_const(obj: platform_value::error::Error) -> *const platform_value_error_Error { + ferment::boxed(match obj { + platform_value::error::Error::Unsupported(o_0) => platform_value_error_Error::Unsupported(>::ffi_to(o_0)), + platform_value::error::Error::StructureError(o_0) => platform_value_error_Error::StructureError(>::ffi_to(o_0)), + platform_value::error::Error::PathError(o_0) => platform_value_error_Error::PathError(>::ffi_to(o_0)), + platform_value::error::Error::IntegerSizeError => platform_value_error_Error::IntegerSizeError, + platform_value::error::Error::IntegerParsingError => platform_value_error_Error::IntegerParsingError, + platform_value::error::Error::StringDecodingError(o_0) => platform_value_error_Error::StringDecodingError(>::ffi_to(o_0)), + platform_value::error::Error::KeyMustBeAString => platform_value_error_Error::KeyMustBeAString, + platform_value::error::Error::ByteLengthNot20BytesError(o_0) => platform_value_error_Error::ByteLengthNot20BytesError(>::ffi_to(o_0)), + platform_value::error::Error::ByteLengthNot32BytesError(o_0) => platform_value_error_Error::ByteLengthNot32BytesError(>::ffi_to(o_0)), + platform_value::error::Error::ByteLengthNot36BytesError(o_0) => platform_value_error_Error::ByteLengthNot36BytesError(>::ffi_to(o_0)), + platform_value::error::Error::SerdeSerializationError(o_0) => platform_value_error_Error::SerdeSerializationError(>::ffi_to(o_0)), + platform_value::error::Error::SerdeDeserializationError(o_0) => platform_value_error_Error::SerdeDeserializationError(>::ffi_to(o_0)), + platform_value::error::Error::CborSerializationError(o_0) => platform_value_error_Error::CborSerializationError(>::ffi_to(o_0)), + _ => unreachable!("This is unreachable") + }) + } + } + + impl Drop for platform_value_error_Error { + fn drop(&mut self) { + unsafe { + match self { + platform_value_error_Error::Unsupported(o_0) => { ferment::unbox_string(*o_0); } + platform_value_error_Error::StructureError(o_0) => { ferment::unbox_string(*o_0); } + platform_value_error_Error::PathError(o_0) => { ferment::unbox_string(*o_0); } + platform_value_error_Error::IntegerSizeError => {} + platform_value_error_Error::IntegerParsingError => {} + platform_value_error_Error::StringDecodingError(o_0) => { ferment::unbox_string(*o_0); } + platform_value_error_Error::KeyMustBeAString => {} + platform_value_error_Error::ByteLengthNot20BytesError(o_0) => { ferment::unbox_string(*o_0); } + platform_value_error_Error::ByteLengthNot32BytesError(o_0) => { ferment::unbox_string(*o_0); } + platform_value_error_Error::ByteLengthNot36BytesError(o_0) => { ferment::unbox_string(*o_0); } + platform_value_error_Error::SerdeSerializationError(o_0) => { ferment::unbox_string(*o_0); } + platform_value_error_Error::SerdeDeserializationError(o_0) => { ferment::unbox_string(*o_0); } + platform_value_error_Error::CborSerializationError(o_0) => { ferment::unbox_string(*o_0); } + _ => unreachable!("This is unreachable") + }; + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_Unsupported_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::Unsupported(o_o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_StructureError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::StructureError(o_o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_PathError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::PathError(o_o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_IntegerSizeError_ctor() -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::IntegerSizeError {}) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_IntegerParsingError_ctor() -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::IntegerParsingError {}) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_StringDecodingError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::StringDecodingError(o_o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_KeyMustBeAString_ctor() -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::KeyMustBeAString {}) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_ByteLengthNot20BytesError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::ByteLengthNot20BytesError(o_o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_ByteLengthNot32BytesError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::ByteLengthNot32BytesError(o_o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_ByteLengthNot36BytesError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::ByteLengthNot36BytesError(o_o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_SerdeSerializationError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::SerdeSerializationError(o_o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_SerdeDeserializationError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::SerdeDeserializationError(o_o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_CborSerializationError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::CborSerializationError(o_o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_destroy<>(ffi: *mut platform_value_error_Error) { ferment::unbox_any(ffi); } + } + } + + pub mod dpp { + use crate as dash_sdk_bindings; + + #[cfg(feature = "state-transitions")] + pub mod state_transition { use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod test_index { - use crate as dash_sdk_bindings; - } + pub mod serialization { use crate as dash_sdk_bindings; } + + pub mod state_transitions { + use crate as dash_sdk_bindings; + + pub mod identity { + use crate as dash_sdk_bindings; + + pub mod identity_credit_transfer_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod fields { use crate as dash_sdk_bindings; } + + pub mod methods { use crate as dash_sdk_bindings; } + } + + pub mod identity_credit_withdrawal_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod v1 { use crate as dash_sdk_bindings; } + + pub mod accessors { use crate as dash_sdk_bindings; } + } + + pub mod identity_topup_transition { + use crate as dash_sdk_bindings; + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod accessors { use crate as dash_sdk_bindings; } + } + + pub mod identity_create_transition { + use crate as dash_sdk_bindings; + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod methods { use crate as dash_sdk_bindings; } + } + + pub mod identity_credit_transfer_to_addresses_transition { + use crate as dash_sdk_bindings; + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod v0 { + use crate as dash_sdk_bindings; + + pub mod state_transition_validation { use crate as dash_sdk_bindings; } + } + + pub mod fields { use crate as dash_sdk_bindings; } + + pub mod methods { use crate as dash_sdk_bindings; } + } + + pub mod identity_create_from_addresses_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod methods { use crate as dash_sdk_bindings; } + } + + pub mod common_fields { use crate as dash_sdk_bindings; } + + pub mod identity_topup_from_addresses_transition { + use crate as dash_sdk_bindings; + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod masternode_vote_transition { + use crate as dash_sdk_bindings; + + pub mod fields { use crate as dash_sdk_bindings; } + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod accessors { use crate as dash_sdk_bindings; } + } + + pub mod public_key_in_creation { + use crate as dash_sdk_bindings; + + pub mod methods { + use crate as dash_sdk_bindings; + + pub mod duplicated_key_ids_witness { use crate as dash_sdk_bindings; } + + pub mod duplicated_keys_witness { use crate as dash_sdk_bindings; } + + #[cfg(feature = "state-transition-signing")] + pub mod from_public_key_signed_external { + use crate as dash_sdk_bindings; + } + + pub mod validate_identity_public_keys_structure { use crate as dash_sdk_bindings; } + + pub mod hash { use crate as dash_sdk_bindings; } + + #[cfg(feature = "state-transition-signing")] + pub mod from_public_key_signed_with_private_key { + use crate as dash_sdk_bindings; + } + } + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod identity_update_transition { + use crate as dash_sdk_bindings; + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod v0 { + use crate as dash_sdk_bindings; + + #[cfg(feature = "json-conversion")] + pub mod json_conversion { + use crate as dash_sdk_bindings; + } + } + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod fields { use crate as dash_sdk_bindings; } + } + } + + pub mod common_fields { use crate as dash_sdk_bindings; } + + pub mod shielded { + use crate as dash_sdk_bindings; + + pub mod shield_transition { + use crate as dash_sdk_bindings; + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod v0 { + use crate as dash_sdk_bindings; + + pub mod state_transition_validation { use crate as dash_sdk_bindings; } + } + } + + pub mod common_validation { use crate as dash_sdk_bindings; } + + pub mod identity_create_from_shielded_pool_transition { + use crate as dash_sdk_bindings; + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod v0 { + use crate as dash_sdk_bindings; + + pub mod state_transition_validation { use crate as dash_sdk_bindings; } + } + } + + pub mod shielded_transfer_transition { + use crate as dash_sdk_bindings; + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod v0 { + use crate as dash_sdk_bindings; + + pub mod state_transition_validation { use crate as dash_sdk_bindings; } + } + } + + pub mod unshield_transition { + use crate as dash_sdk_bindings; + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod v0 { + use crate as dash_sdk_bindings; + + pub mod state_transition_validation { use crate as dash_sdk_bindings; } + } + + pub mod methods { use crate as dash_sdk_bindings; } + } + + pub mod shield_from_asset_lock_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { + use crate as dash_sdk_bindings; + + pub mod state_transition_validation { use crate as dash_sdk_bindings; } + } + + pub mod methods { use crate as dash_sdk_bindings; } + } + + pub mod shielded_withdrawal_transition { + use crate as dash_sdk_bindings; + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod v0 { + use crate as dash_sdk_bindings; + + pub mod state_transition_validation { use crate as dash_sdk_bindings; } + } + } + } + + pub mod address_funds { + use crate as dash_sdk_bindings; + + pub mod address_funding_from_asset_lock_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { + use crate as dash_sdk_bindings; + + pub mod state_transition_validation { use crate as dash_sdk_bindings; } + } + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod accessors { use crate as dash_sdk_bindings; } + } + + pub mod address_credit_withdrawal_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { + use crate as dash_sdk_bindings; + + pub mod state_transition_validation { use crate as dash_sdk_bindings; } + } + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod methods { use crate as dash_sdk_bindings; } + } + + pub mod address_funds_transfer_transition { + use crate as dash_sdk_bindings; + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod v0 { + use crate as dash_sdk_bindings; + + pub mod state_transition_validation { use crate as dash_sdk_bindings; } + } + } + } + + pub mod contract { + use crate as dash_sdk_bindings; + + pub mod data_contract_create_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + + #[cfg(feature = "json-conversion")] + pub mod json_conversion { + use crate as dash_sdk_bindings; + } + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod methods { use crate as dash_sdk_bindings; } + } + + pub mod common_fields { use crate as dash_sdk_bindings; } + + pub mod data_contract_update_transition { + use crate as dash_sdk_bindings; + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod v0 { use crate as dash_sdk_bindings; } + } + } + + pub mod document { + use crate as dash_sdk_bindings; + + pub mod batch_transition { + use crate as dash_sdk_bindings; + + #[cfg(feature = "validation")] + pub mod validation { + use crate as dash_sdk_bindings; + + pub mod validate_basic_structure { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod find_duplicates_by_id { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + } + + pub mod resolvers { use crate as dash_sdk_bindings; } + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod batched_transition { + use crate as dash_sdk_bindings; + + pub mod token_transfer_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod validate_structure { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + } + + pub mod token_transition { use crate as dash_sdk_bindings; } + + pub mod document_transition { use crate as dash_sdk_bindings; } + + pub mod document_transfer_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod token_emergency_action_transition { + use crate as dash_sdk_bindings; + + pub mod validate_structure { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod document_delete_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod token_destroy_frozen_funds_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod validate_structure { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + } + + pub mod document_replace_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod token_burn_transition { + use crate as dash_sdk_bindings; + + pub mod validate_structure { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod document_update_price_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod token_set_price_for_direct_purchase_transition { + use crate as dash_sdk_bindings; + + pub mod v0_methods { use crate as dash_sdk_bindings; } + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod validate_structure { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + } + + pub mod document_base_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod fields { use crate as dash_sdk_bindings; } + + pub mod v1 { use crate as dash_sdk_bindings; } + } + + pub mod resolvers { use crate as dash_sdk_bindings; } + + pub mod document_purchase_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod document_transition_action_type { use crate as dash_sdk_bindings; } + + pub mod token_claim_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod validate_structure { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + } + + pub mod token_transition_action_type { use crate as dash_sdk_bindings; } + + pub mod token_direct_purchase_transition { + use crate as dash_sdk_bindings; + + pub mod validate_structure { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod token_freeze_transition { + use crate as dash_sdk_bindings; + + pub mod validate_structure { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod token_base_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod fields { use crate as dash_sdk_bindings; } + } + + pub mod token_unfreeze_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod validate_structure { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + } + + pub mod token_mint_transition { + use crate as dash_sdk_bindings; + + pub mod validate_structure { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod v0 { + use crate as dash_sdk_bindings; + + pub mod v0_methods { use crate as dash_sdk_bindings; } + } + } + + pub mod document_create_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod token_config_update_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod validate_structure { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod v0_methods { use crate as dash_sdk_bindings; } + } + } + + pub mod fields { use crate as dash_sdk_bindings; } + + pub mod v1 { use crate as dash_sdk_bindings; } + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod v0 { use crate as dash_sdk_bindings; } + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + } + } + + pub mod traits { use crate as dash_sdk_bindings; } + + pub mod state_transition_types { use crate as dash_sdk_bindings; } + + pub mod errors { use crate as dash_sdk_bindings; } + + pub mod abstract_state_transition { use crate as dash_sdk_bindings; } + } + + pub mod core_subsidy { + use crate as dash_sdk_bindings; + + pub mod epoch_core_reward_credits_for_distribution { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + } + + pub mod document { + use crate as dash_sdk_bindings; + + pub mod serialization_traits { + use crate as dash_sdk_bindings; + + #[cfg(feature = "document-cbor-conversion")] + pub mod cbor_conversion { + use crate as dash_sdk_bindings; + } + + #[cfg(feature = "json-conversion")] + pub mod json_conversion { + use crate as dash_sdk_bindings; + } + + #[cfg(feature = "value-conversion")] + pub mod platform_value_conversion { + use crate as dash_sdk_bindings; + } + + pub mod platform_serialization_conversion { + use crate as dash_sdk_bindings; + + pub mod serialize { use crate as dash_sdk_bindings; } + + pub mod deserialize { use crate as dash_sdk_bindings; } + } + } + + #[cfg(feature = "extended-document")] + pub mod extended_document { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod fields { use crate as dash_sdk_bindings; } + } + + #[cfg(feature = "factories")] + pub mod document_factory { + use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`Document`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum dpp_document_Document { V0(*mut crate::fermented::types::dpp::document::v0::dpp_document_v0_DocumentV0) } + + impl ferment::FFIConversionFrom for dpp_document_Document { + unsafe fn ffi_from_const(ffi: *const dpp_document_Document) -> dpp::document::Document { + let ffi_ref = &*ffi; + match ffi_ref { dpp_document_Document::V0(o_0) => dpp::document::Document::V0(>::ffi_from(*o_0)) } + } + } + + impl ferment::FFIConversionTo for dpp_document_Document { + unsafe fn ffi_to_const(obj: dpp::document::Document) -> *const dpp_document_Document { + ferment::boxed(match obj { + dpp::document::Document::V0(o_0) => dpp_document_Document::V0(>::ffi_to(o_0)), + _ => unreachable!("This is unreachable") + }) + } + } + + impl Drop for dpp_document_Document { + fn drop(&mut self) { + unsafe { + match self { + dpp_document_Document::V0(o_0) => { ferment::unbox_any(*o_0); } + _ => unreachable!("This is unreachable") + }; + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_Document_V0_ctor(o_o_0: *mut crate::fermented::types::dpp::document::v0::dpp_document_v0_DocumentV0) -> *mut dpp_document_Document { ferment::boxed(dpp_document_Document::V0(o_o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_Document_destroy<>(ffi: *mut dpp_document_Document) { ferment::unbox_any(ffi); } + + pub mod fields { use crate as dash_sdk_bindings; } + + pub mod document_methods { + use crate as dash_sdk_bindings; + + pub mod hash { use crate as dash_sdk_bindings; } + + pub mod is_equal_ignoring_timestamps { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod get_raw_for_contract { use crate as dash_sdk_bindings; } + + pub mod get_raw_for_document_type { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + } + + pub mod v0 { + use crate as dash_sdk_bindings; + + #[doc = "FFI-representation of the [`DocumentV0`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_document_v0_DocumentV0 { + pub id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, + pub owner_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, + pub properties: *mut crate::fermented::generics::std_collections_Map_keys_String_values_platform_value_Value, + pub revision: *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision, + pub created_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, + pub updated_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, + pub transferred_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, + pub created_at_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, + pub updated_at_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, + pub transferred_at_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, + pub created_at_core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, + pub updated_at_core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, + pub transferred_at_core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, + pub creator_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, + } + + impl ferment::FFIConversionFrom for dpp_document_v0_DocumentV0 { + unsafe fn ffi_from_const(ffi: *const dpp_document_v0_DocumentV0) -> dpp::document::v0::DocumentV0 { + let ffi_ref = &*ffi; + dpp::document::v0::DocumentV0 { + id: >::ffi_from(ffi_ref.id), + owner_id: >::ffi_from(ffi_ref.owner_id), + properties: >>::ffi_from(ffi_ref.properties), + revision: >::ffi_from_opt(ffi_ref.revision), + created_at: >::ffi_from_opt(ffi_ref.created_at), + updated_at: >::ffi_from_opt(ffi_ref.updated_at), + transferred_at: >::ffi_from_opt(ffi_ref.transferred_at), + created_at_block_height: >::ffi_from_opt(ffi_ref.created_at_block_height), + updated_at_block_height: >::ffi_from_opt(ffi_ref.updated_at_block_height), + transferred_at_block_height: >::ffi_from_opt(ffi_ref.transferred_at_block_height), + created_at_core_block_height: >::ffi_from_opt(ffi_ref.created_at_core_block_height), + updated_at_core_block_height: >::ffi_from_opt(ffi_ref.updated_at_core_block_height), + transferred_at_core_block_height: >::ffi_from_opt(ffi_ref.transferred_at_core_block_height), + creator_id: >::ffi_from_opt(ffi_ref.creator_id), + } + } + } + + impl ferment::FFIConversionTo for dpp_document_v0_DocumentV0 { + unsafe fn ffi_to_const(obj: dpp::document::v0::DocumentV0) -> *const dpp_document_v0_DocumentV0 { + ferment::boxed(dpp_document_v0_DocumentV0 { + id: >::ffi_to(obj.id), + owner_id: >::ffi_to(obj.owner_id), + properties: >>::ffi_to(obj.properties), + revision: >::ffi_to_opt(obj.revision), + created_at: >::ffi_to_opt(obj.created_at), + updated_at: >::ffi_to_opt(obj.updated_at), + transferred_at: >::ffi_to_opt(obj.transferred_at), + created_at_block_height: >::ffi_to_opt(obj.created_at_block_height), + updated_at_block_height: >::ffi_to_opt(obj.updated_at_block_height), + transferred_at_block_height: >::ffi_to_opt(obj.transferred_at_block_height), + created_at_core_block_height: >::ffi_to_opt(obj.created_at_core_block_height), + updated_at_core_block_height: >::ffi_to_opt(obj.updated_at_core_block_height), + transferred_at_core_block_height: >::ffi_to_opt(obj.transferred_at_core_block_height), + creator_id: >::ffi_to_opt(obj.creator_id), + }) + } + } + + impl Drop for dpp_document_v0_DocumentV0 { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.id); + ferment::unbox_any(ffi_ref.owner_id); + ferment::unbox_any(ffi_ref.properties); + ferment::unbox_any_opt(ffi_ref.revision); + ferment::unbox_any_opt(ffi_ref.created_at); + ferment::unbox_any_opt(ffi_ref.updated_at); + ferment::unbox_any_opt(ffi_ref.transferred_at); + ferment::unbox_any_opt(ffi_ref.created_at_block_height); + ferment::unbox_any_opt(ffi_ref.updated_at_block_height); + ferment::unbox_any_opt(ffi_ref.transferred_at_block_height); + ferment::unbox_any_opt(ffi_ref.created_at_core_block_height); + ferment::unbox_any_opt(ffi_ref.updated_at_core_block_height); + ferment::unbox_any_opt(ffi_ref.transferred_at_core_block_height); + ferment::unbox_any_opt(ffi_ref.creator_id); + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_ctor<>(id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, owner_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, properties: *mut crate::fermented::generics::std_collections_Map_keys_String_values_platform_value_Value, revision: *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision, created_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, updated_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, transferred_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, created_at_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, updated_at_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, transferred_at_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, created_at_core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, updated_at_core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, transferred_at_core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, creator_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut dpp_document_v0_DocumentV0 { ferment::boxed(dpp_document_v0_DocumentV0 { id, owner_id, properties, revision, created_at, updated_at, transferred_at, created_at_block_height, updated_at_block_height, transferred_at_block_height, created_at_core_block_height, updated_at_core_block_height, transferred_at_core_block_height, creator_id }) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_destroy<>(ffi: *mut dpp_document_v0_DocumentV0) { ferment::unbox_any(ffi); } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_id<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).id } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_owner_id<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).owner_id } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_properties<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::generics::std_collections_Map_keys_String_values_platform_value_Value { (*obj).properties } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_revision<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision { (*obj).revision } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_created_at<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).created_at } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_updated_at<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).updated_at } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_transferred_at<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).transferred_at } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_created_at_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).created_at_block_height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_updated_at_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).updated_at_block_height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_transferred_at_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).transferred_at_block_height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_created_at_core_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).created_at_core_block_height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_updated_at_core_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).updated_at_core_block_height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_transferred_at_core_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).transferred_at_core_block_height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_creator_id<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).creator_id } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_id<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).id } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_owner_id<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).owner_id } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_properties<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::generics::std_collections_Map_keys_String_values_platform_value_Value { (*obj).properties } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_revision<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision { (*obj).revision } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_created_at<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).created_at } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_updated_at<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).updated_at } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_transferred_at<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).transferred_at } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_created_at_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).created_at_block_height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_updated_at_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).updated_at_block_height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_transferred_at_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).transferred_at_block_height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_created_at_core_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).created_at_core_block_height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_updated_at_core_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).updated_at_core_block_height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_transferred_at_core_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).transferred_at_core_block_height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_creator_id<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).creator_id } + + #[cfg(feature = "value-conversion")] + pub mod platform_value_conversion { + use crate as dash_sdk_bindings; + } + + #[cfg(feature = "document-cbor-conversion")] + pub mod cbor_conversion { + use crate as dash_sdk_bindings; + } + + #[cfg(feature = "json-conversion")] + pub mod json_conversion { + use crate as dash_sdk_bindings; + } + + pub mod serialize { use crate as dash_sdk_bindings; } + } + + #[cfg(feature = "factories")] + pub mod specialized_document_factory { + use crate as dash_sdk_bindings; + + pub mod v0 { + use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + } + + pub mod accessors { use crate as dash_sdk_bindings; } + } + + #[cfg(feature = "system_contracts")] + pub mod system_data_contracts { + use crate as dash_sdk_bindings; + } + + pub mod fee { + use crate as dash_sdk_bindings; + + pub mod epoch { + use crate as dash_sdk_bindings; + + #[cfg(feature = "fee-distribution")] + pub mod distribution { + use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + } + + #[cfg(feature = "fee-distribution")] + pub mod fee_result { + use crate as dash_sdk_bindings; + + pub mod refunds { + use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + } + + pub mod default_costs { use crate as dash_sdk_bindings; } + } + + #[cfg(feature = "core-types")] + pub mod core_types { + use crate as dash_sdk_bindings; + + pub mod validator { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod validator_set { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + } + + pub mod identity { + use crate as dash_sdk_bindings; + + pub mod errors { use crate as dash_sdk_bindings; } + + pub mod accessors { use crate as dash_sdk_bindings; } + + #[cfg(feature = "factories")] + pub mod identity_factory { + use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + + #[cfg(feature = "client")] + pub mod identity_facade { + use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + + pub mod identity_nonce { use crate as dash_sdk_bindings; } + + pub mod methods { + use crate as dash_sdk_bindings; + + pub mod create_basic_identity { use crate as dash_sdk_bindings; } + } + + pub mod v0 { + use crate as dash_sdk_bindings; + + #[doc = "FFI-representation of the [`IdentityV0`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_identity_v0_IdentityV0 { + pub id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, + pub public_keys: *mut crate::fermented::generics::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey, + pub balance: u64, + pub revision: *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision, + } + + impl ferment::FFIConversionFrom for dpp_identity_v0_IdentityV0 { + unsafe fn ffi_from_const(ffi: *const dpp_identity_v0_IdentityV0) -> dpp::identity::v0::IdentityV0 { + let ffi_ref = &*ffi; + dpp::identity::v0::IdentityV0 { id: >::ffi_from(ffi_ref.id), public_keys: >>::ffi_from(ffi_ref.public_keys), balance: ffi_ref.balance, revision: >::ffi_from(ffi_ref.revision) } + } + } + + impl ferment::FFIConversionTo for dpp_identity_v0_IdentityV0 { unsafe fn ffi_to_const(obj: dpp::identity::v0::IdentityV0) -> *const dpp_identity_v0_IdentityV0 { ferment::boxed(dpp_identity_v0_IdentityV0 { id: >::ffi_to(obj.id), public_keys: >>::ffi_to(obj.public_keys), balance: obj.balance, revision: >::ffi_to(obj.revision) }) } } + + impl Drop for dpp_identity_v0_IdentityV0 { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.id); + ferment::unbox_any(ffi_ref.public_keys); + ; + ferment::unbox_any(ffi_ref.revision); + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_ctor<>(id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, public_keys: *mut crate::fermented::generics::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey, balance: u64, revision: *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision) -> *mut dpp_identity_v0_IdentityV0 { ferment::boxed(dpp_identity_v0_IdentityV0 { id, public_keys, balance, revision }) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_destroy<>(ffi: *mut dpp_identity_v0_IdentityV0) { ferment::unbox_any(ffi); } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_get_id<>(obj: *const dpp_identity_v0_IdentityV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).id } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_get_public_keys<>(obj: *const dpp_identity_v0_IdentityV0) -> *mut crate::fermented::generics::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { (*obj).public_keys } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_get_balance<>(obj: *const dpp_identity_v0_IdentityV0) -> u64 { (*obj).balance } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_get_revision<>(obj: *const dpp_identity_v0_IdentityV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision { (*obj).revision } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_set_id<>(obj: *const dpp_identity_v0_IdentityV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).id } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_set_public_keys<>(obj: *const dpp_identity_v0_IdentityV0) -> *mut crate::fermented::generics::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { (*obj).public_keys } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_set_balance<>(obj: *const dpp_identity_v0_IdentityV0) -> u64 { (*obj).balance } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_set_revision<>(obj: *const dpp_identity_v0_IdentityV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision { (*obj).revision } + + pub mod conversion { + use crate as dash_sdk_bindings; + + #[cfg(feature = "value-conversion")] + pub mod platform_value { + use crate as dash_sdk_bindings; + } + + #[cfg(feature = "json-conversion")] + pub mod json { + use crate as dash_sdk_bindings; + } + } + } + + pub mod identity { + use crate as dash_sdk_bindings; + + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`Identity`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum dpp_identity_identity_Identity { V0(*mut crate::fermented::types::dpp::identity::v0::dpp_identity_v0_IdentityV0) } + + impl ferment::FFIConversionFrom for dpp_identity_identity_Identity { + unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_Identity) -> dpp::identity::identity::Identity { + let ffi_ref = &*ffi; + match ffi_ref { dpp_identity_identity_Identity::V0(o_0) => dpp::identity::identity::Identity::V0(>::ffi_from(*o_0)) } + } + } + + impl ferment::FFIConversionTo for dpp_identity_identity_Identity { + unsafe fn ffi_to_const(obj: dpp::identity::identity::Identity) -> *const dpp_identity_identity_Identity { + ferment::boxed(match obj { + dpp::identity::identity::Identity::V0(o_0) => dpp_identity_identity_Identity::V0(>::ffi_to(o_0)), + _ => unreachable!("This is unreachable") + }) + } + } + + impl Drop for dpp_identity_identity_Identity { + fn drop(&mut self) { + unsafe { + match self { + dpp_identity_identity_Identity::V0(o_0) => { ferment::unbox_any(*o_0); } + _ => unreachable!("This is unreachable") + }; + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_Identity_V0_ctor(o_o_0: *mut crate::fermented::types::dpp::identity::v0::dpp_identity_v0_IdentityV0) -> *mut dpp_identity_identity_Identity { ferment::boxed(dpp_identity_identity_Identity::V0(o_o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_Identity_destroy<>(ffi: *mut dpp_identity_identity_Identity) { ferment::unbox_any(ffi); } + } + + pub mod conversion { + use crate as dash_sdk_bindings; + + #[cfg(feature = "identity-cbor-conversion")] + pub mod cbor { + use crate as dash_sdk_bindings; + } + + #[cfg(feature = "json-conversion")] + pub mod json { + use crate as dash_sdk_bindings; + } + + #[cfg(feature = "value-conversion")] + pub mod platform_value { + use crate as dash_sdk_bindings; + } + } + + pub mod core_script { + use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + + pub mod credits_converter { use crate as dash_sdk_bindings; } + + pub mod fields { use crate as dash_sdk_bindings; } + + pub mod state_transition { + use crate as dash_sdk_bindings; + + pub mod asset_lock_proof { + use crate as dash_sdk_bindings; + + pub mod chain { + use crate as dash_sdk_bindings; + + pub mod chain_asset_lock_proof { use crate as dash_sdk_bindings; } + } + + pub mod instant { + use crate as dash_sdk_bindings; + + pub mod methods { + use crate as dash_sdk_bindings; + + pub mod validate_structure { use crate as dash_sdk_bindings; } + } + + pub mod instant_asset_lock_proof { use crate as dash_sdk_bindings; } + } + + pub mod validate_asset_lock_transaction_structure { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + } + + pub mod identity_public_key { + use crate as dash_sdk_bindings; + + pub mod v0 { + use crate as dash_sdk_bindings; + + #[doc = "FFI-representation of the [`IdentityPublicKeyV0`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { + pub id: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID, + pub purpose: *mut crate::fermented::types::dpp::identity::identity_public_key::purpose::dpp_identity_identity_public_key_purpose_Purpose, + pub security_level: *mut crate::fermented::types::dpp::identity::identity_public_key::security_level::dpp_identity_identity_public_key_security_level_SecurityLevel, + pub contract_bounds: *mut crate::fermented::types::dpp::identity::identity_public_key::contract_bounds::dpp_identity_identity_public_key_contract_bounds_ContractBounds, + pub key_type: *mut crate::fermented::types::dpp::identity::identity_public_key::key_type::dpp_identity_identity_public_key_key_type_KeyType, + pub read_only: bool, + pub data: *mut crate::fermented::types::platform_value::types::binary_data::platform_value_types_binary_data_BinaryData, + pub disabled_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, + } + + impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { + unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> dpp::identity::identity_public_key::v0::IdentityPublicKeyV0 { + let ffi_ref = &*ffi; + dpp::identity::identity_public_key::v0::IdentityPublicKeyV0 { + id: >::ffi_from(ffi_ref.id), + purpose: >::ffi_from(ffi_ref.purpose), + security_level: >::ffi_from(ffi_ref.security_level), + contract_bounds: >::ffi_from_opt(ffi_ref.contract_bounds), + key_type: >::ffi_from(ffi_ref.key_type), + read_only: ffi_ref.read_only, + data: >::ffi_from(ffi_ref.data), + disabled_at: >::ffi_from_opt(ffi_ref.disabled_at), + } + } + } + + impl ferment::FFIConversionTo for dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { + unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::v0::IdentityPublicKeyV0) -> *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { + ferment::boxed(dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { + id: >::ffi_to(obj.id), + purpose: >::ffi_to(obj.purpose), + security_level: >::ffi_to(obj.security_level), + contract_bounds: >::ffi_to_opt(obj.contract_bounds), + key_type: >::ffi_to(obj.key_type), + read_only: obj.read_only, + data: >::ffi_to(obj.data), + disabled_at: >::ffi_to_opt(obj.disabled_at), + }) + } + } + + impl Drop for dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.id); + ferment::unbox_any(ffi_ref.purpose); + ferment::unbox_any(ffi_ref.security_level); + ferment::unbox_any_opt(ffi_ref.contract_bounds); + ferment::unbox_any(ffi_ref.key_type); + ; + ferment::unbox_any(ffi_ref.data); + ferment::unbox_any_opt(ffi_ref.disabled_at); + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_ctor<>(id: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID, purpose: *mut crate::fermented::types::dpp::identity::identity_public_key::purpose::dpp_identity_identity_public_key_purpose_Purpose, security_level: *mut crate::fermented::types::dpp::identity::identity_public_key::security_level::dpp_identity_identity_public_key_security_level_SecurityLevel, contract_bounds: *mut crate::fermented::types::dpp::identity::identity_public_key::contract_bounds::dpp_identity_identity_public_key_contract_bounds_ContractBounds, key_type: *mut crate::fermented::types::dpp::identity::identity_public_key::key_type::dpp_identity_identity_public_key_key_type_KeyType, read_only: bool, data: *mut crate::fermented::types::platform_value::types::binary_data::platform_value_types_binary_data_BinaryData, disabled_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis) -> *mut dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { ferment::boxed(dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { id, purpose, security_level, contract_bounds, key_type, read_only, data, disabled_at }) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_destroy<>(ffi: *mut dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) { ferment::unbox_any(ffi); } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_id<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID { (*obj).id } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_purpose<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::purpose::dpp_identity_identity_public_key_purpose_Purpose { (*obj).purpose } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_security_level<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::security_level::dpp_identity_identity_public_key_security_level_SecurityLevel { (*obj).security_level } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_contract_bounds<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::contract_bounds::dpp_identity_identity_public_key_contract_bounds_ContractBounds { (*obj).contract_bounds } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_key_type<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::key_type::dpp_identity_identity_public_key_key_type_KeyType { (*obj).key_type } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_read_only<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> bool { (*obj).read_only } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_data<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::platform_value::types::binary_data::platform_value_types_binary_data_BinaryData { (*obj).data } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_disabled_at<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).disabled_at } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_id<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID { (*obj).id } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_purpose<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::purpose::dpp_identity_identity_public_key_purpose_Purpose { (*obj).purpose } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_security_level<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::security_level::dpp_identity_identity_public_key_security_level_SecurityLevel { (*obj).security_level } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_contract_bounds<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::contract_bounds::dpp_identity_identity_public_key_contract_bounds_ContractBounds { (*obj).contract_bounds } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_key_type<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::key_type::dpp_identity_identity_public_key_key_type_KeyType { (*obj).key_type } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_read_only<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> bool { (*obj).read_only } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_data<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::platform_value::types::binary_data::platform_value_types_binary_data_BinaryData { (*obj).data } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_disabled_at<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).disabled_at } + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod conversion { + use crate as dash_sdk_bindings; + + #[cfg(feature = "value-conversion")] + pub mod platform_value { + use crate as dash_sdk_bindings; + } + + #[cfg(feature = "json-conversion")] + pub mod json { + use crate as dash_sdk_bindings; + } + } + } + + #[doc = "FFI-representation of the [`TimestampMillis`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_identity_identity_public_key_TimestampMillis(u64); + + impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_TimestampMillis { + unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_TimestampMillis) -> dpp::identity::identity_public_key::TimestampMillis { + let ffi_ref = &*ffi; + ffi_ref.0 + } + } + + impl ferment::FFIConversionTo for dpp_identity_identity_public_key_TimestampMillis { unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::TimestampMillis) -> *const dpp_identity_identity_public_key_TimestampMillis { ferment::boxed(dpp_identity_identity_public_key_TimestampMillis(obj)) } } + + impl Drop for dpp_identity_identity_public_key_TimestampMillis { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ; + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_TimestampMillis_ctor<>(o_0: u64) -> *mut dpp_identity_identity_public_key_TimestampMillis { ferment::boxed(dpp_identity_identity_public_key_TimestampMillis(o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_TimestampMillis_destroy<>(ffi: *mut dpp_identity_identity_public_key_TimestampMillis) { ferment::unbox_any(ffi); } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_TimestampMillis_get_0<>(obj: *const dpp_identity_identity_public_key_TimestampMillis) -> u64 { (*obj).0 } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_TimestampMillis_set_0<>(obj: *const dpp_identity_identity_public_key_TimestampMillis) -> u64 { (*obj).0 } + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod security_level { + use crate as dash_sdk_bindings; + + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`SecurityLevel`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum dpp_identity_identity_public_key_security_level_SecurityLevel { MASTER = 0, CRITICAL = 1, HIGH = 2, MEDIUM = 3 } + + impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_security_level_SecurityLevel { + unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_security_level_SecurityLevel) -> dpp::identity::identity_public_key::security_level::SecurityLevel { + let ffi_ref = &*ffi; + match ffi_ref { + dpp_identity_identity_public_key_security_level_SecurityLevel::MASTER => dpp::identity::identity_public_key::security_level::SecurityLevel::MASTER, + dpp_identity_identity_public_key_security_level_SecurityLevel::CRITICAL => dpp::identity::identity_public_key::security_level::SecurityLevel::CRITICAL, + dpp_identity_identity_public_key_security_level_SecurityLevel::HIGH => dpp::identity::identity_public_key::security_level::SecurityLevel::HIGH, + dpp_identity_identity_public_key_security_level_SecurityLevel::MEDIUM => dpp::identity::identity_public_key::security_level::SecurityLevel::MEDIUM + } + } + } + + impl ferment::FFIConversionTo for dpp_identity_identity_public_key_security_level_SecurityLevel { + unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::security_level::SecurityLevel) -> *const dpp_identity_identity_public_key_security_level_SecurityLevel { + ferment::boxed(match obj { + dpp::identity::identity_public_key::security_level::SecurityLevel::MASTER => dpp_identity_identity_public_key_security_level_SecurityLevel::MASTER, + dpp::identity::identity_public_key::security_level::SecurityLevel::CRITICAL => dpp_identity_identity_public_key_security_level_SecurityLevel::CRITICAL, + dpp::identity::identity_public_key::security_level::SecurityLevel::HIGH => dpp_identity_identity_public_key_security_level_SecurityLevel::HIGH, + dpp::identity::identity_public_key::security_level::SecurityLevel::MEDIUM => dpp_identity_identity_public_key_security_level_SecurityLevel::MEDIUM, + _ => unreachable!("This is unreachable") + }) + } + } + + impl Drop for dpp_identity_identity_public_key_security_level_SecurityLevel { + fn drop(&mut self) { + unsafe { + match self { + dpp_identity_identity_public_key_security_level_SecurityLevel::MASTER => {} + dpp_identity_identity_public_key_security_level_SecurityLevel::CRITICAL => {} + dpp_identity_identity_public_key_security_level_SecurityLevel::HIGH => {} + dpp_identity_identity_public_key_security_level_SecurityLevel::MEDIUM => {} + _ => unreachable!("This is unreachable") + }; + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_security_level_SecurityLevel_MASTER_ctor() -> *mut dpp_identity_identity_public_key_security_level_SecurityLevel { ferment::boxed(dpp_identity_identity_public_key_security_level_SecurityLevel::MASTER {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_security_level_SecurityLevel_CRITICAL_ctor() -> *mut dpp_identity_identity_public_key_security_level_SecurityLevel { ferment::boxed(dpp_identity_identity_public_key_security_level_SecurityLevel::CRITICAL {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_security_level_SecurityLevel_HIGH_ctor() -> *mut dpp_identity_identity_public_key_security_level_SecurityLevel { ferment::boxed(dpp_identity_identity_public_key_security_level_SecurityLevel::HIGH {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_security_level_SecurityLevel_MEDIUM_ctor() -> *mut dpp_identity_identity_public_key_security_level_SecurityLevel { ferment::boxed(dpp_identity_identity_public_key_security_level_SecurityLevel::MEDIUM {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_security_level_SecurityLevel_destroy<>(ffi: *mut dpp_identity_identity_public_key_security_level_SecurityLevel) { ferment::unbox_any(ffi); } + } + + pub mod methods { + use crate as dash_sdk_bindings; + + pub mod hash { use crate as dash_sdk_bindings; } + } + + pub mod key_type { + use crate as dash_sdk_bindings; + + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`KeyType`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum dpp_identity_identity_public_key_key_type_KeyType { ECDSA_SECP256K1 = 0, BLS12_381 = 1, ECDSA_HASH160 = 2, BIP13_SCRIPT_HASH = 3, EDDSA_25519_HASH160 = 4 } + + impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_key_type_KeyType { + unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_key_type_KeyType) -> dpp::identity::identity_public_key::key_type::KeyType { + let ffi_ref = &*ffi; + match ffi_ref { + dpp_identity_identity_public_key_key_type_KeyType::ECDSA_SECP256K1 => dpp::identity::identity_public_key::key_type::KeyType::ECDSA_SECP256K1, + dpp_identity_identity_public_key_key_type_KeyType::BLS12_381 => dpp::identity::identity_public_key::key_type::KeyType::BLS12_381, + dpp_identity_identity_public_key_key_type_KeyType::ECDSA_HASH160 => dpp::identity::identity_public_key::key_type::KeyType::ECDSA_HASH160, + dpp_identity_identity_public_key_key_type_KeyType::BIP13_SCRIPT_HASH => dpp::identity::identity_public_key::key_type::KeyType::BIP13_SCRIPT_HASH, + dpp_identity_identity_public_key_key_type_KeyType::EDDSA_25519_HASH160 => dpp::identity::identity_public_key::key_type::KeyType::EDDSA_25519_HASH160 + } + } + } + + impl ferment::FFIConversionTo for dpp_identity_identity_public_key_key_type_KeyType { + unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::key_type::KeyType) -> *const dpp_identity_identity_public_key_key_type_KeyType { + ferment::boxed(match obj { + dpp::identity::identity_public_key::key_type::KeyType::ECDSA_SECP256K1 => dpp_identity_identity_public_key_key_type_KeyType::ECDSA_SECP256K1, + dpp::identity::identity_public_key::key_type::KeyType::BLS12_381 => dpp_identity_identity_public_key_key_type_KeyType::BLS12_381, + dpp::identity::identity_public_key::key_type::KeyType::ECDSA_HASH160 => dpp_identity_identity_public_key_key_type_KeyType::ECDSA_HASH160, + dpp::identity::identity_public_key::key_type::KeyType::BIP13_SCRIPT_HASH => dpp_identity_identity_public_key_key_type_KeyType::BIP13_SCRIPT_HASH, + dpp::identity::identity_public_key::key_type::KeyType::EDDSA_25519_HASH160 => dpp_identity_identity_public_key_key_type_KeyType::EDDSA_25519_HASH160, + _ => unreachable!("This is unreachable") + }) + } + } + + impl Drop for dpp_identity_identity_public_key_key_type_KeyType { + fn drop(&mut self) { + unsafe { + match self { + dpp_identity_identity_public_key_key_type_KeyType::ECDSA_SECP256K1 => {} + dpp_identity_identity_public_key_key_type_KeyType::BLS12_381 => {} + dpp_identity_identity_public_key_key_type_KeyType::ECDSA_HASH160 => {} + dpp_identity_identity_public_key_key_type_KeyType::BIP13_SCRIPT_HASH => {} + dpp_identity_identity_public_key_key_type_KeyType::EDDSA_25519_HASH160 => {} + _ => unreachable!("This is unreachable") + }; + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_key_type_KeyType_ECDSA_SECP256K1_ctor() -> *mut dpp_identity_identity_public_key_key_type_KeyType { ferment::boxed(dpp_identity_identity_public_key_key_type_KeyType::ECDSA_SECP256K1 {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_key_type_KeyType_BLS12_381_ctor() -> *mut dpp_identity_identity_public_key_key_type_KeyType { ferment::boxed(dpp_identity_identity_public_key_key_type_KeyType::BLS12_381 {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_key_type_KeyType_ECDSA_HASH160_ctor() -> *mut dpp_identity_identity_public_key_key_type_KeyType { ferment::boxed(dpp_identity_identity_public_key_key_type_KeyType::ECDSA_HASH160 {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_key_type_KeyType_BIP13_SCRIPT_HASH_ctor() -> *mut dpp_identity_identity_public_key_key_type_KeyType { ferment::boxed(dpp_identity_identity_public_key_key_type_KeyType::BIP13_SCRIPT_HASH {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_key_type_KeyType_EDDSA_25519_HASH160_ctor() -> *mut dpp_identity_identity_public_key_key_type_KeyType { ferment::boxed(dpp_identity_identity_public_key_key_type_KeyType::EDDSA_25519_HASH160 {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_key_type_KeyType_destroy<>(ffi: *mut dpp_identity_identity_public_key_key_type_KeyType) { ferment::unbox_any(ffi); } + } + + pub mod contract_bounds { + use crate as dash_sdk_bindings; + + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`ContractBounds`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum dpp_identity_identity_public_key_contract_bounds_ContractBounds { SingleContract { id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier }, SingleContractDocumentType { id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type_name: *mut std::os::raw::c_char } } + + impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_contract_bounds_ContractBounds { + unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_contract_bounds_ContractBounds) -> dpp::identity::identity_public_key::contract_bounds::ContractBounds { + let ffi_ref = &*ffi; + match ffi_ref { + dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContract { id } => dpp::identity::identity_public_key::contract_bounds::ContractBounds::SingleContract { id: >::ffi_from(*id) }, + dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContractDocumentType { id, document_type_name } => dpp::identity::identity_public_key::contract_bounds::ContractBounds::SingleContractDocumentType { id: >::ffi_from(*id), document_type_name: >::ffi_from(*document_type_name) } + } + } + } + + impl ferment::FFIConversionTo for dpp_identity_identity_public_key_contract_bounds_ContractBounds { + unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::contract_bounds::ContractBounds) -> *const dpp_identity_identity_public_key_contract_bounds_ContractBounds { + ferment::boxed(match obj { + dpp::identity::identity_public_key::contract_bounds::ContractBounds::SingleContract { id } => dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContract { id: >::ffi_to(id) }, + dpp::identity::identity_public_key::contract_bounds::ContractBounds::SingleContractDocumentType { id, document_type_name } => dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContractDocumentType { id: >::ffi_to(id), document_type_name: >::ffi_to(document_type_name) }, + _ => unreachable!("This is unreachable") + }) + } + } + + impl Drop for dpp_identity_identity_public_key_contract_bounds_ContractBounds { + fn drop(&mut self) { + unsafe { + match self { + dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContract { id } => { ferment::unbox_any(*id); } + dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContractDocumentType { id, document_type_name } => { + ferment::unbox_any(*id); + ; + ferment::unbox_string(*document_type_name); + } + _ => unreachable!("This is unreachable") + }; + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_contract_bounds_ContractBounds_SingleContract_ctor(id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut dpp_identity_identity_public_key_contract_bounds_ContractBounds { ferment::boxed(dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContract { id }) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_contract_bounds_ContractBounds_SingleContractDocumentType_ctor(id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type_name: *mut std::os::raw::c_char) -> *mut dpp_identity_identity_public_key_contract_bounds_ContractBounds { ferment::boxed(dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContractDocumentType { id, document_type_name }) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_contract_bounds_ContractBounds_destroy<>(ffi: *mut dpp_identity_identity_public_key_contract_bounds_ContractBounds) { ferment::unbox_any(ffi); } + } + + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`IdentityPublicKey`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum dpp_identity_identity_public_key_IdentityPublicKey { V0(*mut crate::fermented::types::dpp::identity::identity_public_key::v0::dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) } + + impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_IdentityPublicKey { + unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_IdentityPublicKey) -> dpp::identity::identity_public_key::IdentityPublicKey { + let ffi_ref = &*ffi; + match ffi_ref { dpp_identity_identity_public_key_IdentityPublicKey::V0(o_0) => dpp::identity::identity_public_key::IdentityPublicKey::V0(>::ffi_from(*o_0)) } + } + } + + impl ferment::FFIConversionTo for dpp_identity_identity_public_key_IdentityPublicKey { + unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::IdentityPublicKey) -> *const dpp_identity_identity_public_key_IdentityPublicKey { + ferment::boxed(match obj { + dpp::identity::identity_public_key::IdentityPublicKey::V0(o_0) => dpp_identity_identity_public_key_IdentityPublicKey::V0(>::ffi_to(o_0)), + _ => unreachable!("This is unreachable") + }) + } + } + + impl Drop for dpp_identity_identity_public_key_IdentityPublicKey { + fn drop(&mut self) { + unsafe { + match self { + dpp_identity_identity_public_key_IdentityPublicKey::V0(o_0) => { ferment::unbox_any(*o_0); } + _ => unreachable!("This is unreachable") + }; + } + } + } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod ordering { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_IdentityPublicKey_V0_ctor(o_o_0: *mut crate::fermented::types::dpp::identity::identity_public_key::v0::dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut dpp_identity_identity_public_key_IdentityPublicKey { ferment::boxed(dpp_identity_identity_public_key_IdentityPublicKey::V0(o_o_0)) } - #[doc = "FFI-representation of the [`OrderClause`]"] + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_IdentityPublicKey_destroy<>(ffi: *mut dpp_identity_identity_public_key_IdentityPublicKey) { ferment::unbox_any(ffi); } + + pub mod conversion { + use crate as dash_sdk_bindings; + + #[cfg(feature = "value-conversion")] + pub mod platform_value { + use crate as dash_sdk_bindings; + } + + #[cfg(feature = "json-conversion")] + pub mod json { + use crate as dash_sdk_bindings; + } + } + + #[doc = "FFI-representation of the [`KeyCount`]"] #[repr(C)] #[derive(Clone)] - pub struct drive_query_ordering_OrderClause { - pub field: *mut std::os::raw::c_char, - pub ascending: bool, - } + pub struct dpp_identity_identity_public_key_KeyCount(*mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID); - impl ferment::FFIConversionFrom for drive_query_ordering_OrderClause { - unsafe fn ffi_from_const(ffi: *const drive_query_ordering_OrderClause) -> drive::query::ordering::OrderClause { + impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_KeyCount { + unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_KeyCount) -> dpp::identity::identity_public_key::KeyCount { let ffi_ref = &*ffi; - drive::query::ordering::OrderClause { field: >::ffi_from(ffi_ref.field), ascending: ffi_ref.ascending } + >::ffi_from(ffi_ref.0) } } - impl ferment::FFIConversionTo for drive_query_ordering_OrderClause { unsafe fn ffi_to_const(obj: drive::query::ordering::OrderClause) -> *const drive_query_ordering_OrderClause { ferment::boxed(drive_query_ordering_OrderClause { field: >::ffi_to(obj.field), ascending: obj.ascending }) } } + impl ferment::FFIConversionTo for dpp_identity_identity_public_key_KeyCount { unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::KeyCount) -> *const dpp_identity_identity_public_key_KeyCount { ferment::boxed(dpp_identity_identity_public_key_KeyCount(>::ffi_to(obj))) } } - impl Drop for drive_query_ordering_OrderClause { + impl Drop for dpp_identity_identity_public_key_KeyCount { fn drop(&mut self) { unsafe { let ffi_ref = self; - ferment::unbox_string(ffi_ref.field); - ; + ferment::unbox_any(ffi_ref.0); } } } #[no_mangle] - pub unsafe extern "C" fn drive_query_ordering_OrderClause_ctor<>(field: *mut std::os::raw::c_char, ascending: bool) -> *mut drive_query_ordering_OrderClause { ferment::boxed(drive_query_ordering_OrderClause { field, ascending }) } + pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyCount_ctor<>(o_0: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID) -> *mut dpp_identity_identity_public_key_KeyCount { ferment::boxed(dpp_identity_identity_public_key_KeyCount(o_0)) } #[no_mangle] - pub unsafe extern "C" fn drive_query_ordering_OrderClause_destroy<>(ffi: *mut drive_query_ordering_OrderClause) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyCount_destroy<>(ffi: *mut dpp_identity_identity_public_key_KeyCount) { ferment::unbox_any(ffi); } #[no_mangle] - pub unsafe extern "C" fn drive_query_ordering_OrderClause_get_field<>(obj: *const drive_query_ordering_OrderClause) -> *mut std::os::raw::c_char { (*obj).field } + pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyCount_get_0<>(obj: *const dpp_identity_identity_public_key_KeyCount) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID { (*obj).0 } #[no_mangle] - pub unsafe extern "C" fn drive_query_ordering_OrderClause_get_ascending<>(obj: *const drive_query_ordering_OrderClause) -> bool { (*obj).ascending } + pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyCount_set_0<>(obj: *const dpp_identity_identity_public_key_KeyCount) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID { (*obj).0 } + + pub mod purpose { + use crate as dash_sdk_bindings; + + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`Purpose`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum dpp_identity_identity_public_key_purpose_Purpose { AUTHENTICATION = 0, ENCRYPTION = 1, DECRYPTION = 2, TRANSFER = 3, SYSTEM = 4, VOTING = 5, OWNER = 6 } + + impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_purpose_Purpose { + unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_purpose_Purpose) -> dpp::identity::identity_public_key::purpose::Purpose { + let ffi_ref = &*ffi; + match ffi_ref { + dpp_identity_identity_public_key_purpose_Purpose::AUTHENTICATION => dpp::identity::identity_public_key::purpose::Purpose::AUTHENTICATION, + dpp_identity_identity_public_key_purpose_Purpose::ENCRYPTION => dpp::identity::identity_public_key::purpose::Purpose::ENCRYPTION, + dpp_identity_identity_public_key_purpose_Purpose::DECRYPTION => dpp::identity::identity_public_key::purpose::Purpose::DECRYPTION, + dpp_identity_identity_public_key_purpose_Purpose::TRANSFER => dpp::identity::identity_public_key::purpose::Purpose::TRANSFER, + dpp_identity_identity_public_key_purpose_Purpose::SYSTEM => dpp::identity::identity_public_key::purpose::Purpose::SYSTEM, + dpp_identity_identity_public_key_purpose_Purpose::VOTING => dpp::identity::identity_public_key::purpose::Purpose::VOTING, + dpp_identity_identity_public_key_purpose_Purpose::OWNER => dpp::identity::identity_public_key::purpose::Purpose::OWNER + } + } + } + + impl ferment::FFIConversionTo for dpp_identity_identity_public_key_purpose_Purpose { + unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::purpose::Purpose) -> *const dpp_identity_identity_public_key_purpose_Purpose { + ferment::boxed(match obj { + dpp::identity::identity_public_key::purpose::Purpose::AUTHENTICATION => dpp_identity_identity_public_key_purpose_Purpose::AUTHENTICATION, + dpp::identity::identity_public_key::purpose::Purpose::ENCRYPTION => dpp_identity_identity_public_key_purpose_Purpose::ENCRYPTION, + dpp::identity::identity_public_key::purpose::Purpose::DECRYPTION => dpp_identity_identity_public_key_purpose_Purpose::DECRYPTION, + dpp::identity::identity_public_key::purpose::Purpose::TRANSFER => dpp_identity_identity_public_key_purpose_Purpose::TRANSFER, + dpp::identity::identity_public_key::purpose::Purpose::SYSTEM => dpp_identity_identity_public_key_purpose_Purpose::SYSTEM, + dpp::identity::identity_public_key::purpose::Purpose::VOTING => dpp_identity_identity_public_key_purpose_Purpose::VOTING, + dpp::identity::identity_public_key::purpose::Purpose::OWNER => dpp_identity_identity_public_key_purpose_Purpose::OWNER, + _ => unreachable!("This is unreachable") + }) + } + } + + impl Drop for dpp_identity_identity_public_key_purpose_Purpose { + fn drop(&mut self) { + unsafe { + match self { + dpp_identity_identity_public_key_purpose_Purpose::AUTHENTICATION => {} + dpp_identity_identity_public_key_purpose_Purpose::ENCRYPTION => {} + dpp_identity_identity_public_key_purpose_Purpose::DECRYPTION => {} + dpp_identity_identity_public_key_purpose_Purpose::TRANSFER => {} + dpp_identity_identity_public_key_purpose_Purpose::SYSTEM => {} + dpp_identity_identity_public_key_purpose_Purpose::VOTING => {} + dpp_identity_identity_public_key_purpose_Purpose::OWNER => {} + _ => unreachable!("This is unreachable") + }; + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_AUTHENTICATION_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::AUTHENTICATION {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_ENCRYPTION_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::ENCRYPTION {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_DECRYPTION_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::DECRYPTION {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_TRANSFER_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::TRANSFER {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_SYSTEM_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::SYSTEM {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_VOTING_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::VOTING {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_OWNER_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::OWNER {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_destroy<>(ffi: *mut dpp_identity_identity_public_key_purpose_Purpose) { ferment::unbox_any(ffi); } + } + + #[doc = "FFI-representation of the [`KeyID`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_identity_identity_public_key_KeyID(u32); + + impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_KeyID { + unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_KeyID) -> dpp::identity::identity_public_key::KeyID { + let ffi_ref = &*ffi; + ffi_ref.0 + } + } + + impl ferment::FFIConversionTo for dpp_identity_identity_public_key_KeyID { unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::KeyID) -> *const dpp_identity_identity_public_key_KeyID { ferment::boxed(dpp_identity_identity_public_key_KeyID(obj)) } } + + impl Drop for dpp_identity_identity_public_key_KeyID { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ; + } + } + } #[no_mangle] - pub unsafe extern "C" fn drive_query_ordering_OrderClause_set_field<>(obj: *const drive_query_ordering_OrderClause) -> *mut std::os::raw::c_char { (*obj).field } + pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyID_ctor<>(o_0: u32) -> *mut dpp_identity_identity_public_key_KeyID { ferment::boxed(dpp_identity_identity_public_key_KeyID(o_0)) } #[no_mangle] - pub unsafe extern "C" fn drive_query_ordering_OrderClause_set_ascending<>(obj: *const drive_query_ordering_OrderClause) -> bool { (*obj).ascending } + pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyID_destroy<>(ffi: *mut dpp_identity_identity_public_key_KeyID) { ferment::unbox_any(ffi); } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyID_get_0<>(obj: *const dpp_identity_identity_public_key_KeyID) -> u32 { (*obj).0 } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyID_set_0<>(obj: *const dpp_identity_identity_public_key_KeyID) -> u32 { (*obj).0 } + } + } + + pub mod address_funds { + use crate as dash_sdk_bindings; + + pub mod platform_address { use crate as dash_sdk_bindings; } + + pub mod witness { use crate as dash_sdk_bindings; } + + pub mod witness_verification_operations { use crate as dash_sdk_bindings; } + + #[cfg(feature = "json-conversion")] + pub mod serde_helpers { + use crate as dash_sdk_bindings; + + pub mod address_output_map_optional_amount { use crate as dash_sdk_bindings; } + + pub mod address_input_map { use crate as dash_sdk_bindings; } + + pub mod address_output_singular { use crate as dash_sdk_bindings; } + + pub mod address_output_map_required_amount { use crate as dash_sdk_bindings; } + } + + #[cfg(feature = "shielded-client")] + pub mod orchard_address { + use crate as dash_sdk_bindings; + } + + pub mod fee_strategy { + use crate as dash_sdk_bindings; + + pub mod deduct_fee_from_inputs_and_outputs { use crate as dash_sdk_bindings; } + } + } + + pub mod errors { + use crate as dash_sdk_bindings; + + pub mod non_consensus_error { use crate as dash_sdk_bindings; } + + pub mod consensus { + use crate as dash_sdk_bindings; + + pub mod state { + use crate as dash_sdk_bindings; + + pub mod address_funds { use crate as dash_sdk_bindings; } + + pub mod group { use crate as dash_sdk_bindings; } + + pub mod document { use crate as dash_sdk_bindings; } + + pub mod identity { use crate as dash_sdk_bindings; } + + pub mod shielded { use crate as dash_sdk_bindings; } + + pub mod data_contract { use crate as dash_sdk_bindings; } + + pub mod token { use crate as dash_sdk_bindings; } + + pub mod voting { use crate as dash_sdk_bindings; } + + pub mod prefunded_specialized_balances { use crate as dash_sdk_bindings; } + + pub mod data_trigger { use crate as dash_sdk_bindings; } + } + + pub mod fee { use crate as dash_sdk_bindings; } + + pub mod signature { use crate as dash_sdk_bindings; } + + pub mod basic { + use crate as dash_sdk_bindings; + + pub mod identity { use crate as dash_sdk_bindings; } + + pub mod group { use crate as dash_sdk_bindings; } + + pub mod token { use crate as dash_sdk_bindings; } + + pub mod data_contract { use crate as dash_sdk_bindings; } + + pub mod unsupported_protocol_version_error { use crate as dash_sdk_bindings; } + + pub mod json_schema_error { use crate as dash_sdk_bindings; } + + pub mod unsupported_version_error { use crate as dash_sdk_bindings; } + + pub mod decode { use crate as dash_sdk_bindings; } + + pub mod state_transition { use crate as dash_sdk_bindings; } + + pub mod document { use crate as dash_sdk_bindings; } + } } + } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod conditions { + pub mod data_contract { + use crate as dash_sdk_bindings; + + #[cfg(feature = "factories")] + pub mod factory { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`WhereOperator`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum drive_query_conditions_WhereOperator { Equal, GreaterThan, GreaterThanOrEquals, LessThan, LessThanOrEquals, Between, BetweenExcludeBounds, BetweenExcludeLeft, BetweenExcludeRight, In, StartsWith } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionFrom for drive_query_conditions_WhereOperator { - unsafe fn ffi_from_const(ffi: *const drive_query_conditions_WhereOperator) -> drive::query::conditions::WhereOperator { - let ffi_ref = &*ffi; - match ffi_ref { - drive_query_conditions_WhereOperator::Equal => drive::query::conditions::WhereOperator::Equal, - drive_query_conditions_WhereOperator::GreaterThan => drive::query::conditions::WhereOperator::GreaterThan, - drive_query_conditions_WhereOperator::GreaterThanOrEquals => drive::query::conditions::WhereOperator::GreaterThanOrEquals, - drive_query_conditions_WhereOperator::LessThan => drive::query::conditions::WhereOperator::LessThan, - drive_query_conditions_WhereOperator::LessThanOrEquals => drive::query::conditions::WhereOperator::LessThanOrEquals, - drive_query_conditions_WhereOperator::Between => drive::query::conditions::WhereOperator::Between, - drive_query_conditions_WhereOperator::BetweenExcludeBounds => drive::query::conditions::WhereOperator::BetweenExcludeBounds, - drive_query_conditions_WhereOperator::BetweenExcludeLeft => drive::query::conditions::WhereOperator::BetweenExcludeLeft, - drive_query_conditions_WhereOperator::BetweenExcludeRight => drive::query::conditions::WhereOperator::BetweenExcludeRight, - drive_query_conditions_WhereOperator::In => drive::query::conditions::WhereOperator::In, - drive_query_conditions_WhereOperator::StartsWith => drive::query::conditions::WhereOperator::StartsWith - } - } - } + pub mod storage_requirements { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionTo for drive_query_conditions_WhereOperator { - unsafe fn ffi_to_const(obj: drive::query::conditions::WhereOperator) -> *const drive_query_conditions_WhereOperator { - ferment::boxed(match obj { - drive::query::conditions::WhereOperator::Equal => drive_query_conditions_WhereOperator::Equal, - drive::query::conditions::WhereOperator::GreaterThan => drive_query_conditions_WhereOperator::GreaterThan, - drive::query::conditions::WhereOperator::GreaterThanOrEquals => drive_query_conditions_WhereOperator::GreaterThanOrEquals, - drive::query::conditions::WhereOperator::LessThan => drive_query_conditions_WhereOperator::LessThan, - drive::query::conditions::WhereOperator::LessThanOrEquals => drive_query_conditions_WhereOperator::LessThanOrEquals, - drive::query::conditions::WhereOperator::Between => drive_query_conditions_WhereOperator::Between, - drive::query::conditions::WhereOperator::BetweenExcludeBounds => drive_query_conditions_WhereOperator::BetweenExcludeBounds, - drive::query::conditions::WhereOperator::BetweenExcludeLeft => drive_query_conditions_WhereOperator::BetweenExcludeLeft, - drive::query::conditions::WhereOperator::BetweenExcludeRight => drive_query_conditions_WhereOperator::BetweenExcludeRight, - drive::query::conditions::WhereOperator::In => drive_query_conditions_WhereOperator::In, - drive::query::conditions::WhereOperator::StartsWith => drive_query_conditions_WhereOperator::StartsWith, - _ => unreachable!("This is unreachable") - }) - } - } + pub mod document_type { + use crate as dash_sdk_bindings; - impl Drop for drive_query_conditions_WhereOperator { - fn drop(&mut self) { - unsafe { - match self { - drive_query_conditions_WhereOperator::Equal => {} - drive_query_conditions_WhereOperator::GreaterThan => {} - drive_query_conditions_WhereOperator::GreaterThanOrEquals => {} - drive_query_conditions_WhereOperator::LessThan => {} - drive_query_conditions_WhereOperator::LessThanOrEquals => {} - drive_query_conditions_WhereOperator::Between => {} - drive_query_conditions_WhereOperator::BetweenExcludeBounds => {} - drive_query_conditions_WhereOperator::BetweenExcludeLeft => {} - drive_query_conditions_WhereOperator::BetweenExcludeRight => {} - drive_query_conditions_WhereOperator::In => {} - drive_query_conditions_WhereOperator::StartsWith => {} - _ => unreachable!("This is unreachable") - }; - } - } + #[cfg(feature = "random-documents")] + pub mod random_document { + use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereOperator_Equal_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::Equal {}) } + pub mod v2 { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereOperator_GreaterThan_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::GreaterThan {}) } + pub mod accessors { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereOperator_GreaterThanOrEquals_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::GreaterThanOrEquals {}) } + pub mod index_level { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereOperator_LessThan_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::LessThan {}) } + pub mod v0 { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereOperator_LessThanOrEquals_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::LessThanOrEquals {}) } + pub mod property { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereOperator_Between_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::Between {}) } + pub mod array { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereOperator_BetweenExcludeBounds_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::BetweenExcludeBounds {}) } + pub mod methods { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereOperator_BetweenExcludeLeft_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::BetweenExcludeLeft {}) } + #[cfg(feature = "validation")] + pub mod validate_update { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereOperator_BetweenExcludeRight_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::BetweenExcludeRight {}) } + pub mod v0 { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereOperator_In_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::In {}) } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + } + } - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereOperator_StartsWith_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::StartsWith {}) } + pub mod class_methods { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereOperator_destroy<>(ffi: *mut drive_query_conditions_WhereOperator) { ferment::unbox_any(ffi); } + pub mod should_use_creator_id { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`WhereClause`]"] - #[repr(C)] - #[derive(Clone)] - pub struct drive_query_conditions_WhereClause { - pub field: *mut std::os::raw::c_char, - pub operator: *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereOperator, - pub value: *mut crate::fermented::types::platform_value::platform_value_Value, - } + pub mod create_document_types_from_document_schemas { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for drive_query_conditions_WhereClause { - unsafe fn ffi_from_const(ffi: *const drive_query_conditions_WhereClause) -> drive::query::conditions::WhereClause { - let ffi_ref = &*ffi; - drive::query::conditions::WhereClause { field: >::ffi_from(ffi_ref.field), operator: >::ffi_from(ffi_ref.operator), value: >::ffi_from(ffi_ref.value) } + pub mod v0 { use crate as dash_sdk_bindings; } } - } - impl ferment::FFIConversionTo for drive_query_conditions_WhereClause { unsafe fn ffi_to_const(obj: drive::query::conditions::WhereClause) -> *const drive_query_conditions_WhereClause { ferment::boxed(drive_query_conditions_WhereClause { field: >::ffi_to(obj.field), operator: >::ffi_to(obj.operator), value: >::ffi_to(obj.value) }) } } + pub mod try_from_schema { + use crate as dash_sdk_bindings; - impl Drop for drive_query_conditions_WhereClause { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_string(ffi_ref.field); - ferment::unbox_any(ffi_ref.operator); - ferment::unbox_any(ffi_ref.value); + pub mod v0 { + use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + + pub mod v1 { + use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } } + + pub mod v2 { use crate as dash_sdk_bindings; } } } - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereClause_ctor<>(field: *mut std::os::raw::c_char, operator: *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereOperator, value: *mut crate::fermented::types::platform_value::platform_value_Value) -> *mut drive_query_conditions_WhereClause { ferment::boxed(drive_query_conditions_WhereClause { field, operator, value }) } + pub mod token_costs { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereClause_destroy<>(ffi: *mut drive_query_conditions_WhereClause) { ferment::unbox_any(ffi); } + pub mod index { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereClause_get_field<>(obj: *const drive_query_conditions_WhereClause) -> *mut std::os::raw::c_char { (*obj).field } + pub mod v1 { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereClause_get_operator<>(obj: *const drive_query_conditions_WhereClause) -> *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereOperator { (*obj).operator } + pub mod schema { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereClause_get_value<>(obj: *const drive_query_conditions_WhereClause) -> *mut crate::fermented::types::platform_value::platform_value_Value { (*obj).value } + #[cfg(feature = "validation")] + pub mod recursive_schema_validator { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereClause_set_field<>(obj: *const drive_query_conditions_WhereClause) -> *mut std::os::raw::c_char { (*obj).field } + pub mod traversal_validator { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereClause_set_operator<>(obj: *const drive_query_conditions_WhereClause) -> *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereOperator { (*obj).operator } + pub mod enrich_with_base_schema { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereClause_set_value<>(obj: *const drive_query_conditions_WhereClause) -> *mut crate::fermented::types::platform_value::platform_value_Value { (*obj).value } - } - } + pub mod allowed_top_level_properties { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod prove { - use crate as dash_sdk_bindings; + #[cfg(feature = "validation")] + pub mod validate_max_depth { + use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod prove_state_transition { - use crate as dash_sdk_bindings; - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod prove_elements { use crate as dash_sdk_bindings; } + pub mod find_identifier_and_binary_paths { use crate as dash_sdk_bindings; } - pub mod prove_multiple_state_transition_results { use crate as dash_sdk_bindings; } - } + #[cfg(feature = "validation")] + pub mod validate_schema_compatibility { + use crate as dash_sdk_bindings; + } + } + } - #[cfg(feature = "server")] - pub mod fees { - use crate as dash_sdk_bindings; + pub mod accessors { use crate as dash_sdk_bindings; } - pub mod calculate_fee { use crate as dash_sdk_bindings; } - } + pub mod errors { use crate as dash_sdk_bindings; } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod error { - use crate as dash_sdk_bindings; - } + pub mod group { + use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod cache { - use crate as dash_sdk_bindings; + pub mod methods { use crate as dash_sdk_bindings; } - pub mod data_contract { - use crate as dash_sdk_bindings; + pub mod accessors { use crate as dash_sdk_bindings; } - #[cfg(test)] - pub mod tests { + pub mod v0 { use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } } } - } - #[cfg(any(feature = "server", feature = "verify", feature = "fixtures-and-mocks"))] - pub mod util { - use crate as dash_sdk_bindings; + pub mod methods { + use crate as dash_sdk_bindings; + + pub mod equal_ignoring_time_based_fields { use crate as dash_sdk_bindings; } + + pub mod registration_cost { use crate as dash_sdk_bindings; } + + pub mod schema { use crate as dash_sdk_bindings; } + + #[cfg(feature = "validation")] + pub mod validate_document { + use crate as dash_sdk_bindings; + } - #[cfg(feature = "server")] - pub mod batch { - use crate as dash_sdk_bindings; + #[cfg(feature = "validation")] + pub mod validate_groups { + use crate as dash_sdk_bindings; + } - pub mod drive_op_batch { + #[cfg(feature = "validation")] + pub mod validate_update { use crate as dash_sdk_bindings; - pub mod drive_methods { + pub mod v0 { use crate as dash_sdk_bindings; - pub mod convert_drive_operations_to_grove_operations { use crate as dash_sdk_bindings; } - - pub mod apply_drive_operations { use crate as dash_sdk_bindings; } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } } } } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod object_size_info { + pub mod extra { use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod drive_api_tests { + use crate as dash_sdk_bindings; + } } - #[cfg(feature = "server")] - pub mod grove_operations { + #[cfg(any(feature = "state-transitions", feature = "factories"))] + pub mod created_data_contract { use crate as dash_sdk_bindings; - pub mod batch_remove_raw { use crate as dash_sdk_bindings; } - - pub mod grove_get_path_query_serialized_results { use crate as dash_sdk_bindings; } - - pub mod batch_insert_sum_item_if_not_exists { use crate as dash_sdk_bindings; } - - pub mod batch_insert_if_changed_value { use crate as dash_sdk_bindings; } - - pub mod batch_insert_empty_tree_if_not_exists_check_existing_operations { use crate as dash_sdk_bindings; } - - pub mod grove_get_raw { use crate as dash_sdk_bindings; } - - pub mod batch_insert_empty_sum_tree { use crate as dash_sdk_bindings; } + pub mod fields { use crate as dash_sdk_bindings; } + } - pub mod grove_get_path_query_with_optional { use crate as dash_sdk_bindings; } + pub mod config { + use crate as dash_sdk_bindings; - pub mod batch_insert { use crate as dash_sdk_bindings; } + pub mod methods { + use crate as dash_sdk_bindings; - pub mod grove_get_raw_value_u64_from_encoded_var_vec { use crate as dash_sdk_bindings; } + pub mod validate_update { + use crate as dash_sdk_bindings; - pub mod grove_get_proved_path_query { use crate as dash_sdk_bindings; } + pub mod v1 { use crate as dash_sdk_bindings; } + } + } - pub mod grove_get_big_sum_tree_total_value { use crate as dash_sdk_bindings; } + pub mod fields { use crate as dash_sdk_bindings; } - pub mod grove_insert_if_not_exists { use crate as dash_sdk_bindings; } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } - pub mod batch_insert_sum_item_or_add_to_if_already_exists { use crate as dash_sdk_bindings; } + pub mod change_control_rules { + use crate as dash_sdk_bindings; - pub mod grove_get_sum_tree_total_value { use crate as dash_sdk_bindings; } + pub mod authorized_action_takers { use crate as dash_sdk_bindings; } + } - pub mod grove_batch_operations_costs { use crate as dash_sdk_bindings; } + pub mod v0 { + use crate as dash_sdk_bindings; - pub mod grove_get_raw_optional_item { use crate as dash_sdk_bindings; } + pub mod serialization { use crate as dash_sdk_bindings; } - pub mod batch_insert_empty_tree { use crate as dash_sdk_bindings; } + pub mod conversion { use crate as dash_sdk_bindings; } - pub mod batch_insert_if_not_exists_return_existing_element { use crate as dash_sdk_bindings; } + pub mod data_contract { use crate as dash_sdk_bindings; } - pub mod batch_delete_up_tree_while_empty { use crate as dash_sdk_bindings; } + pub mod methods { + use crate as dash_sdk_bindings; - pub mod grove_delete { use crate as dash_sdk_bindings; } + pub mod schema { use crate as dash_sdk_bindings; } + } + } - pub mod grove_clear { use crate as dash_sdk_bindings; } + #[cfg(any( + feature = "value-conversion", + feature = "data-contract-cbor-conversion", + feature = "json-conversion", + feature = "serde-conversion" + ))] + pub mod conversion { + use crate as dash_sdk_bindings; - pub mod batch_delete { use crate as dash_sdk_bindings; } + #[cfg(feature = "data-contract-cbor-conversion")] + pub mod cbor { + use crate as dash_sdk_bindings; + } - pub mod batch_move_items_in_path_query { + #[cfg(feature = "value-conversion")] + pub mod value { use crate as dash_sdk_bindings; + } - pub mod v0 { use crate as dash_sdk_bindings; } + #[cfg(feature = "json-conversion")] + pub mod json { + use crate as dash_sdk_bindings; } + } - pub mod grove_insert_if_not_exists_return_existing_element { use crate as dash_sdk_bindings; } + pub mod serialized_version { use crate as dash_sdk_bindings; } - pub mod grove_insert { use crate as dash_sdk_bindings; } + pub mod associated_token { + use crate as dash_sdk_bindings; - pub mod batch_refresh_reference { use crate as dash_sdk_bindings; } + pub mod token_distribution_rules { + use crate as dash_sdk_bindings; - pub mod grove_get_path_query_serialized_or_sum_results { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } - pub mod grove_get_path_query { use crate as dash_sdk_bindings; } + pub mod accessors { use crate as dash_sdk_bindings; } + } - pub mod batch_replace { use crate as dash_sdk_bindings; } + pub mod token_configuration_convention { + use crate as dash_sdk_bindings; - pub mod grove_get_raw_item { use crate as dash_sdk_bindings; } + pub mod accessors { use crate as dash_sdk_bindings; } - pub mod grove_get_optional_sum_tree_total_value { use crate as dash_sdk_bindings; } + pub mod methods { + use crate as dash_sdk_bindings; - pub mod grove_has_raw { use crate as dash_sdk_bindings; } + pub mod validate_localizations { use crate as dash_sdk_bindings; } + } + } - pub mod batch_move { + pub mod token_configuration { use crate as dash_sdk_bindings; pub mod v0 { use crate as dash_sdk_bindings; } - } - pub mod grove_apply_batch_with_add_costs { use crate as dash_sdk_bindings; } + pub mod methods { + use crate as dash_sdk_bindings; - pub mod grove_insert_empty_tree { use crate as dash_sdk_bindings; } + pub mod authorized_action_takers_for_configuration_item { + use crate as dash_sdk_bindings; - pub mod grove_get_raw_optional { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod batch_insert_empty_tree_if_not_exists { use crate as dash_sdk_bindings; } + pub mod can_apply_token_configuration_item { + use crate as dash_sdk_bindings; - pub mod grove_get_raw_path_query { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod grove_apply_partial_batch_with_add_costs { use crate as dash_sdk_bindings; } + pub mod apply_token_configuration_item { + use crate as dash_sdk_bindings; - pub mod grove_get { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod grove_get_proved_path_query_with_conditional { use crate as dash_sdk_bindings; } + pub mod validate_token_configuration_update { + use crate as dash_sdk_bindings; - pub mod batch_insert_if_not_exists { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod grove_apply_operation { use crate as dash_sdk_bindings; } + pub mod validate_token_configuration_groups_exist { + use crate as dash_sdk_bindings; - pub mod batch_delete_items_in_path_query { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - pub mod v0 { use crate as dash_sdk_bindings; } + pub mod accessors { use crate as dash_sdk_bindings; } } - pub mod grove_get_raw_path_query_with_optional { use crate as dash_sdk_bindings; } - - pub mod grove_insert_empty_sum_tree { use crate as dash_sdk_bindings; } - } - - #[cfg(any(test, feature = "server", feature = "fixtures-and-mocks"))] - pub mod test_helpers { - use crate as dash_sdk_bindings; - - #[cfg(any(test, feature = "fixtures-and-mocks"))] - pub mod test_utils { + pub mod token_configuration_localization { use crate as dash_sdk_bindings; - } - } - - #[cfg(any(feature = "server", feature = "verify"))] - pub mod common { - use crate as dash_sdk_bindings; - } - - #[cfg(feature = "server")] - pub mod operations { - use crate as dash_sdk_bindings; - pub mod apply_batch_grovedb_operations { use crate as dash_sdk_bindings; } - - pub mod rollback_transaction { use crate as dash_sdk_bindings; } - - pub mod apply_partial_batch_grovedb_operations { use crate as dash_sdk_bindings; } + pub mod accessors { use crate as dash_sdk_bindings; } - pub mod drop_cache { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod apply_batch_low_level_drive_operations { use crate as dash_sdk_bindings; } + pub mod token_pre_programmed_distribution { + use crate as dash_sdk_bindings; - pub mod apply_partial_batch_low_level_drive_operations { use crate as dash_sdk_bindings; } + pub mod accessors { use crate as dash_sdk_bindings; } + } - pub mod commit_transaction { use crate as dash_sdk_bindings; } - } - } - } + pub mod token_perpetual_distribution { + use crate as dash_sdk_bindings; - pub mod platform_value { - use crate as dash_sdk_bindings; + pub mod distribution_recipient { + use crate as dash_sdk_bindings; - pub mod value_map { - use crate as dash_sdk_bindings; + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } - #[doc = "FFI-representation of the [`ValueMap`]"] - #[repr(C)] - #[derive(Clone)] - pub struct platform_value_value_map_ValueMap(*mut crate::fermented::generics::Vec_Tuple_platform_value_Value_platform_value_Value); + pub mod distribution_function { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for platform_value_value_map_ValueMap { - unsafe fn ffi_from_const(ffi: *const platform_value_value_map_ValueMap) -> platform_value::value_map::ValueMap { - let ffi_ref = &*ffi; - >>::ffi_from(ffi_ref.0) - } - } + pub mod evaluate { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionTo for platform_value_value_map_ValueMap { unsafe fn ffi_to_const(obj: platform_value::value_map::ValueMap) -> *const platform_value_value_map_ValueMap { ferment::boxed(platform_value_value_map_ValueMap(>>::ffi_to(obj))) } } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } - impl Drop for platform_value_value_map_ValueMap { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.0); - } - } - } + pub mod validation { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_value_map_ValueMap_ctor<>(o_0: *mut crate::fermented::generics::Vec_Tuple_platform_value_Value_platform_value_Value) -> *mut platform_value_value_map_ValueMap { ferment::boxed(platform_value_value_map_ValueMap(o_0)) } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_value_map_ValueMap_destroy<>(ffi: *mut platform_value_value_map_ValueMap) { ferment::unbox_any(ffi); } + pub mod encode { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn platform_value_value_map_ValueMap_get_0<>(obj: *const platform_value_value_map_ValueMap) -> *mut crate::fermented::generics::Vec_Tuple_platform_value_Value_platform_value_Value { (*obj).0 } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_value_map_ValueMap_set_0<>(obj: *const platform_value_value_map_ValueMap) -> *mut crate::fermented::generics::Vec_Tuple_platform_value_Value_platform_value_Value { (*obj).0 } - } + pub mod evaluate_interval { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`Hash256`]"] - #[repr(C)] - #[derive(Clone)] - pub struct platform_value_Hash256(*mut crate::fermented::generics::Arr_u8_32); + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + } - impl ferment::FFIConversionFrom for platform_value_Hash256 { - unsafe fn ffi_from_const(ffi: *const platform_value_Hash256) -> platform_value::Hash256 { - let ffi_ref = &*ffi; - >::ffi_from(ffi_ref.0) - } - } + pub mod methods { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionTo for platform_value_Hash256 { unsafe fn ffi_to_const(obj: platform_value::Hash256) -> *const platform_value_Hash256 { ferment::boxed(platform_value_Hash256(>::ffi_to(obj))) } } + pub mod reward_distribution_moment { use crate as dash_sdk_bindings; } - impl Drop for platform_value_Hash256 { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.0); - } - } - } + pub mod reward_distribution_type { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_Hash256_ctor<>(o_0: *mut crate::fermented::generics::Arr_u8_32) -> *mut platform_value_Hash256 { ferment::boxed(platform_value_Hash256(o_0)) } + pub mod validation { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Hash256_destroy<>(ffi: *mut platform_value_Hash256) { ferment::unbox_any(ffi); } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Hash256_get_0<>(obj: *const platform_value_Hash256) -> *mut crate::fermented::generics::Arr_u8_32 { (*obj).0 } + pub mod token_configuration_item { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Hash256_set_0<>(obj: *const platform_value_Hash256) -> *mut crate::fermented::generics::Arr_u8_32 { (*obj).0 } + pub mod token_marketplace_rules { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`Value`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum platform_value_Value { U128(*mut [u8; 16]), I128(*mut [u8; 16]), U64(u64), I64(i64), U32(u32), I32(i32), U16(u16), I16(i16), U8(u8), I8(i8), Bytes(*mut crate::fermented::generics::Vec_u8), Bytes20(*mut crate::fermented::generics::Arr_u8_20), Bytes32(*mut crate::fermented::generics::Arr_u8_32), Bytes36(*mut crate::fermented::generics::Arr_u8_36), EnumU8(*mut crate::fermented::generics::Vec_u8), EnumString(*mut crate::fermented::generics::Vec_String), Identifier(*mut crate::fermented::types::platform_value::platform_value_Hash256), Float(f64), Text(*mut std::os::raw::c_char), Bool(bool), Null, Array(*mut crate::fermented::generics::Vec_platform_value_Value), Map(*mut crate::fermented::types::platform_value::value_map::platform_value_value_map_ValueMap) } + pub mod v0 { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionFrom for platform_value_Value { - unsafe fn ffi_from_const(ffi: *const platform_value_Value) -> platform_value::Value { - let ffi_ref = &*ffi; - match ffi_ref { - platform_value_Value::U128(o_0) => platform_value::Value::U128(<[u8; 16] as ferment::FFIConversionFrom>::ffi_from(*o_0)), - platform_value_Value::I128(o_0) => platform_value::Value::I128(<[u8; 16] as ferment::FFIConversionFrom>::ffi_from(*o_0)), - platform_value_Value::U64(o_0) => platform_value::Value::U64(*o_0), - platform_value_Value::I64(o_0) => platform_value::Value::I64(*o_0), - platform_value_Value::U32(o_0) => platform_value::Value::U32(*o_0), - platform_value_Value::I32(o_0) => platform_value::Value::I32(*o_0), - platform_value_Value::U16(o_0) => platform_value::Value::U16(*o_0), - platform_value_Value::I16(o_0) => platform_value::Value::I16(*o_0), - platform_value_Value::U8(o_0) => platform_value::Value::U8(*o_0), - platform_value_Value::I8(o_0) => platform_value::Value::I8(*o_0), - platform_value_Value::Bytes(o_0) => platform_value::Value::Bytes(>>::ffi_from(*o_0)), - platform_value_Value::Bytes20(o_0) => platform_value::Value::Bytes20(>::ffi_from(*o_0)), - platform_value_Value::Bytes32(o_0) => platform_value::Value::Bytes32(>::ffi_from(*o_0)), - platform_value_Value::Bytes36(o_0) => platform_value::Value::Bytes36(>::ffi_from(*o_0)), - platform_value_Value::EnumU8(o_0) => platform_value::Value::EnumU8(>>::ffi_from(*o_0)), - platform_value_Value::EnumString(o_0) => platform_value::Value::EnumString(>>::ffi_from(*o_0)), - platform_value_Value::Identifier(o_0) => platform_value::Value::Identifier(>::ffi_from(*o_0)), - platform_value_Value::Float(o_0) => platform_value::Value::Float(*o_0), - platform_value_Value::Text(o_0) => platform_value::Value::Text(>::ffi_from(*o_0)), - platform_value_Value::Bool(o_0) => platform_value::Value::Bool(*o_0), - platform_value_Value::Null => platform_value::Value::Null, - platform_value_Value::Array(o_0) => platform_value::Value::Array(>>::ffi_from(*o_0)), - platform_value_Value::Map(o_0) => platform_value::Value::Map(>::ffi_from(*o_0)) + pub mod accessors { use crate as dash_sdk_bindings; } } - } - } - impl ferment::FFIConversionTo for platform_value_Value { - unsafe fn ffi_to_const(obj: platform_value::Value) -> *const platform_value_Value { - ferment::boxed(match obj { - platform_value::Value::U128(o_0) => platform_value_Value::U128(<[u8; 16] as ferment::FFIConversionTo>::ffi_to(o_0)), - platform_value::Value::I128(o_0) => platform_value_Value::I128(<[u8; 16] as ferment::FFIConversionTo>::ffi_to(o_0)), - platform_value::Value::U64(o_0) => platform_value_Value::U64(o_0), - platform_value::Value::I64(o_0) => platform_value_Value::I64(o_0), - platform_value::Value::U32(o_0) => platform_value_Value::U32(o_0), - platform_value::Value::I32(o_0) => platform_value_Value::I32(o_0), - platform_value::Value::U16(o_0) => platform_value_Value::U16(o_0), - platform_value::Value::I16(o_0) => platform_value_Value::I16(o_0), - platform_value::Value::U8(o_0) => platform_value_Value::U8(o_0), - platform_value::Value::I8(o_0) => platform_value_Value::I8(o_0), - platform_value::Value::Bytes(o_0) => platform_value_Value::Bytes(>>::ffi_to(o_0)), - platform_value::Value::Bytes20(o_0) => platform_value_Value::Bytes20(>::ffi_to(o_0)), - platform_value::Value::Bytes32(o_0) => platform_value_Value::Bytes32(>::ffi_to(o_0)), - platform_value::Value::Bytes36(o_0) => platform_value_Value::Bytes36(>::ffi_to(o_0)), - platform_value::Value::EnumU8(o_0) => platform_value_Value::EnumU8(>>::ffi_to(o_0)), - platform_value::Value::EnumString(o_0) => platform_value_Value::EnumString(>>::ffi_to(o_0)), - platform_value::Value::Identifier(o_0) => platform_value_Value::Identifier(>::ffi_to(o_0)), - platform_value::Value::Float(o_0) => platform_value_Value::Float(o_0), - platform_value::Value::Text(o_0) => platform_value_Value::Text(>::ffi_to(o_0)), - platform_value::Value::Bool(o_0) => platform_value_Value::Bool(o_0), - platform_value::Value::Null => platform_value_Value::Null, - platform_value::Value::Array(o_0) => platform_value_Value::Array(>>::ffi_to(o_0)), - platform_value::Value::Map(o_0) => platform_value_Value::Map(>::ffi_to(o_0)), - _ => unreachable!("This is unreachable") - }) - } - } + pub mod token_keeps_history_rules { + use crate as dash_sdk_bindings; - impl Drop for platform_value_Value { - fn drop(&mut self) { - unsafe { - match self { - platform_value_Value::U128(o_0) => { ferment::unbox_any_opt(*o_0); } - platform_value_Value::I128(o_0) => { ferment::unbox_any_opt(*o_0); } - platform_value_Value::U64(o_0) => { ; } - platform_value_Value::I64(o_0) => { ; } - platform_value_Value::U32(o_0) => { ; } - platform_value_Value::I32(o_0) => { ; } - platform_value_Value::U16(o_0) => { ; } - platform_value_Value::I16(o_0) => { ; } - platform_value_Value::U8(o_0) => { ; } - platform_value_Value::I8(o_0) => { ; } - platform_value_Value::Bytes(o_0) => { ferment::unbox_any(*o_0); } - platform_value_Value::Bytes20(o_0) => { ferment::unbox_any(*o_0); } - platform_value_Value::Bytes32(o_0) => { ferment::unbox_any(*o_0); } - platform_value_Value::Bytes36(o_0) => { ferment::unbox_any(*o_0); } - platform_value_Value::EnumU8(o_0) => { ferment::unbox_any(*o_0); } - platform_value_Value::EnumString(o_0) => { ferment::unbox_any(*o_0); } - platform_value_Value::Identifier(o_0) => { ferment::unbox_any(*o_0); } - platform_value_Value::Float(o_0) => { ; } - platform_value_Value::Text(o_0) => { ferment::unbox_string(*o_0); } - platform_value_Value::Bool(o_0) => { ; } - platform_value_Value::Null => {} - platform_value_Value::Array(o_0) => { ferment::unbox_any(*o_0); } - platform_value_Value::Map(o_0) => { ferment::unbox_any(*o_0); } - _ => unreachable!("This is unreachable") - }; + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod accessors { use crate as dash_sdk_bindings; } } } - } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_U128_ctor(o_o_0: *mut [u8; 16]) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::U128(o_o_0)) } + pub mod v1 { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_I128_ctor(o_o_0: *mut [u8; 16]) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::I128(o_o_0)) } + pub mod conversion { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_U64_ctor(o_o_0: u64) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::U64(o_o_0)) } + pub mod serialization { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_I64_ctor(o_o_0: i64) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::I64(o_o_0)) } + pub mod methods { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_U32_ctor(o_o_0: u32) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::U32(o_o_0)) } + pub mod schema { use crate as dash_sdk_bindings; } + } + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_I32_ctor(o_o_0: i32) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::I32(o_o_0)) } + pub mod withdrawal { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_U16_ctor(o_o_0: u16) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::U16(o_o_0)) } + #[cfg(all(feature = "withdrawals-contract", feature = "system_contracts"))] + pub mod document_try_into_asset_unlock_base_transaction_info { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_I16_ctor(o_o_0: i16) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::I16(o_o_0)) } + #[cfg(feature = "serde-conversion")] + pub mod pooling_serde { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_U8_ctor(o_o_0: u8) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::U8(o_o_0)) } + pub mod daily_withdrawal_limit { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_I8_ctor(o_o_0: i8) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::I8(o_o_0)) } + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_Bytes_ctor(o_o_0: *mut crate::fermented::generics::Vec_u8) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Bytes(o_o_0)) } + pub mod bls { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_Bytes20_ctor(o_o_0: *mut crate::fermented::generics::Arr_u8_20) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Bytes20(o_o_0)) } + pub mod voting { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_Bytes32_ctor(o_o_0: *mut crate::fermented::generics::Arr_u8_32) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Bytes32(o_o_0)) } + pub mod vote_choices { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_Bytes36_ctor(o_o_0: *mut crate::fermented::generics::Arr_u8_36) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Bytes36(o_o_0)) } + pub mod resource_vote_choice { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_EnumU8_ctor(o_o_0: *mut crate::fermented::generics::Vec_u8) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::EnumU8(o_o_0)) } + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`ResourceVoteChoice`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { TowardsIdentity(*mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier), Abstain, Lock } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_EnumString_ctor(o_o_0: *mut crate::fermented::generics::Vec_String) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::EnumString(o_o_0)) } + impl ferment::FFIConversionFrom for dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { + unsafe fn ffi_from_const(ffi: *const dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice) -> dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice { + let ffi_ref = &*ffi; + match ffi_ref { + dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::TowardsIdentity(o_0) => dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice::TowardsIdentity(>::ffi_from(*o_0)), + dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Abstain => dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice::Abstain, + dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Lock => dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice::Lock + } + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_Identifier_ctor(o_o_0: *mut crate::fermented::types::platform_value::platform_value_Hash256) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Identifier(o_o_0)) } + impl ferment::FFIConversionTo for dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { + unsafe fn ffi_to_const(obj: dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice) -> *const dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { + ferment::boxed(match obj { + dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice::TowardsIdentity(o_0) => dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::TowardsIdentity(>::ffi_to(o_0)), + dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice::Abstain => dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Abstain, + dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice::Lock => dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Lock, + _ => unreachable!("This is unreachable") + }) + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_Float_ctor(o_o_0: f64) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Float(o_o_0)) } + impl Drop for dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { + fn drop(&mut self) { + unsafe { + match self { + dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::TowardsIdentity(o_0) => { ferment::unbox_any(*o_0); } + dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Abstain => {} + dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Lock => {} + _ => unreachable!("This is unreachable") + }; + } + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_Text_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Text(o_o_0)) } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice_TowardsIdentity_ctor(o_o_0: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { ferment::boxed(dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::TowardsIdentity(o_o_0)) } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_Bool_ctor(o_o_0: bool) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Bool(o_o_0)) } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice_Abstain_ctor() -> *mut dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { ferment::boxed(dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Abstain {}) } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_Null_ctor() -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Null {}) } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice_Lock_ctor() -> *mut dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { ferment::boxed(dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Lock {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice_destroy<>(ffi: *mut dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice) { ferment::unbox_any(ffi); } + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_Array_ctor(o_o_0: *mut crate::fermented::generics::Vec_platform_value_Value) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Array(o_o_0)) } + pub mod vote_polls { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_Map_ctor(o_o_0: *mut crate::fermented::types::platform_value::value_map::platform_value_value_map_ValueMap) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Map(o_o_0)) } + pub mod contested_document_resource_vote_poll { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_destroy<>(ffi: *mut platform_value_Value) { ferment::unbox_any(ffi); } + #[doc = "FFI-representation of the [`ContestedDocumentResourceVotePoll`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { + pub contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, + pub document_type_name: *mut std::os::raw::c_char, + pub index_name: *mut std::os::raw::c_char, + pub index_values: *mut crate::fermented::generics::Vec_platform_value_Value, + } - pub mod index { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { + unsafe fn ffi_from_const(ffi: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> dpp::voting::vote_polls::contested_document_resource_vote_poll::ContestedDocumentResourceVotePoll { + let ffi_ref = &*ffi; + dpp::voting::vote_polls::contested_document_resource_vote_poll::ContestedDocumentResourceVotePoll { contract_id: >::ffi_from(ffi_ref.contract_id), document_type_name: >::ffi_from(ffi_ref.document_type_name), index_name: >::ffi_from(ffi_ref.index_name), index_values: >>::ffi_from(ffi_ref.index_values) } + } + } - pub mod value_serialization { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { + unsafe fn ffi_to_const(obj: dpp::voting::vote_polls::contested_document_resource_vote_poll::ContestedDocumentResourceVotePoll) -> *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { ferment::boxed(dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { contract_id: >::ffi_to(obj.contract_id), document_type_name: >::ffi_to(obj.document_type_name), index_name: >::ffi_to(obj.index_name), index_values: >>::ffi_to(obj.index_values) }) } + } - pub mod converter { - use crate as dash_sdk_bindings; + impl Drop for dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.contract_id); + ferment::unbox_string(ffi_ref.document_type_name); + ferment::unbox_string(ffi_ref.index_name); + ferment::unbox_any(ffi_ref.index_values); + } + } + } - #[cfg(feature = "json")] - pub mod serde_json { - use crate as dash_sdk_bindings; - } - } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_ctor<>(contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type_name: *mut std::os::raw::c_char, index_name: *mut std::os::raw::c_char, index_values: *mut crate::fermented::generics::Vec_platform_value_Value) -> *mut dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { ferment::boxed(dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { contract_id, document_type_name, index_name, index_values }) } - pub mod btreemap_extensions { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_destroy<>(ffi: *mut dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) { ferment::unbox_any(ffi); } - pub mod macros { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_get_contract_id<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).contract_id } - pub mod patch { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_get_document_type_name<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut std::os::raw::c_char { (*obj).document_type_name } - pub mod diff { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_get_index_name<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut std::os::raw::c_char { (*obj).index_name } - pub mod inner_value_at_path { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_get_index_values<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut crate::fermented::generics::Vec_platform_value_Value { (*obj).index_values } - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } - } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_set_contract_id<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).contract_id } - pub mod error { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_set_document_type_name<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut std::os::raw::c_char { (*obj).document_type_name } - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`Error`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum platform_value_error_Error { Unsupported(*mut std::os::raw::c_char), StructureError(*mut std::os::raw::c_char), PathError(*mut std::os::raw::c_char), IntegerSizeError, IntegerParsingError, StringDecodingError(*mut std::os::raw::c_char), KeyMustBeAString, ByteLengthNot20BytesError(*mut std::os::raw::c_char), ByteLengthNot32BytesError(*mut std::os::raw::c_char), ByteLengthNot36BytesError(*mut std::os::raw::c_char), SerdeSerializationError(*mut std::os::raw::c_char), SerdeDeserializationError(*mut std::os::raw::c_char), CborSerializationError(*mut std::os::raw::c_char) } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_set_index_name<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut std::os::raw::c_char { (*obj).index_name } - impl ferment::FFIConversionFrom for platform_value_error_Error { - unsafe fn ffi_from_const(ffi: *const platform_value_error_Error) -> platform_value::error::Error { - let ffi_ref = &*ffi; - match ffi_ref { - platform_value_error_Error::Unsupported(o_0) => platform_value::error::Error::Unsupported(>::ffi_from(*o_0)), - platform_value_error_Error::StructureError(o_0) => platform_value::error::Error::StructureError(>::ffi_from(*o_0)), - platform_value_error_Error::PathError(o_0) => platform_value::error::Error::PathError(>::ffi_from(*o_0)), - platform_value_error_Error::IntegerSizeError => platform_value::error::Error::IntegerSizeError, - platform_value_error_Error::IntegerParsingError => platform_value::error::Error::IntegerParsingError, - platform_value_error_Error::StringDecodingError(o_0) => platform_value::error::Error::StringDecodingError(>::ffi_from(*o_0)), - platform_value_error_Error::KeyMustBeAString => platform_value::error::Error::KeyMustBeAString, - platform_value_error_Error::ByteLengthNot20BytesError(o_0) => platform_value::error::Error::ByteLengthNot20BytesError(>::ffi_from(*o_0)), - platform_value_error_Error::ByteLengthNot32BytesError(o_0) => platform_value::error::Error::ByteLengthNot32BytesError(>::ffi_from(*o_0)), - platform_value_error_Error::ByteLengthNot36BytesError(o_0) => platform_value::error::Error::ByteLengthNot36BytesError(>::ffi_from(*o_0)), - platform_value_error_Error::SerdeSerializationError(o_0) => platform_value::error::Error::SerdeSerializationError(>::ffi_from(*o_0)), - platform_value_error_Error::SerdeDeserializationError(o_0) => platform_value::error::Error::SerdeDeserializationError(>::ffi_from(*o_0)), - platform_value_error_Error::CborSerializationError(o_0) => platform_value::error::Error::CborSerializationError(>::ffi_from(*o_0)) - } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_set_index_values<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut crate::fermented::generics::Vec_platform_value_Value { (*obj).index_values } } - } - impl ferment::FFIConversionTo for platform_value_error_Error { - unsafe fn ffi_to_const(obj: platform_value::error::Error) -> *const platform_value_error_Error { - ferment::boxed(match obj { - platform_value::error::Error::Unsupported(o_0) => platform_value_error_Error::Unsupported(>::ffi_to(o_0)), - platform_value::error::Error::StructureError(o_0) => platform_value_error_Error::StructureError(>::ffi_to(o_0)), - platform_value::error::Error::PathError(o_0) => platform_value_error_Error::PathError(>::ffi_to(o_0)), - platform_value::error::Error::IntegerSizeError => platform_value_error_Error::IntegerSizeError, - platform_value::error::Error::IntegerParsingError => platform_value_error_Error::IntegerParsingError, - platform_value::error::Error::StringDecodingError(o_0) => platform_value_error_Error::StringDecodingError(>::ffi_to(o_0)), - platform_value::error::Error::KeyMustBeAString => platform_value_error_Error::KeyMustBeAString, - platform_value::error::Error::ByteLengthNot20BytesError(o_0) => platform_value_error_Error::ByteLengthNot20BytesError(>::ffi_to(o_0)), - platform_value::error::Error::ByteLengthNot32BytesError(o_0) => platform_value_error_Error::ByteLengthNot32BytesError(>::ffi_to(o_0)), - platform_value::error::Error::ByteLengthNot36BytesError(o_0) => platform_value_error_Error::ByteLengthNot36BytesError(>::ffi_to(o_0)), - platform_value::error::Error::SerdeSerializationError(o_0) => platform_value_error_Error::SerdeSerializationError(>::ffi_to(o_0)), - platform_value::error::Error::SerdeDeserializationError(o_0) => platform_value_error_Error::SerdeDeserializationError(>::ffi_to(o_0)), - platform_value::error::Error::CborSerializationError(o_0) => platform_value_error_Error::CborSerializationError(>::ffi_to(o_0)), - _ => unreachable!("This is unreachable") - }) + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`VotePoll`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum dpp_voting_vote_polls_VotePoll { ContestedDocumentResourceVotePoll(*mut crate::fermented::types::dpp::voting::vote_polls::contested_document_resource_vote_poll::dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) } + + impl ferment::FFIConversionFrom for dpp_voting_vote_polls_VotePoll { + unsafe fn ffi_from_const(ffi: *const dpp_voting_vote_polls_VotePoll) -> dpp::voting::vote_polls::VotePoll { + let ffi_ref = &*ffi; + match ffi_ref { dpp_voting_vote_polls_VotePoll::ContestedDocumentResourceVotePoll(o_0) => dpp::voting::vote_polls::VotePoll::ContestedDocumentResourceVotePoll(>::ffi_from(*o_0)) } + } } - } - impl Drop for platform_value_error_Error { - fn drop(&mut self) { - unsafe { - match self { - platform_value_error_Error::Unsupported(o_0) => { ferment::unbox_string(*o_0); } - platform_value_error_Error::StructureError(o_0) => { ferment::unbox_string(*o_0); } - platform_value_error_Error::PathError(o_0) => { ferment::unbox_string(*o_0); } - platform_value_error_Error::IntegerSizeError => {} - platform_value_error_Error::IntegerParsingError => {} - platform_value_error_Error::StringDecodingError(o_0) => { ferment::unbox_string(*o_0); } - platform_value_error_Error::KeyMustBeAString => {} - platform_value_error_Error::ByteLengthNot20BytesError(o_0) => { ferment::unbox_string(*o_0); } - platform_value_error_Error::ByteLengthNot32BytesError(o_0) => { ferment::unbox_string(*o_0); } - platform_value_error_Error::ByteLengthNot36BytesError(o_0) => { ferment::unbox_string(*o_0); } - platform_value_error_Error::SerdeSerializationError(o_0) => { ferment::unbox_string(*o_0); } - platform_value_error_Error::SerdeDeserializationError(o_0) => { ferment::unbox_string(*o_0); } - platform_value_error_Error::CborSerializationError(o_0) => { ferment::unbox_string(*o_0); } + impl ferment::FFIConversionTo for dpp_voting_vote_polls_VotePoll { + unsafe fn ffi_to_const(obj: dpp::voting::vote_polls::VotePoll) -> *const dpp_voting_vote_polls_VotePoll { + ferment::boxed(match obj { + dpp::voting::vote_polls::VotePoll::ContestedDocumentResourceVotePoll(o_0) => dpp_voting_vote_polls_VotePoll::ContestedDocumentResourceVotePoll(>::ffi_to(o_0)), _ => unreachable!("This is unreachable") - }; + }) } } - } - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_Unsupported_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::Unsupported(o_o_0)) } + impl Drop for dpp_voting_vote_polls_VotePoll { + fn drop(&mut self) { + unsafe { + match self { + dpp_voting_vote_polls_VotePoll::ContestedDocumentResourceVotePoll(o_0) => { ferment::unbox_any(*o_0); } + _ => unreachable!("This is unreachable") + }; + } + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_StructureError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::StructureError(o_o_0)) } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_polls_VotePoll_ContestedDocumentResourceVotePoll_ctor(o_o_0: *mut crate::fermented::types::dpp::voting::vote_polls::contested_document_resource_vote_poll::dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut dpp_voting_vote_polls_VotePoll { ferment::boxed(dpp_voting_vote_polls_VotePoll::ContestedDocumentResourceVotePoll(o_o_0)) } - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_PathError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::PathError(o_o_0)) } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_polls_VotePoll_destroy<>(ffi: *mut dpp_voting_vote_polls_VotePoll) { ferment::unbox_any(ffi); } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_IntegerSizeError_ctor() -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::IntegerSizeError {}) } + pub mod vote_info_storage { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_IntegerParsingError_ctor() -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::IntegerParsingError {}) } + pub mod contested_document_vote_poll_stored_info { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_StringDecodingError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::StringDecodingError(o_o_0)) } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_KeyMustBeAString_ctor() -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::KeyMustBeAString {}) } + pub mod contested_document_vote_poll_winner_info { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_ByteLengthNot20BytesError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::ByteLengthNot20BytesError(o_o_0)) } + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`ContestedDocumentVotePollWinnerInfo`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { NoWinner, WonByIdentity(*mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier), Locked } - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_ByteLengthNot32BytesError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::ByteLengthNot32BytesError(o_o_0)) } + impl ferment::FFIConversionFrom for dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { + unsafe fn ffi_from_const(ffi: *const dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo) -> dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo { + let ffi_ref = &*ffi; + match ffi_ref { + dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::NoWinner => dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo::NoWinner, + dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::WonByIdentity(o_0) => dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo::WonByIdentity(>::ffi_from(*o_0)), + dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::Locked => dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo::Locked + } + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_ByteLengthNot36BytesError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::ByteLengthNot36BytesError(o_o_0)) } + impl ferment::FFIConversionTo for dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { + unsafe fn ffi_to_const(obj: dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo) -> *const dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { + ferment::boxed(match obj { + dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo::NoWinner => dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::NoWinner, + dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo::WonByIdentity(o_0) => dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::WonByIdentity(>::ffi_to(o_0)), + dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo::Locked => dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::Locked, + _ => unreachable!("This is unreachable") + }) + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_SerdeSerializationError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::SerdeSerializationError(o_o_0)) } + impl Drop for dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { + fn drop(&mut self) { + unsafe { + match self { + dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::NoWinner => {} + dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::WonByIdentity(o_0) => { ferment::unbox_any(*o_0); } + dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::Locked => {} + _ => unreachable!("This is unreachable") + }; + } + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_SerdeDeserializationError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::SerdeDeserializationError(o_o_0)) } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_NoWinner_ctor() -> *mut dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { ferment::boxed(dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::NoWinner {}) } - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_CborSerializationError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::CborSerializationError(o_o_0)) } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_WonByIdentity_ctor(o_o_0: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { ferment::boxed(dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::WonByIdentity(o_o_0)) } - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_destroy<>(ffi: *mut platform_value_error_Error) { ferment::unbox_any(ffi); } - } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_Locked_ctor() -> *mut dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { ferment::boxed(dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::Locked {}) } - pub mod types { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_destroy<>(ffi: *mut dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo) { ferment::unbox_any(ffi); } + } + } - pub mod identifier { + pub mod votes { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`IdentifierBytes32`]"] + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`Vote`]\"`]"] #[repr(C)] #[derive(Clone)] - pub struct platform_value_types_identifier_IdentifierBytes32(*mut crate::fermented::generics::Arr_u8_32); + #[non_exhaustive] + pub enum dpp_voting_votes_Vote { ResourceVote(*mut crate::fermented::types::dpp::voting::votes::resource_vote::dpp_voting_votes_resource_vote_ResourceVote) } - impl ferment::FFIConversionFrom for platform_value_types_identifier_IdentifierBytes32 { - unsafe fn ffi_from_const(ffi: *const platform_value_types_identifier_IdentifierBytes32) -> platform_value::types::identifier::IdentifierBytes32 { + impl ferment::FFIConversionFrom for dpp_voting_votes_Vote { + unsafe fn ffi_from_const(ffi: *const dpp_voting_votes_Vote) -> dpp::voting::votes::Vote { let ffi_ref = &*ffi; - platform_value::types::identifier::IdentifierBytes32(>::ffi_from(ffi_ref.0)) + match ffi_ref { dpp_voting_votes_Vote::ResourceVote(o_0) => dpp::voting::votes::Vote::ResourceVote(>::ffi_from(*o_0)) } } } - impl ferment::FFIConversionTo for platform_value_types_identifier_IdentifierBytes32 { unsafe fn ffi_to_const(obj: platform_value::types::identifier::IdentifierBytes32) -> *const platform_value_types_identifier_IdentifierBytes32 { ferment::boxed(platform_value_types_identifier_IdentifierBytes32(>::ffi_to(obj.0))) } } + impl ferment::FFIConversionTo for dpp_voting_votes_Vote { + unsafe fn ffi_to_const(obj: dpp::voting::votes::Vote) -> *const dpp_voting_votes_Vote { + ferment::boxed(match obj { + dpp::voting::votes::Vote::ResourceVote(o_0) => dpp_voting_votes_Vote::ResourceVote(>::ffi_to(o_0)), + _ => unreachable!("This is unreachable") + }) + } + } - impl Drop for platform_value_types_identifier_IdentifierBytes32 { + impl Drop for dpp_voting_votes_Vote { fn drop(&mut self) { unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.0); + match self { + dpp_voting_votes_Vote::ResourceVote(o_0) => { ferment::unbox_any(*o_0); } + _ => unreachable!("This is unreachable") + }; } } } #[no_mangle] - pub unsafe extern "C" fn platform_value_types_identifier_IdentifierBytes32_ctor<>(o_0: *mut crate::fermented::generics::Arr_u8_32) -> *mut platform_value_types_identifier_IdentifierBytes32 { ferment::boxed(platform_value_types_identifier_IdentifierBytes32(o_0)) } - - #[no_mangle] - pub unsafe extern "C" fn platform_value_types_identifier_IdentifierBytes32_destroy<>(ffi: *mut platform_value_types_identifier_IdentifierBytes32) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn dpp_voting_votes_Vote_ResourceVote_ctor(o_o_0: *mut crate::fermented::types::dpp::voting::votes::resource_vote::dpp_voting_votes_resource_vote_ResourceVote) -> *mut dpp_voting_votes_Vote { ferment::boxed(dpp_voting_votes_Vote::ResourceVote(o_o_0)) } #[no_mangle] - pub unsafe extern "C" fn platform_value_types_identifier_IdentifierBytes32_get_0<>(obj: *const platform_value_types_identifier_IdentifierBytes32) -> *mut crate::fermented::generics::Arr_u8_32 { (*obj).0 } + pub unsafe extern "C" fn dpp_voting_votes_Vote_destroy<>(ffi: *mut dpp_voting_votes_Vote) { ferment::unbox_any(ffi); } - #[no_mangle] - pub unsafe extern "C" fn platform_value_types_identifier_IdentifierBytes32_set_0<>(obj: *const platform_value_types_identifier_IdentifierBytes32) -> *mut crate::fermented::generics::Arr_u8_32 { (*obj).0 } + pub mod resource_vote { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`Identifier`]"] - #[repr(C)] - #[derive(Clone)] - pub struct platform_value_types_identifier_Identifier(*mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_IdentifierBytes32); + pub mod accessors { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionFrom for platform_value_types_identifier_Identifier { - unsafe fn ffi_from_const(ffi: *const platform_value_types_identifier_Identifier) -> platform_value::types::identifier::Identifier { - let ffi_ref = &*ffi; - platform_value::types::identifier::Identifier(>::ffi_from(ffi_ref.0)) - } - } + pub mod v0 { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionTo for platform_value_types_identifier_Identifier { unsafe fn ffi_to_const(obj: platform_value::types::identifier::Identifier) -> *const platform_value_types_identifier_Identifier { ferment::boxed(platform_value_types_identifier_Identifier(>::ffi_to(obj.0))) } } + #[doc = "FFI-representation of the [`ResourceVoteV0`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { + pub vote_poll: *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll, + pub resource_vote_choice: *mut crate::fermented::types::dpp::voting::vote_choices::resource_vote_choice::dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice, + } - impl Drop for platform_value_types_identifier_Identifier { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.0); + impl ferment::FFIConversionFrom for dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { + unsafe fn ffi_from_const(ffi: *const dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> dpp::voting::votes::resource_vote::v0::ResourceVoteV0 { + let ffi_ref = &*ffi; + dpp::voting::votes::resource_vote::v0::ResourceVoteV0 { vote_poll: >::ffi_from(ffi_ref.vote_poll), resource_vote_choice: >::ffi_from(ffi_ref.resource_vote_choice) } + } } - } - } - #[no_mangle] - pub unsafe extern "C" fn platform_value_types_identifier_Identifier_ctor<>(o_0: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_IdentifierBytes32) -> *mut platform_value_types_identifier_Identifier { ferment::boxed(platform_value_types_identifier_Identifier(o_0)) } + impl ferment::FFIConversionTo for dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { unsafe fn ffi_to_const(obj: dpp::voting::votes::resource_vote::v0::ResourceVoteV0) -> *const dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { ferment::boxed(dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { vote_poll: >::ffi_to(obj.vote_poll), resource_vote_choice: >::ffi_to(obj.resource_vote_choice) }) } } - #[no_mangle] - pub unsafe extern "C" fn platform_value_types_identifier_Identifier_destroy<>(ffi: *mut platform_value_types_identifier_Identifier) { ferment::unbox_any(ffi); } + impl Drop for dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.vote_poll); + ferment::unbox_any(ffi_ref.resource_vote_choice); + } + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_types_identifier_Identifier_get_0<>(obj: *const platform_value_types_identifier_Identifier) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_IdentifierBytes32 { (*obj).0 } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_votes_resource_vote_v0_ResourceVoteV0_ctor<>(vote_poll: *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll, resource_vote_choice: *mut crate::fermented::types::dpp::voting::vote_choices::resource_vote_choice::dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice) -> *mut dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { ferment::boxed(dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { vote_poll, resource_vote_choice }) } - #[no_mangle] - pub unsafe extern "C" fn platform_value_types_identifier_Identifier_set_0<>(obj: *const platform_value_types_identifier_Identifier) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_IdentifierBytes32 { (*obj).0 } - } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_votes_resource_vote_v0_ResourceVoteV0_destroy<>(ffi: *mut dpp_voting_votes_resource_vote_v0_ResourceVoteV0) { ferment::unbox_any(ffi); } - pub mod binary_data { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_votes_resource_vote_v0_ResourceVoteV0_get_vote_poll<>(obj: *const dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll { (*obj).vote_poll } - #[doc = "FFI-representation of the [`BinaryData`]"] - #[repr(C)] - #[derive(Clone)] - pub struct platform_value_types_binary_data_BinaryData(*mut crate::fermented::generics::Vec_u8); + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_votes_resource_vote_v0_ResourceVoteV0_get_resource_vote_choice<>(obj: *const dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> *mut crate::fermented::types::dpp::voting::vote_choices::resource_vote_choice::dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { (*obj).resource_vote_choice } - impl ferment::FFIConversionFrom for platform_value_types_binary_data_BinaryData { - unsafe fn ffi_from_const(ffi: *const platform_value_types_binary_data_BinaryData) -> platform_value::types::binary_data::BinaryData { - let ffi_ref = &*ffi; - platform_value::types::binary_data::BinaryData(>>::ffi_from(ffi_ref.0)) + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_votes_resource_vote_v0_ResourceVoteV0_set_vote_poll<>(obj: *const dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll { (*obj).vote_poll } + + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_votes_resource_vote_v0_ResourceVoteV0_set_resource_vote_choice<>(obj: *const dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> *mut crate::fermented::types::dpp::voting::vote_choices::resource_vote_choice::dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { (*obj).resource_vote_choice } } - } - impl ferment::FFIConversionTo for platform_value_types_binary_data_BinaryData { unsafe fn ffi_to_const(obj: platform_value::types::binary_data::BinaryData) -> *const platform_value_types_binary_data_BinaryData { ferment::boxed(platform_value_types_binary_data_BinaryData(>>::ffi_to(obj.0))) } } + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`ResourceVote`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum dpp_voting_votes_resource_vote_ResourceVote { V0(*mut crate::fermented::types::dpp::voting::votes::resource_vote::v0::dpp_voting_votes_resource_vote_v0_ResourceVoteV0) } - impl Drop for platform_value_types_binary_data_BinaryData { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.0); + impl ferment::FFIConversionFrom for dpp_voting_votes_resource_vote_ResourceVote { + unsafe fn ffi_from_const(ffi: *const dpp_voting_votes_resource_vote_ResourceVote) -> dpp::voting::votes::resource_vote::ResourceVote { + let ffi_ref = &*ffi; + match ffi_ref { dpp_voting_votes_resource_vote_ResourceVote::V0(o_0) => dpp::voting::votes::resource_vote::ResourceVote::V0(>::ffi_from(*o_0)) } } } - } - #[no_mangle] - pub unsafe extern "C" fn platform_value_types_binary_data_BinaryData_ctor<>(o_0: *mut crate::fermented::generics::Vec_u8) -> *mut platform_value_types_binary_data_BinaryData { ferment::boxed(platform_value_types_binary_data_BinaryData(o_0)) } + impl ferment::FFIConversionTo for dpp_voting_votes_resource_vote_ResourceVote { + unsafe fn ffi_to_const(obj: dpp::voting::votes::resource_vote::ResourceVote) -> *const dpp_voting_votes_resource_vote_ResourceVote { + ferment::boxed(match obj { + dpp::voting::votes::resource_vote::ResourceVote::V0(o_0) => dpp_voting_votes_resource_vote_ResourceVote::V0(>::ffi_to(o_0)), + _ => unreachable!("This is unreachable") + }) + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_types_binary_data_BinaryData_destroy<>(ffi: *mut platform_value_types_binary_data_BinaryData) { ferment::unbox_any(ffi); } + impl Drop for dpp_voting_votes_resource_vote_ResourceVote { + fn drop(&mut self) { + unsafe { + match self { + dpp_voting_votes_resource_vote_ResourceVote::V0(o_0) => { ferment::unbox_any(*o_0); } + _ => unreachable!("This is unreachable") + }; + } + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_types_binary_data_BinaryData_get_0<>(obj: *const platform_value_types_binary_data_BinaryData) -> *mut crate::fermented::generics::Vec_u8 { (*obj).0 } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_votes_resource_vote_ResourceVote_V0_ctor(o_o_0: *mut crate::fermented::types::dpp::voting::votes::resource_vote::v0::dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> *mut dpp_voting_votes_resource_vote_ResourceVote { ferment::boxed(dpp_voting_votes_resource_vote_ResourceVote::V0(o_o_0)) } - #[no_mangle] - pub unsafe extern "C" fn platform_value_types_binary_data_BinaryData_set_0<>(obj: *const platform_value_types_binary_data_BinaryData) -> *mut crate::fermented::generics::Vec_u8 { (*obj).0 } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_votes_resource_vote_ResourceVote_destroy<>(ffi: *mut dpp_voting_votes_resource_vote_ResourceVote) { ferment::unbox_any(ffi); } + } } - } - } - pub mod platform_mobile { - use crate as dash_sdk_bindings; + pub mod contender_structs { + use crate as dash_sdk_bindings; - pub mod core { - use crate as dash_sdk_bindings; + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } - #[doc = "FFI-representation of the [`platform_mobile::core::get_transaction_sdk`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_core_get_transaction_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, txid: *mut crate::fermented::generics::Arr_u8_32) -> *mut crate::fermented::generics::Result_ok_Vec_u8_err_String { - let obj = platform_mobile::core::get_transaction_sdk(rust_sdk, >::ffi_from(txid)); - , String>>>::ffi_to(obj) - } + pub mod contender { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::core::get_transaction`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_core_get_transaction(txid: *mut crate::fermented::generics::Arr_u8_32, quorum_public_key_callback: u64, data_contract_callback: u64) -> *mut crate::fermented::generics::Result_ok_Vec_u8_err_String { - let obj = platform_mobile::core::get_transaction(>::ffi_from(txid), quorum_public_key_callback, data_contract_callback); - , String>>>::ffi_to(obj) - } - } + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`ContenderWithSerializedDocument`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { V0(*mut crate::fermented::types::dpp::voting::contender_structs::contender::v0::dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) } - pub mod data_contracts { - use crate as dash_sdk_bindings; + impl ferment::FFIConversionFrom for dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { + unsafe fn ffi_from_const(ffi: *const dpp_voting_contender_structs_contender_ContenderWithSerializedDocument) -> dpp::voting::contender_structs::contender::ContenderWithSerializedDocument { + let ffi_ref = &*ffi; + match ffi_ref { dpp_voting_contender_structs_contender_ContenderWithSerializedDocument::V0(o_0) => dpp::voting::contender_structs::contender::ContenderWithSerializedDocument::V0(>::ffi_from(*o_0)) } + } + } - #[doc = "FFI-representation of the [`platform_mobile::data_contracts::DataContractFFI_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_clone(value: *mut crate::fermented::types::platform_mobile::data_contracts::platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::types::platform_mobile::data_contracts::platform_mobile_data_contracts_DataContractFFI { - let obj = platform_mobile::data_contracts::DataContractFFI_clone(>::ffi_from(value)); - >::ffi_to(obj) - } + impl ferment::FFIConversionTo for dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { + unsafe fn ffi_to_const(obj: dpp::voting::contender_structs::contender::ContenderWithSerializedDocument) -> *const dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { + ferment::boxed(match obj { + dpp::voting::contender_structs::contender::ContenderWithSerializedDocument::V0(o_0) => dpp_voting_contender_structs_contender_ContenderWithSerializedDocument::V0(>::ffi_to(o_0)), + _ => unreachable!("This is unreachable") + }) + } + } - #[doc = "FFI-representation of the [`DataContractFFI`]"] - #[repr(C)] - #[derive(Clone)] - pub struct platform_mobile_data_contracts_DataContractFFI { - pub id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, - pub owner_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, - pub doc_types: *mut crate::fermented::generics::Vec_String, - pub version: u32, - } + impl Drop for dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { + fn drop(&mut self) { + unsafe { + match self { + dpp_voting_contender_structs_contender_ContenderWithSerializedDocument::V0(o_0) => { ferment::unbox_any(*o_0); } + _ => unreachable!("This is unreachable") + }; + } + } + } - impl ferment::FFIConversionFrom for platform_mobile_data_contracts_DataContractFFI { - unsafe fn ffi_from_const(ffi: *const platform_mobile_data_contracts_DataContractFFI) -> platform_mobile::data_contracts::DataContractFFI { - let ffi_ref = &*ffi; - platform_mobile::data_contracts::DataContractFFI { id: >::ffi_from(ffi_ref.id), owner_id: >::ffi_from(ffi_ref.owner_id), doc_types: >>::ffi_from(ffi_ref.doc_types), version: ffi_ref.version } - } - } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_contender_structs_contender_ContenderWithSerializedDocument_V0_ctor(o_o_0: *mut crate::fermented::types::dpp::voting::contender_structs::contender::v0::dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { ferment::boxed(dpp_voting_contender_structs_contender_ContenderWithSerializedDocument::V0(o_o_0)) } - impl ferment::FFIConversionTo for platform_mobile_data_contracts_DataContractFFI { unsafe fn ffi_to_const(obj: platform_mobile::data_contracts::DataContractFFI) -> *const platform_mobile_data_contracts_DataContractFFI { ferment::boxed(platform_mobile_data_contracts_DataContractFFI { id: >::ffi_to(obj.id), owner_id: >::ffi_to(obj.owner_id), doc_types: >>::ffi_to(obj.doc_types), version: obj.version }) } } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_contender_structs_contender_ContenderWithSerializedDocument_destroy<>(ffi: *mut dpp_voting_contender_structs_contender_ContenderWithSerializedDocument) { ferment::unbox_any(ffi); } + + pub mod v0 { + use crate as dash_sdk_bindings; + + #[doc = "FFI-representation of the [`ContenderWithSerializedDocumentV0`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { + pub identity_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, + pub serialized_document: *mut crate::fermented::generics::Vec_u8, + pub vote_tally: *mut u32, + } - impl Drop for platform_mobile_data_contracts_DataContractFFI { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.id); - ferment::unbox_any(ffi_ref.owner_id); - ferment::unbox_any(ffi_ref.doc_types); - ; - } - } - } + impl ferment::FFIConversionFrom for dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { + unsafe fn ffi_from_const(ffi: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> dpp::voting::contender_structs::contender::v0::ContenderWithSerializedDocumentV0 { + let ffi_ref = &*ffi; + dpp::voting::contender_structs::contender::v0::ContenderWithSerializedDocumentV0 { identity_id: >::ffi_from(ffi_ref.identity_id), serialized_document: >>::ffi_from_opt(ffi_ref.serialized_document), vote_tally: ferment::from_opt_primitive(ffi_ref.vote_tally) } + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_ctor<>(id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, owner_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, doc_types: *mut crate::fermented::generics::Vec_String, version: u32) -> *mut platform_mobile_data_contracts_DataContractFFI { ferment::boxed(platform_mobile_data_contracts_DataContractFFI { id, owner_id, doc_types, version }) } + impl ferment::FFIConversionTo for dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { unsafe fn ffi_to_const(obj: dpp::voting::contender_structs::contender::v0::ContenderWithSerializedDocumentV0) -> *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { ferment::boxed(dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { identity_id: >::ffi_to(obj.identity_id), serialized_document: >>::ffi_to_opt(obj.serialized_document), vote_tally: ferment::to_opt_primitive(obj.vote_tally) }) } } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_destroy<>(ffi: *mut platform_mobile_data_contracts_DataContractFFI) { ferment::unbox_any(ffi); } + impl Drop for dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.identity_id); + ferment::unbox_any_opt(ffi_ref.serialized_document); + ferment::destroy_opt_primitive(ffi_ref.vote_tally); + } + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_get_id<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).id } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_ctor<>(identity_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, serialized_document: *mut crate::fermented::generics::Vec_u8, vote_tally: *mut u32) -> *mut dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { ferment::boxed(dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { identity_id, serialized_document, vote_tally }) } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_get_owner_id<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).owner_id } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_destroy<>(ffi: *mut dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) { ferment::unbox_any(ffi); } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_get_doc_types<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::generics::Vec_String { (*obj).doc_types } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_get_identity_id<>(obj: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).identity_id } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_get_version<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> u32 { (*obj).version } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_get_serialized_document<>(obj: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut crate::fermented::generics::Vec_u8 { (*obj).serialized_document } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_set_id<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).id } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_get_vote_tally<>(obj: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut u32 { (*obj).vote_tally } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_set_owner_id<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).owner_id } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_set_identity_id<>(obj: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).identity_id } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_set_doc_types<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::generics::Vec_String { (*obj).doc_types } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_set_serialized_document<>(obj: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut crate::fermented::generics::Vec_u8 { (*obj).serialized_document } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_set_version<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> u32 { (*obj).version } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_set_vote_tally<>(obj: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut u32 { (*obj).vote_tally } + } - #[doc = "FFI-representation of the [`platform_mobile::data_contracts::fetch_data_contract`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_data_contracts_fetch_data_contract(rust_sdk: *mut platform_mobile::sdk::DashSdk, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::generics::Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { - let obj = platform_mobile::data_contracts::fetch_data_contract(rust_sdk, >::ffi_from(data_contract_id)); - , String>>>::ffi_to(obj) + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } } } - pub mod clone { + pub mod shielded { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::clone::ContestedResources_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_ContestedResources_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResources) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResources { - let obj = platform_mobile::clone::ContestedResources_clone(>::ffi_from(o)); - >::ffi_to(obj) - } + pub mod compute_minimum_shielded_fee { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::clone::Vote_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Vote_clone(o: *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote) -> *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote { - let obj = platform_mobile::clone::Vote_clone(>::ffi_from(o)); - >::ffi_to(obj) + pub mod v0 { use crate as dash_sdk_bindings; } } - #[doc = "FFI-representation of the [`platform_mobile::clone::Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_clone(o: *mut crate::fermented::generics::Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) -> *mut crate::fermented::generics::Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { - let obj = platform_mobile::clone::Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_clone()>>::ffi_from(o)); - )>>::ffi_to(obj) - } + pub mod sighash { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::clone::Revision_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Revision_clone(revision: *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision { - let obj = platform_mobile::clone::Revision_clone(>::ffi_from(revision)); - >::ffi_to(obj) + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } } - #[doc = "FFI-representation of the [`platform_mobile::clone::ResourceVotesByIdentity_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_ResourceVotesByIdentity_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ResourceVotesByIdentity) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ResourceVotesByIdentity { - let obj = platform_mobile::clone::ResourceVotesByIdentity_clone(>::ffi_from(o)); - >::ffi_to(obj) - } + pub mod memo { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`platform_mobile::clone::TimestampMillis_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_TimestampMillis_clone(time: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { - let obj = platform_mobile::clone::TimestampMillis_clone(>::ffi_from(time)); - >::ffi_to(obj) - } + #[cfg(feature = "shielded-client")] + pub mod builder { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::clone::ResourceVoteChoice_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_ResourceVoteChoice_clone(o: *mut crate::fermented::types::dpp::voting::vote_choices::resource_vote_choice::dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice) -> *mut crate::fermented::types::dpp::voting::vote_choices::resource_vote_choice::dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { - let obj = platform_mobile::clone::ResourceVoteChoice_clone(>::ffi_from(o)); - >::ffi_to(obj) - } + pub mod shielded_transfer { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`platform_mobile::clone::Arr_u8_32_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Arr_u8_32_clone(slice: *mut crate::fermented::generics::Arr_u8_32) -> *mut crate::fermented::generics::Arr_u8_32 { - let obj = platform_mobile::clone::Arr_u8_32_clone(>::ffi_from(slice)); - >::ffi_to(obj) - } + pub mod identity_create_from_shielded_pool { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`platform_mobile::clone::Voters_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Voters_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Voters) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Voters { - let obj = platform_mobile::clone::Voters_clone(>::ffi_from(o)); - >::ffi_to(obj) - } + pub mod shielded_withdrawal { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`platform_mobile::clone::ContestedDocumentResourceVotePoll_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_ContestedDocumentResourceVotePoll_clone(o: *mut crate::fermented::types::dpp::voting::vote_polls::contested_document_resource_vote_poll::dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut crate::fermented::types::dpp::voting::vote_polls::contested_document_resource_vote_poll::dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { - let obj = platform_mobile::clone::ContestedDocumentResourceVotePoll_clone(>::ffi_from(o)); - >::ffi_to(obj) - } + pub mod unshield { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`platform_mobile::clone::std_collections_Map_keys_String_values_platform_value_Value_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_std_collections_Map_keys_String_values_platform_value_Value_clone(map: *mut crate::fermented::generics::std_collections_Map_keys_String_values_platform_value_Value) -> *mut crate::fermented::generics::std_collections_Map_keys_String_values_platform_value_Value { - let obj = platform_mobile::clone::std_collections_Map_keys_String_values_platform_value_Value_clone(>>::ffi_from(map)); - >>::ffi_to(obj) - } + pub mod shield_from_asset_lock { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`platform_mobile::clone::Value_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Value_clone(value: *mut crate::fermented::types::platform_value::platform_value_Value) -> *mut crate::fermented::types::platform_value::platform_value_Value { - let obj = platform_mobile::clone::Value_clone(>::ffi_from(value)); - >::ffi_to(obj) + pub mod shield { use crate as dash_sdk_bindings; } } + } - #[doc = "FFI-representation of the [`platform_mobile::clone::ContenderWithSerializedDocument_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_ContenderWithSerializedDocument_clone(o: *mut crate::fermented::types::dpp::voting::contender_structs::contender::dpp_voting_contender_structs_contender_ContenderWithSerializedDocument) -> *mut crate::fermented::types::dpp::voting::contender_structs::contender::dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { - let obj = platform_mobile::clone::ContenderWithSerializedDocument_clone(>::ffi_from(o)); - >::ffi_to(obj) - } + pub mod asset_lock { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::clone::ResourceVote_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_ResourceVote_clone(o: *mut crate::fermented::types::dpp::voting::votes::resource_vote::dpp_voting_votes_resource_vote_ResourceVote) -> *mut crate::fermented::types::dpp::voting::votes::resource_vote::dpp_voting_votes_resource_vote_ResourceVote { - let obj = platform_mobile::clone::ResourceVote_clone(>::ffi_from(o)); - >::ffi_to(obj) - } + pub mod reduced_asset_lock_value { use crate as dash_sdk_bindings; } + } - #[doc = "FFI-representation of the [`platform_mobile::clone::prelude_TimestampMillis_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_prelude_TimestampMillis_clone(time: *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis { - let obj = platform_mobile::clone::prelude_TimestampMillis_clone(>::ffi_from(time)); - >::ffi_to(obj) + pub mod prelude { + use crate as dash_sdk_bindings; + + #[doc = "FFI-representation of the [`Revision`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_prelude_Revision(u64); + + impl ferment::FFIConversionFrom for dpp_prelude_Revision { + unsafe fn ffi_from_const(ffi: *const dpp_prelude_Revision) -> dpp::prelude::Revision { + let ffi_ref = &*ffi; + ffi_ref.0 + } } - #[doc = "FFI-representation of the [`platform_mobile::clone::WhereOperator_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_WhereOperator_clone(o: *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereOperator) -> *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereOperator { - let obj = platform_mobile::clone::WhereOperator_clone(>::ffi_from(o)); - >::ffi_to(obj) + impl ferment::FFIConversionTo for dpp_prelude_Revision { unsafe fn ffi_to_const(obj: dpp::prelude::Revision) -> *const dpp_prelude_Revision { ferment::boxed(dpp_prelude_Revision(obj)) } } + + impl Drop for dpp_prelude_Revision { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ; + } + } } - #[doc = "FFI-representation of the [`platform_mobile::clone::std_collections_BTreeSet_drive_proof_verifier_types_Voter_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_std_collections_BTreeSet_drive_proof_verifier_types_Voter_clone(o: *mut crate::fermented::generics::std_collections_BTreeSet_drive_proof_verifier_types_Voter) -> *mut crate::fermented::generics::std_collections_BTreeSet_drive_proof_verifier_types_Voter { - let obj = platform_mobile::clone::std_collections_BTreeSet_drive_proof_verifier_types_Voter_clone(>>::ffi_from(o)); - >>::ffi_to(obj) - } + pub unsafe extern "C" fn dpp_prelude_Revision_ctor<>(o_0: u64) -> *mut dpp_prelude_Revision { ferment::boxed(dpp_prelude_Revision(o_0)) } - #[doc = "FFI-representation of the [`platform_mobile::clone::VotePollsGroupedByTimestamp_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_VotePollsGroupedByTimestamp_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_VotePollsGroupedByTimestamp) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_VotePollsGroupedByTimestamp { - let obj = platform_mobile::clone::VotePollsGroupedByTimestamp_clone(>::ffi_from(o)); - >::ffi_to(obj) - } + pub unsafe extern "C" fn dpp_prelude_Revision_destroy<>(ffi: *mut dpp_prelude_Revision) { ferment::unbox_any(ffi); } - #[doc = "FFI-representation of the [`platform_mobile::clone::CoreBlockHeight_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_CoreBlockHeight_clone(height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { - let obj = platform_mobile::clone::CoreBlockHeight_clone(>::ffi_from(height)); - >::ffi_to(obj) - } + pub unsafe extern "C" fn dpp_prelude_Revision_get_0<>(obj: *const dpp_prelude_Revision) -> u64 { (*obj).0 } - #[doc = "FFI-representation of the [`platform_mobile::clone::Document_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Document_clone(document: *mut crate::fermented::types::dpp::document::dpp_document_Document) -> *mut crate::fermented::types::dpp::document::dpp_document_Document { - let obj = platform_mobile::clone::Document_clone(>::ffi_from(document)); - >::ffi_to(obj) + pub unsafe extern "C" fn dpp_prelude_Revision_set_0<>(obj: *const dpp_prelude_Revision) -> u64 { (*obj).0 } + + #[doc = "FFI-representation of the [`TimestampMillis`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_prelude_TimestampMillis(u64); + + impl ferment::FFIConversionFrom for dpp_prelude_TimestampMillis { + unsafe fn ffi_from_const(ffi: *const dpp_prelude_TimestampMillis) -> dpp::prelude::TimestampMillis { + let ffi_ref = &*ffi; + ffi_ref.0 + } } - #[doc = "FFI-representation of the [`platform_mobile::clone::ValueMap_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_ValueMap_clone(value_map: *mut crate::fermented::types::platform_value::value_map::platform_value_value_map_ValueMap) -> *mut crate::fermented::types::platform_value::value_map::platform_value_value_map_ValueMap { - let obj = platform_mobile::clone::ValueMap_clone(>::ffi_from(value_map)); - >::ffi_to(obj) + impl ferment::FFIConversionTo for dpp_prelude_TimestampMillis { unsafe fn ffi_to_const(obj: dpp::prelude::TimestampMillis) -> *const dpp_prelude_TimestampMillis { ferment::boxed(dpp_prelude_TimestampMillis(obj)) } } + + impl Drop for dpp_prelude_TimestampMillis { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ; + } + } } - #[doc = "FFI-representation of the [`platform_mobile::clone::DocumentV0_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_DocumentV0_clone(document: *mut crate::fermented::types::dpp::document::v0::dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::document::v0::dpp_document_v0_DocumentV0 { - let obj = platform_mobile::clone::DocumentV0_clone(>::ffi_from(document)); - >::ffi_to(obj) - } + pub unsafe extern "C" fn dpp_prelude_TimestampMillis_ctor<>(o_0: u64) -> *mut dpp_prelude_TimestampMillis { ferment::boxed(dpp_prelude_TimestampMillis(o_0)) } - #[doc = "FFI-representation of the [`platform_mobile::clone::KeyID_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_KeyID_clone(id: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID { - let obj = platform_mobile::clone::KeyID_clone(>::ffi_from(id)); - >::ffi_to(obj) - } + pub unsafe extern "C" fn dpp_prelude_TimestampMillis_destroy<>(ffi: *mut dpp_prelude_TimestampMillis) { ferment::unbox_any(ffi); } - #[doc = "FFI-representation of the [`platform_mobile::clone::Arr_u8_36_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Arr_u8_36_clone(slice: *mut crate::fermented::generics::Arr_u8_36) -> *mut crate::fermented::generics::Arr_u8_36 { - let obj = platform_mobile::clone::Arr_u8_36_clone(>::ffi_from(slice)); - >::ffi_to(obj) - } + pub unsafe extern "C" fn dpp_prelude_TimestampMillis_get_0<>(obj: *const dpp_prelude_TimestampMillis) -> u64 { (*obj).0 } - #[doc = "FFI-representation of the [`platform_mobile::clone::Arr_u8_20_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Arr_u8_20_clone(slice: *mut crate::fermented::generics::Arr_u8_20) -> *mut crate::fermented::generics::Arr_u8_20 { - let obj = platform_mobile::clone::Arr_u8_20_clone(>::ffi_from(slice)); - >::ffi_to(obj) + pub unsafe extern "C" fn dpp_prelude_TimestampMillis_set_0<>(obj: *const dpp_prelude_TimestampMillis) -> u64 { (*obj).0 } + + #[doc = "FFI-representation of the [`CoreBlockHeight`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_prelude_CoreBlockHeight(u32); + + impl ferment::FFIConversionFrom for dpp_prelude_CoreBlockHeight { + unsafe fn ffi_from_const(ffi: *const dpp_prelude_CoreBlockHeight) -> dpp::prelude::CoreBlockHeight { + let ffi_ref = &*ffi; + ffi_ref.0 + } } - #[doc = "FFI-representation of the [`platform_mobile::clone::Contenders_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Contenders_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Contenders) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Contenders { - let obj = platform_mobile::clone::Contenders_clone(>::ffi_from(o)); - >::ffi_to(obj) + impl ferment::FFIConversionTo for dpp_prelude_CoreBlockHeight { unsafe fn ffi_to_const(obj: dpp::prelude::CoreBlockHeight) -> *const dpp_prelude_CoreBlockHeight { ferment::boxed(dpp_prelude_CoreBlockHeight(obj)) } } + + impl Drop for dpp_prelude_CoreBlockHeight { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ; + } + } } - #[doc = "FFI-representation of the [`platform_mobile::clone::Vec_u8_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Vec_u8_clone(vec: *mut crate::fermented::generics::Vec_u8) -> *mut crate::fermented::generics::Vec_u8 { - let obj = platform_mobile::clone::Vec_u8_clone(>>::ffi_from(vec)); - >>::ffi_to(obj) - } + pub unsafe extern "C" fn dpp_prelude_CoreBlockHeight_ctor<>(o_0: u32) -> *mut dpp_prelude_CoreBlockHeight { ferment::boxed(dpp_prelude_CoreBlockHeight(o_0)) } - #[doc = "FFI-representation of the [`platform_mobile::clone::BlockHeight_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_BlockHeight_clone(height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { - let obj = platform_mobile::clone::BlockHeight_clone(>::ffi_from(height)); - >::ffi_to(obj) - } + pub unsafe extern "C" fn dpp_prelude_CoreBlockHeight_destroy<>(ffi: *mut dpp_prelude_CoreBlockHeight) { ferment::unbox_any(ffi); } - #[doc = "FFI-representation of the [`platform_mobile::clone::ContenderWithSerializedDocumentV0_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_ContenderWithSerializedDocumentV0_clone(o: *mut crate::fermented::types::dpp::voting::contender_structs::contender::v0::dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut crate::fermented::types::dpp::voting::contender_structs::contender::v0::dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { - let obj = platform_mobile::clone::ContenderWithSerializedDocumentV0_clone(>::ffi_from(o)); - >::ffi_to(obj) - } + pub unsafe extern "C" fn dpp_prelude_CoreBlockHeight_get_0<>(obj: *const dpp_prelude_CoreBlockHeight) -> u32 { (*obj).0 } - #[doc = "FFI-representation of the [`platform_mobile::clone::ResourceVoteV0_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_ResourceVoteV0_clone(o: *mut crate::fermented::types::dpp::voting::votes::resource_vote::v0::dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> *mut crate::fermented::types::dpp::voting::votes::resource_vote::v0::dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { - let obj = platform_mobile::clone::ResourceVoteV0_clone(>::ffi_from(o)); - >::ffi_to(obj) + pub unsafe extern "C" fn dpp_prelude_CoreBlockHeight_set_0<>(obj: *const dpp_prelude_CoreBlockHeight) -> u32 { (*obj).0 } + + #[doc = "FFI-representation of the [`BlockHeight`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_prelude_BlockHeight(u64); + + impl ferment::FFIConversionFrom for dpp_prelude_BlockHeight { + unsafe fn ffi_from_const(ffi: *const dpp_prelude_BlockHeight) -> dpp::prelude::BlockHeight { + let ffi_ref = &*ffi; + ffi_ref.0 + } } - #[doc = "FFI-representation of the [`platform_mobile::clone::Vec_Value_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Vec_Value_clone(value_vec: *mut crate::fermented::generics::Vec_platform_value_Value) -> *mut crate::fermented::generics::Vec_platform_value_Value { - let obj = platform_mobile::clone::Vec_Value_clone(>>::ffi_from(value_vec)); - >>::ffi_to(obj) + impl ferment::FFIConversionTo for dpp_prelude_BlockHeight { unsafe fn ffi_to_const(obj: dpp::prelude::BlockHeight) -> *const dpp_prelude_BlockHeight { ferment::boxed(dpp_prelude_BlockHeight(obj)) } } + + impl Drop for dpp_prelude_BlockHeight { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ; + } + } } - #[doc = "FFI-representation of the [`platform_mobile::clone::VotePoll_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_VotePoll_clone(o: *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll) -> *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll { - let obj = platform_mobile::clone::VotePoll_clone(>::ffi_from(o)); - >::ffi_to(obj) - } + pub unsafe extern "C" fn dpp_prelude_BlockHeight_ctor<>(o_0: u64) -> *mut dpp_prelude_BlockHeight { ferment::boxed(dpp_prelude_BlockHeight(o_0)) } - #[doc = "FFI-representation of the [`platform_mobile::clone::Voter_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Voter_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Voter) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Voter { - let obj = platform_mobile::clone::Voter_clone(>::ffi_from(o)); - >::ffi_to(obj) - } + pub unsafe extern "C" fn dpp_prelude_BlockHeight_destroy<>(ffi: *mut dpp_prelude_BlockHeight) { ferment::unbox_any(ffi); } - #[doc = "FFI-representation of the [`platform_mobile::clone::OrderClause_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_OrderClause_clone(o: *mut crate::fermented::types::drive::query::ordering::drive_query_ordering_OrderClause) -> *mut crate::fermented::types::drive::query::ordering::drive_query_ordering_OrderClause { - let obj = platform_mobile::clone::OrderClause_clone(>::ffi_from(o)); - >::ffi_to(obj) - } + pub unsafe extern "C" fn dpp_prelude_BlockHeight_get_0<>(obj: *const dpp_prelude_BlockHeight) -> u64 { (*obj).0 } - #[doc = "FFI-representation of the [`platform_mobile::clone::ContestedResource_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_ContestedResource_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResource) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResource { - let obj = platform_mobile::clone::ContestedResource_clone(>::ffi_from(o)); - >::ffi_to(obj) + pub unsafe extern "C" fn dpp_prelude_BlockHeight_set_0<>(obj: *const dpp_prelude_BlockHeight) -> u64 { (*obj).0 } + } + + pub mod util { + use crate as dash_sdk_bindings; + + pub mod json_path { use crate as dash_sdk_bindings; } + + pub mod json_value { + use crate as dash_sdk_bindings; + + pub mod remove_path { use crate as dash_sdk_bindings; } + + pub mod insert_with_path { use crate as dash_sdk_bindings; } } - #[doc = "FFI-representation of the [`platform_mobile::clone::WhereClause_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_WhereClause_clone(o: *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereClause) -> *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereClause { - let obj = platform_mobile::clone::WhereClause_clone(>::ffi_from(o)); - >::ffi_to(obj) + #[cfg(feature = "cbor")] + pub mod cbor_value { + use crate as dash_sdk_bindings; + + pub mod convert { use crate as dash_sdk_bindings; } + + pub mod map { use crate as dash_sdk_bindings; } + + pub mod canonical { use crate as dash_sdk_bindings; } } - #[doc = "FFI-representation of the [`platform_mobile::clone::Hash256_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Hash256_clone(o: *mut crate::fermented::types::platform_value::platform_value_Hash256) -> *mut crate::fermented::types::platform_value::platform_value_Hash256 { - let obj = platform_mobile::clone::Hash256_clone(>::ffi_from(o)); - >::ffi_to(obj) + pub mod strings { + use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } } + + pub mod is_non_zero_fibonacci_number { use crate as dash_sdk_bindings; } + + pub mod vec { use crate as dash_sdk_bindings; } + + pub mod deserializer { use crate as dash_sdk_bindings; } + + pub mod json_schema { use crate as dash_sdk_bindings; } } - pub mod operators { + pub mod block { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::operators::Value_hash`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_operators_Value_hash(a: *mut crate::fermented::types::platform_value::platform_value_Value) -> i32 { - let obj = platform_mobile::operators::Value_hash(>::ffi_from(a)); - obj - } + pub mod epoch { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::operators::Value_eq`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_operators_Value_eq(a: *mut crate::fermented::types::platform_value::platform_value_Value, b: *mut crate::fermented::types::platform_value::platform_value_Value) -> bool { - let obj = platform_mobile::operators::Value_eq(>::ffi_from(a), >::ffi_from(b)); - obj + #[doc = "FFI-representation of the [`EpochIndex`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_block_epoch_EpochIndex(u16); + + impl ferment::FFIConversionFrom for dpp_block_epoch_EpochIndex { + unsafe fn ffi_from_const(ffi: *const dpp_block_epoch_EpochIndex) -> dpp::block::epoch::EpochIndex { + let ffi_ref = &*ffi; + ffi_ref.0 + } + } + + impl ferment::FFIConversionTo for dpp_block_epoch_EpochIndex { unsafe fn ffi_to_const(obj: dpp::block::epoch::EpochIndex) -> *const dpp_block_epoch_EpochIndex { ferment::boxed(dpp_block_epoch_EpochIndex(obj)) } } + + impl Drop for dpp_block_epoch_EpochIndex { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ; + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn dpp_block_epoch_EpochIndex_ctor<>(o_0: u16) -> *mut dpp_block_epoch_EpochIndex { ferment::boxed(dpp_block_epoch_EpochIndex(o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_block_epoch_EpochIndex_destroy<>(ffi: *mut dpp_block_epoch_EpochIndex) { ferment::unbox_any(ffi); } + + #[no_mangle] + pub unsafe extern "C" fn dpp_block_epoch_EpochIndex_get_0<>(obj: *const dpp_block_epoch_EpochIndex) -> u16 { (*obj).0 } + + #[no_mangle] + pub unsafe extern "C" fn dpp_block_epoch_EpochIndex_set_0<>(obj: *const dpp_block_epoch_EpochIndex) -> u16 { (*obj).0 } + + #[doc = "FFI-representation of the [`Epoch`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_block_epoch_Epoch { + pub index: *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_EpochIndex, + pub key: *mut crate::fermented::generics::Arr_u8_2, + } + + impl ferment::FFIConversionFrom for dpp_block_epoch_Epoch { + unsafe fn ffi_from_const(ffi: *const dpp_block_epoch_Epoch) -> dpp::block::epoch::Epoch { + let ffi_ref = &*ffi; + dpp::block::epoch::Epoch { index: >::ffi_from(ffi_ref.index), key: >::ffi_from(ffi_ref.key) } + } + } + + impl ferment::FFIConversionTo for dpp_block_epoch_Epoch { unsafe fn ffi_to_const(obj: dpp::block::epoch::Epoch) -> *const dpp_block_epoch_Epoch { ferment::boxed(dpp_block_epoch_Epoch { index: >::ffi_to(obj.index), key: >::ffi_to(obj.key) }) } } + + impl Drop for dpp_block_epoch_Epoch { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.index); + ferment::unbox_any(ffi_ref.key); + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn dpp_block_epoch_Epoch_ctor<>(index: *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_EpochIndex, key: *mut crate::fermented::generics::Arr_u8_2) -> *mut dpp_block_epoch_Epoch { ferment::boxed(dpp_block_epoch_Epoch { index, key }) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_block_epoch_Epoch_destroy<>(ffi: *mut dpp_block_epoch_Epoch) { ferment::unbox_any(ffi); } + + #[no_mangle] + pub unsafe extern "C" fn dpp_block_epoch_Epoch_get_index<>(obj: *const dpp_block_epoch_Epoch) -> *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_EpochIndex { (*obj).index } + + #[no_mangle] + pub unsafe extern "C" fn dpp_block_epoch_Epoch_get_key<>(obj: *const dpp_block_epoch_Epoch) -> *mut crate::fermented::generics::Arr_u8_2 { (*obj).key } + + #[no_mangle] + pub unsafe extern "C" fn dpp_block_epoch_Epoch_set_index<>(obj: *const dpp_block_epoch_Epoch) -> *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_EpochIndex { (*obj).index } + + #[no_mangle] + pub unsafe extern "C" fn dpp_block_epoch_Epoch_set_key<>(obj: *const dpp_block_epoch_Epoch) -> *mut crate::fermented::generics::Arr_u8_2 { (*obj).key } } - } - pub mod identity { - use crate as dash_sdk_bindings; + pub mod finalized_epoch_info { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::identity::IdentityPublicKey_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_identity_IdentityPublicKey_clone(identity_public_key: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey { - let obj = platform_mobile::identity::IdentityPublicKey_clone(>::ffi_from(identity_public_key)); - >::ffi_to(obj) + pub mod v0 { use crate as dash_sdk_bindings; } } - #[doc = "FFI-representation of the [`platform_mobile::identity::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_identity_std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey_clone(public_keys: *mut crate::fermented::generics::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey) -> *mut crate::fermented::generics::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { - let obj = platform_mobile::identity::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey_clone(>>::ffi_from(public_keys)); - >>::ffi_to(obj) - } + pub mod block_info { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::identity::Identity_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_identity_Identity_clone(identity: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity) -> *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity { - let obj = platform_mobile::identity::Identity_clone(>::ffi_from(identity)); - >::ffi_to(obj) - } + #[doc = "FFI-representation of the [`BlockInfo`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_block_block_info_BlockInfo { + pub time_ms: *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis, + pub height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, + pub core_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, + pub epoch: *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_Epoch, + } - #[doc = "FFI-representation of the [`platform_mobile::identity::create_basic_identity`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_identity_create_basic_identity(id: *mut crate::fermented::generics::Arr_u8_32) -> *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity { - let obj = platform_mobile::identity::create_basic_identity(>::ffi_from(id)); - >::ffi_to(obj) - } + impl ferment::FFIConversionFrom for dpp_block_block_info_BlockInfo { + unsafe fn ffi_from_const(ffi: *const dpp_block_block_info_BlockInfo) -> dpp::block::block_info::BlockInfo { + let ffi_ref = &*ffi; + dpp::block::block_info::BlockInfo { time_ms: >::ffi_from(ffi_ref.time_ms), height: >::ffi_from(ffi_ref.height), core_height: >::ffi_from(ffi_ref.core_height), epoch: >::ffi_from(ffi_ref.epoch) } + } + } - #[doc = "FFI-representation of the [`platform_mobile::identity::Identifier_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_identity_Identifier_clone(identifier: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { - let obj = platform_mobile::identity::Identifier_clone(>::ffi_from(identifier)); - >::ffi_to(obj) - } + impl ferment::FFIConversionTo for dpp_block_block_info_BlockInfo { unsafe fn ffi_to_const(obj: dpp::block::block_info::BlockInfo) -> *const dpp_block_block_info_BlockInfo { ferment::boxed(dpp_block_block_info_BlockInfo { time_ms: >::ffi_to(obj.time_ms), height: >::ffi_to(obj.height), core_height: >::ffi_to(obj.core_height), epoch: >::ffi_to(obj.epoch) }) } } - #[doc = "FFI-representation of the [`platform_mobile::identity::IdentityV0_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_identity_IdentityV0_clone(identity: *mut crate::fermented::types::dpp::identity::v0::dpp_identity_v0_IdentityV0) -> *mut crate::fermented::types::dpp::identity::v0::dpp_identity_v0_IdentityV0 { - let obj = platform_mobile::identity::IdentityV0_clone(>::ffi_from(identity)); - >::ffi_to(obj) - } + impl Drop for dpp_block_block_info_BlockInfo { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.time_ms); + ferment::unbox_any(ffi_ref.height); + ferment::unbox_any(ffi_ref.core_height); + ferment::unbox_any(ffi_ref.epoch); + } + } + } - #[doc = "FFI-representation of the [`platform_mobile::identity::IdentityPublicKeyV0_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_identity_IdentityPublicKeyV0_clone(identity_public_key: *mut crate::fermented::types::dpp::identity::identity_public_key::v0::dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::v0::dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { - let obj = platform_mobile::identity::IdentityPublicKeyV0_clone(>::ffi_from(identity_public_key)); - >::ffi_to(obj) - } + #[no_mangle] + pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_ctor<>(time_ms: *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis, height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, core_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, epoch: *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_Epoch) -> *mut dpp_block_block_info_BlockInfo { ferment::boxed(dpp_block_block_info_BlockInfo { time_ms, height, core_height, epoch }) } - #[doc = "FFI-representation of the [`platform_mobile::identity::get_identity_contract_bounds`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_identity_get_identity_contract_bounds(identifier: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, contract_identifier: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity { - let obj = platform_mobile::identity::get_identity_contract_bounds(>::ffi_from(identifier), >::ffi_from_opt(contract_identifier)); - >::ffi_to(obj) - } + #[no_mangle] + pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_destroy<>(ffi: *mut dpp_block_block_info_BlockInfo) { ferment::unbox_any(ffi); } - #[doc = "FFI-representation of the [`platform_mobile::identity::get_identity2`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_identity_get_identity2(identifier: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity { - let obj = platform_mobile::identity::get_identity2(>::ffi_from(identifier)); - >::ffi_to(obj) - } - } + #[no_mangle] + pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_get_time_ms<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis { (*obj).time_ms } - pub mod sdk { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_get_height<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).height } - #[doc = "FFI-representation of the [`platform_mobile::sdk::destroy_dash_sdk`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_sdk_destroy_dash_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk) { - let obj = platform_mobile::sdk::destroy_dash_sdk(rust_sdk); - ; - } + #[no_mangle] + pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_get_core_height<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).core_height } - #[doc = "FFI-representation of the [`platform_mobile::sdk::create_dash_sdk_with_context`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_sdk_create_dash_sdk_with_context(context_provider_context: usize, quorum_public_key_callback: u64, data_contract_callback: u64, is_testnet: bool, connect_timeout: usize, timeout: usize, retries: usize) -> *mut platform_mobile::sdk::DashSdk { - let obj = platform_mobile::sdk::create_dash_sdk_with_context(context_provider_context, quorum_public_key_callback, data_contract_callback, is_testnet, connect_timeout, timeout, retries); - ferment::boxed(obj) - } + #[no_mangle] + pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_get_epoch<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_Epoch { (*obj).epoch } - #[doc = "FFI-representation of the [`platform_mobile::sdk::create_dash_sdk_using_single_evonode`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_sdk_create_dash_sdk_using_single_evonode(evonode: *mut std::os::raw::c_char, quorum_public_key_callback: u64, data_contract_callback: u64, is_testnet: bool) -> *mut platform_mobile::sdk::DashSdk { - let obj = platform_mobile::sdk::create_dash_sdk_using_single_evonode(>::ffi_from(evonode), quorum_public_key_callback, data_contract_callback, is_testnet); - ferment::boxed(obj) + #[no_mangle] + pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_set_time_ms<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis { (*obj).time_ms } + + #[no_mangle] + pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_set_height<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_set_core_height<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).core_height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_set_epoch<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_Epoch { (*obj).epoch } } - #[doc = "FFI-representation of the [`platform_mobile::sdk::create_dash_sdk`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_sdk_create_dash_sdk(quorum_public_key_callback: u64, data_contract_callback: u64, is_testnet: bool) -> *mut platform_mobile::sdk::DashSdk { - let obj = platform_mobile::sdk::create_dash_sdk(quorum_public_key_callback, data_contract_callback, is_testnet); - ferment::boxed(obj) + pub mod extended_block_info { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } + + pub mod extended_epoch_info { use crate as dash_sdk_bindings; } } - pub mod voting { + pub mod tokens { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::voting::get_vote_contenders`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_voting_get_vote_contenders(rust_sdk: *mut platform_mobile::sdk::DashSdk, index_name: *mut std::os::raw::c_char, index_values: *mut crate::fermented::generics::Vec_platform_value_Value, document_type_name: *mut std::os::raw::c_char, contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::generics::Result_ok_drive_proof_verifier_types_Contenders_err_String { - let obj = platform_mobile::voting::get_vote_contenders(rust_sdk, >::ffi_from(index_name), >>::ffi_from(index_values), >::ffi_from(document_type_name), >::ffi_from(contract_id)); - >>::ffi_to(obj) - } + pub mod info { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`platform_mobile::voting::put_vote_to_platform`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_voting_put_vote_to_platform(rust_sdk: *mut platform_mobile::sdk::DashSdk, vote: *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote, voter_pro_tx_hash: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, voting_public_key: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey, signer_context: usize, signer_callback: u64) -> *mut crate::fermented::generics::Result_ok_dpp_voting_votes_Vote_err_String { - let obj = platform_mobile::voting::put_vote_to_platform(rust_sdk, >::ffi_from(vote), >::ffi_from(voter_pro_tx_hash), >::ffi_from(voting_public_key), signer_context, signer_callback); - >>::ffi_to(obj) - } + pub mod contract_info { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`platform_mobile::voting::get_votes`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_voting_get_votes(rust_sdk: *mut platform_mobile::sdk::DashSdk, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::generics::Result_ok_Option_dpp_voting_votes_Vote_err_String { - let obj = platform_mobile::voting::get_votes(rust_sdk, >::ffi_from(data_contract_id)); - , String>>>::ffi_to(obj) - } + pub mod token_payment_info { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::voting::get_vote_polls`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_voting_get_vote_polls(rust_sdk: *mut platform_mobile::sdk::DashSdk, start_time: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, start_time_included: bool, end_time: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, end_time_included: bool, limit: u16, offset: u16, order_ascending: bool) -> *mut crate::fermented::generics::Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { - let obj = platform_mobile::voting::get_vote_polls(rust_sdk, >::ffi_from(start_time), start_time_included, >::ffi_from(end_time), end_time_included, limit, offset, order_ascending); - >>::ffi_to(obj) - } + pub mod methods { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`platform_mobile::voting::get_last_vote_from_masternode`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_voting_get_last_vote_from_masternode(rust_sdk: *mut platform_mobile::sdk::DashSdk, masternode_protxhash: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, index_name: *mut std::os::raw::c_char, index_values: *mut crate::fermented::generics::Vec_platform_value_Value, document_type_name: *mut std::os::raw::c_char, contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::generics::Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { - let obj = platform_mobile::voting::get_last_vote_from_masternode(rust_sdk, >::ffi_from(masternode_protxhash), >::ffi_from(index_name), >>::ffi_from(index_values), >::ffi_from(document_type_name), >::ffi_from(contract_id)); - >>::ffi_to(obj) + pub mod v0 { use crate as dash_sdk_bindings; } } - #[doc = "FFI-representation of the [`platform_mobile::voting::get_contested_resources`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_voting_get_contested_resources(rust_sdk: *mut platform_mobile::sdk::DashSdk, document_type_name: *mut std::os::raw::c_char, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, limit: u16, start_at: *mut crate::fermented::types::platform_value::platform_value_Value, start_at_include: bool) -> *mut crate::fermented::generics::Result_ok_drive_proof_verifier_types_ContestedResources_err_String { - let obj = platform_mobile::voting::get_contested_resources(rust_sdk, >::ffi_from(document_type_name), >::ffi_from(data_contract_id), limit, >::ffi_from_opt(start_at), start_at_include); - >>::ffi_to(obj) - } + pub mod status { use crate as dash_sdk_bindings; } + + pub mod token_pricing_schedule { use crate as dash_sdk_bindings; } + + pub mod token_event { use crate as dash_sdk_bindings; } } - pub mod put { + pub mod serialization { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`AssetLockProofFFI`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum platform_mobile_put_AssetLockProofFFI { Instant(*mut crate::fermented::types::platform_mobile::put::platform_mobile_put_InstantAssetLockProofFFI), Chain(*mut crate::fermented::types::platform_mobile::put::platform_mobile_put_ChainAssetLockProofFFI) } - - impl ferment::FFIConversionFrom for platform_mobile_put_AssetLockProofFFI { - unsafe fn ffi_from_const(ffi: *const platform_mobile_put_AssetLockProofFFI) -> platform_mobile::put::AssetLockProofFFI { - let ffi_ref = &*ffi; - match ffi_ref { - platform_mobile_put_AssetLockProofFFI::Instant(o_0) => platform_mobile::put::AssetLockProofFFI::Instant(>::ffi_from(*o_0)), - platform_mobile_put_AssetLockProofFFI::Chain(o_0) => platform_mobile::put::AssetLockProofFFI::Chain(>::ffi_from(*o_0)) - } - } + #[cfg(feature = "serde-conversion")] + pub mod serde_bytes { + use crate as dash_sdk_bindings; } - impl ferment::FFIConversionTo for platform_mobile_put_AssetLockProofFFI { - unsafe fn ffi_to_const(obj: platform_mobile::put::AssetLockProofFFI) -> *const platform_mobile_put_AssetLockProofFFI { - ferment::boxed(match obj { - platform_mobile::put::AssetLockProofFFI::Instant(o_0) => platform_mobile_put_AssetLockProofFFI::Instant(>::ffi_to(o_0)), - platform_mobile::put::AssetLockProofFFI::Chain(o_0) => platform_mobile_put_AssetLockProofFFI::Chain(>::ffi_to(o_0)), - _ => unreachable!("This is unreachable") - }) - } + #[cfg(feature = "serde-conversion")] + pub mod serde_bytes_var { + use crate as dash_sdk_bindings; } - impl Drop for platform_mobile_put_AssetLockProofFFI { - fn drop(&mut self) { - unsafe { - match self { - platform_mobile_put_AssetLockProofFFI::Instant(o_0) => { ferment::unbox_any(*o_0); } - platform_mobile_put_AssetLockProofFFI::Chain(o_0) => { ferment::unbox_any(*o_0); } - _ => unreachable!("This is unreachable") - }; - } - } + #[cfg(feature = "json-conversion")] + pub mod json { + use crate as dash_sdk_bindings; + + pub mod safe_integer { use crate as dash_sdk_bindings; } + + pub mod safe_integer_map { use crate as dash_sdk_bindings; } } + } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_AssetLockProofFFI_Instant_ctor(o_o_0: *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_InstantAssetLockProofFFI) -> *mut platform_mobile_put_AssetLockProofFFI { ferment::boxed(platform_mobile_put_AssetLockProofFFI::Instant(o_o_0)) } + pub mod group { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_AssetLockProofFFI_Chain_ctor(o_o_0: *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_ChainAssetLockProofFFI) -> *mut platform_mobile_put_AssetLockProofFFI { ferment::boxed(platform_mobile_put_AssetLockProofFFI::Chain(o_o_0)) } + pub mod group_action { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_AssetLockProofFFI_destroy<>(ffi: *mut platform_mobile_put_AssetLockProofFFI) { ferment::unbox_any(ffi); } + #[cfg(feature = "fixtures-and-mocks")] + pub mod tests { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::put::put_document_sdk`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_put_document_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, document: *mut crate::fermented::types::dpp::document::dpp_document_Document, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type_str: *mut std::os::raw::c_char, identity_public_key: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey, block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, signer_context: usize, signer_callback: u64) -> *mut crate::fermented::generics::Result_ok_dpp_document_Document_err_String { - let obj = platform_mobile::put::put_document_sdk(rust_sdk, >::ffi_from(document), >::ffi_from(data_contract_id), >::ffi_from(document_type_str), >::ffi_from(identity_public_key), >::ffi_from(block_height), >::ffi_from(core_block_height), signer_context, signer_callback); - >>::ffi_to(obj) - } + pub mod fixtures { use crate as dash_sdk_bindings; } + } - #[doc = "FFI-representation of the [`platform_mobile::put::replace_document_sdk`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_replace_document_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, document: *mut crate::fermented::types::dpp::document::dpp_document_Document, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type_str: *mut std::os::raw::c_char, identity_public_key: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey, block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, signer_context: usize, signer_callback: u64) -> *mut crate::fermented::generics::Result_ok_dpp_document_Document_err_String { - let obj = platform_mobile::put::replace_document_sdk(rust_sdk, >::ffi_from(document), >::ffi_from(data_contract_id), >::ffi_from(document_type_str), >::ffi_from(identity_public_key), >::ffi_from(block_height), >::ffi_from(core_block_height), signer_context, signer_callback); - >>::ffi_to(obj) - } + pub mod validation { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::put::InstantAssetLockProofFFI_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_clone(a: *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_InstantAssetLockProofFFI) -> *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_InstantAssetLockProofFFI { - let obj = platform_mobile::put::InstantAssetLockProofFFI_clone(>::ffi_from(a)); - >::ffi_to(obj) - } + #[cfg(feature = "validation")] + pub mod json_schema_validator { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::put::topup_identity_sdk`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_topup_identity_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, identity: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, asset_lock_proof: *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_AssetLockProofFFI, asset_lock_proof_private_key: *mut crate::fermented::generics::Vec_u8, is_testnet: bool) -> *mut crate::fermented::generics::Result_ok_u64_err_String { - let obj = platform_mobile::put::topup_identity_sdk(rust_sdk, >::ffi_from(identity), >::ffi_from(asset_lock_proof), >>::ffi_from(asset_lock_proof_private_key), is_testnet); - >>::ffi_to(obj) - } + pub mod methods { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::put::put_identity_sdk`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_put_identity_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, identity: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, asset_lock_proof: *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_AssetLockProofFFI, asset_lock_proof_private_key: *mut crate::fermented::generics::Vec_u8, signer_context: usize, signer_callback: u64, is_testnet: bool) -> *mut crate::fermented::generics::Result_ok_dpp_identity_identity_Identity_err_String { - let obj = platform_mobile::put::put_identity_sdk(rust_sdk, >::ffi_from(identity), >::ffi_from(asset_lock_proof), >>::ffi_from(asset_lock_proof_private_key), signer_context, signer_callback, is_testnet); - >>::ffi_to(obj) - } + pub mod compile { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`ChainAssetLockProofFFI`]"] - #[repr(C)] - #[derive(Clone)] - pub struct platform_mobile_put_ChainAssetLockProofFFI { - pub core_chain_locked_height: u32, - pub out_point: *mut platform_mobile::custom::OutPoint, - } + pub mod new { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionFrom for platform_mobile_put_ChainAssetLockProofFFI { - unsafe fn ffi_from_const(ffi: *const platform_mobile_put_ChainAssetLockProofFFI) -> platform_mobile::put::ChainAssetLockProofFFI { - let ffi_ref = &*ffi; - platform_mobile::put::ChainAssetLockProofFFI { core_chain_locked_height: ffi_ref.core_chain_locked_height, out_point: >::ffi_from(ffi_ref.out_point) } + pub mod validate { use crate as dash_sdk_bindings; } } } - impl ferment::FFIConversionTo for platform_mobile_put_ChainAssetLockProofFFI { unsafe fn ffi_to_const(obj: platform_mobile::put::ChainAssetLockProofFFI) -> *const platform_mobile_put_ChainAssetLockProofFFI { ferment::boxed(platform_mobile_put_ChainAssetLockProofFFI { core_chain_locked_height: obj.core_chain_locked_height, out_point: >::ffi_to(obj.out_point) }) } } + #[cfg(feature = "validation")] + pub mod byte_array_keyword { + use crate as dash_sdk_bindings; - impl Drop for platform_mobile_put_ChainAssetLockProofFFI { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ; - ferment::unbox_any(ffi_ref.out_point); - } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; } } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_ctor<>(core_chain_locked_height: u32, out_point: *mut platform_mobile::custom::OutPoint) -> *mut platform_mobile_put_ChainAssetLockProofFFI { ferment::boxed(platform_mobile_put_ChainAssetLockProofFFI { core_chain_locked_height, out_point }) } - - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_destroy<>(ffi: *mut platform_mobile_put_ChainAssetLockProofFFI) { ferment::unbox_any(ffi); } + pub mod validation_result { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_get_core_chain_locked_height<>(obj: *const platform_mobile_put_ChainAssetLockProofFFI) -> u32 { (*obj).core_chain_locked_height } + pub mod flatten { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_get_out_point<>(obj: *const platform_mobile_put_ChainAssetLockProofFFI) -> *mut platform_mobile::custom::OutPoint { (*obj).out_point } + pub mod v1 { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_set_core_chain_locked_height<>(obj: *const platform_mobile_put_ChainAssetLockProofFFI) -> u32 { (*obj).core_chain_locked_height } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_set_out_point<>(obj: *const platform_mobile_put_ChainAssetLockProofFFI) -> *mut platform_mobile::custom::OutPoint { (*obj).out_point } + pub mod merge_many { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::put::put_identity_update_sdk`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_put_identity_update_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, identity: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, master_public_key_id: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID, add_public_keys: *mut crate::fermented::generics::Vec_dpp_identity_identity_public_key_IdentityPublicKey, disable_public_keys: *mut crate::fermented::generics::Vec_dpp_identity_identity_public_key_KeyID, signer_context: usize, signer_callback: u64) -> *mut crate::fermented::generics::Result_ok_dpp_identity_identity_Identity_err_String { - let obj = platform_mobile::put::put_identity_update_sdk(rust_sdk, >::ffi_from(identity), >::ffi_from(master_public_key_id), >>::ffi_from(add_public_keys), >>::ffi_from(disable_public_keys), signer_context, signer_callback); - >>::ffi_to(obj) - } + pub mod v1 { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`platform_mobile::put::ChainAssetLockProofFFI_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_clone(a: *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_ChainAssetLockProofFFI) -> *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_ChainAssetLockProofFFI { - let obj = platform_mobile::put::ChainAssetLockProofFFI_clone(>::ffi_from(a)); - >::ffi_to(obj) + pub mod v0 { use crate as dash_sdk_bindings; } + } } + } - #[doc = "FFI-representation of the [`platform_mobile::put::OutPointFFI_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_clone(a: *mut platform_mobile::custom::OutPoint) -> *mut platform_mobile::custom::OutPoint { - let obj = platform_mobile::put::OutPointFFI_clone(>::ffi_from(a)); - >::ffi_to(obj) - } + pub mod balances { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`OutPointFFI`]"] - #[repr(C)] - #[derive(Clone)] - pub struct platform_mobile_put_OutPointFFI { - pub txid: *mut crate::fermented::generics::Arr_u8_32, - pub vout: u32, - } + pub mod credits { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for platform_mobile_put_OutPointFFI { - unsafe fn ffi_from_const(ffi: *const platform_mobile_put_OutPointFFI) -> platform_mobile::put::OutPointFFI { - let ffi_ref = &*ffi; - platform_mobile::put::OutPointFFI { txid: >::ffi_from(ffi_ref.txid), vout: ffi_ref.vout } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; } } + } + } - impl ferment::FFIConversionTo for platform_mobile_put_OutPointFFI { unsafe fn ffi_to_const(obj: platform_mobile::put::OutPointFFI) -> *const platform_mobile_put_OutPointFFI { ferment::boxed(platform_mobile_put_OutPointFFI { txid: >::ffi_to(obj.txid), vout: obj.vout }) } } + pub mod dapi_grpc { + use crate as dash_sdk_bindings; - impl Drop for platform_mobile_put_OutPointFFI { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.txid); - ; - } - } - } + #[cfg(feature = "drive")] + pub mod drive { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_ctor<>(txid: *mut crate::fermented::generics::Arr_u8_32, vout: u32) -> *mut platform_mobile_put_OutPointFFI { ferment::boxed(platform_mobile_put_OutPointFFI { txid, vout }) } + #[cfg(feature = "core")] + pub mod core { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_destroy<>(ffi: *mut platform_mobile_put_OutPointFFI) { ferment::unbox_any(ffi); } + #[cfg(feature = "serde")] + pub mod deserialization { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_get_txid<>(obj: *const platform_mobile_put_OutPointFFI) -> *mut crate::fermented::generics::Arr_u8_32 { (*obj).txid } + #[cfg(feature = "platform")] + pub mod platform { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_get_vout<>(obj: *const platform_mobile_put_OutPointFFI) -> u32 { (*obj).vout } + pub mod mock { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_set_txid<>(obj: *const platform_mobile_put_OutPointFFI) -> *mut crate::fermented::generics::Arr_u8_32 { (*obj).txid } + pub mod rs_dapi_client { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_set_vout<>(obj: *const platform_mobile_put_OutPointFFI) -> u32 { (*obj).vout } + pub mod address_list { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`InstantAssetLockProofFFI`]"] - #[repr(C)] - #[derive(Clone)] - pub struct platform_mobile_put_InstantAssetLockProofFFI { - pub instant_lock: *mut crate::fermented::generics::Vec_u8, - pub transaction: *mut crate::fermented::generics::Vec_u8, - pub output_index: u32, - } + pub mod request_settings { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionFrom for platform_mobile_put_InstantAssetLockProofFFI { - unsafe fn ffi_from_const(ffi: *const platform_mobile_put_InstantAssetLockProofFFI) -> platform_mobile::put::InstantAssetLockProofFFI { - let ffi_ref = &*ffi; - platform_mobile::put::InstantAssetLockProofFFI { instant_lock: >>::ffi_from(ffi_ref.instant_lock), transaction: >>::ffi_from(ffi_ref.transaction), output_index: ffi_ref.output_index } - } - } + pub mod transport { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionTo for platform_mobile_put_InstantAssetLockProofFFI { unsafe fn ffi_to_const(obj: platform_mobile::put::InstantAssetLockProofFFI) -> *const platform_mobile_put_InstantAssetLockProofFFI { ferment::boxed(platform_mobile_put_InstantAssetLockProofFFI { instant_lock: >>::ffi_to(obj.instant_lock), transaction: >>::ffi_to(obj.transaction), output_index: obj.output_index }) } } + pub mod connection_pool { use crate as dash_sdk_bindings; } - impl Drop for platform_mobile_put_InstantAssetLockProofFFI { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.instant_lock); - ferment::unbox_any(ffi_ref.transaction); - ; - } - } - } + pub mod dapi_client { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_ctor<>(instant_lock: *mut crate::fermented::generics::Vec_u8, transaction: *mut crate::fermented::generics::Vec_u8, output_index: u32) -> *mut platform_mobile_put_InstantAssetLockProofFFI { ferment::boxed(platform_mobile_put_InstantAssetLockProofFFI { instant_lock, transaction, output_index }) } + pub mod executor { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_destroy<>(ffi: *mut platform_mobile_put_InstantAssetLockProofFFI) { ferment::unbox_any(ffi); } + pub mod dash_sdk { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_get_instant_lock<>(obj: *const platform_mobile_put_InstantAssetLockProofFFI) -> *mut crate::fermented::generics::Vec_u8 { (*obj).instant_lock } + pub mod sdk { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_get_transaction<>(obj: *const platform_mobile_put_InstantAssetLockProofFFI) -> *mut crate::fermented::generics::Vec_u8 { (*obj).transaction } + pub mod mock { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_get_output_index<>(obj: *const platform_mobile_put_InstantAssetLockProofFFI) -> u32 { (*obj).output_index } + #[cfg(feature = "mocks")] + pub mod sdk { + use crate as dash_sdk_bindings; + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_set_instant_lock<>(obj: *const platform_mobile_put_InstantAssetLockProofFFI) -> *mut crate::fermented::generics::Vec_u8 { (*obj).instant_lock } + pub mod internal_cache { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_set_transaction<>(obj: *const platform_mobile_put_InstantAssetLockProofFFI) -> *mut crate::fermented::generics::Vec_u8 { (*obj).transaction } + pub mod sync { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_set_output_index<>(obj: *const platform_mobile_put_InstantAssetLockProofFFI) -> u32 { (*obj).output_index } + pub mod error { + use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } } - pub mod fetch_document { + pub mod core { use crate as dash_sdk_bindings; } + + pub mod platform { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`StartPoint`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum platform_mobile_fetch_document_StartPoint { StartAfter(*mut crate::fermented::generics::Vec_u8), StartAt(*mut crate::fermented::generics::Vec_u8) } + pub mod tokens { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for platform_mobile_fetch_document_StartPoint { - unsafe fn ffi_from_const(ffi: *const platform_mobile_fetch_document_StartPoint) -> platform_mobile::fetch_document::StartPoint { - let ffi_ref = &*ffi; - match ffi_ref { - platform_mobile_fetch_document_StartPoint::StartAfter(o_0) => platform_mobile::fetch_document::StartPoint::StartAfter(>>::ffi_from(*o_0)), - platform_mobile_fetch_document_StartPoint::StartAt(o_0) => platform_mobile::fetch_document::StartPoint::StartAt(>>::ffi_from(*o_0)) - } - } + pub mod transitions { use crate as dash_sdk_bindings; } + + pub mod builders { use crate as dash_sdk_bindings; } } - impl ferment::FFIConversionTo for platform_mobile_fetch_document_StartPoint { - unsafe fn ffi_to_const(obj: platform_mobile::fetch_document::StartPoint) -> *const platform_mobile_fetch_document_StartPoint { - ferment::boxed(match obj { - platform_mobile::fetch_document::StartPoint::StartAfter(o_0) => platform_mobile_fetch_document_StartPoint::StartAfter(>>::ffi_to(o_0)), - platform_mobile::fetch_document::StartPoint::StartAt(o_0) => platform_mobile_fetch_document_StartPoint::StartAt(>>::ffi_to(o_0)), - _ => unreachable!("This is unreachable") - }) - } + pub mod trunk_branch_sync { + use crate as dash_sdk_bindings; + + pub mod tracker { use crate as dash_sdk_bindings; } } - impl Drop for platform_mobile_fetch_document_StartPoint { - fn drop(&mut self) { - unsafe { - match self { - platform_mobile_fetch_document_StartPoint::StartAfter(o_0) => { ferment::unbox_any(*o_0); } - platform_mobile_fetch_document_StartPoint::StartAt(o_0) => { ferment::unbox_any(*o_0); } - _ => unreachable!("This is unreachable") - }; + pub mod address_sync { use crate as dash_sdk_bindings; } + + pub mod types { + use crate as dash_sdk_bindings; + + pub mod identity { + use crate as dash_sdk_bindings; + + #[doc = "FFI-representation of the [`PublicKeyHash`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dash_sdk_platform_types_identity_PublicKeyHash(*mut crate::fermented::generics::Arr_u8_20); + + impl ferment::FFIConversionFrom for dash_sdk_platform_types_identity_PublicKeyHash { + unsafe fn ffi_from_const(ffi: *const dash_sdk_platform_types_identity_PublicKeyHash) -> dash_sdk::platform::types::identity::PublicKeyHash { + let ffi_ref = &*ffi; + dash_sdk::platform::types::identity::PublicKeyHash(>::ffi_from(ffi_ref.0)) + } } - } - } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_fetch_document_StartPoint_StartAfter_ctor(o_o_0: *mut crate::fermented::generics::Vec_u8) -> *mut platform_mobile_fetch_document_StartPoint { ferment::boxed(platform_mobile_fetch_document_StartPoint::StartAfter(o_o_0)) } + impl ferment::FFIConversionTo for dash_sdk_platform_types_identity_PublicKeyHash { unsafe fn ffi_to_const(obj: dash_sdk::platform::types::identity::PublicKeyHash) -> *const dash_sdk_platform_types_identity_PublicKeyHash { ferment::boxed(dash_sdk_platform_types_identity_PublicKeyHash(>::ffi_to(obj.0))) } } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_fetch_document_StartPoint_StartAt_ctor(o_o_0: *mut crate::fermented::generics::Vec_u8) -> *mut platform_mobile_fetch_document_StartPoint { ferment::boxed(platform_mobile_fetch_document_StartPoint::StartAt(o_o_0)) } + impl Drop for dash_sdk_platform_types_identity_PublicKeyHash { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.0); + } + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_fetch_document_StartPoint_destroy<>(ffi: *mut platform_mobile_fetch_document_StartPoint) { ferment::unbox_any(ffi); } + #[no_mangle] + pub unsafe extern "C" fn dash_sdk_platform_types_identity_PublicKeyHash_ctor<>(o_0: *mut crate::fermented::generics::Arr_u8_20) -> *mut dash_sdk_platform_types_identity_PublicKeyHash { ferment::boxed(dash_sdk_platform_types_identity_PublicKeyHash(o_0)) } - #[doc = "FFI-representation of the [`platform_mobile::fetch_document::document_to_string`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_fetch_document_document_to_string(document: *mut crate::fermented::types::dpp::document::dpp_document_Document) -> *mut std::os::raw::c_char { - let obj = platform_mobile::fetch_document::document_to_string(>::ffi_from(document)); - >::ffi_to(obj) - } + #[no_mangle] + pub unsafe extern "C" fn dash_sdk_platform_types_identity_PublicKeyHash_destroy<>(ffi: *mut dash_sdk_platform_types_identity_PublicKeyHash) { ferment::unbox_any(ffi); } - #[doc = "FFI-representation of the [`platform_mobile::fetch_document::fetch_documents_with_query_and_sdk`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_fetch_document_fetch_documents_with_query_and_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type: *mut std::os::raw::c_char, where_clauses: *mut crate::fermented::generics::Vec_drive_query_conditions_WhereClause, order_clauses: *mut crate::fermented::generics::Vec_drive_query_ordering_OrderClause, limit: u32, start: *mut crate::fermented::types::platform_mobile::fetch_document::platform_mobile_fetch_document_StartPoint) -> *mut crate::fermented::generics::Result_ok_Vec_dpp_document_Document_err_String { - let obj = platform_mobile::fetch_document::fetch_documents_with_query_and_sdk(rust_sdk, >::ffi_from(data_contract_id), >::ffi_from(document_type), >>::ffi_from(where_clauses), >>::ffi_from(order_clauses), limit, >::ffi_from_opt(start)); - , String>>>::ffi_to(obj) - } + #[no_mangle] + pub unsafe extern "C" fn dash_sdk_platform_types_identity_PublicKeyHash_get_0<>(obj: *const dash_sdk_platform_types_identity_PublicKeyHash) -> *mut crate::fermented::generics::Arr_u8_20 { (*obj).0 } - #[doc = "FFI-representation of the [`platform_mobile::fetch_document::deserialize_document_sdk`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_fetch_document_deserialize_document_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, bytes: *mut crate::fermented::generics::Vec_u8, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type: *mut std::os::raw::c_char) -> *mut crate::fermented::generics::Result_ok_dpp_document_Document_err_String { - let obj = platform_mobile::fetch_document::deserialize_document_sdk(rust_sdk, >>::ffi_from(bytes), >::ffi_from(data_contract_id), >::ffi_from(document_type)); - >>::ffi_to(obj) + #[no_mangle] + pub unsafe extern "C" fn dash_sdk_platform_types_identity_PublicKeyHash_set_0<>(obj: *const dash_sdk_platform_types_identity_PublicKeyHash) -> *mut crate::fermented::generics::Arr_u8_20 { (*obj).0 } + } } - } - pub mod config { - use crate as dash_sdk_bindings; + pub mod documents { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::config::testnet_address_list`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_config_testnet_address_list() -> *mut crate::fermented::generics::Vec_String { - let obj = platform_mobile::config::testnet_address_list(); - >>::ffi_to(obj) - } - } + pub mod document_sum { use crate as dash_sdk_bindings; } - pub mod fetch_identity { - use crate as dash_sdk_bindings; + pub mod document_average { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`platform_mobile::fetch_identity::fetch_identity_with_sdk`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_fetch_identity_fetch_identity_with_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, identifier: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::generics::Result_ok_Option_dpp_identity_identity_Identity_err_String { - let obj = platform_mobile::fetch_identity::fetch_identity_with_sdk(rust_sdk, >::ffi_from(identifier)); - , String>>>::ffi_to(obj) + pub mod transitions { use crate as dash_sdk_bindings; } } - #[doc = "FFI-representation of the [`platform_mobile::fetch_identity::fetch_identity_with_keyhash_sdk`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_fetch_identity_fetch_identity_with_keyhash_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, key_hash: *mut crate::fermented::generics::Arr_u8_20) -> *mut crate::fermented::generics::Result_ok_dpp_identity_identity_Identity_err_String { - let obj = platform_mobile::fetch_identity::fetch_identity_with_keyhash_sdk(rust_sdk, >::ffi_from(key_hash)); - >>::ffi_to(obj) - } + pub mod dashpay { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::fetch_identity::fetch_identity_balance_with_sdk`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_fetch_identity_fetch_identity_balance_with_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, identifier: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::generics::Result_ok_u64_err_String { - let obj = platform_mobile::fetch_identity::fetch_identity_balance_with_sdk(rust_sdk, >::ffi_from(identifier)); - >>::ffi_to(obj) + pub mod contact_request { use crate as dash_sdk_bindings; } } - } - } - pub mod dapi_grpc { - use crate as dash_sdk_bindings; - - #[cfg(feature = "core")] - pub mod core { - use crate as dash_sdk_bindings; - } + #[cfg(feature = "shielded")] + pub mod shielded { + use crate as dash_sdk_bindings; - pub mod mock { use crate as dash_sdk_bindings; } + pub mod notes_sync { + use crate as dash_sdk_bindings; - #[cfg(feature = "serde")] - pub mod deserialization { - use crate as dash_sdk_bindings; - } + pub mod sync_shielded_notes { use crate as dash_sdk_bindings; } + } + } - #[cfg(feature = "drive")] - pub mod drive { - use crate as dash_sdk_bindings; - } + pub mod dpns_usernames { use crate as dash_sdk_bindings; } - #[cfg(feature = "platform")] - pub mod platform { - use crate as dash_sdk_bindings; + pub mod transition { use crate as dash_sdk_bindings; } } } } @@ -7004,28 +8913,28 @@ pub mod generics { #[repr(C)] #[derive(Clone)] - pub struct Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { - pub ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_VotePollsGroupedByTimestamp, + pub struct Result_ok_Option_dpp_voting_votes_Vote_err_String { + pub ok: *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote, pub error: *mut std::os::raw::c_char, } - impl ferment::FFIConversionFrom> for Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { - unsafe fn ffi_from_const(ffi: *const Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String) -> Result { + impl ferment::FFIConversionFrom, String>> for Result_ok_Option_dpp_voting_votes_Vote_err_String { + unsafe fn ffi_from_const(ffi: *const Result_ok_Option_dpp_voting_votes_Vote_err_String) -> Result, String> { let ffi_ref = &*ffi; - ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) + ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from_opt(o), ffi_ref.error, |o| >::ffi_from(o)) } } - impl ferment::FFIConversionTo> for Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { - unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { + impl ferment::FFIConversionTo, String>> for Result_ok_Option_dpp_voting_votes_Vote_err_String { + unsafe fn ffi_to_const(obj: Result, String>) -> *const Result_ok_Option_dpp_voting_votes_Vote_err_String { ferment::boxed({ - let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); + let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to_opt(o), |o| ferment::FFIConversionTo::ffi_to(o)); Self { ok, error } }) } } - impl Drop for Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { + impl Drop for Result_ok_Option_dpp_voting_votes_Vote_err_String { fn drop(&mut self) { unsafe { ferment::unbox_any_opt(self.ok); @@ -7035,27 +8944,27 @@ pub mod generics { } #[no_mangle] - pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String_ctor(ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_VotePollsGroupedByTimestamp, error: *mut std::os::raw::c_char) -> *mut Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { ferment::boxed(Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { ok, error }) } + pub unsafe extern "C" fn Result_ok_Option_dpp_voting_votes_Vote_err_String_ctor(ok: *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote, error: *mut std::os::raw::c_char) -> *mut Result_ok_Option_dpp_voting_votes_Vote_err_String { ferment::boxed(Result_ok_Option_dpp_voting_votes_Vote_err_String { ok, error }) } #[no_mangle] - pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String_destroy(ffi: *mut Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Result_ok_Option_dpp_voting_votes_Vote_err_String_destroy(ffi: *mut Result_ok_Option_dpp_voting_votes_Vote_err_String) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Result_ok_dpp_voting_votes_Vote_err_String { - pub ok: *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote, + pub struct Result_ok_dpp_identity_identity_Identity_err_String { + pub ok: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, pub error: *mut std::os::raw::c_char, } - impl ferment::FFIConversionFrom> for Result_ok_dpp_voting_votes_Vote_err_String { - unsafe fn ffi_from_const(ffi: *const Result_ok_dpp_voting_votes_Vote_err_String) -> Result { + impl ferment::FFIConversionFrom> for Result_ok_dpp_identity_identity_Identity_err_String { + unsafe fn ffi_from_const(ffi: *const Result_ok_dpp_identity_identity_Identity_err_String) -> Result { let ffi_ref = &*ffi; - ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) + ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) } } - impl ferment::FFIConversionTo> for Result_ok_dpp_voting_votes_Vote_err_String { - unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_dpp_voting_votes_Vote_err_String { + impl ferment::FFIConversionTo> for Result_ok_dpp_identity_identity_Identity_err_String { + unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_dpp_identity_identity_Identity_err_String { ferment::boxed({ let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); Self { ok, error } @@ -7063,7 +8972,7 @@ pub mod generics { } } - impl Drop for Result_ok_dpp_voting_votes_Vote_err_String { + impl Drop for Result_ok_dpp_identity_identity_Identity_err_String { fn drop(&mut self) { unsafe { ferment::unbox_any_opt(self.ok); @@ -7073,165 +8982,146 @@ pub mod generics { } #[no_mangle] - pub unsafe extern "C" fn Result_ok_dpp_voting_votes_Vote_err_String_ctor(ok: *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote, error: *mut std::os::raw::c_char) -> *mut Result_ok_dpp_voting_votes_Vote_err_String { ferment::boxed(Result_ok_dpp_voting_votes_Vote_err_String { ok, error }) } + pub unsafe extern "C" fn Result_ok_dpp_identity_identity_Identity_err_String_ctor(ok: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, error: *mut std::os::raw::c_char) -> *mut Result_ok_dpp_identity_identity_Identity_err_String { ferment::boxed(Result_ok_dpp_identity_identity_Identity_err_String { ok, error }) } #[no_mangle] - pub unsafe extern "C" fn Result_ok_dpp_voting_votes_Vote_err_String_destroy(ffi: *mut Result_ok_dpp_voting_votes_Vote_err_String) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Result_ok_dpp_identity_identity_Identity_err_String_destroy(ffi: *mut Result_ok_dpp_identity_identity_Identity_err_String) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Vec_Tuple_platform_value_Value_platform_value_Value { + pub struct std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { pub count: usize, - pub values: *mut *mut crate::fermented::generics::Tuple_platform_value_Value_platform_value_Value, + pub keys: *mut *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, + pub values: *mut *mut crate::fermented::types::dpp::voting::votes::resource_vote::dpp_voting_votes_resource_vote_ResourceVote, } - impl ferment::FFIConversionFrom> for Vec_Tuple_platform_value_Value_platform_value_Value { - unsafe fn ffi_from_const(ffi: *const Vec_Tuple_platform_value_Value_platform_value_Value) -> Vec<(platform_value::Value, platform_value::Value)> { + impl ferment::FFIConversionFrom>> for std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { + unsafe fn ffi_from_const(ffi: *const std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote) -> std::collections::BTreeMap> { let ffi_ref = &*ffi; - ferment::from_complex_group(ffi_ref.values, ffi_ref.count) + ferment::fold_to_map(ffi_ref.count, ffi_ref.keys, ffi_ref.values, |o| >::ffi_from(o), |o| >::ffi_from_opt(o)) } } - impl ferment::FFIConversionTo> for Vec_Tuple_platform_value_Value_platform_value_Value { unsafe fn ffi_to_const(obj: Vec<(platform_value::Value, platform_value::Value)>) -> *const Vec_Tuple_platform_value_Value_platform_value_Value { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } + impl ferment::FFIConversionTo>> for std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { unsafe fn ffi_to_const(obj: std::collections::BTreeMap>) -> *const std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { ferment::boxed(Self { count: obj.len(), keys: ferment::to_complex_group(obj.keys().cloned()), values: ferment::to_opt_complex_group(obj.values().cloned()) }) } } - impl Drop for Vec_Tuple_platform_value_Value_platform_value_Value { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } + impl Drop for std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { + fn drop(&mut self) { + unsafe { + ferment::unbox_any_vec_ptr(self.keys, self.count); + ferment::unbox_any_vec_ptr(self.values, self.count); + } + } + } #[no_mangle] - pub unsafe extern "C" fn Vec_Tuple_platform_value_Value_platform_value_Value_ctor(count: usize, values: *mut *mut crate::fermented::generics::Tuple_platform_value_Value_platform_value_Value) -> *mut Vec_Tuple_platform_value_Value_platform_value_Value { ferment::boxed(Vec_Tuple_platform_value_Value_platform_value_Value { count, values }) } + pub unsafe extern "C" fn std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote_ctor(count: usize, keys: *mut *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, values: *mut *mut crate::fermented::types::dpp::voting::votes::resource_vote::dpp_voting_votes_resource_vote_ResourceVote) -> *mut std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { ferment::boxed(std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { count, keys, values }) } #[no_mangle] - pub unsafe extern "C" fn Vec_Tuple_platform_value_Value_platform_value_Value_destroy(ffi: *mut Vec_Tuple_platform_value_Value_platform_value_Value) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote_destroy(ffi: *mut std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Result_ok_dpp_document_Document_err_String { - pub ok: *mut crate::fermented::types::dpp::document::dpp_document_Document, - pub error: *mut std::os::raw::c_char, + pub struct Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { + pub o_0: *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis, + pub o_1: *mut crate::fermented::generics::Vec_dpp_voting_vote_polls_VotePoll, } - impl ferment::FFIConversionFrom> for Result_ok_dpp_document_Document_err_String { - unsafe fn ffi_from_const(ffi: *const Result_ok_dpp_document_Document_err_String) -> Result { + impl ferment::FFIConversionFrom<(dpp::prelude::TimestampMillis, Vec)> for Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { + unsafe fn ffi_from_const(ffi: *const Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) -> (dpp::prelude::TimestampMillis, Vec) { let ffi_ref = &*ffi; - ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) + (ferment::FFIConversionFrom::ffi_from(ffi_ref.o_0), ferment::FFIConversionFrom::ffi_from(ffi_ref.o_1)) } } - impl ferment::FFIConversionTo> for Result_ok_dpp_document_Document_err_String { - unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_dpp_document_Document_err_String { - ferment::boxed({ - let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); - Self { ok, error } - }) - } - } + impl ferment::FFIConversionTo<(dpp::prelude::TimestampMillis, Vec)> for Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { unsafe fn ffi_to_const(obj: (dpp::prelude::TimestampMillis, Vec)) -> *const Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { ferment::boxed(Self { o_0: ferment::FFIConversionTo::ffi_to(obj.0), o_1: ferment::FFIConversionTo::ffi_to(obj.1) }) } } - impl Drop for Result_ok_dpp_document_Document_err_String { + impl Drop for Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { fn drop(&mut self) { unsafe { - ferment::unbox_any_opt(self.ok); - ferment::unbox_any_opt(self.error); + ferment::unbox_any(self.o_0); + ferment::unbox_any(self.o_1); } } } #[no_mangle] - pub unsafe extern "C" fn Result_ok_dpp_document_Document_err_String_ctor(ok: *mut crate::fermented::types::dpp::document::dpp_document_Document, error: *mut std::os::raw::c_char) -> *mut Result_ok_dpp_document_Document_err_String { ferment::boxed(Result_ok_dpp_document_Document_err_String { ok, error }) } + pub unsafe extern "C" fn Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_ctor(o_0: *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis, o_1: *mut crate::fermented::generics::Vec_dpp_voting_vote_polls_VotePoll) -> *mut Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { ferment::boxed(Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { o_0, o_1 }) } #[no_mangle] - pub unsafe extern "C" fn Result_ok_dpp_document_Document_err_String_destroy(ffi: *mut Result_ok_dpp_document_Document_err_String) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_destroy(ffi: *mut Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { - pub o_0: *mut crate::fermented::types::dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo, - pub o_1: *mut crate::fermented::types::dpp::block::block_info::dpp_block_block_info_BlockInfo, + pub struct Vec_drive_proof_verifier_types_ContestedResource { + pub count: usize, + pub values: *mut *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResource, } - impl ferment::FFIConversionFrom<(dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo, dpp::block::block_info::BlockInfo)> for Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { - unsafe fn ffi_from_const(ffi: *const Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo) -> (dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo, dpp::block::block_info::BlockInfo) { + impl ferment::FFIConversionFrom> for Vec_drive_proof_verifier_types_ContestedResource { + unsafe fn ffi_from_const(ffi: *const Vec_drive_proof_verifier_types_ContestedResource) -> Vec { let ffi_ref = &*ffi; - (ferment::FFIConversionFrom::ffi_from(ffi_ref.o_0), ferment::FFIConversionFrom::ffi_from(ffi_ref.o_1)) + ferment::from_complex_group(ffi_ref.values, ffi_ref.count) } } - impl ferment::FFIConversionTo<(dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo, dpp::block::block_info::BlockInfo)> for Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { unsafe fn ffi_to_const(obj: (dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo, dpp::block::block_info::BlockInfo)) -> *const Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { ferment::boxed(Self { o_0: ferment::FFIConversionTo::ffi_to(obj.0), o_1: ferment::FFIConversionTo::ffi_to(obj.1) }) } } + impl ferment::FFIConversionTo> for Vec_drive_proof_verifier_types_ContestedResource { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_drive_proof_verifier_types_ContestedResource { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } - impl Drop for Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { - fn drop(&mut self) { - unsafe { - ferment::unbox_any(self.o_0); - ferment::unbox_any(self.o_1); - } - } - } + impl Drop for Vec_drive_proof_verifier_types_ContestedResource { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo_ctor(o_0: *mut crate::fermented::types::dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo, o_1: *mut crate::fermented::types::dpp::block::block_info::dpp_block_block_info_BlockInfo) -> *mut Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { ferment::boxed(Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { o_0, o_1 }) } + pub unsafe extern "C" fn Vec_drive_proof_verifier_types_ContestedResource_ctor(count: usize, values: *mut *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResource) -> *mut Vec_drive_proof_verifier_types_ContestedResource { ferment::boxed(Vec_drive_proof_verifier_types_ContestedResource { count, values }) } #[no_mangle] - pub unsafe extern "C" fn Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo_destroy(ffi: *mut Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Vec_drive_proof_verifier_types_ContestedResource_destroy(ffi: *mut Vec_drive_proof_verifier_types_ContestedResource) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Vec_dpp_document_Document { + pub struct Arr_u8_36 { pub count: usize, - pub values: *mut *mut crate::fermented::types::dpp::document::dpp_document_Document, + pub values: *mut u8, } - impl ferment::FFIConversionFrom> for Vec_dpp_document_Document { - unsafe fn ffi_from_const(ffi: *const Vec_dpp_document_Document) -> Vec { + impl ferment::FFIConversionFrom<[u8; 36]> for Arr_u8_36 { + unsafe fn ffi_from_const(ffi: *const Arr_u8_36) -> [u8; 36] { let ffi_ref = &*ffi; - ferment::from_complex_group(ffi_ref.values, ffi_ref.count) + let vec: Vec = ferment::from_primitive_group(ffi_ref.values, ffi_ref.count); + vec.try_into().unwrap() } } - impl ferment::FFIConversionTo> for Vec_dpp_document_Document { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_dpp_document_Document { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } + impl ferment::FFIConversionTo<[u8; 36]> for Arr_u8_36 { unsafe fn ffi_to_const(obj: [u8; 36]) -> *const Arr_u8_36 { ferment::boxed(Self { count: obj.len(), values: ferment::to_primitive_group(obj.into_iter()) }) } } - impl Drop for Vec_dpp_document_Document { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } + impl Drop for Arr_u8_36 { fn drop(&mut self) { unsafe { ferment::unbox_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Vec_dpp_document_Document_ctor(count: usize, values: *mut *mut crate::fermented::types::dpp::document::dpp_document_Document) -> *mut Vec_dpp_document_Document { ferment::boxed(Vec_dpp_document_Document { count, values }) } + pub unsafe extern "C" fn Arr_u8_36_ctor(count: usize, values: *mut u8) -> *mut Arr_u8_36 { ferment::boxed(Arr_u8_36 { count, values }) } #[no_mangle] - pub unsafe extern "C" fn Vec_dpp_document_Document_destroy(ffi: *mut Vec_dpp_document_Document) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Arr_u8_36_destroy(ffi: *mut Arr_u8_36) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Result_ok_Option_dpp_identity_identity_Identity_err_String { - pub ok: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, - pub error: *mut std::os::raw::c_char, + pub struct Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { + pub count: usize, + pub values: *mut *mut crate::fermented::generics::Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll, } - impl ferment::FFIConversionFrom, String>> for Result_ok_Option_dpp_identity_identity_Identity_err_String { - unsafe fn ffi_from_const(ffi: *const Result_ok_Option_dpp_identity_identity_Identity_err_String) -> Result, String> { + impl ferment::FFIConversionFrom)>> for Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { + unsafe fn ffi_from_const(ffi: *const Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) -> Vec<(dpp::prelude::TimestampMillis, Vec)> { let ffi_ref = &*ffi; - ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from_opt(o), ffi_ref.error, |o| >::ffi_from(o)) + ferment::from_complex_group(ffi_ref.values, ffi_ref.count) } } - impl ferment::FFIConversionTo, String>> for Result_ok_Option_dpp_identity_identity_Identity_err_String { - unsafe fn ffi_to_const(obj: Result, String>) -> *const Result_ok_Option_dpp_identity_identity_Identity_err_String { - ferment::boxed({ - let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to_opt(o), |o| ferment::FFIConversionTo::ffi_to(o)); - Self { ok, error } - }) - } - } + impl ferment::FFIConversionTo)>> for Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { unsafe fn ffi_to_const(obj: Vec<(dpp::prelude::TimestampMillis, Vec)>) -> *const Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } - impl Drop for Result_ok_Option_dpp_identity_identity_Identity_err_String { - fn drop(&mut self) { - unsafe { - ferment::unbox_any_opt(self.ok); - ferment::unbox_any_opt(self.error); - } - } - } + impl Drop for Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Result_ok_Option_dpp_identity_identity_Identity_err_String_ctor(ok: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, error: *mut std::os::raw::c_char) -> *mut Result_ok_Option_dpp_identity_identity_Identity_err_String { ferment::boxed(Result_ok_Option_dpp_identity_identity_Identity_err_String { ok, error }) } + pub unsafe extern "C" fn Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_ctor(count: usize, values: *mut *mut crate::fermented::generics::Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) -> *mut Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { ferment::boxed(Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { count, values }) } #[no_mangle] - pub unsafe extern "C" fn Result_ok_Option_dpp_identity_identity_Identity_err_String_destroy(ffi: *mut Result_ok_Option_dpp_identity_identity_Identity_err_String) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_destroy(ffi: *mut Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] @@ -7267,75 +9157,83 @@ pub mod generics { #[repr(C)] #[derive(Clone)] - pub struct Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { + pub struct Arr_u8_32 { pub count: usize, - pub values: *mut *mut crate::fermented::generics::Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll, + pub values: *mut u8, } - impl ferment::FFIConversionFrom)>> for Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { - unsafe fn ffi_from_const(ffi: *const Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) -> Vec<(dpp::prelude::TimestampMillis, Vec)> { + impl ferment::FFIConversionFrom<[u8; 32]> for Arr_u8_32 { + unsafe fn ffi_from_const(ffi: *const Arr_u8_32) -> [u8; 32] { let ffi_ref = &*ffi; - ferment::from_complex_group(ffi_ref.values, ffi_ref.count) + let vec: Vec = ferment::from_primitive_group(ffi_ref.values, ffi_ref.count); + vec.try_into().unwrap() } } - impl ferment::FFIConversionTo)>> for Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { unsafe fn ffi_to_const(obj: Vec<(dpp::prelude::TimestampMillis, Vec)>) -> *const Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } + impl ferment::FFIConversionTo<[u8; 32]> for Arr_u8_32 { unsafe fn ffi_to_const(obj: [u8; 32]) -> *const Arr_u8_32 { ferment::boxed(Self { count: obj.len(), values: ferment::to_primitive_group(obj.into_iter()) }) } } - impl Drop for Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } + impl Drop for Arr_u8_32 { fn drop(&mut self) { unsafe { ferment::unbox_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_ctor(count: usize, values: *mut *mut crate::fermented::generics::Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) -> *mut Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { ferment::boxed(Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { count, values }) } + pub unsafe extern "C" fn Arr_u8_32_ctor(count: usize, values: *mut u8) -> *mut Arr_u8_32 { ferment::boxed(Arr_u8_32 { count, values }) } #[no_mangle] - pub unsafe extern "C" fn Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_destroy(ffi: *mut Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Arr_u8_32_destroy(ffi: *mut Arr_u8_32) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { - pub o_0: *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis, - pub o_1: *mut crate::fermented::generics::Vec_dpp_voting_vote_polls_VotePoll, + pub struct platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract { + pub obj: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, } - impl ferment::FFIConversionFrom<(dpp::prelude::TimestampMillis, Vec)> for Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { - unsafe fn ffi_from_const(ffi: *const Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) -> (dpp::prelude::TimestampMillis, Vec) { + impl Drop for platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract { fn drop(&mut self) { unsafe { ferment::unbox_any(self.obj); } } } + + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract_ctor(obj: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract { ferment::boxed(platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract { obj }) } + + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract_destroy(ffi: *mut platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract) { ferment::unbox_any(ffi); } + + #[repr(C)] + #[derive(Clone)] + pub struct Vec_dpp_document_Document { + pub count: usize, + pub values: *mut *mut crate::fermented::types::dpp::document::dpp_document_Document, + } + + impl ferment::FFIConversionFrom> for Vec_dpp_document_Document { + unsafe fn ffi_from_const(ffi: *const Vec_dpp_document_Document) -> Vec { let ffi_ref = &*ffi; - (ferment::FFIConversionFrom::ffi_from(ffi_ref.o_0), ferment::FFIConversionFrom::ffi_from(ffi_ref.o_1)) + ferment::from_complex_group(ffi_ref.values, ffi_ref.count) } } - impl ferment::FFIConversionTo<(dpp::prelude::TimestampMillis, Vec)> for Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { unsafe fn ffi_to_const(obj: (dpp::prelude::TimestampMillis, Vec)) -> *const Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { ferment::boxed(Self { o_0: ferment::FFIConversionTo::ffi_to(obj.0), o_1: ferment::FFIConversionTo::ffi_to(obj.1) }) } } + impl ferment::FFIConversionTo> for Vec_dpp_document_Document { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_dpp_document_Document { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } - impl Drop for Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { - fn drop(&mut self) { - unsafe { - ferment::unbox_any(self.o_0); - ferment::unbox_any(self.o_1); - } - } - } + impl Drop for Vec_dpp_document_Document { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_ctor(o_0: *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis, o_1: *mut crate::fermented::generics::Vec_dpp_voting_vote_polls_VotePoll) -> *mut Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { ferment::boxed(Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { o_0, o_1 }) } + pub unsafe extern "C" fn Vec_dpp_document_Document_ctor(count: usize, values: *mut *mut crate::fermented::types::dpp::document::dpp_document_Document) -> *mut Vec_dpp_document_Document { ferment::boxed(Vec_dpp_document_Document { count, values }) } #[no_mangle] - pub unsafe extern "C" fn Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_destroy(ffi: *mut Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Vec_dpp_document_Document_destroy(ffi: *mut Vec_dpp_document_Document) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Result_ok_Vec_u8_err_String { - pub ok: *mut crate::fermented::generics::Vec_u8, + pub struct Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { + pub ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ResourceVotesByIdentity, pub error: *mut std::os::raw::c_char, } - impl ferment::FFIConversionFrom, String>> for Result_ok_Vec_u8_err_String { - unsafe fn ffi_from_const(ffi: *const Result_ok_Vec_u8_err_String) -> Result, String> { + impl ferment::FFIConversionFrom> for Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { + unsafe fn ffi_from_const(ffi: *const Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String) -> Result { let ffi_ref = &*ffi; - ferment::fold_to_result(ffi_ref.ok, |o| >>::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) + ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) } } - impl ferment::FFIConversionTo, String>> for Result_ok_Vec_u8_err_String { - unsafe fn ffi_to_const(obj: Result, String>) -> *const Result_ok_Vec_u8_err_String { + impl ferment::FFIConversionTo> for Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { + unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { ferment::boxed({ let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); Self { ok, error } @@ -7343,7 +9241,7 @@ pub mod generics { } } - impl Drop for Result_ok_Vec_u8_err_String { + impl Drop for Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { fn drop(&mut self) { unsafe { ferment::unbox_any_opt(self.ok); @@ -7353,35 +9251,35 @@ pub mod generics { } #[no_mangle] - pub unsafe extern "C" fn Result_ok_Vec_u8_err_String_ctor(ok: *mut crate::fermented::generics::Vec_u8, error: *mut std::os::raw::c_char) -> *mut Result_ok_Vec_u8_err_String { ferment::boxed(Result_ok_Vec_u8_err_String { ok, error }) } + pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String_ctor(ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ResourceVotesByIdentity, error: *mut std::os::raw::c_char) -> *mut Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { ferment::boxed(Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { ok, error }) } #[no_mangle] - pub unsafe extern "C" fn Result_ok_Vec_u8_err_String_destroy(ffi: *mut Result_ok_Vec_u8_err_String) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String_destroy(ffi: *mut Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Result_ok_Option_dpp_voting_votes_Vote_err_String { - pub ok: *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote, + pub struct Result_ok_drive_proof_verifier_types_ContestedResources_err_String { + pub ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResources, pub error: *mut std::os::raw::c_char, } - impl ferment::FFIConversionFrom, String>> for Result_ok_Option_dpp_voting_votes_Vote_err_String { - unsafe fn ffi_from_const(ffi: *const Result_ok_Option_dpp_voting_votes_Vote_err_String) -> Result, String> { + impl ferment::FFIConversionFrom> for Result_ok_drive_proof_verifier_types_ContestedResources_err_String { + unsafe fn ffi_from_const(ffi: *const Result_ok_drive_proof_verifier_types_ContestedResources_err_String) -> Result { let ffi_ref = &*ffi; - ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from_opt(o), ffi_ref.error, |o| >::ffi_from(o)) + ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) } } - impl ferment::FFIConversionTo, String>> for Result_ok_Option_dpp_voting_votes_Vote_err_String { - unsafe fn ffi_to_const(obj: Result, String>) -> *const Result_ok_Option_dpp_voting_votes_Vote_err_String { + impl ferment::FFIConversionTo> for Result_ok_drive_proof_verifier_types_ContestedResources_err_String { + unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_drive_proof_verifier_types_ContestedResources_err_String { ferment::boxed({ - let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to_opt(o), |o| ferment::FFIConversionTo::ffi_to(o)); + let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); Self { ok, error } }) } } - impl Drop for Result_ok_Option_dpp_voting_votes_Vote_err_String { + impl Drop for Result_ok_drive_proof_verifier_types_ContestedResources_err_String { fn drop(&mut self) { unsafe { ferment::unbox_any_opt(self.ok); @@ -7391,113 +9289,114 @@ pub mod generics { } #[no_mangle] - pub unsafe extern "C" fn Result_ok_Option_dpp_voting_votes_Vote_err_String_ctor(ok: *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote, error: *mut std::os::raw::c_char) -> *mut Result_ok_Option_dpp_voting_votes_Vote_err_String { ferment::boxed(Result_ok_Option_dpp_voting_votes_Vote_err_String { ok, error }) } + pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_ContestedResources_err_String_ctor(ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResources, error: *mut std::os::raw::c_char) -> *mut Result_ok_drive_proof_verifier_types_ContestedResources_err_String { ferment::boxed(Result_ok_drive_proof_verifier_types_ContestedResources_err_String { ok, error }) } #[no_mangle] - pub unsafe extern "C" fn Result_ok_Option_dpp_voting_votes_Vote_err_String_destroy(ffi: *mut Result_ok_Option_dpp_voting_votes_Vote_err_String) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_ContestedResources_err_String_destroy(ffi: *mut Result_ok_drive_proof_verifier_types_ContestedResources_err_String) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Result_ok_Vec_dpp_document_Document_err_String { - pub ok: *mut crate::fermented::generics::Vec_dpp_document_Document, - pub error: *mut std::os::raw::c_char, + pub struct Arr_u8_2 { + pub count: usize, + pub values: *mut u8, } - impl ferment::FFIConversionFrom, String>> for Result_ok_Vec_dpp_document_Document_err_String { - unsafe fn ffi_from_const(ffi: *const Result_ok_Vec_dpp_document_Document_err_String) -> Result, String> { + impl ferment::FFIConversionFrom<[u8; 2]> for Arr_u8_2 { + unsafe fn ffi_from_const(ffi: *const Arr_u8_2) -> [u8; 2] { let ffi_ref = &*ffi; - ferment::fold_to_result(ffi_ref.ok, |o| >>::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) + let vec: Vec = ferment::from_primitive_group(ffi_ref.values, ffi_ref.count); + vec.try_into().unwrap() } } - impl ferment::FFIConversionTo, String>> for Result_ok_Vec_dpp_document_Document_err_String { - unsafe fn ffi_to_const(obj: Result, String>) -> *const Result_ok_Vec_dpp_document_Document_err_String { - ferment::boxed({ - let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); - Self { ok, error } - }) - } - } + impl ferment::FFIConversionTo<[u8; 2]> for Arr_u8_2 { unsafe fn ffi_to_const(obj: [u8; 2]) -> *const Arr_u8_2 { ferment::boxed(Self { count: obj.len(), values: ferment::to_primitive_group(obj.into_iter()) }) } } - impl Drop for Result_ok_Vec_dpp_document_Document_err_String { - fn drop(&mut self) { - unsafe { - ferment::unbox_any_opt(self.ok); - ferment::unbox_any_opt(self.error); - } - } - } + impl Drop for Arr_u8_2 { fn drop(&mut self) { unsafe { ferment::unbox_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Result_ok_Vec_dpp_document_Document_err_String_ctor(ok: *mut crate::fermented::generics::Vec_dpp_document_Document, error: *mut std::os::raw::c_char) -> *mut Result_ok_Vec_dpp_document_Document_err_String { ferment::boxed(Result_ok_Vec_dpp_document_Document_err_String { ok, error }) } + pub unsafe extern "C" fn Arr_u8_2_ctor(count: usize, values: *mut u8) -> *mut Arr_u8_2 { ferment::boxed(Arr_u8_2 { count, values }) } #[no_mangle] - pub unsafe extern "C" fn Result_ok_Vec_dpp_document_Document_err_String_destroy(ffi: *mut Result_ok_Vec_dpp_document_Document_err_String) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Arr_u8_2_destroy(ffi: *mut Arr_u8_2) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Vec_u8 { + pub struct Vec_drive_query_conditions_WhereClause { pub count: usize, - pub values: *mut u8, + pub values: *mut *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereClause, } - impl ferment::FFIConversionFrom> for Vec_u8 { - unsafe fn ffi_from_const(ffi: *const Vec_u8) -> Vec { + impl ferment::FFIConversionFrom> for Vec_drive_query_conditions_WhereClause { + unsafe fn ffi_from_const(ffi: *const Vec_drive_query_conditions_WhereClause) -> Vec { let ffi_ref = &*ffi; - ferment::from_primitive_group(ffi_ref.values, ffi_ref.count) + ferment::from_complex_group(ffi_ref.values, ffi_ref.count) } } - impl ferment::FFIConversionTo> for Vec_u8 { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_u8 { ferment::boxed(Self { count: obj.len(), values: ferment::to_primitive_group(obj.into_iter()) }) } } + impl ferment::FFIConversionTo> for Vec_drive_query_conditions_WhereClause { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_drive_query_conditions_WhereClause { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } - impl Drop for Vec_u8 { fn drop(&mut self) { unsafe { ferment::unbox_vec_ptr(self.values, self.count); } } } + impl Drop for Vec_drive_query_conditions_WhereClause { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Vec_u8_ctor(count: usize, values: *mut u8) -> *mut Vec_u8 { ferment::boxed(Vec_u8 { count, values }) } + pub unsafe extern "C" fn Vec_drive_query_conditions_WhereClause_ctor(count: usize, values: *mut *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereClause) -> *mut Vec_drive_query_conditions_WhereClause { ferment::boxed(Vec_drive_query_conditions_WhereClause { count, values }) } #[no_mangle] - pub unsafe extern "C" fn Vec_u8_destroy(ffi: *mut Vec_u8) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Vec_drive_query_conditions_WhereClause_destroy(ffi: *mut Vec_drive_query_conditions_WhereClause) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Vec_platform_value_Value { - pub count: usize, - pub values: *mut *mut crate::fermented::types::platform_value::platform_value_Value, + pub struct Result_ok_dpp_voting_votes_Vote_err_String { + pub ok: *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote, + pub error: *mut std::os::raw::c_char, } - impl ferment::FFIConversionFrom> for Vec_platform_value_Value { - unsafe fn ffi_from_const(ffi: *const Vec_platform_value_Value) -> Vec { + impl ferment::FFIConversionFrom> for Result_ok_dpp_voting_votes_Vote_err_String { + unsafe fn ffi_from_const(ffi: *const Result_ok_dpp_voting_votes_Vote_err_String) -> Result { let ffi_ref = &*ffi; - ferment::from_complex_group(ffi_ref.values, ffi_ref.count) + ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) } } - impl ferment::FFIConversionTo> for Vec_platform_value_Value { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_platform_value_Value { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } + impl ferment::FFIConversionTo> for Result_ok_dpp_voting_votes_Vote_err_String { + unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_dpp_voting_votes_Vote_err_String { + ferment::boxed({ + let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); + Self { ok, error } + }) + } + } - impl Drop for Vec_platform_value_Value { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } + impl Drop for Result_ok_dpp_voting_votes_Vote_err_String { + fn drop(&mut self) { + unsafe { + ferment::unbox_any_opt(self.ok); + ferment::unbox_any_opt(self.error); + } + } + } #[no_mangle] - pub unsafe extern "C" fn Vec_platform_value_Value_ctor(count: usize, values: *mut *mut crate::fermented::types::platform_value::platform_value_Value) -> *mut Vec_platform_value_Value { ferment::boxed(Vec_platform_value_Value { count, values }) } + pub unsafe extern "C" fn Result_ok_dpp_voting_votes_Vote_err_String_ctor(ok: *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote, error: *mut std::os::raw::c_char) -> *mut Result_ok_dpp_voting_votes_Vote_err_String { ferment::boxed(Result_ok_dpp_voting_votes_Vote_err_String { ok, error }) } #[no_mangle] - pub unsafe extern "C" fn Vec_platform_value_Value_destroy(ffi: *mut Vec_platform_value_Value) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Result_ok_dpp_voting_votes_Vote_err_String_destroy(ffi: *mut Result_ok_dpp_voting_votes_Vote_err_String) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Result_ok_dpp_identity_identity_Identity_err_String { - pub ok: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, + pub struct Result_ok_dpp_document_Document_err_String { + pub ok: *mut crate::fermented::types::dpp::document::dpp_document_Document, pub error: *mut std::os::raw::c_char, } - impl ferment::FFIConversionFrom> for Result_ok_dpp_identity_identity_Identity_err_String { - unsafe fn ffi_from_const(ffi: *const Result_ok_dpp_identity_identity_Identity_err_String) -> Result { + impl ferment::FFIConversionFrom> for Result_ok_dpp_document_Document_err_String { + unsafe fn ffi_from_const(ffi: *const Result_ok_dpp_document_Document_err_String) -> Result { let ffi_ref = &*ffi; - ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) + ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) } } - impl ferment::FFIConversionTo> for Result_ok_dpp_identity_identity_Identity_err_String { - unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_dpp_identity_identity_Identity_err_String { + impl ferment::FFIConversionTo> for Result_ok_dpp_document_Document_err_String { + unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_dpp_document_Document_err_String { ferment::boxed({ let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); Self { ok, error } @@ -7505,7 +9404,7 @@ pub mod generics { } } - impl Drop for Result_ok_dpp_identity_identity_Identity_err_String { + impl Drop for Result_ok_dpp_document_Document_err_String { fn drop(&mut self) { unsafe { ferment::unbox_any_opt(self.ok); @@ -7515,34 +9414,42 @@ pub mod generics { } #[no_mangle] - pub unsafe extern "C" fn Result_ok_dpp_identity_identity_Identity_err_String_ctor(ok: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, error: *mut std::os::raw::c_char) -> *mut Result_ok_dpp_identity_identity_Identity_err_String { ferment::boxed(Result_ok_dpp_identity_identity_Identity_err_String { ok, error }) } + pub unsafe extern "C" fn Result_ok_dpp_document_Document_err_String_ctor(ok: *mut crate::fermented::types::dpp::document::dpp_document_Document, error: *mut std::os::raw::c_char) -> *mut Result_ok_dpp_document_Document_err_String { ferment::boxed(Result_ok_dpp_document_Document_err_String { ok, error }) } #[no_mangle] - pub unsafe extern "C" fn Result_ok_dpp_identity_identity_Identity_err_String_destroy(ffi: *mut Result_ok_dpp_identity_identity_Identity_err_String) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Result_ok_dpp_document_Document_err_String_destroy(ffi: *mut Result_ok_dpp_document_Document_err_String) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Vec_dpp_identity_identity_public_key_IdentityPublicKey { + pub struct std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { pub count: usize, - pub values: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey, + pub keys: *mut *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, + pub values: *mut *mut crate::fermented::types::dpp::voting::contender_structs::contender::dpp_voting_contender_structs_contender_ContenderWithSerializedDocument, } - impl ferment::FFIConversionFrom> for Vec_dpp_identity_identity_public_key_IdentityPublicKey { - unsafe fn ffi_from_const(ffi: *const Vec_dpp_identity_identity_public_key_IdentityPublicKey) -> Vec { + impl ferment::FFIConversionFrom> for std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { + unsafe fn ffi_from_const(ffi: *const std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument) -> std::collections::BTreeMap { let ffi_ref = &*ffi; - ferment::from_complex_group(ffi_ref.values, ffi_ref.count) + ferment::fold_to_map(ffi_ref.count, ffi_ref.keys, ffi_ref.values, |o| >::ffi_from(o), |o| >::ffi_from(o)) } } - impl ferment::FFIConversionTo> for Vec_dpp_identity_identity_public_key_IdentityPublicKey { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_dpp_identity_identity_public_key_IdentityPublicKey { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } + impl ferment::FFIConversionTo> for std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { unsafe fn ffi_to_const(obj: std::collections::BTreeMap) -> *const std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { ferment::boxed(Self { count: obj.len(), keys: ferment::to_complex_group(obj.keys().cloned()), values: ferment::to_complex_group(obj.values().cloned()) }) } } - impl Drop for Vec_dpp_identity_identity_public_key_IdentityPublicKey { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } + impl Drop for std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { + fn drop(&mut self) { + unsafe { + ferment::unbox_any_vec_ptr(self.keys, self.count); + ferment::unbox_any_vec_ptr(self.values, self.count); + } + } + } #[no_mangle] - pub unsafe extern "C" fn Vec_dpp_identity_identity_public_key_IdentityPublicKey_ctor(count: usize, values: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey) -> *mut Vec_dpp_identity_identity_public_key_IdentityPublicKey { ferment::boxed(Vec_dpp_identity_identity_public_key_IdentityPublicKey { count, values }) } + pub unsafe extern "C" fn std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument_ctor(count: usize, keys: *mut *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, values: *mut *mut crate::fermented::types::dpp::voting::contender_structs::contender::dpp_voting_contender_structs_contender_ContenderWithSerializedDocument) -> *mut std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { ferment::boxed(std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { count, keys, values }) } #[no_mangle] - pub unsafe extern "C" fn Vec_dpp_identity_identity_public_key_IdentityPublicKey_destroy(ffi: *mut Vec_dpp_identity_identity_public_key_IdentityPublicKey) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument_destroy(ffi: *mut std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] @@ -7570,111 +9477,96 @@ pub mod generics { #[repr(C)] #[derive(Clone)] - pub struct Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { - pub ok: *mut crate::fermented::types::platform_mobile::data_contracts::platform_mobile_data_contracts_DataContractFFI, - pub error: *mut std::os::raw::c_char, + pub struct Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { + pub o_0: *mut crate::fermented::types::dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo, + pub o_1: *mut crate::fermented::types::dpp::block::block_info::dpp_block_block_info_BlockInfo, } - impl ferment::FFIConversionFrom, String>> for Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { - unsafe fn ffi_from_const(ffi: *const Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String) -> Result, String> { + impl ferment::FFIConversionFrom<(dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo, dpp::block::block_info::BlockInfo)> for Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { + unsafe fn ffi_from_const(ffi: *const Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo) -> (dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo, dpp::block::block_info::BlockInfo) { let ffi_ref = &*ffi; - ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from_opt(o), ffi_ref.error, |o| >::ffi_from(o)) + (ferment::FFIConversionFrom::ffi_from(ffi_ref.o_0), ferment::FFIConversionFrom::ffi_from(ffi_ref.o_1)) } } - impl ferment::FFIConversionTo, String>> for Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { - unsafe fn ffi_to_const(obj: Result, String>) -> *const Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { - ferment::boxed({ - let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to_opt(o), |o| ferment::FFIConversionTo::ffi_to(o)); - Self { ok, error } - }) - } - } + impl ferment::FFIConversionTo<(dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo, dpp::block::block_info::BlockInfo)> for Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { unsafe fn ffi_to_const(obj: (dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo, dpp::block::block_info::BlockInfo)) -> *const Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { ferment::boxed(Self { o_0: ferment::FFIConversionTo::ffi_to(obj.0), o_1: ferment::FFIConversionTo::ffi_to(obj.1) }) } } - impl Drop for Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { + impl Drop for Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { fn drop(&mut self) { unsafe { - ferment::unbox_any_opt(self.ok); - ferment::unbox_any_opt(self.error); + ferment::unbox_any(self.o_0); + ferment::unbox_any(self.o_1); } } } #[no_mangle] - pub unsafe extern "C" fn Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String_ctor(ok: *mut crate::fermented::types::platform_mobile::data_contracts::platform_mobile_data_contracts_DataContractFFI, error: *mut std::os::raw::c_char) -> *mut Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { ferment::boxed(Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { ok, error }) } + pub unsafe extern "C" fn Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo_ctor(o_0: *mut crate::fermented::types::dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo, o_1: *mut crate::fermented::types::dpp::block::block_info::dpp_block_block_info_BlockInfo) -> *mut Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { ferment::boxed(Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { o_0, o_1 }) } #[no_mangle] - pub unsafe extern "C" fn Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String_destroy(ffi: *mut Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo_destroy(ffi: *mut Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { - pub count: usize, - pub keys: *mut *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, - pub values: *mut *mut crate::fermented::types::dpp::voting::contender_structs::contender::dpp_voting_contender_structs_contender_ContenderWithSerializedDocument, + pub struct Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { + pub ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_VotePollsGroupedByTimestamp, + pub error: *mut std::os::raw::c_char, } - impl ferment::FFIConversionFrom> for std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { - unsafe fn ffi_from_const(ffi: *const std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument) -> std::collections::BTreeMap { + impl ferment::FFIConversionFrom> for Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { + unsafe fn ffi_from_const(ffi: *const Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String) -> Result { let ffi_ref = &*ffi; - ferment::fold_to_map(ffi_ref.count, ffi_ref.keys, ffi_ref.values, |o| >::ffi_from(o), |o| >::ffi_from(o)) + ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) } } - impl ferment::FFIConversionTo> for std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { unsafe fn ffi_to_const(obj: std::collections::BTreeMap) -> *const std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { ferment::boxed(Self { count: obj.len(), keys: ferment::to_complex_group(obj.keys().cloned()), values: ferment::to_complex_group(obj.values().cloned()) }) } } + impl ferment::FFIConversionTo> for Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { + unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { + ferment::boxed({ + let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); + Self { ok, error } + }) + } + } - impl Drop for std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { + impl Drop for Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { fn drop(&mut self) { unsafe { - ferment::unbox_any_vec_ptr(self.keys, self.count); - ferment::unbox_any_vec_ptr(self.values, self.count); + ferment::unbox_any_opt(self.ok); + ferment::unbox_any_opt(self.error); } } } #[no_mangle] - pub unsafe extern "C" fn std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument_ctor(count: usize, keys: *mut *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, values: *mut *mut crate::fermented::types::dpp::voting::contender_structs::contender::dpp_voting_contender_structs_contender_ContenderWithSerializedDocument) -> *mut std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { ferment::boxed(std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { count, keys, values }) } + pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String_ctor(ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_VotePollsGroupedByTimestamp, error: *mut std::os::raw::c_char) -> *mut Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { ferment::boxed(Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { ok, error }) } #[no_mangle] - pub unsafe extern "C" fn std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument_destroy(ffi: *mut std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String_destroy(ffi: *mut Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { - pub ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ResourceVotesByIdentity, - pub error: *mut std::os::raw::c_char, + pub struct Vec_dpp_identity_identity_public_key_IdentityPublicKey { + pub count: usize, + pub values: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey, } - impl ferment::FFIConversionFrom> for Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { - unsafe fn ffi_from_const(ffi: *const Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String) -> Result { + impl ferment::FFIConversionFrom> for Vec_dpp_identity_identity_public_key_IdentityPublicKey { + unsafe fn ffi_from_const(ffi: *const Vec_dpp_identity_identity_public_key_IdentityPublicKey) -> Vec { let ffi_ref = &*ffi; - ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) + ferment::from_complex_group(ffi_ref.values, ffi_ref.count) } } - impl ferment::FFIConversionTo> for Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { - unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { - ferment::boxed({ - let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); - Self { ok, error } - }) - } - } + impl ferment::FFIConversionTo> for Vec_dpp_identity_identity_public_key_IdentityPublicKey { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_dpp_identity_identity_public_key_IdentityPublicKey { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } - impl Drop for Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { - fn drop(&mut self) { - unsafe { - ferment::unbox_any_opt(self.ok); - ferment::unbox_any_opt(self.error); - } - } - } + impl Drop for Vec_dpp_identity_identity_public_key_IdentityPublicKey { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String_ctor(ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ResourceVotesByIdentity, error: *mut std::os::raw::c_char) -> *mut Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { ferment::boxed(Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { ok, error }) } + pub unsafe extern "C" fn Vec_dpp_identity_identity_public_key_IdentityPublicKey_ctor(count: usize, values: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey) -> *mut Vec_dpp_identity_identity_public_key_IdentityPublicKey { ferment::boxed(Vec_dpp_identity_identity_public_key_IdentityPublicKey { count, values }) } #[no_mangle] - pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String_destroy(ffi: *mut Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Vec_dpp_identity_identity_public_key_IdentityPublicKey_destroy(ffi: *mut Vec_dpp_identity_identity_public_key_IdentityPublicKey) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] @@ -7702,306 +9594,331 @@ pub mod generics { #[repr(C)] #[derive(Clone)] - pub struct Arr_u8_2 { + pub struct Vec_platform_value_Value { pub count: usize, - pub values: *mut u8, + pub values: *mut *mut crate::fermented::types::platform_value::platform_value_Value, } - impl ferment::FFIConversionFrom<[u8; 2]> for Arr_u8_2 { - unsafe fn ffi_from_const(ffi: *const Arr_u8_2) -> [u8; 2] { + impl ferment::FFIConversionFrom> for Vec_platform_value_Value { + unsafe fn ffi_from_const(ffi: *const Vec_platform_value_Value) -> Vec { let ffi_ref = &*ffi; - let vec: Vec = ferment::from_primitive_group(ffi_ref.values, ffi_ref.count); - vec.try_into().unwrap() + ferment::from_complex_group(ffi_ref.values, ffi_ref.count) } } - impl ferment::FFIConversionTo<[u8; 2]> for Arr_u8_2 { unsafe fn ffi_to_const(obj: [u8; 2]) -> *const Arr_u8_2 { ferment::boxed(Self { count: obj.len(), values: ferment::to_primitive_group(obj.into_iter()) }) } } + impl ferment::FFIConversionTo> for Vec_platform_value_Value { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_platform_value_Value { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } - impl Drop for Arr_u8_2 { fn drop(&mut self) { unsafe { ferment::unbox_vec_ptr(self.values, self.count); } } } + impl Drop for Vec_platform_value_Value { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Arr_u8_2_ctor(count: usize, values: *mut u8) -> *mut Arr_u8_2 { ferment::boxed(Arr_u8_2 { count, values }) } + pub unsafe extern "C" fn Vec_platform_value_Value_ctor(count: usize, values: *mut *mut crate::fermented::types::platform_value::platform_value_Value) -> *mut Vec_platform_value_Value { ferment::boxed(Vec_platform_value_Value { count, values }) } #[no_mangle] - pub unsafe extern "C" fn Arr_u8_2_destroy(ffi: *mut Arr_u8_2) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Vec_platform_value_Value_destroy(ffi: *mut Vec_platform_value_Value) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Result_ok_drive_proof_verifier_types_ContestedResources_err_String { - pub ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResources, - pub error: *mut std::os::raw::c_char, + pub struct Vec_dpp_voting_vote_polls_VotePoll { + pub count: usize, + pub values: *mut *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll, } - impl ferment::FFIConversionFrom> for Result_ok_drive_proof_verifier_types_ContestedResources_err_String { - unsafe fn ffi_from_const(ffi: *const Result_ok_drive_proof_verifier_types_ContestedResources_err_String) -> Result { + impl ferment::FFIConversionFrom> for Vec_dpp_voting_vote_polls_VotePoll { + unsafe fn ffi_from_const(ffi: *const Vec_dpp_voting_vote_polls_VotePoll) -> Vec { let ffi_ref = &*ffi; - ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) + ferment::from_complex_group(ffi_ref.values, ffi_ref.count) } } - impl ferment::FFIConversionTo> for Result_ok_drive_proof_verifier_types_ContestedResources_err_String { - unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_drive_proof_verifier_types_ContestedResources_err_String { - ferment::boxed({ - let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); - Self { ok, error } - }) + impl ferment::FFIConversionTo> for Vec_dpp_voting_vote_polls_VotePoll { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_dpp_voting_vote_polls_VotePoll { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } + + impl Drop for Vec_dpp_voting_vote_polls_VotePoll { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } + + #[no_mangle] + pub unsafe extern "C" fn Vec_dpp_voting_vote_polls_VotePoll_ctor(count: usize, values: *mut *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll) -> *mut Vec_dpp_voting_vote_polls_VotePoll { ferment::boxed(Vec_dpp_voting_vote_polls_VotePoll { count, values }) } + + #[no_mangle] + pub unsafe extern "C" fn Vec_dpp_voting_vote_polls_VotePoll_destroy(ffi: *mut Vec_dpp_voting_vote_polls_VotePoll) { ferment::unbox_any(ffi); } + + #[repr(C)] + #[derive(Clone)] + pub struct std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { + pub count: usize, + pub keys: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID, + pub values: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey, + } + + impl ferment::FFIConversionFrom> for std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { + unsafe fn ffi_from_const(ffi: *const std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey) -> std::collections::BTreeMap { + let ffi_ref = &*ffi; + ferment::fold_to_map(ffi_ref.count, ffi_ref.keys, ffi_ref.values, |o| >::ffi_from(o), |o| >::ffi_from(o)) } } - impl Drop for Result_ok_drive_proof_verifier_types_ContestedResources_err_String { + impl ferment::FFIConversionTo> for std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { unsafe fn ffi_to_const(obj: std::collections::BTreeMap) -> *const std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { ferment::boxed(Self { count: obj.len(), keys: ferment::to_complex_group(obj.keys().cloned()), values: ferment::to_complex_group(obj.values().cloned()) }) } } + + impl Drop for std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { fn drop(&mut self) { unsafe { - ferment::unbox_any_opt(self.ok); - ferment::unbox_any_opt(self.error); + ferment::unbox_any_vec_ptr(self.keys, self.count); + ferment::unbox_any_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_ContestedResources_err_String_ctor(ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResources, error: *mut std::os::raw::c_char) -> *mut Result_ok_drive_proof_verifier_types_ContestedResources_err_String { ferment::boxed(Result_ok_drive_proof_verifier_types_ContestedResources_err_String { ok, error }) } + pub unsafe extern "C" fn std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey_ctor(count: usize, keys: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID, values: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey) -> *mut std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { ferment::boxed(std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { count, keys, values }) } #[no_mangle] - pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_ContestedResources_err_String_destroy(ffi: *mut Result_ok_drive_proof_verifier_types_ContestedResources_err_String) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey_destroy(ffi: *mut std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Arr_u8_20 { - pub count: usize, - pub values: *mut u8, + pub struct Result_ok_drive_proof_verifier_types_Contenders_err_String { + pub ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Contenders, + pub error: *mut std::os::raw::c_char, } - impl ferment::FFIConversionFrom<[u8; 20]> for Arr_u8_20 { - unsafe fn ffi_from_const(ffi: *const Arr_u8_20) -> [u8; 20] { + impl ferment::FFIConversionFrom> for Result_ok_drive_proof_verifier_types_Contenders_err_String { + unsafe fn ffi_from_const(ffi: *const Result_ok_drive_proof_verifier_types_Contenders_err_String) -> Result { let ffi_ref = &*ffi; - let vec: Vec = ferment::from_primitive_group(ffi_ref.values, ffi_ref.count); - vec.try_into().unwrap() + ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) } } - impl ferment::FFIConversionTo<[u8; 20]> for Arr_u8_20 { unsafe fn ffi_to_const(obj: [u8; 20]) -> *const Arr_u8_20 { ferment::boxed(Self { count: obj.len(), values: ferment::to_primitive_group(obj.into_iter()) }) } } + impl ferment::FFIConversionTo> for Result_ok_drive_proof_verifier_types_Contenders_err_String { + unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_drive_proof_verifier_types_Contenders_err_String { + ferment::boxed({ + let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); + Self { ok, error } + }) + } + } - impl Drop for Arr_u8_20 { fn drop(&mut self) { unsafe { ferment::unbox_vec_ptr(self.values, self.count); } } } + impl Drop for Result_ok_drive_proof_verifier_types_Contenders_err_String { + fn drop(&mut self) { + unsafe { + ferment::unbox_any_opt(self.ok); + ferment::unbox_any_opt(self.error); + } + } + } #[no_mangle] - pub unsafe extern "C" fn Arr_u8_20_ctor(count: usize, values: *mut u8) -> *mut Arr_u8_20 { ferment::boxed(Arr_u8_20 { count, values }) } + pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_Contenders_err_String_ctor(ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Contenders, error: *mut std::os::raw::c_char) -> *mut Result_ok_drive_proof_verifier_types_Contenders_err_String { ferment::boxed(Result_ok_drive_proof_verifier_types_Contenders_err_String { ok, error }) } #[no_mangle] - pub unsafe extern "C" fn Arr_u8_20_destroy(ffi: *mut Arr_u8_20) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_Contenders_err_String_destroy(ffi: *mut Result_ok_drive_proof_verifier_types_Contenders_err_String) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Vec_dpp_voting_vote_polls_VotePoll { + pub struct std_collections_BTreeSet_drive_proof_verifier_types_Voter { pub count: usize, - pub values: *mut *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll, + pub values: *mut *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Voter, } - impl ferment::FFIConversionFrom> for Vec_dpp_voting_vote_polls_VotePoll { - unsafe fn ffi_from_const(ffi: *const Vec_dpp_voting_vote_polls_VotePoll) -> Vec { + impl ferment::FFIConversionFrom> for std_collections_BTreeSet_drive_proof_verifier_types_Voter { + unsafe fn ffi_from_const(ffi: *const std_collections_BTreeSet_drive_proof_verifier_types_Voter) -> std::collections::BTreeSet { let ffi_ref = &*ffi; ferment::from_complex_group(ffi_ref.values, ffi_ref.count) } } - impl ferment::FFIConversionTo> for Vec_dpp_voting_vote_polls_VotePoll { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_dpp_voting_vote_polls_VotePoll { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } + impl ferment::FFIConversionTo> for std_collections_BTreeSet_drive_proof_verifier_types_Voter { unsafe fn ffi_to_const(obj: std::collections::BTreeSet) -> *const std_collections_BTreeSet_drive_proof_verifier_types_Voter { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } - impl Drop for Vec_dpp_voting_vote_polls_VotePoll { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } + impl Drop for std_collections_BTreeSet_drive_proof_verifier_types_Voter { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Vec_dpp_voting_vote_polls_VotePoll_ctor(count: usize, values: *mut *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll) -> *mut Vec_dpp_voting_vote_polls_VotePoll { ferment::boxed(Vec_dpp_voting_vote_polls_VotePoll { count, values }) } + pub unsafe extern "C" fn std_collections_BTreeSet_drive_proof_verifier_types_Voter_ctor(count: usize, values: *mut *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Voter) -> *mut std_collections_BTreeSet_drive_proof_verifier_types_Voter { ferment::boxed(std_collections_BTreeSet_drive_proof_verifier_types_Voter { count, values }) } #[no_mangle] - pub unsafe extern "C" fn Vec_dpp_voting_vote_polls_VotePoll_destroy(ffi: *mut Vec_dpp_voting_vote_polls_VotePoll) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn std_collections_BTreeSet_drive_proof_verifier_types_Voter_destroy(ffi: *mut std_collections_BTreeSet_drive_proof_verifier_types_Voter) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Tuple_platform_value_Value_platform_value_Value { - pub o_0: *mut crate::fermented::types::platform_value::platform_value_Value, - pub o_1: *mut crate::fermented::types::platform_value::platform_value_Value, + pub struct Result_ok_u64_err_String { + pub ok: *mut u64, + pub error: *mut std::os::raw::c_char, } - impl ferment::FFIConversionFrom<(platform_value::Value, platform_value::Value)> for Tuple_platform_value_Value_platform_value_Value { - unsafe fn ffi_from_const(ffi: *const Tuple_platform_value_Value_platform_value_Value) -> (platform_value::Value, platform_value::Value) { + impl ferment::FFIConversionFrom> for Result_ok_u64_err_String { + unsafe fn ffi_from_const(ffi: *const Result_ok_u64_err_String) -> Result { let ffi_ref = &*ffi; - (ferment::FFIConversionFrom::ffi_from(ffi_ref.o_0), ferment::FFIConversionFrom::ffi_from(ffi_ref.o_1)) + ferment::fold_to_result(ffi_ref.ok, |o| *o, ffi_ref.error, |o| >::ffi_from(o)) + } + } + + impl ferment::FFIConversionTo> for Result_ok_u64_err_String { + unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_u64_err_String { + ferment::boxed({ + let (ok, error) = ferment::to_result(obj, |o| ferment::boxed(o), |o| ferment::FFIConversionTo::ffi_to(o)); + Self { ok, error } + }) } } - impl ferment::FFIConversionTo<(platform_value::Value, platform_value::Value)> for Tuple_platform_value_Value_platform_value_Value { unsafe fn ffi_to_const(obj: (platform_value::Value, platform_value::Value)) -> *const Tuple_platform_value_Value_platform_value_Value { ferment::boxed(Self { o_0: ferment::FFIConversionTo::ffi_to(obj.0), o_1: ferment::FFIConversionTo::ffi_to(obj.1) }) } } - - impl Drop for Tuple_platform_value_Value_platform_value_Value { + impl Drop for Result_ok_u64_err_String { fn drop(&mut self) { unsafe { - ferment::unbox_any(self.o_0); - ferment::unbox_any(self.o_1); + ferment::destroy_opt_primitive(self.ok); + ferment::unbox_any_opt(self.error); } } } #[no_mangle] - pub unsafe extern "C" fn Tuple_platform_value_Value_platform_value_Value_ctor(o_0: *mut crate::fermented::types::platform_value::platform_value_Value, o_1: *mut crate::fermented::types::platform_value::platform_value_Value) -> *mut Tuple_platform_value_Value_platform_value_Value { ferment::boxed(Tuple_platform_value_Value_platform_value_Value { o_0, o_1 }) } + pub unsafe extern "C" fn Result_ok_u64_err_String_ctor(ok: *mut u64, error: *mut std::os::raw::c_char) -> *mut Result_ok_u64_err_String { ferment::boxed(Result_ok_u64_err_String { ok, error }) } #[no_mangle] - pub unsafe extern "C" fn Tuple_platform_value_Value_platform_value_Value_destroy(ffi: *mut Tuple_platform_value_Value_platform_value_Value) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Result_ok_u64_err_String_destroy(ffi: *mut Result_ok_u64_err_String) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { - pub count: usize, - pub keys: *mut *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, - pub values: *mut *mut crate::fermented::types::dpp::voting::votes::resource_vote::dpp_voting_votes_resource_vote_ResourceVote, + pub struct Result_ok_Vec_u8_err_String { + pub ok: *mut crate::fermented::generics::Vec_u8, + pub error: *mut std::os::raw::c_char, } - impl ferment::FFIConversionFrom>> for std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { - unsafe fn ffi_from_const(ffi: *const std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote) -> std::collections::BTreeMap> { + impl ferment::FFIConversionFrom, String>> for Result_ok_Vec_u8_err_String { + unsafe fn ffi_from_const(ffi: *const Result_ok_Vec_u8_err_String) -> Result, String> { let ffi_ref = &*ffi; - ferment::fold_to_map(ffi_ref.count, ffi_ref.keys, ffi_ref.values, |o| >::ffi_from(o), |o| >::ffi_from_opt(o)) + ferment::fold_to_result(ffi_ref.ok, |o| >>::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) } } - impl ferment::FFIConversionTo>> for std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { unsafe fn ffi_to_const(obj: std::collections::BTreeMap>) -> *const std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { ferment::boxed(Self { count: obj.len(), keys: ferment::to_complex_group(obj.keys().cloned()), values: ferment::to_opt_complex_group(obj.values().cloned()) }) } } + impl ferment::FFIConversionTo, String>> for Result_ok_Vec_u8_err_String { + unsafe fn ffi_to_const(obj: Result, String>) -> *const Result_ok_Vec_u8_err_String { + ferment::boxed({ + let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); + Self { ok, error } + }) + } + } - impl Drop for std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { + impl Drop for Result_ok_Vec_u8_err_String { fn drop(&mut self) { unsafe { - ferment::unbox_any_vec_ptr(self.keys, self.count); - ferment::unbox_any_vec_ptr(self.values, self.count); + ferment::unbox_any_opt(self.ok); + ferment::unbox_any_opt(self.error); } } } #[no_mangle] - pub unsafe extern "C" fn std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote_ctor(count: usize, keys: *mut *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, values: *mut *mut crate::fermented::types::dpp::voting::votes::resource_vote::dpp_voting_votes_resource_vote_ResourceVote) -> *mut std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { ferment::boxed(std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { count, keys, values }) } + pub unsafe extern "C" fn Result_ok_Vec_u8_err_String_ctor(ok: *mut crate::fermented::generics::Vec_u8, error: *mut std::os::raw::c_char) -> *mut Result_ok_Vec_u8_err_String { ferment::boxed(Result_ok_Vec_u8_err_String { ok, error }) } #[no_mangle] - pub unsafe extern "C" fn std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote_destroy(ffi: *mut std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Result_ok_Vec_u8_err_String_destroy(ffi: *mut Result_ok_Vec_u8_err_String) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Vec_drive_query_conditions_WhereClause { - pub count: usize, - pub values: *mut *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereClause, + pub struct Tuple_platform_value_Value_platform_value_Value { + pub o_0: *mut crate::fermented::types::platform_value::platform_value_Value, + pub o_1: *mut crate::fermented::types::platform_value::platform_value_Value, } - impl ferment::FFIConversionFrom> for Vec_drive_query_conditions_WhereClause { - unsafe fn ffi_from_const(ffi: *const Vec_drive_query_conditions_WhereClause) -> Vec { + impl ferment::FFIConversionFrom<(platform_value::Value, platform_value::Value)> for Tuple_platform_value_Value_platform_value_Value { + unsafe fn ffi_from_const(ffi: *const Tuple_platform_value_Value_platform_value_Value) -> (platform_value::Value, platform_value::Value) { let ffi_ref = &*ffi; - ferment::from_complex_group(ffi_ref.values, ffi_ref.count) + (ferment::FFIConversionFrom::ffi_from(ffi_ref.o_0), ferment::FFIConversionFrom::ffi_from(ffi_ref.o_1)) } } - impl ferment::FFIConversionTo> for Vec_drive_query_conditions_WhereClause { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_drive_query_conditions_WhereClause { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } + impl ferment::FFIConversionTo<(platform_value::Value, platform_value::Value)> for Tuple_platform_value_Value_platform_value_Value { unsafe fn ffi_to_const(obj: (platform_value::Value, platform_value::Value)) -> *const Tuple_platform_value_Value_platform_value_Value { ferment::boxed(Self { o_0: ferment::FFIConversionTo::ffi_to(obj.0), o_1: ferment::FFIConversionTo::ffi_to(obj.1) }) } } - impl Drop for Vec_drive_query_conditions_WhereClause { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } + impl Drop for Tuple_platform_value_Value_platform_value_Value { + fn drop(&mut self) { + unsafe { + ferment::unbox_any(self.o_0); + ferment::unbox_any(self.o_1); + } + } + } #[no_mangle] - pub unsafe extern "C" fn Vec_drive_query_conditions_WhereClause_ctor(count: usize, values: *mut *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereClause) -> *mut Vec_drive_query_conditions_WhereClause { ferment::boxed(Vec_drive_query_conditions_WhereClause { count, values }) } + pub unsafe extern "C" fn Tuple_platform_value_Value_platform_value_Value_ctor(o_0: *mut crate::fermented::types::platform_value::platform_value_Value, o_1: *mut crate::fermented::types::platform_value::platform_value_Value) -> *mut Tuple_platform_value_Value_platform_value_Value { ferment::boxed(Tuple_platform_value_Value_platform_value_Value { o_0, o_1 }) } #[no_mangle] - pub unsafe extern "C" fn Vec_drive_query_conditions_WhereClause_destroy(ffi: *mut Vec_drive_query_conditions_WhereClause) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Tuple_platform_value_Value_platform_value_Value_destroy(ffi: *mut Tuple_platform_value_Value_platform_value_Value) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Arr_u8_32 { + pub struct Vec_u8 { pub count: usize, pub values: *mut u8, } - impl ferment::FFIConversionFrom<[u8; 32]> for Arr_u8_32 { - unsafe fn ffi_from_const(ffi: *const Arr_u8_32) -> [u8; 32] { + impl ferment::FFIConversionFrom> for Vec_u8 { + unsafe fn ffi_from_const(ffi: *const Vec_u8) -> Vec { let ffi_ref = &*ffi; - let vec: Vec = ferment::from_primitive_group(ffi_ref.values, ffi_ref.count); - vec.try_into().unwrap() + ferment::from_primitive_group(ffi_ref.values, ffi_ref.count) } } - impl ferment::FFIConversionTo<[u8; 32]> for Arr_u8_32 { unsafe fn ffi_to_const(obj: [u8; 32]) -> *const Arr_u8_32 { ferment::boxed(Self { count: obj.len(), values: ferment::to_primitive_group(obj.into_iter()) }) } } + impl ferment::FFIConversionTo> for Vec_u8 { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_u8 { ferment::boxed(Self { count: obj.len(), values: ferment::to_primitive_group(obj.into_iter()) }) } } - impl Drop for Arr_u8_32 { fn drop(&mut self) { unsafe { ferment::unbox_vec_ptr(self.values, self.count); } } } + impl Drop for Vec_u8 { fn drop(&mut self) { unsafe { ferment::unbox_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Arr_u8_32_ctor(count: usize, values: *mut u8) -> *mut Arr_u8_32 { ferment::boxed(Arr_u8_32 { count, values }) } + pub unsafe extern "C" fn Vec_u8_ctor(count: usize, values: *mut u8) -> *mut Vec_u8 { ferment::boxed(Vec_u8 { count, values }) } #[no_mangle] - pub unsafe extern "C" fn Arr_u8_32_destroy(ffi: *mut Arr_u8_32) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Vec_u8_destroy(ffi: *mut Vec_u8) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Vec_drive_proof_verifier_types_ContestedResource { - pub count: usize, - pub values: *mut *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResource, + pub struct Result_ok_Option_dpp_identity_identity_Identity_err_String { + pub ok: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, + pub error: *mut std::os::raw::c_char, } - impl ferment::FFIConversionFrom> for Vec_drive_proof_verifier_types_ContestedResource { - unsafe fn ffi_from_const(ffi: *const Vec_drive_proof_verifier_types_ContestedResource) -> Vec { + impl ferment::FFIConversionFrom, String>> for Result_ok_Option_dpp_identity_identity_Identity_err_String { + unsafe fn ffi_from_const(ffi: *const Result_ok_Option_dpp_identity_identity_Identity_err_String) -> Result, String> { let ffi_ref = &*ffi; - ferment::from_complex_group(ffi_ref.values, ffi_ref.count) + ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from_opt(o), ffi_ref.error, |o| >::ffi_from(o)) } } - impl ferment::FFIConversionTo> for Vec_drive_proof_verifier_types_ContestedResource { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_drive_proof_verifier_types_ContestedResource { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } - - impl Drop for Vec_drive_proof_verifier_types_ContestedResource { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } - - #[no_mangle] - pub unsafe extern "C" fn Vec_drive_proof_verifier_types_ContestedResource_ctor(count: usize, values: *mut *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResource) -> *mut Vec_drive_proof_verifier_types_ContestedResource { ferment::boxed(Vec_drive_proof_verifier_types_ContestedResource { count, values }) } - - #[no_mangle] - pub unsafe extern "C" fn Vec_drive_proof_verifier_types_ContestedResource_destroy(ffi: *mut Vec_drive_proof_verifier_types_ContestedResource) { ferment::unbox_any(ffi); } - - #[repr(C)] - #[derive(Clone)] - pub struct platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract { - pub obj: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, - } - - impl Drop for platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract { fn drop(&mut self) { unsafe { ferment::unbox_any(self.obj); } } } - - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract_ctor(obj: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract { ferment::boxed(platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract { obj }) } - - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract_destroy(ffi: *mut platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract) { ferment::unbox_any(ffi); } - - #[repr(C)] - #[derive(Clone)] - pub struct std_collections_BTreeSet_drive_proof_verifier_types_Voter { - pub count: usize, - pub values: *mut *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Voter, + impl ferment::FFIConversionTo, String>> for Result_ok_Option_dpp_identity_identity_Identity_err_String { + unsafe fn ffi_to_const(obj: Result, String>) -> *const Result_ok_Option_dpp_identity_identity_Identity_err_String { + ferment::boxed({ + let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to_opt(o), |o| ferment::FFIConversionTo::ffi_to(o)); + Self { ok, error } + }) + } } - impl ferment::FFIConversionFrom> for std_collections_BTreeSet_drive_proof_verifier_types_Voter { - unsafe fn ffi_from_const(ffi: *const std_collections_BTreeSet_drive_proof_verifier_types_Voter) -> std::collections::BTreeSet { - let ffi_ref = &*ffi; - ferment::from_complex_group(ffi_ref.values, ffi_ref.count) + impl Drop for Result_ok_Option_dpp_identity_identity_Identity_err_String { + fn drop(&mut self) { + unsafe { + ferment::unbox_any_opt(self.ok); + ferment::unbox_any_opt(self.error); + } } } - impl ferment::FFIConversionTo> for std_collections_BTreeSet_drive_proof_verifier_types_Voter { unsafe fn ffi_to_const(obj: std::collections::BTreeSet) -> *const std_collections_BTreeSet_drive_proof_verifier_types_Voter { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } - - impl Drop for std_collections_BTreeSet_drive_proof_verifier_types_Voter { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } - #[no_mangle] - pub unsafe extern "C" fn std_collections_BTreeSet_drive_proof_verifier_types_Voter_ctor(count: usize, values: *mut *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Voter) -> *mut std_collections_BTreeSet_drive_proof_verifier_types_Voter { ferment::boxed(std_collections_BTreeSet_drive_proof_verifier_types_Voter { count, values }) } + pub unsafe extern "C" fn Result_ok_Option_dpp_identity_identity_Identity_err_String_ctor(ok: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, error: *mut std::os::raw::c_char) -> *mut Result_ok_Option_dpp_identity_identity_Identity_err_String { ferment::boxed(Result_ok_Option_dpp_identity_identity_Identity_err_String { ok, error }) } #[no_mangle] - pub unsafe extern "C" fn std_collections_BTreeSet_drive_proof_verifier_types_Voter_destroy(ffi: *mut std_collections_BTreeSet_drive_proof_verifier_types_Voter) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Result_ok_Option_dpp_identity_identity_Identity_err_String_destroy(ffi: *mut Result_ok_Option_dpp_identity_identity_Identity_err_String) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Result_ok_drive_proof_verifier_types_Contenders_err_String { - pub ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Contenders, + pub struct Result_ok_Vec_dpp_document_Document_err_String { + pub ok: *mut crate::fermented::generics::Vec_dpp_document_Document, pub error: *mut std::os::raw::c_char, } - impl ferment::FFIConversionFrom> for Result_ok_drive_proof_verifier_types_Contenders_err_String { - unsafe fn ffi_from_const(ffi: *const Result_ok_drive_proof_verifier_types_Contenders_err_String) -> Result { + impl ferment::FFIConversionFrom, String>> for Result_ok_Vec_dpp_document_Document_err_String { + unsafe fn ffi_from_const(ffi: *const Result_ok_Vec_dpp_document_Document_err_String) -> Result, String> { let ffi_ref = &*ffi; - ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) + ferment::fold_to_result(ffi_ref.ok, |o| >>::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) } } - impl ferment::FFIConversionTo> for Result_ok_drive_proof_verifier_types_Contenders_err_String { - unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_drive_proof_verifier_types_Contenders_err_String { + impl ferment::FFIConversionTo, String>> for Result_ok_Vec_dpp_document_Document_err_String { + unsafe fn ffi_to_const(obj: Result, String>) -> *const Result_ok_Vec_dpp_document_Document_err_String { ferment::boxed({ let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); Self { ok, error } @@ -8009,7 +9926,7 @@ pub mod generics { } } - impl Drop for Result_ok_drive_proof_verifier_types_Contenders_err_String { + impl Drop for Result_ok_Vec_dpp_document_Document_err_String { fn drop(&mut self) { unsafe { ferment::unbox_any_opt(self.ok); @@ -8019,127 +9936,119 @@ pub mod generics { } #[no_mangle] - pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_Contenders_err_String_ctor(ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Contenders, error: *mut std::os::raw::c_char) -> *mut Result_ok_drive_proof_verifier_types_Contenders_err_String { ferment::boxed(Result_ok_drive_proof_verifier_types_Contenders_err_String { ok, error }) } + pub unsafe extern "C" fn Result_ok_Vec_dpp_document_Document_err_String_ctor(ok: *mut crate::fermented::generics::Vec_dpp_document_Document, error: *mut std::os::raw::c_char) -> *mut Result_ok_Vec_dpp_document_Document_err_String { ferment::boxed(Result_ok_Vec_dpp_document_Document_err_String { ok, error }) } #[no_mangle] - pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_Contenders_err_String_destroy(ffi: *mut Result_ok_drive_proof_verifier_types_Contenders_err_String) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Result_ok_Vec_dpp_document_Document_err_String_destroy(ffi: *mut Result_ok_Vec_dpp_document_Document_err_String) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { + pub struct Vec_dpp_identity_identity_public_key_KeyID { pub count: usize, - pub keys: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID, - pub values: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey, + pub values: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID, } - impl ferment::FFIConversionFrom> for std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { - unsafe fn ffi_from_const(ffi: *const std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey) -> std::collections::BTreeMap { + impl ferment::FFIConversionFrom> for Vec_dpp_identity_identity_public_key_KeyID { + unsafe fn ffi_from_const(ffi: *const Vec_dpp_identity_identity_public_key_KeyID) -> Vec { let ffi_ref = &*ffi; - ferment::fold_to_map(ffi_ref.count, ffi_ref.keys, ffi_ref.values, |o| >::ffi_from(o), |o| >::ffi_from(o)) + ferment::from_complex_group(ffi_ref.values, ffi_ref.count) } } - impl ferment::FFIConversionTo> for std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { unsafe fn ffi_to_const(obj: std::collections::BTreeMap) -> *const std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { ferment::boxed(Self { count: obj.len(), keys: ferment::to_complex_group(obj.keys().cloned()), values: ferment::to_complex_group(obj.values().cloned()) }) } } + impl ferment::FFIConversionTo> for Vec_dpp_identity_identity_public_key_KeyID { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_dpp_identity_identity_public_key_KeyID { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } - impl Drop for std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { - fn drop(&mut self) { - unsafe { - ferment::unbox_any_vec_ptr(self.keys, self.count); - ferment::unbox_any_vec_ptr(self.values, self.count); - } - } - } + impl Drop for Vec_dpp_identity_identity_public_key_KeyID { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey_ctor(count: usize, keys: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID, values: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey) -> *mut std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { ferment::boxed(std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { count, keys, values }) } + pub unsafe extern "C" fn Vec_dpp_identity_identity_public_key_KeyID_ctor(count: usize, values: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID) -> *mut Vec_dpp_identity_identity_public_key_KeyID { ferment::boxed(Vec_dpp_identity_identity_public_key_KeyID { count, values }) } #[no_mangle] - pub unsafe extern "C" fn std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey_destroy(ffi: *mut std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Vec_dpp_identity_identity_public_key_KeyID_destroy(ffi: *mut Vec_dpp_identity_identity_public_key_KeyID) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Arr_u8_36 { + pub struct Arr_u8_20 { pub count: usize, pub values: *mut u8, } - impl ferment::FFIConversionFrom<[u8; 36]> for Arr_u8_36 { - unsafe fn ffi_from_const(ffi: *const Arr_u8_36) -> [u8; 36] { + impl ferment::FFIConversionFrom<[u8; 20]> for Arr_u8_20 { + unsafe fn ffi_from_const(ffi: *const Arr_u8_20) -> [u8; 20] { let ffi_ref = &*ffi; let vec: Vec = ferment::from_primitive_group(ffi_ref.values, ffi_ref.count); vec.try_into().unwrap() } } - impl ferment::FFIConversionTo<[u8; 36]> for Arr_u8_36 { unsafe fn ffi_to_const(obj: [u8; 36]) -> *const Arr_u8_36 { ferment::boxed(Self { count: obj.len(), values: ferment::to_primitive_group(obj.into_iter()) }) } } + impl ferment::FFIConversionTo<[u8; 20]> for Arr_u8_20 { unsafe fn ffi_to_const(obj: [u8; 20]) -> *const Arr_u8_20 { ferment::boxed(Self { count: obj.len(), values: ferment::to_primitive_group(obj.into_iter()) }) } } - impl Drop for Arr_u8_36 { fn drop(&mut self) { unsafe { ferment::unbox_vec_ptr(self.values, self.count); } } } + impl Drop for Arr_u8_20 { fn drop(&mut self) { unsafe { ferment::unbox_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Arr_u8_36_ctor(count: usize, values: *mut u8) -> *mut Arr_u8_36 { ferment::boxed(Arr_u8_36 { count, values }) } + pub unsafe extern "C" fn Arr_u8_20_ctor(count: usize, values: *mut u8) -> *mut Arr_u8_20 { ferment::boxed(Arr_u8_20 { count, values }) } #[no_mangle] - pub unsafe extern "C" fn Arr_u8_36_destroy(ffi: *mut Arr_u8_36) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Arr_u8_20_destroy(ffi: *mut Arr_u8_20) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Result_ok_u64_err_String { - pub ok: *mut u64, + pub struct Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { + pub ok: *mut crate::fermented::types::platform_mobile::data_contracts::platform_mobile_data_contracts_DataContractFFI, pub error: *mut std::os::raw::c_char, } - impl ferment::FFIConversionFrom> for Result_ok_u64_err_String { - unsafe fn ffi_from_const(ffi: *const Result_ok_u64_err_String) -> Result { + impl ferment::FFIConversionFrom, String>> for Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { + unsafe fn ffi_from_const(ffi: *const Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String) -> Result, String> { let ffi_ref = &*ffi; - ferment::fold_to_result(ffi_ref.ok, |o| *o, ffi_ref.error, |o| >::ffi_from(o)) + ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from_opt(o), ffi_ref.error, |o| >::ffi_from(o)) } } - impl ferment::FFIConversionTo> for Result_ok_u64_err_String { - unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_u64_err_String { + impl ferment::FFIConversionTo, String>> for Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { + unsafe fn ffi_to_const(obj: Result, String>) -> *const Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { ferment::boxed({ - let (ok, error) = ferment::to_result(obj, |o| ferment::boxed(o), |o| ferment::FFIConversionTo::ffi_to(o)); + let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to_opt(o), |o| ferment::FFIConversionTo::ffi_to(o)); Self { ok, error } }) } } - impl Drop for Result_ok_u64_err_String { + impl Drop for Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { fn drop(&mut self) { unsafe { - ferment::destroy_opt_primitive(self.ok); + ferment::unbox_any_opt(self.ok); ferment::unbox_any_opt(self.error); } } } #[no_mangle] - pub unsafe extern "C" fn Result_ok_u64_err_String_ctor(ok: *mut u64, error: *mut std::os::raw::c_char) -> *mut Result_ok_u64_err_String { ferment::boxed(Result_ok_u64_err_String { ok, error }) } + pub unsafe extern "C" fn Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String_ctor(ok: *mut crate::fermented::types::platform_mobile::data_contracts::platform_mobile_data_contracts_DataContractFFI, error: *mut std::os::raw::c_char) -> *mut Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { ferment::boxed(Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { ok, error }) } #[no_mangle] - pub unsafe extern "C" fn Result_ok_u64_err_String_destroy(ffi: *mut Result_ok_u64_err_String) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String_destroy(ffi: *mut Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Vec_dpp_identity_identity_public_key_KeyID { + pub struct Vec_Tuple_platform_value_Value_platform_value_Value { pub count: usize, - pub values: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID, + pub values: *mut *mut crate::fermented::generics::Tuple_platform_value_Value_platform_value_Value, } - impl ferment::FFIConversionFrom> for Vec_dpp_identity_identity_public_key_KeyID { - unsafe fn ffi_from_const(ffi: *const Vec_dpp_identity_identity_public_key_KeyID) -> Vec { + impl ferment::FFIConversionFrom> for Vec_Tuple_platform_value_Value_platform_value_Value { + unsafe fn ffi_from_const(ffi: *const Vec_Tuple_platform_value_Value_platform_value_Value) -> Vec<(platform_value::Value, platform_value::Value)> { let ffi_ref = &*ffi; ferment::from_complex_group(ffi_ref.values, ffi_ref.count) } } - impl ferment::FFIConversionTo> for Vec_dpp_identity_identity_public_key_KeyID { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_dpp_identity_identity_public_key_KeyID { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } + impl ferment::FFIConversionTo> for Vec_Tuple_platform_value_Value_platform_value_Value { unsafe fn ffi_to_const(obj: Vec<(platform_value::Value, platform_value::Value)>) -> *const Vec_Tuple_platform_value_Value_platform_value_Value { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } - impl Drop for Vec_dpp_identity_identity_public_key_KeyID { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } + impl Drop for Vec_Tuple_platform_value_Value_platform_value_Value { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Vec_dpp_identity_identity_public_key_KeyID_ctor(count: usize, values: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID) -> *mut Vec_dpp_identity_identity_public_key_KeyID { ferment::boxed(Vec_dpp_identity_identity_public_key_KeyID { count, values }) } + pub unsafe extern "C" fn Vec_Tuple_platform_value_Value_platform_value_Value_ctor(count: usize, values: *mut *mut crate::fermented::generics::Tuple_platform_value_Value_platform_value_Value) -> *mut Vec_Tuple_platform_value_Value_platform_value_Value { ferment::boxed(Vec_Tuple_platform_value_Value_platform_value_Value { count, values }) } #[no_mangle] - pub unsafe extern "C" fn Vec_dpp_identity_identity_public_key_KeyID_destroy(ffi: *mut Vec_dpp_identity_identity_public_key_KeyID) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Vec_Tuple_platform_value_Value_platform_value_Value_destroy(ffi: *mut Vec_Tuple_platform_value_Value_platform_value_Value) { ferment::unbox_any(ffi); } } \ No newline at end of file diff --git a/dash-sdk-bindings/Cargo.lock b/dash-sdk-bindings/Cargo.lock index c124f72..7b2f5c7 100644 --- a/dash-sdk-bindings/Cargo.lock +++ b/dash-sdk-bindings/Cargo.lock @@ -9,17 +9,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] -name = "ahash" -version = "0.8.12" +name = "aes" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", - "getrandom 0.3.4", - "once_cell", - "serde", - "version_check", - "zerocopy", + "cipher", + "cpufeatures", ] [[package]] @@ -102,15 +99,6 @@ version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" -[[package]] -name = "arbitrary" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" -dependencies = [ - "derive_arbitrary", -] - [[package]] name = "arc-swap" version = "1.8.0" @@ -166,6 +154,28 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +[[package]] +name = "aws-lc-rs" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ec2f1fc3ec205783a5da9a7e6c1509cc69dedf09a1949e412c1e18469326d00" +dependencies = [ + "aws-lc-sys", + "zeroize", +] + +[[package]] +name = "aws-lc-sys" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a2f9779ce85b93ab6170dd940ad0169b5766ff848247aff13bb788b832fe3f4" +dependencies = [ + "cc", + "cmake", + "dunce", + "fs_extra", +] + [[package]] name = "backon" version = "1.6.0" @@ -182,6 +192,15 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" +[[package]] +name = "base58ck" +version = "0.1.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec5dc7e09f7bb15f0062da7c03086d6b71a2c84e0af4fccbbc7d8c6559847816" +dependencies = [ + "bitcoin_hashes", +] + [[package]] name = "base64" version = "0.13.1" @@ -221,23 +240,30 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" +[[package]] +name = "bech32" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32637268377fc7b10a8c6d51de3e7fba1ce5dd371a96e342b34e6078db558e7f" + [[package]] name = "bincode" -version = "2.0.0-rc.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f11ea1a0346b94ef188834a65c068a03aec181c94896d481d7a0a40d85b0ce95" +checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740" dependencies = [ "bincode_derive", "serde", + "unty", ] [[package]] name = "bincode_derive" -version = "2.0.0-rc.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e30759b3b99a1b802a7a3aa21c85c3ded5c28e1c83170d82d70f08bbf7f3e4c" +checksum = "bf95709a440f45e986983918d0e8a1f30a9b1df04918fc828670606804ac3c09" dependencies = [ - "virtue 0.0.13", + "virtue 0.0.18", ] [[package]] @@ -251,20 +277,17 @@ dependencies = [ ] [[package]] -name = "bit-set" -version = "0.5.3" +name = "bip39" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +checksum = "90dbd31c98227229239363921e60fcf5e558e43ec69094d46fc4996f08d1d5bc" dependencies = [ - "bit-vec", + "bitcoin_hashes", + "serde", + "unicode-normalization", + "zeroize", ] -[[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - [[package]] name = "bitcoin-io" version = "0.1.4" @@ -328,11 +351,19 @@ dependencies = [ "generic-array 0.14.9", ] +[[package]] +name = "block-padding" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +dependencies = [ + "generic-array 0.14.9", +] + [[package]] name = "blsful" version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d267776bf4742935d219fcdbdf590bed0f7e5fccdf5bd168fb30b2543a0b2b24" +source = "git+https://github.com/dashpay/agora-blsful?rev=0c34a7a488a0bd1c9a9a2196e793b303ad35c900#0c34a7a488a0bd1c9a9a2196e793b303ad35c900" dependencies = [ "anyhow", "blstrs_plus", @@ -340,9 +371,9 @@ dependencies = [ "hkdf", "merlin", "pairing", - "rand", - "rand_chacha", - "rand_core", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rand_core 0.6.4", "serde", "serde_bare", "sha2", @@ -378,7 +409,7 @@ dependencies = [ "ff", "group", "pairing", - "rand_core", + "rand_core 0.6.4", "serde", "subtle", "zeroize", @@ -399,12 +430,6 @@ version = "3.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" -[[package]] -name = "bytecount" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" - [[package]] name = "byteorder" version = "1.5.0" @@ -452,6 +477,15 @@ dependencies = [ "thiserror 2.0.18", ] +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + [[package]] name = "cbindgen" version = "0.26.0" @@ -490,6 +524,25 @@ dependencies = [ "toml 0.8.23", ] +[[package]] +name = "cbindgen" +version = "0.29.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ecb53484c9c167ba674026b656d8a27d7657a58e6066aa902bfb1a4aa00ae20" +dependencies = [ + "clap 4.5.54", + "heck 0.5.0", + "indexmap 2.13.0", + "log", + "proc-macro2", + "quote", + "serde", + "serde_json", + "syn 2.0.114", + "tempfile", + "toml 0.9.12+spec-1.1.0", +] + [[package]] name = "cc" version = "1.2.53" @@ -497,6 +550,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "755d2fce177175ffca841e9a06afdb2c4ab0f593d53b4dee48147dfaade85932" dependencies = [ "find-msvc-tools", + "jobserver", + "libc", "shlex", ] @@ -506,6 +561,12 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + [[package]] name = "chrono" version = "0.4.43" @@ -569,6 +630,16 @@ dependencies = [ "half", ] +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + [[package]] name = "clap" version = "3.2.25" @@ -620,12 +691,31 @@ version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3e64b0cc0439b12df2fa678eae89a1c56a529fd067a9115f7827f1fffd22b32" +[[package]] +name = "cmake" +version = "0.1.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" +dependencies = [ + "cc", +] + [[package]] name = "colorchoice" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + [[package]] name = "const-oid" version = "0.9.6" @@ -700,12 +790,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "crossbeam-utils" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - [[package]] name = "crunchy" version = "0.2.4" @@ -719,7 +803,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array 0.14.9", - "rand_core", + "rand_core 0.6.4", "serdect", "subtle", "zeroize", @@ -764,28 +848,20 @@ dependencies = [ [[package]] name = "dapi-grpc" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ - "dapi-grpc-macros", + "dash-platform-macros", "futures-core", "getrandom 0.2.17", "platform-version", - "prost 0.13.5", + "prost 0.14.4", "serde", "serde_bytes", "serde_json", "tenderdash-proto", - "tonic 0.13.1", - "tonic-build", -] - -[[package]] -name = "dapi-grpc-macros" -version = "2.0.0-rc.17" -dependencies = [ - "heck 0.5.0", - "quote", - "syn 2.0.114", + "tonic 0.14.6", + "tonic-prost", + "tonic-prost-build", ] [[package]] @@ -823,19 +899,69 @@ dependencies = [ "syn 2.0.114", ] +[[package]] +name = "dash-async" +version = "4.0.0-rc.2" +dependencies = [ + "thiserror 2.0.18", + "tokio", + "tracing", +] + +[[package]] +name = "dash-context-provider" +version = "4.0.0-rc.2" +dependencies = [ + "dash-async", + "dpp", + "drive", + "hex", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "dash-network" +version = "0.43.0" +source = "git+https://github.com/dashpay/rust-dashcore?rev=981e97f1015960ae5d277afdabcba1cbbc0b3a63#981e97f1015960ae5d277afdabcba1cbbc0b3a63" +dependencies = [ + "bincode", + "bincode_derive", + "cbindgen 0.29.4", + "serde", +] + +[[package]] +name = "dash-network-seeds" +version = "0.43.0" +source = "git+https://github.com/dashpay/rust-dashcore?rev=981e97f1015960ae5d277afdabcba1cbbc0b3a63#981e97f1015960ae5d277afdabcba1cbbc0b3a63" +dependencies = [ + "dash-network", +] + +[[package]] +name = "dash-platform-macros" +version = "4.0.0-rc.2" +dependencies = [ + "heck 0.5.0", + "quote", + "syn 2.0.114", +] + [[package]] name = "dash-sdk" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "arc-swap", "async-trait", - "backon", "bip37-bloom-filter", "chrono", "ciborium", "dapi-grpc", - "dapi-grpc-macros", - "dashcore-rpc", + "dash-async", + "dash-context-provider", + "dash-network-seeds", + "dash-platform-macros", "derive_more 1.0.0", "dotenvy", "dpp", @@ -847,10 +973,11 @@ dependencies = [ "futures", "hex", "http 1.4.0", - "lru", + "js-sys", + "lru 0.16.4", + "platform-encryption", "pollster", "rs-dapi-client", - "rustls-pemfile", "serde", "serde_json", "thiserror 2.0.18", @@ -862,7 +989,7 @@ dependencies = [ [[package]] name = "dash-sdk-bindings" -version = "2.0.5" +version = "4.0.0" dependencies = [ "cbindgen 0.26.0", "dash-sdk", @@ -880,17 +1007,20 @@ dependencies = [ [[package]] name = "dashcore" -version = "0.39.6" -source = "git+https://github.com/dashpay/rust-dashcore?tag=v0.39.6#51df58f5d5d499f5ee80ab17076ff70b5347c7db" +version = "0.43.0" +source = "git+https://github.com/dashpay/rust-dashcore?rev=981e97f1015960ae5d277afdabcba1cbbc0b3a63#981e97f1015960ae5d277afdabcba1cbbc0b3a63" dependencies = [ "anyhow", "base64-compat", - "bech32", - "bitflags 2.10.0", + "bech32 0.9.1", + "bincode", + "bincode_derive", + "bitvec", "blake3", "blsful", - "dashcore-private 0.39.6", - "dashcore_hashes 0.39.6", + "dash-network", + "dashcore-private", + "dashcore_hashes", "ed25519-dalek", "hex", "hex_lit", @@ -898,39 +1028,36 @@ dependencies = [ "secp256k1", "serde", "thiserror 2.0.18", + "tracing", ] [[package]] name = "dashcore-private" -version = "0.39.6" -source = "git+https://github.com/dashpay/rust-dashcore?tag=v0.39.6#51df58f5d5d499f5ee80ab17076ff70b5347c7db" - -[[package]] -name = "dashcore-private" -version = "0.41.0" -source = "git+https://github.com/dashpay/rust-dashcore#56e802189ef6c7169fd635190ee382b94cc89870" +version = "0.43.0" +source = "git+https://github.com/dashpay/rust-dashcore?rev=981e97f1015960ae5d277afdabcba1cbbc0b3a63#981e97f1015960ae5d277afdabcba1cbbc0b3a63" [[package]] name = "dashcore-rpc" -version = "0.39.6" -source = "git+https://github.com/dashpay/rust-dashcore?tag=v0.39.6#51df58f5d5d499f5ee80ab17076ff70b5347c7db" +version = "0.43.0" +source = "git+https://github.com/dashpay/rust-dashcore?rev=981e97f1015960ae5d277afdabcba1cbbc0b3a63#981e97f1015960ae5d277afdabcba1cbbc0b3a63" dependencies = [ "dashcore-rpc-json", "hex", "jsonrpc", - "log", "serde", "serde_json", + "tracing", ] [[package]] name = "dashcore-rpc-json" -version = "0.39.6" -source = "git+https://github.com/dashpay/rust-dashcore?tag=v0.39.6#51df58f5d5d499f5ee80ab17076ff70b5347c7db" +version = "0.43.0" +source = "git+https://github.com/dashpay/rust-dashcore?rev=981e97f1015960ae5d277afdabcba1cbbc0b3a63#981e97f1015960ae5d277afdabcba1cbbc0b3a63" dependencies = [ "bincode", "dashcore", "hex", + "key-wallet", "serde", "serde_json", "serde_repr", @@ -939,26 +1066,17 @@ dependencies = [ [[package]] name = "dashcore_hashes" -version = "0.39.6" -source = "git+https://github.com/dashpay/rust-dashcore?tag=v0.39.6#51df58f5d5d499f5ee80ab17076ff70b5347c7db" +version = "0.43.0" +source = "git+https://github.com/dashpay/rust-dashcore?rev=981e97f1015960ae5d277afdabcba1cbbc0b3a63#981e97f1015960ae5d277afdabcba1cbbc0b3a63" dependencies = [ - "dashcore-private 0.39.6", - "secp256k1", + "bincode", + "dashcore-private", "serde", ] -[[package]] -name = "dashcore_hashes" -version = "0.41.0" -source = "git+https://github.com/dashpay/rust-dashcore#56e802189ef6c7169fd635190ee382b94cc89870" -dependencies = [ - "dashcore-private 0.41.0", - "secp256k1", -] - [[package]] name = "dashpay-contract" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "platform-value", "platform-version", @@ -968,11 +1086,10 @@ dependencies = [ [[package]] name = "data-contracts" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "dashpay-contract", "dpns-contract", - "feature-flags-contract", "keyword-search-contract", "masternode-reward-shares-contract", "platform-value", @@ -1004,17 +1121,6 @@ dependencies = [ "serde_core", ] -[[package]] -name = "derive_arbitrary" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - [[package]] name = "derive_more" version = "1.0.0" @@ -1088,7 +1194,7 @@ checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" [[package]] name = "dpns-contract" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "platform-value", "platform-version", @@ -1098,21 +1204,23 @@ dependencies = [ [[package]] name = "dpp" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "anyhow", "async-trait", "base64 0.22.1", + "bech32 0.11.1", "bincode", - "bincode_derive", "bs58", "byteorder", "chrono", "chrono-tz", "ciborium", "dashcore", + "dashcore-rpc", "data-contracts", "derive_more 1.0.0", + "dpp-json-convertible-derive", "env_logger", "ferment-macro", "getrandom 0.2.17", @@ -1120,8 +1228,7 @@ dependencies = [ "indexmap 2.13.0", "integer-encoding", "itertools 0.13.0", - "json-schema-compatibility-validator", - "jsonschema", + "key-wallet", "lazy_static", "nohash-hasher", "num_enum 0.7.5", @@ -1131,7 +1238,7 @@ dependencies = [ "platform-value", "platform-version", "platform-versioning", - "rand", + "rand 0.8.5", "regex", "serde", "serde_json", @@ -1139,11 +1246,21 @@ dependencies = [ "sha2", "strum", "thiserror 2.0.18", + "tracing", +] + +[[package]] +name = "dpp-json-convertible-derive" +version = "4.0.0-rc.2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.114", ] [[package]] name = "drive" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "bincode", "byteorder", @@ -1169,10 +1286,11 @@ dependencies = [ [[package]] name = "drive-proof-verifier" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "bincode", "dapi-grpc", + "dash-context-provider", "derive_more 1.0.0", "dpp", "drive", @@ -1182,12 +1300,17 @@ dependencies = [ "platform-serialization", "platform-serialization-derive", "serde", - "serde_json", "tenderdash-abci", "thiserror 2.0.18", "tracing", ] +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + [[package]] name = "ed" version = "0.2.2" @@ -1227,7 +1350,7 @@ checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" dependencies = [ "curve25519-dalek", "ed25519", - "rand_core", + "rand_core 0.6.4", "serde", "sha2", "subtle", @@ -1254,7 +1377,7 @@ dependencies = [ "group", "hkdf", "pkcs8", - "rand_core", + "rand_core 0.6.4", "sec1", "subtle", "tap", @@ -1263,8 +1386,9 @@ dependencies = [ [[package]] name = "elliptic-curve-tools" -version = "0.1.2" -source = "git+https://github.com/mikelodder7/elliptic-curve-tools?rev=5789c0491252d5af8add829348af9dd6ac09d8f6#5789c0491252d5af8add829348af9dd6ac09d8f6" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1de2b6fae800f08032a6ea32995b52925b1d451bff9d445c8ab2932323277faf" dependencies = [ "elliptic-curve", "heapless", @@ -1331,33 +1455,12 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "fancy-regex" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "531e46835a22af56d1e3b66f04844bed63158bc094a628bec1d321d9b4c44bf2" -dependencies = [ - "bit-set", - "regex-automata", - "regex-syntax", -] - [[package]] name = "fastrand" version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" -[[package]] -name = "feature-flags-contract" -version = "2.0.0-rc.17" -dependencies = [ - "platform-value", - "platform-version", - "serde_json", - "thiserror 2.0.18", -] - [[package]] name = "ferment" version = "0.2.3" @@ -1397,7 +1500,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" dependencies = [ "bitvec", - "rand_core", + "rand_core 0.6.4", "subtle", ] @@ -1427,15 +1530,7 @@ checksum = "b375d6465b98090a5f25b1c7703f3859783755aa9a80433b36e0379a3ec2f369" dependencies = [ "crc32fast", "miniz_oxide", -] - -[[package]] -name = "flex-error" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c606d892c9de11507fa0dcffc116434f94e105d0bbdc4e405b61519464c49d7b" -dependencies = [ - "paste", + "zlib-rs", ] [[package]] @@ -1456,21 +1551,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - [[package]] name = "form_urlencoded" version = "1.2.2" @@ -1480,16 +1560,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "fraction" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f158e3ff0a1b334408dc9fb811cd99b446986f4d8b741bb08f9df1604085ae7" -dependencies = [ - "lazy_static", - "num", -] - [[package]] name = "fs_extra" version = "1.3.0" @@ -1665,24 +1735,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", - "rand", - "rand_core", + "rand 0.8.5", + "rand_core 0.6.4", "rand_xorshift", "subtle", ] [[package]] name = "grovedb" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f12b2378c5eda5b7cadceb34fc6e0a8fd87fe03fc04841a7d32a74ff73ccef71" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" dependencies = [ "bincode", "bincode_derive", "blake3", + "grovedb-bulk-append-tree", "grovedb-costs", + "grovedb-dense-fixed-sized-merkle-tree", + "grovedb-element", "grovedb-merk", + "grovedb-merkle-mountain-range", "grovedb-path", + "grovedb-query", "grovedb-version", "hex", "hex-literal", @@ -1694,42 +1768,82 @@ dependencies = [ ] [[package]] -name = "grovedb-costs" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e74fafe53bf5ae27128799856e557ef5cb2d7109f1f7bc7f4440bbd0f97c7072" +name = "grovedb-bulk-append-tree" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" dependencies = [ - "integer-encoding", - "intmap", + "bincode", + "blake3", + "grovedb-costs", + "grovedb-dense-fixed-sized-merkle-tree", + "grovedb-merkle-mountain-range", + "grovedb-query", + "hex", "thiserror 2.0.18", ] [[package]] -name = "grovedb-epoch-based-storage-flags" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6bdc033cc229b17cd02ee9d5c5a5a344788ed0e69ad7468b0d34d94b021fc4" +name = "grovedb-costs" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" dependencies = [ - "grovedb-costs", - "hex", "integer-encoding", "intmap", "thiserror 2.0.18", ] [[package]] -name = "grovedb-merk" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6dd6f733e9d5c15c98e05b68a2028e00b7f177baa51e8d8c1541102942a72b7" +name = "grovedb-dense-fixed-sized-merkle-tree" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" dependencies = [ "bincode", - "bincode_derive", "blake3", - "byteorder", + "grovedb-costs", + "grovedb-query", + "thiserror 2.0.18", +] + +[[package]] +name = "grovedb-element" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" +dependencies = [ + "bincode", + "bincode_derive", + "grovedb-path", + "grovedb-version", + "hex", + "integer-encoding", + "thiserror 2.0.18", +] + +[[package]] +name = "grovedb-epoch-based-storage-flags" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" +dependencies = [ + "grovedb-costs", + "hex", + "integer-encoding", + "intmap", + "thiserror 2.0.18", +] + +[[package]] +name = "grovedb-merk" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" +dependencies = [ + "bincode", + "bincode_derive", + "blake3", + "byteorder", "ed", "grovedb-costs", + "grovedb-element", "grovedb-path", + "grovedb-query", "grovedb-version", "grovedb-visualize", "hex", @@ -1738,20 +1852,42 @@ dependencies = [ "thiserror 2.0.18", ] +[[package]] +name = "grovedb-merkle-mountain-range" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" +dependencies = [ + "bincode", + "blake3", + "grovedb-costs", +] + [[package]] name = "grovedb-path" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01f716520d6c6b0f25dc4a68bc7dded645826ed57d38a06a80716a487c09d23c" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" dependencies = [ "hex", ] +[[package]] +name = "grovedb-query" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" +dependencies = [ + "bincode", + "byteorder", + "ed", + "hex", + "indexmap 2.13.0", + "integer-encoding", + "thiserror 2.0.18", +] + [[package]] name = "grovedb-version" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdc855662f05f41b10dd022226cb78e345a33f35c390e25338d21dedd45966ae" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" dependencies = [ "thiserror 2.0.18", "versioned-feature-core 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1759,9 +1895,8 @@ dependencies = [ [[package]] name = "grovedb-visualize" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34fa6f41c110d1d141bf912175f187ef51ac5d2a8f163dfd229be007461a548f" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" dependencies = [ "hex", "itertools 0.14.0", @@ -1829,6 +1964,8 @@ version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ + "allocator-api2", + "equivalent", "foldhash 0.2.0", ] @@ -1889,9 +2026,9 @@ dependencies = [ [[package]] name = "hex-literal" -version = "0.4.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" +checksum = "e712f64ec3850b98572bffac52e2c6f282b29fe6c5fa6d42334b30be438d95c1" [[package]] name = "hex_lit" @@ -2046,22 +2183,6 @@ dependencies = [ "tower-service", ] -[[package]] -name = "hyper-tls" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" -dependencies = [ - "bytes", - "http-body-util", - "hyper", - "hyper-util", - "native-tls", - "tokio", - "tokio-native-tls", - "tower-service", -] - [[package]] name = "hyper-util" version = "0.1.19" @@ -2080,7 +2201,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.6.1", + "socket2", "system-configuration", "tokio", "tower-service", @@ -2243,6 +2364,16 @@ dependencies = [ "serde_core", ] +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "block-padding", + "generic-array 0.14.9", +] + [[package]] name = "instant" version = "0.1.13" @@ -2289,15 +2420,6 @@ version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" -[[package]] -name = "iso8601" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1082f0c48f143442a1ac6122f67e360ceee130b967af4d50996e5154a45df46" -dependencies = [ - "nom", -] - [[package]] name = "itertools" version = "0.13.0" @@ -2347,72 +2469,83 @@ dependencies = [ ] [[package]] -name = "js-sys" -version = "0.3.85" +name = "jni" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" +checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498" dependencies = [ - "once_cell", - "wasm-bindgen", + "cfg-if", + "combine", + "jni-macros", + "jni-sys", + "log", + "simd_cesu8", + "thiserror 2.0.18", + "walkdir", + "windows-link", ] [[package]] -name = "json-patch" -version = "1.4.0" +name = "jni-macros" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec9ad60d674508f3ca8f380a928cfe7b096bc729c4e2dbfe3852bc45da3ab30b" +checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3" dependencies = [ - "serde", - "serde_json", - "thiserror 1.0.69", + "proc-macro2", + "quote", + "rustc_version", + "simd_cesu8", + "syn 2.0.114", ] [[package]] -name = "json-schema-compatibility-validator" -version = "2.0.0-rc.17" +name = "jni-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" dependencies = [ - "json-patch", - "once_cell", - "serde_json", - "thiserror 2.0.18", + "jni-sys-macros", ] [[package]] -name = "jsonrpc" -version = "0.18.0" +name = "jni-sys-macros" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3662a38d341d77efecb73caf01420cfa5aa63c0253fd7bc05289ef9f6616e1bf" +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" dependencies = [ - "base64 0.13.1", - "serde", - "serde_json", + "quote", + "syn 2.0.114", ] [[package]] -name = "jsonschema" -version = "0.18.0" -source = "git+https://github.com/dashpay/jsonschema-rs?branch=configure_regexp#aacc1ab5140daac30eb65d376852f01f5381979d" +name = "jobserver" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ - "ahash", - "anyhow", - "base64 0.22.1", - "bytecount", - "fancy-regex", - "fraction", "getrandom 0.3.4", - "iso8601", - "itoa", - "memchr", - "num-cmp", + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.85" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" +dependencies = [ "once_cell", - "parking_lot 0.12.5", - "percent-encoding", - "regex", + "wasm-bindgen", +] + +[[package]] +name = "jsonrpc" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3662a38d341d77efecb73caf01420cfa5aa63c0253fd7bc05289ef9f6616e1bf" +dependencies = [ + "base64 0.13.1", "serde", "serde_json", - "time", - "url", - "uuid", ] [[package]] @@ -2424,9 +2557,32 @@ dependencies = [ "cpufeatures", ] +[[package]] +name = "key-wallet" +version = "0.43.0" +source = "git+https://github.com/dashpay/rust-dashcore?rev=981e97f1015960ae5d277afdabcba1cbbc0b3a63#981e97f1015960ae5d277afdabcba1cbbc0b3a63" +dependencies = [ + "async-trait", + "base58ck", + "bip39", + "bitflags 2.10.0", + "dashcore", + "dashcore-private", + "dashcore_hashes", + "getrandom 0.2.17", + "hex", + "secp256k1", + "serde", + "serde_json", + "sha2", + "tracing", + "unicode-normalization", + "zeroize", +] + [[package]] name = "keyword-search-contract" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "platform-value", "platform-version", @@ -2494,9 +2650,24 @@ dependencies = [ "hashbrown 0.15.5", ] +[[package]] +name = "lru" +version = "0.16.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f66e8d5d03f609abc3a39e6f08e4164ebf1447a732906d39eb9b99b7919ef39" +dependencies = [ + "hashbrown 0.16.1", +] + +[[package]] +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + [[package]] name = "masternode-reward-shares-contract" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "platform-value", "platform-version", @@ -2527,7 +2698,7 @@ checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" dependencies = [ "byteorder", "keccak", - "rand_core", + "rand_core 0.6.4", "zeroize", ] @@ -2566,7 +2737,7 @@ checksum = "7ec2ce93a6f06ac6cae04c1da3f2a6a24fcfc1f0eb0b4e0f3d302f0df45326cb" dependencies = [ "ff", "group", - "rand_core", + "rand_core 0.6.4", "rustversion", "std-shims", "zeroize", @@ -2584,38 +2755,12 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9252111cf132ba0929b6f8e030cac2a24b507f3a4d6db6fb2896f27b354c714b" -[[package]] -name = "native-tls" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe 0.1.6", - "openssl-sys", - "schannel", - "security-framework 2.11.1", - "security-framework-sys", - "tempfile", -] - [[package]] name = "nohash-hasher" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" -[[package]] -name = "nom" -version = "8.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405" -dependencies = [ - "memchr", -] - [[package]] name = "nu-ansi-term" version = "0.50.3" @@ -2647,16 +2792,10 @@ checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ "num-integer", "num-traits", - "rand", + "rand 0.8.5", "serde", ] -[[package]] -name = "num-cmp" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63335b2e2c34fae2fb0aa2cecfd9f0832a1e24b3b32ecec612c3426d46dc8aaa" - [[package]] name = "num-complex" version = "0.4.6" @@ -2664,7 +2803,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" dependencies = [ "num-traits", - "rand", + "rand 0.8.5", "serde", ] @@ -2791,56 +2930,12 @@ version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" -[[package]] -name = "openssl" -version = "0.10.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08838db121398ad17ab8531ce9de97b244589089e290a384c900cb9ff7434328" -dependencies = [ - "bitflags 2.10.0", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.114", -] - -[[package]] -name = "openssl-probe" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" - [[package]] name = "openssl-probe" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f50d9b3dabb09ecd771ad0aa242ca6894994c130308ca3d7684634df8037391" -[[package]] -name = "openssl-sys" -version = "0.9.111" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82cab2d520aa75e3c58898289429321eb788c3106963d0dc886ec7a5f4adc321" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - [[package]] name = "os_str_bytes" version = "6.6.1" @@ -2864,17 +2959,7 @@ checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" dependencies = [ "instant", "lock_api", - "parking_lot_core 0.8.6", -] - -[[package]] -name = "parking_lot" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" -dependencies = [ - "lock_api", - "parking_lot_core 0.9.12", + "parking_lot_core", ] [[package]] @@ -2886,24 +2971,11 @@ dependencies = [ "cfg-if", "instant", "libc", - "redox_syscall 0.2.16", + "redox_syscall", "smallvec", "winapi", ] -[[package]] -name = "parking_lot_core" -version = "0.9.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.5.18", - "smallvec", - "windows-link", -] - [[package]] name = "parse-zoneinfo" version = "0.3.1" @@ -2913,12 +2985,6 @@ dependencies = [ "regex", ] -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - [[package]] name = "percent-encoding" version = "2.3.2" @@ -2927,11 +2993,12 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "petgraph" -version = "0.7.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" +checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" dependencies = [ "fixedbitset", + "hashbrown 0.15.5", "indexmap 2.13.0", ] @@ -2961,7 +3028,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" dependencies = [ "phf_shared", - "rand", + "rand 0.8.5", ] [[package]] @@ -3016,14 +3083,18 @@ dependencies = [ ] [[package]] -name = "pkg-config" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +name = "platform-encryption" +version = "4.0.0-rc.2" +dependencies = [ + "aes", + "cbc", + "dashcore", + "thiserror 1.0.69", +] [[package]] name = "platform-mobile" -version = "2.0.5" +version = "4.0.0" dependencies = [ "async-trait", "base64 0.13.1", @@ -3031,7 +3102,7 @@ dependencies = [ "dash-sdk", "dashcore", "dashcore-rpc", - "dashcore_hashes 0.41.0", + "dashcore_hashes", "dashpay-contract", "data-contracts", "dotenvy", @@ -3046,12 +3117,12 @@ dependencies = [ "http 0.2.12", "lazy_static", "libc", - "lru", - "parking_lot 0.11.2", + "lru 0.12.5", + "parking_lot", "platform-value", "platform-version", "quote", - "rand", + "rand 0.8.5", "rs-dapi-client", "serde", "serde_json", @@ -3068,7 +3139,7 @@ dependencies = [ [[package]] name = "platform-serialization" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "bincode", "platform-version", @@ -3076,7 +3147,7 @@ dependencies = [ [[package]] name = "platform-serialization-derive" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "proc-macro2", "quote", @@ -3086,7 +3157,7 @@ dependencies = [ [[package]] name = "platform-value" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "base64 0.22.1", "bincode", @@ -3098,7 +3169,7 @@ dependencies = [ "indexmap 2.13.0", "platform-serialization", "platform-version", - "rand", + "rand 0.8.5", "serde", "serde_json", "thiserror 2.0.18", @@ -3107,7 +3178,7 @@ dependencies = [ [[package]] name = "platform-version" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "bincode", "ferment-macro", @@ -3119,7 +3190,7 @@ dependencies = [ [[package]] name = "platform-versioning" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "proc-macro2", "quote", @@ -3219,55 +3290,132 @@ dependencies = [ ] [[package]] -name = "prost" -version = "0.13.5" +name = "prost" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "528ac67416ff8646872a3c02cad9cc4ee5dc9f9540c9b10771855c95cb2e5ae1" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-build" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03da047801ff44bb6a4d407d4860c05fd70bb81714e6b2f3812603d5b145b042" +dependencies = [ + "heck 0.5.0", + "itertools 0.14.0", + "log", + "multimap", + "petgraph", + "prettyplease", + "prost 0.14.4", + "prost-types", + "pulldown-cmark", + "pulldown-cmark-to-cmark", + "regex", + "syn 2.0.114", + "tempfile", +] + +[[package]] +name = "prost-derive" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b570b25f7617e43d59005d0990ccb79e950a423952cea19671b7a876da390adf" +dependencies = [ + "anyhow", + "itertools 0.14.0", + "proc-macro2", + "quote", + "syn 2.0.114", +] + +[[package]] +name = "prost-types" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f94967dc7688f3054c7fac87473ffae4cc4c3904800e2d9f5b857246d8963b0a" +dependencies = [ + "prost 0.14.4", +] + +[[package]] +name = "pulldown-cmark" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9f068eba8e7071c5f9511831b44f32c740d5adf574e990f946ddb53db2f314e" +dependencies = [ + "bitflags 2.10.0", + "memchr", + "unicase", +] + +[[package]] +name = "pulldown-cmark-to-cmark" +version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" +checksum = "50793def1b900256624a709439404384204a5dc3a6ec580281bfaac35e882e90" dependencies = [ - "bytes", - "prost-derive", + "pulldown-cmark", ] [[package]] -name = "prost-build" -version = "0.13.5" +name = "quinn" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" dependencies = [ - "heck 0.5.0", - "itertools 0.14.0", - "log", - "multimap", - "once_cell", - "petgraph", - "prettyplease", - "prost 0.13.5", - "prost-types", - "regex", - "syn 2.0.114", - "tempfile", + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2", + "thiserror 2.0.18", + "tokio", + "tracing", + "web-time", ] [[package]] -name = "prost-derive" -version = "0.13.5" +name = "quinn-proto" +version = "0.11.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" +checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" dependencies = [ - "anyhow", - "itertools 0.14.0", - "proc-macro2", - "quote", - "syn 2.0.114", + "aws-lc-rs", + "bytes", + "getrandom 0.3.4", + "lru-slab", + "rand 0.9.4", + "ring", + "rustc-hash", + "rustls", + "rustls-pki-types", + "slab", + "thiserror 2.0.18", + "tinyvec", + "tracing", + "web-time", ] [[package]] -name = "prost-types" -version = "0.13.5" +name = "quinn-udp" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" dependencies = [ - "prost 0.13.5", + "cfg_aliases", + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.60.2", ] [[package]] @@ -3298,8 +3446,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha", - "rand_core", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.5", ] [[package]] @@ -3309,7 +3467,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.5", ] [[package]] @@ -3321,13 +3489,22 @@ dependencies = [ "getrandom 0.2.17", ] +[[package]] +name = "rand_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", +] + [[package]] name = "rand_xorshift" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" dependencies = [ - "rand_core", + "rand_core 0.6.4", ] [[package]] @@ -3339,15 +3516,6 @@ dependencies = [ "bitflags 1.3.2", ] -[[package]] -name = "redox_syscall" -version = "0.5.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" -dependencies = [ - "bitflags 2.10.0", -] - [[package]] name = "regex" version = "1.12.2" @@ -3379,9 +3547,9 @@ checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" [[package]] name = "reqwest" -version = "0.12.28" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" +checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3" dependencies = [ "base64 0.22.1", "bytes", @@ -3395,21 +3563,19 @@ dependencies = [ "http-body-util", "hyper", "hyper-rustls", - "hyper-tls", "hyper-util", "js-sys", "log", "mime", - "native-tls", "percent-encoding", "pin-project-lite", + "quinn", + "rustls", "rustls-pki-types", - "serde", - "serde_json", - "serde_urlencoded", + "rustls-platform-verifier", "sync_wrapper", "tokio", - "tokio-native-tls", + "tokio-rustls", "tower", "tower-http", "tower-service", @@ -3435,7 +3601,7 @@ dependencies = [ [[package]] name = "rs-dapi-client" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "backon", "chrono", @@ -3447,8 +3613,8 @@ dependencies = [ "hex", "http 1.4.0", "http-serde", - "lru", - "rand", + "lru 0.16.4", + "rand 0.8.5", "serde", "serde_json", "sha2", @@ -3459,6 +3625,12 @@ dependencies = [ "wasm-bindgen-futures", ] +[[package]] +name = "rustc-hash" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" + [[package]] name = "rustc_version" version = "0.4.1" @@ -3500,6 +3672,7 @@ version = "0.23.36" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b" dependencies = [ + "aws-lc-rs", "log", "once_cell", "ring", @@ -3515,36 +3688,56 @@ version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "612460d5f7bea540c490b2b6395d8e34a953e52b491accd6c86c8164c5932a63" dependencies = [ - "openssl-probe 0.2.0", + "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.5.1", + "security-framework", ] [[package]] -name = "rustls-pemfile" -version = "2.2.0" +name = "rustls-pki-types" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" +checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" dependencies = [ - "rustls-pki-types", + "web-time", + "zeroize", ] [[package]] -name = "rustls-pki-types" -version = "1.14.0" +name = "rustls-platform-verifier" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" +checksum = "26d1e2536ce4f35f4846aa13bff16bd0ff40157cdb14cc056c7b14ba41233ba0" dependencies = [ - "zeroize", + "core-foundation 0.10.1", + "core-foundation-sys", + "jni", + "log", + "once_cell", + "rustls", + "rustls-native-certs", + "rustls-platform-verifier-android", + "rustls-webpki", + "security-framework", + "security-framework-sys", + "webpki-root-certs", + "windows-sys 0.61.2", ] +[[package]] +name = "rustls-platform-verifier-android" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" + [[package]] name = "rustls-webpki" version = "0.103.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" dependencies = [ + "aws-lc-rs", "ring", "rustls-pki-types", "untrusted", @@ -3556,12 +3749,6 @@ version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" -[[package]] -name = "ryu" -version = "1.0.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984" - [[package]] name = "same-file" version = "1.0.6" @@ -3607,7 +3794,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" dependencies = [ "bitcoin_hashes", - "rand", + "rand 0.8.5", "secp256k1-sys", "serde", ] @@ -3621,19 +3808,6 @@ dependencies = [ "cc", ] -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags 2.10.0", - "core-foundation 0.9.4", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - [[package]] name = "security-framework" version = "3.5.1" @@ -3751,15 +3925,12 @@ dependencies = [ ] [[package]] -name = "serde_urlencoded" -version = "0.7.1" +name = "serde_spanned" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", + "serde_core", ] [[package]] @@ -3842,7 +4013,7 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ - "rand_core", + "rand_core 0.6.4", ] [[package]] @@ -3851,14 +4022,32 @@ version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" +[[package]] +name = "simd_cesu8" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94f90157bb87cddf702797c5dadfa0be7d266cdf49e22da2fcaa32eff75b2c33" +dependencies = [ + "rustc_version", + "simdutf8", +] + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + [[package]] name = "simple-signer" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ + "async-trait", "base64 0.22.1", "bincode", - "dashcore-rpc", "dpp", + "hex", + "tracing", ] [[package]] @@ -3879,16 +4068,6 @@ version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" -[[package]] -name = "socket2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - [[package]] name = "socket2" version = "0.6.1" @@ -4074,8 +4253,8 @@ dependencies = [ [[package]] name = "tenderdash-abci" -version = "1.4.0" -source = "git+https://github.com/dashpay/rs-tenderdash-abci?tag=v1.4.0#e2dd15f39246081e7d569e585ab78ff5340116ac" +version = "1.5.1" +source = "git+https://github.com/dashpay/rs-tenderdash-abci?tag=v1.5.1#fae47294618125fa9d69150e8a7a5b607af6867c" dependencies = [ "bytes", "hex", @@ -4089,26 +4268,26 @@ dependencies = [ [[package]] name = "tenderdash-proto" -version = "1.4.0" -source = "git+https://github.com/dashpay/rs-tenderdash-abci?tag=v1.4.0#e2dd15f39246081e7d569e585ab78ff5340116ac" +version = "1.5.1" +source = "git+https://github.com/dashpay/rs-tenderdash-abci?tag=v1.5.1#fae47294618125fa9d69150e8a7a5b607af6867c" dependencies = [ "bytes", "chrono", "derive_more 2.1.1", - "flex-error", "num-derive", "num-traits", - "prost 0.13.5", + "prost 0.14.4", "serde", "subtle-encoding", "tenderdash-proto-compiler", + "thiserror 2.0.18", "time", ] [[package]] name = "tenderdash-proto-compiler" -version = "1.4.0" -source = "git+https://github.com/dashpay/rs-tenderdash-abci?tag=v1.4.0#e2dd15f39246081e7d569e585ab78ff5340116ac" +version = "1.5.1" +source = "git+https://github.com/dashpay/rs-tenderdash-abci?tag=v1.5.1#fae47294618125fa9d69150e8a7a5b607af6867c" dependencies = [ "fs_extra", "prost-build", @@ -4250,7 +4429,7 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "token-history-contract" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "platform-value", "platform-version", @@ -4268,7 +4447,7 @@ dependencies = [ "libc", "mio", "pin-project-lite", - "socket2 0.6.1", + "socket2", "tokio-macros", "windows-sys 0.61.2", ] @@ -4284,16 +4463,6 @@ dependencies = [ "syn 2.0.114", ] -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.26.4" @@ -4344,11 +4513,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", - "serde_spanned", + "serde_spanned 0.6.9", "toml_datetime 0.6.11", "toml_edit 0.22.27", ] +[[package]] +name = "toml" +version = "0.9.12+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" +dependencies = [ + "indexmap 2.13.0", + "serde_core", + "serde_spanned 1.1.1", + "toml_datetime 0.7.5+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 0.7.14", +] + [[package]] name = "toml_datetime" version = "0.6.11" @@ -4386,7 +4570,7 @@ checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ "indexmap 2.13.0", "serde", - "serde_spanned", + "serde_spanned 0.6.9", "toml_datetime 0.6.11", "toml_write", "winnow 0.7.14", @@ -4406,11 +4590,11 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.0.6+spec-1.1.0" +version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ - "winnow 0.7.14", + "winnow 1.0.3", ] [[package]] @@ -4419,6 +4603,12 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" +[[package]] +name = "toml_writer" +version = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db" + [[package]] name = "tonic" version = "0.11.0" @@ -4442,9 +4632,9 @@ dependencies = [ [[package]] name = "tonic" -version = "0.13.1" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e581ba15a835f4d9ea06c55ab1bd4dce26fc53752c69a04aac00703bfb49ba9" +checksum = "ac2a5518c70fa84342385732db33fb3f44bc4cc748936eb5833d2df34d6445ef" dependencies = [ "async-trait", "base64 0.22.1", @@ -4458,9 +4648,9 @@ dependencies = [ "hyper-util", "percent-encoding", "pin-project", - "prost 0.13.5", "rustls-native-certs", - "socket2 0.5.10", + "socket2", + "sync_wrapper", "tokio", "tokio-rustls", "tokio-stream", @@ -4468,14 +4658,37 @@ dependencies = [ "tower-layer", "tower-service", "tracing", - "webpki-roots 0.26.11", + "webpki-roots", ] [[package]] name = "tonic-build" -version = "0.13.1" +version = "0.14.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c68f61875ac5293cf72e6c8cf0158086428c82c37229e98c840878f1706b0322" +dependencies = [ + "prettyplease", + "proc-macro2", + "quote", + "syn 2.0.114", +] + +[[package]] +name = "tonic-prost" +version = "0.14.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50849f68853be452acf590cde0b146665b8d507b3b8af17261df47e02c209ea0" +dependencies = [ + "bytes", + "prost 0.14.4", + "tonic 0.14.6", +] + +[[package]] +name = "tonic-prost-build" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac6f67be712d12f0b41328db3137e0d0757645d8904b4cb7d51cd9c2279e847" +checksum = "654e5643eff75d7f8c99197ce1440ed19a3474eada74c12bbac488b2cafdae27" dependencies = [ "prettyplease", "proc-macro2", @@ -4483,13 +4696,15 @@ dependencies = [ "prost-types", "quote", "syn 2.0.114", + "tempfile", + "tonic-build", ] [[package]] name = "tonic-web-wasm-client" -version = "0.7.1" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66e3bb7acca55e6790354be650f4042d418fcf8e2bc42ac382348f2b6bf057e5" +checksum = "3c0469c353de5f665c95f898074b5b004b500c6722214c3249f1dc79c0a2a3f6" dependencies = [ "base64 0.22.1", "byteorder", @@ -4502,7 +4717,7 @@ dependencies = [ "js-sys", "pin-project", "thiserror 2.0.18", - "tonic 0.13.1", + "tonic 0.14.6", "tower-service", "wasm-bindgen", "wasm-bindgen-futures", @@ -4643,6 +4858,12 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +[[package]] +name = "typed-path" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e" + [[package]] name = "typenum" version = "1.19.0" @@ -4658,12 +4879,27 @@ dependencies = [ "core2", ] +[[package]] +name = "unicase" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" + [[package]] name = "unicode-ident" version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +[[package]] +name = "unicode-normalization" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8" +dependencies = [ + "tinyvec", +] + [[package]] name = "unicode-segmentation" version = "1.12.0" @@ -4682,6 +4918,12 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" +[[package]] +name = "unty" +version = "0.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" + [[package]] name = "ureq" version = "3.1.4" @@ -4696,7 +4938,7 @@ dependencies = [ "rustls-pki-types", "ureq-proto", "utf-8", - "webpki-roots 1.0.5", + "webpki-roots", ] [[package]] @@ -4741,28 +4983,12 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" -[[package]] -name = "uuid" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - [[package]] name = "valuable" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - [[package]] name = "version_check" version = "0.9.5" @@ -4782,21 +5008,20 @@ source = "git+https://github.com/dashpay/versioned-feature-core#560157096c8405a4 [[package]] name = "virtue" -version = "0.0.13" +version = "0.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dcc60c0624df774c82a0ef104151231d37da4962957d691c011c852b2473314" +checksum = "7302ac74a033bf17b6e609ceec0f891ca9200d502d31f02dc7908d3d98767c9d" [[package]] name = "virtue" -version = "0.0.17" +version = "0.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7302ac74a033bf17b6e609ceec0f891ca9200d502d31f02dc7908d3d98767c9d" +checksum = "051eb1abcf10076295e815102942cc58f9d5e3b4560e46e53c21e8ff6f3af7b1" [[package]] name = "vsss-rs" version = "5.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fec4ebcc5594130c31b49594d55c0583fe80621f252f570b222ca4845cafd3cf" +source = "git+https://github.com/dashpay/vsss-rs?branch=main#668f1406bf25a4b9a95cd97c9069f7a1632897c3" dependencies = [ "crypto-bigint", "elliptic-curve", @@ -4804,7 +5029,7 @@ dependencies = [ "generic-array 1.3.5", "hex", "num", - "rand_core", + "rand_core 0.6.4", "serde", "sha3", "subtle", @@ -4823,7 +5048,7 @@ dependencies = [ [[package]] name = "wallet-utils-contract" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "platform-value", "platform-version", @@ -4916,9 +5141,9 @@ dependencies = [ [[package]] name = "wasm-streams" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" +checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb" dependencies = [ "futures-util", "js-sys", @@ -4938,12 +5163,22 @@ dependencies = [ ] [[package]] -name = "webpki-roots" -version = "0.26.11" +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki-root-certs" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" +checksum = "f31141ce3fc3e300ae89b78c0dd67f9708061d1d2eda54b8209346fd6be9a92c" dependencies = [ - "webpki-roots 1.0.5", + "rustls-pki-types", ] [[package]] @@ -5239,6 +5474,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1" + [[package]] name = "wit-bindgen" version = "0.51.0" @@ -5247,7 +5488,7 @@ checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" [[package]] name = "withdrawals-contract" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "num_enum 0.5.11", "platform-value", @@ -5393,21 +5634,24 @@ dependencies = [ [[package]] name = "zip" -version = "2.4.2" +version = "8.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fabe6324e908f85a1c52063ce7aa26b68dcb7eb6dbc83a2d148403c9bc3eba50" +checksum = "2d04a6b5381502aa6087c94c669499eb1602eb9c5e8198e534de571f7154809b" dependencies = [ - "arbitrary", "crc32fast", - "crossbeam-utils", - "displaydoc", "flate2", "indexmap 2.13.0", "memchr", - "thiserror 2.0.18", + "typed-path", "zopfli", ] +[[package]] +name = "zlib-rs" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40990edd51aae2c2b6907af74ffb635029d5788228222c4bb811e9351c0caad3" + [[package]] name = "zmij" version = "1.0.15" @@ -5426,6 +5670,11 @@ dependencies = [ "simd-adler32", ] +[[patch.unused]] +name = "elliptic-curve-tools" +version = "0.1.2" +source = "git+https://github.com/mikelodder7/elliptic-curve-tools?rev=5789c0491252d5af8add829348af9dd6ac09d8f6#5789c0491252d5af8add829348af9dd6ac09d8f6" + [[patch.unused]] name = "rs-x11-hash" version = "0.1.9" diff --git a/dash-sdk-bindings/Cargo.toml b/dash-sdk-bindings/Cargo.toml index 765a8ef..3f2d4ff 100644 --- a/dash-sdk-bindings/Cargo.toml +++ b/dash-sdk-bindings/Cargo.toml @@ -22,12 +22,11 @@ drive = { path = "../../platform/packages/rs-drive", default-features = false, f #tokio = { version = "1.34", features = ["full"] } #tokio-util = "0.7.11" dashcore = { git = "https://github.com/dashpay/rust-dashcore", features = [ - "std", "secp-recovery", "rand", "signer", "serde", -], default-features = false, tag = "v0.39.6" } +], default-features = false, rev = "981e97f1015960ae5d277afdabcba1cbbc0b3a63" } [build-dependencies] cbindgen = "0.26.0" ferment-sys = { git = "https://github.com/dashpay/ferment", tag = "v0.2.3", package = "ferment-sys", features = ["cbindgen_only"] } diff --git a/dash-sdk-bindings/src/fermented.rs b/dash-sdk-bindings/src/fermented.rs index 4e6ed43..e6537fe 100644 --- a/dash-sdk-bindings/src/fermented.rs +++ b/dash-sdk-bindings/src/fermented.rs @@ -16,3941 +16,3847 @@ unused_variables )] pub mod types { - pub mod rs_dapi_client { - use crate as dash_sdk_bindings; - - pub mod transport { use crate as dash_sdk_bindings; } - } - - pub mod dpp { + pub mod platform_mobile { use crate as dash_sdk_bindings; - pub mod fee { + pub mod clone { use crate as dash_sdk_bindings; - pub mod epoch { - use crate as dash_sdk_bindings; - - #[cfg(feature = "fee-distribution")] - pub mod distribution { - use crate as dash_sdk_bindings; - - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } - } + #[doc = "FFI-representation of the [`platform_mobile::clone::ResourceVotesByIdentity_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_ResourceVotesByIdentity_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ResourceVotesByIdentity) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ResourceVotesByIdentity { + let obj = platform_mobile::clone::ResourceVotesByIdentity_clone(>::ffi_from(o)); + >::ffi_to(obj) } - #[cfg(feature = "fee-distribution")] - pub mod fee_result { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::clone::CoreBlockHeight_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_CoreBlockHeight_clone(height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { + let obj = platform_mobile::clone::CoreBlockHeight_clone(>::ffi_from(height)); + >::ffi_to(obj) + } - pub mod refunds { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::clone::Voter_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Voter_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Voter) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Voter { + let obj = platform_mobile::clone::Voter_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } - } + #[doc = "FFI-representation of the [`platform_mobile::clone::DocumentV0_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_DocumentV0_clone(document: *mut crate::fermented::types::dpp::document::v0::dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::document::v0::dpp_document_v0_DocumentV0 { + let obj = platform_mobile::clone::DocumentV0_clone(>::ffi_from(document)); + >::ffi_to(obj) } - pub mod default_costs { use crate as dash_sdk_bindings; } - } + #[doc = "FFI-representation of the [`platform_mobile::clone::Arr_u8_32_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Arr_u8_32_clone(slice: *mut crate::fermented::generics::Arr_u8_32) -> *mut crate::fermented::generics::Arr_u8_32 { + let obj = platform_mobile::clone::Arr_u8_32_clone(>::ffi_from(slice)); + >::ffi_to(obj) + } - pub mod group { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::clone::prelude_TimestampMillis_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_prelude_TimestampMillis_clone(time: *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis { + let obj = platform_mobile::clone::prelude_TimestampMillis_clone(>::ffi_from(time)); + >::ffi_to(obj) + } - pub mod group_action { use crate as dash_sdk_bindings; } - } + #[doc = "FFI-representation of the [`platform_mobile::clone::ResourceVoteChoice_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_ResourceVoteChoice_clone(o: *mut crate::fermented::types::dpp::voting::vote_choices::resource_vote_choice::dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice) -> *mut crate::fermented::types::dpp::voting::vote_choices::resource_vote_choice::dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { + let obj = platform_mobile::clone::ResourceVoteChoice_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - #[cfg(feature = "core-types")] - pub mod core_types { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::clone::Contenders_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Contenders_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Contenders) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Contenders { + let obj = platform_mobile::clone::Contenders_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - pub mod validator_set { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::clone::ValueMap_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_ValueMap_clone(value_map: *mut crate::fermented::types::platform_value::value_map::platform_value_value_map_ValueMap) -> *mut crate::fermented::types::platform_value::value_map::platform_value_value_map_ValueMap { + let obj = platform_mobile::clone::ValueMap_clone(>::ffi_from(value_map)); + >::ffi_to(obj) + } - pub mod v0 { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::clone::Value_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Value_clone(value: *mut crate::fermented::types::platform_value::platform_value_Value) -> *mut crate::fermented::types::platform_value::platform_value_Value { + let obj = platform_mobile::clone::Value_clone(>::ffi_from(value)); + >::ffi_to(obj) } - pub mod validator { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::clone::Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_clone(o: *mut crate::fermented::generics::Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) -> *mut crate::fermented::generics::Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { + let obj = platform_mobile::clone::Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_clone()>>::ffi_from(o)); + )>>::ffi_to(obj) + } - pub mod v0 { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::clone::KeyID_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_KeyID_clone(id: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID { + let obj = platform_mobile::clone::KeyID_clone(>::ffi_from(id)); + >::ffi_to(obj) } - } - pub mod bls { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::clone::Vec_Value_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Vec_Value_clone(value_vec: *mut crate::fermented::generics::Vec_platform_value_Value) -> *mut crate::fermented::generics::Vec_platform_value_Value { + let obj = platform_mobile::clone::Vec_Value_clone(>>::ffi_from(value_vec)); + >>::ffi_to(obj) + } - pub mod asset_lock { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::clone::std_collections_Map_keys_String_values_platform_value_Value_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_std_collections_Map_keys_String_values_platform_value_Value_clone(map: *mut crate::fermented::generics::std_collections_Map_keys_String_values_platform_value_Value) -> *mut crate::fermented::generics::std_collections_Map_keys_String_values_platform_value_Value { + let obj = platform_mobile::clone::std_collections_Map_keys_String_values_platform_value_Value_clone(>>::ffi_from(map)); + >>::ffi_to(obj) + } - pub mod reduced_asset_lock_value { use crate as dash_sdk_bindings; } - } + #[doc = "FFI-representation of the [`platform_mobile::clone::ContestedDocumentResourceVotePoll_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_ContestedDocumentResourceVotePoll_clone(o: *mut crate::fermented::types::dpp::voting::vote_polls::contested_document_resource_vote_poll::dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut crate::fermented::types::dpp::voting::vote_polls::contested_document_resource_vote_poll::dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { + let obj = platform_mobile::clone::ContestedDocumentResourceVotePoll_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - pub mod validation { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::clone::Vote_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Vote_clone(o: *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote) -> *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote { + let obj = platform_mobile::clone::Vote_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - #[cfg(feature = "validation")] - pub mod byte_array_keyword { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::clone::ContenderWithSerializedDocument_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_ContenderWithSerializedDocument_clone(o: *mut crate::fermented::types::dpp::voting::contender_structs::contender::dpp_voting_contender_structs_contender_ContenderWithSerializedDocument) -> *mut crate::fermented::types::dpp::voting::contender_structs::contender::dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { + let obj = platform_mobile::clone::ContenderWithSerializedDocument_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } + #[doc = "FFI-representation of the [`platform_mobile::clone::ResourceVote_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_ResourceVote_clone(o: *mut crate::fermented::types::dpp::voting::votes::resource_vote::dpp_voting_votes_resource_vote_ResourceVote) -> *mut crate::fermented::types::dpp::voting::votes::resource_vote::dpp_voting_votes_resource_vote_ResourceVote { + let obj = platform_mobile::clone::ResourceVote_clone(>::ffi_from(o)); + >::ffi_to(obj) } - #[cfg(feature = "validation")] - pub mod json_schema_validator { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::clone::VotePollsGroupedByTimestamp_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_VotePollsGroupedByTimestamp_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_VotePollsGroupedByTimestamp) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_VotePollsGroupedByTimestamp { + let obj = platform_mobile::clone::VotePollsGroupedByTimestamp_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - pub mod methods { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::clone::WhereClause_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_WhereClause_clone(o: *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereClause) -> *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereClause { + let obj = platform_mobile::clone::WhereClause_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - pub mod new { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::clone::ContenderWithSerializedDocumentV0_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_ContenderWithSerializedDocumentV0_clone(o: *mut crate::fermented::types::dpp::voting::contender_structs::contender::v0::dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut crate::fermented::types::dpp::voting::contender_structs::contender::v0::dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { + let obj = platform_mobile::clone::ContenderWithSerializedDocumentV0_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - pub mod compile { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::clone::VotePoll_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_VotePoll_clone(o: *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll) -> *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll { + let obj = platform_mobile::clone::VotePoll_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - pub mod validate { use crate as dash_sdk_bindings; } - } + #[doc = "FFI-representation of the [`platform_mobile::clone::Arr_u8_36_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Arr_u8_36_clone(slice: *mut crate::fermented::generics::Arr_u8_36) -> *mut crate::fermented::generics::Arr_u8_36 { + let obj = platform_mobile::clone::Arr_u8_36_clone(>::ffi_from(slice)); + >::ffi_to(obj) } - } - pub mod block { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::clone::OrderClause_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_OrderClause_clone(o: *mut crate::fermented::types::drive::query::ordering::drive_query_ordering_OrderClause) -> *mut crate::fermented::types::drive::query::ordering::drive_query_ordering_OrderClause { + let obj = platform_mobile::clone::OrderClause_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - pub mod block_info { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::clone::std_collections_BTreeSet_drive_proof_verifier_types_Voter_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_std_collections_BTreeSet_drive_proof_verifier_types_Voter_clone(o: *mut crate::fermented::generics::std_collections_BTreeSet_drive_proof_verifier_types_Voter) -> *mut crate::fermented::generics::std_collections_BTreeSet_drive_proof_verifier_types_Voter { + let obj = platform_mobile::clone::std_collections_BTreeSet_drive_proof_verifier_types_Voter_clone(>>::ffi_from(o)); + >>::ffi_to(obj) + } - #[doc = "FFI-representation of the [`BlockInfo`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_block_block_info_BlockInfo { - pub time_ms: *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis, - pub height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, - pub core_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, - pub epoch: *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_Epoch, - } + #[doc = "FFI-representation of the [`platform_mobile::clone::Voters_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Voters_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Voters) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Voters { + let obj = platform_mobile::clone::Voters_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - impl ferment::FFIConversionFrom for dpp_block_block_info_BlockInfo { - unsafe fn ffi_from_const(ffi: *const dpp_block_block_info_BlockInfo) -> dpp::block::block_info::BlockInfo { - let ffi_ref = &*ffi; - dpp::block::block_info::BlockInfo { time_ms: >::ffi_from(ffi_ref.time_ms), height: >::ffi_from(ffi_ref.height), core_height: >::ffi_from(ffi_ref.core_height), epoch: >::ffi_from(ffi_ref.epoch) } - } - } + #[doc = "FFI-representation of the [`platform_mobile::clone::Revision_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Revision_clone(revision: *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision { + let obj = platform_mobile::clone::Revision_clone(>::ffi_from(revision)); + >::ffi_to(obj) + } - impl ferment::FFIConversionTo for dpp_block_block_info_BlockInfo { unsafe fn ffi_to_const(obj: dpp::block::block_info::BlockInfo) -> *const dpp_block_block_info_BlockInfo { ferment::boxed(dpp_block_block_info_BlockInfo { time_ms: >::ffi_to(obj.time_ms), height: >::ffi_to(obj.height), core_height: >::ffi_to(obj.core_height), epoch: >::ffi_to(obj.epoch) }) } } + #[doc = "FFI-representation of the [`platform_mobile::clone::Hash256_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Hash256_clone(o: *mut crate::fermented::types::platform_value::platform_value_Hash256) -> *mut crate::fermented::types::platform_value::platform_value_Hash256 { + let obj = platform_mobile::clone::Hash256_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - impl Drop for dpp_block_block_info_BlockInfo { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.time_ms); - ferment::unbox_any(ffi_ref.height); - ferment::unbox_any(ffi_ref.core_height); - ferment::unbox_any(ffi_ref.epoch); - } - } - } + #[doc = "FFI-representation of the [`platform_mobile::clone::Document_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Document_clone(document: *mut crate::fermented::types::dpp::document::dpp_document_Document) -> *mut crate::fermented::types::dpp::document::dpp_document_Document { + let obj = platform_mobile::clone::Document_clone(>::ffi_from(document)); + >::ffi_to(obj) + } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_ctor<>(time_ms: *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis, height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, core_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, epoch: *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_Epoch) -> *mut dpp_block_block_info_BlockInfo { ferment::boxed(dpp_block_block_info_BlockInfo { time_ms, height, core_height, epoch }) } + #[doc = "FFI-representation of the [`platform_mobile::clone::BlockHeight_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_BlockHeight_clone(height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { + let obj = platform_mobile::clone::BlockHeight_clone(>::ffi_from(height)); + >::ffi_to(obj) + } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_destroy<>(ffi: *mut dpp_block_block_info_BlockInfo) { ferment::unbox_any(ffi); } + #[doc = "FFI-representation of the [`platform_mobile::clone::Vec_u8_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Vec_u8_clone(vec: *mut crate::fermented::generics::Vec_u8) -> *mut crate::fermented::generics::Vec_u8 { + let obj = platform_mobile::clone::Vec_u8_clone(>>::ffi_from(vec)); + >>::ffi_to(obj) + } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_get_time_ms<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis { (*obj).time_ms } + #[doc = "FFI-representation of the [`platform_mobile::clone::WhereOperator_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_WhereOperator_clone(o: *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereOperator) -> *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereOperator { + let obj = platform_mobile::clone::WhereOperator_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_get_height<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).height } + #[doc = "FFI-representation of the [`platform_mobile::clone::Arr_u8_20_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_Arr_u8_20_clone(slice: *mut crate::fermented::generics::Arr_u8_20) -> *mut crate::fermented::generics::Arr_u8_20 { + let obj = platform_mobile::clone::Arr_u8_20_clone(>::ffi_from(slice)); + >::ffi_to(obj) + } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_get_core_height<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).core_height } + #[doc = "FFI-representation of the [`platform_mobile::clone::ContestedResource_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_ContestedResource_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResource) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResource { + let obj = platform_mobile::clone::ContestedResource_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_get_epoch<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_Epoch { (*obj).epoch } + #[doc = "FFI-representation of the [`platform_mobile::clone::ContestedResources_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_ContestedResources_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResources) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResources { + let obj = platform_mobile::clone::ContestedResources_clone(>::ffi_from(o)); + >::ffi_to(obj) + } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_set_time_ms<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis { (*obj).time_ms } + #[doc = "FFI-representation of the [`platform_mobile::clone::TimestampMillis_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_TimestampMillis_clone(time: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { + let obj = platform_mobile::clone::TimestampMillis_clone(>::ffi_from(time)); + >::ffi_to(obj) + } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_set_height<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).height } + #[doc = "FFI-representation of the [`platform_mobile::clone::ResourceVoteV0_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_clone_ResourceVoteV0_clone(o: *mut crate::fermented::types::dpp::voting::votes::resource_vote::v0::dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> *mut crate::fermented::types::dpp::voting::votes::resource_vote::v0::dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { + let obj = platform_mobile::clone::ResourceVoteV0_clone(>::ffi_from(o)); + >::ffi_to(obj) + } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_set_core_height<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).core_height } + pub mod put { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_set_epoch<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_Epoch { (*obj).epoch } + #[doc = "FFI-representation of the [`platform_mobile::put::put_identity_sdk`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_put_identity_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, identity: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, asset_lock_proof: *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_AssetLockProofFFI, asset_lock_proof_private_key: *mut crate::fermented::generics::Vec_u8, signer_context: usize, signer_callback: u64, is_testnet: bool) -> *mut crate::fermented::generics::Result_ok_dpp_identity_identity_Identity_err_String { + let obj = platform_mobile::put::put_identity_sdk(rust_sdk, >::ffi_from(identity), >::ffi_from(asset_lock_proof), >>::ffi_from(asset_lock_proof_private_key), signer_context, signer_callback, is_testnet); + >>::ffi_to(obj) } - pub mod extended_block_info { - use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::put::put_document_sdk`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_put_document_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, document: *mut crate::fermented::types::dpp::document::dpp_document_Document, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type_str: *mut std::os::raw::c_char, identity_public_key: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey, block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, signer_context: usize, signer_callback: u64) -> *mut crate::fermented::generics::Result_ok_dpp_document_Document_err_String { + let obj = platform_mobile::put::put_document_sdk(rust_sdk, >::ffi_from(document), >::ffi_from(data_contract_id), >::ffi_from(document_type_str), >::ffi_from(identity_public_key), >::ffi_from(block_height), >::ffi_from(core_block_height), signer_context, signer_callback); + >>::ffi_to(obj) } - pub mod epoch { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::put::InstantAssetLockProofFFI_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_clone(a: *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_InstantAssetLockProofFFI) -> *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_InstantAssetLockProofFFI { + let obj = platform_mobile::put::InstantAssetLockProofFFI_clone(>::ffi_from(a)); + >::ffi_to(obj) + } - #[doc = "FFI-representation of the [`EpochIndex`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_block_epoch_EpochIndex(u16); + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`AssetLockProofFFI`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum platform_mobile_put_AssetLockProofFFI { Instant(*mut crate::fermented::types::platform_mobile::put::platform_mobile_put_InstantAssetLockProofFFI), Chain(*mut crate::fermented::types::platform_mobile::put::platform_mobile_put_ChainAssetLockProofFFI) } - impl ferment::FFIConversionFrom for dpp_block_epoch_EpochIndex { - unsafe fn ffi_from_const(ffi: *const dpp_block_epoch_EpochIndex) -> dpp::block::epoch::EpochIndex { - let ffi_ref = &*ffi; - ffi_ref.0 + impl ferment::FFIConversionFrom for platform_mobile_put_AssetLockProofFFI { + unsafe fn ffi_from_const(ffi: *const platform_mobile_put_AssetLockProofFFI) -> platform_mobile::put::AssetLockProofFFI { + let ffi_ref = &*ffi; + match ffi_ref { + platform_mobile_put_AssetLockProofFFI::Instant(o_0) => platform_mobile::put::AssetLockProofFFI::Instant(>::ffi_from(*o_0)), + platform_mobile_put_AssetLockProofFFI::Chain(o_0) => platform_mobile::put::AssetLockProofFFI::Chain(>::ffi_from(*o_0)) } } + } - impl ferment::FFIConversionTo for dpp_block_epoch_EpochIndex { unsafe fn ffi_to_const(obj: dpp::block::epoch::EpochIndex) -> *const dpp_block_epoch_EpochIndex { ferment::boxed(dpp_block_epoch_EpochIndex(obj)) } } + impl ferment::FFIConversionTo for platform_mobile_put_AssetLockProofFFI { + unsafe fn ffi_to_const(obj: platform_mobile::put::AssetLockProofFFI) -> *const platform_mobile_put_AssetLockProofFFI { + ferment::boxed(match obj { + platform_mobile::put::AssetLockProofFFI::Instant(o_0) => platform_mobile_put_AssetLockProofFFI::Instant(>::ffi_to(o_0)), + platform_mobile::put::AssetLockProofFFI::Chain(o_0) => platform_mobile_put_AssetLockProofFFI::Chain(>::ffi_to(o_0)), + _ => unreachable!("This is unreachable") + }) + } + } - impl Drop for dpp_block_epoch_EpochIndex { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ; - } + impl Drop for platform_mobile_put_AssetLockProofFFI { + fn drop(&mut self) { + unsafe { + match self { + platform_mobile_put_AssetLockProofFFI::Instant(o_0) => { ferment::unbox_any(*o_0); } + platform_mobile_put_AssetLockProofFFI::Chain(o_0) => { ferment::unbox_any(*o_0); } + _ => unreachable!("This is unreachable") + }; } } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_epoch_EpochIndex_ctor<>(o_0: u16) -> *mut dpp_block_epoch_EpochIndex { ferment::boxed(dpp_block_epoch_EpochIndex(o_0)) } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_AssetLockProofFFI_Instant_ctor(o_o_0: *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_InstantAssetLockProofFFI) -> *mut platform_mobile_put_AssetLockProofFFI { ferment::boxed(platform_mobile_put_AssetLockProofFFI::Instant(o_o_0)) } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_epoch_EpochIndex_destroy<>(ffi: *mut dpp_block_epoch_EpochIndex) { ferment::unbox_any(ffi); } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_AssetLockProofFFI_Chain_ctor(o_o_0: *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_ChainAssetLockProofFFI) -> *mut platform_mobile_put_AssetLockProofFFI { ferment::boxed(platform_mobile_put_AssetLockProofFFI::Chain(o_o_0)) } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_epoch_EpochIndex_get_0<>(obj: *const dpp_block_epoch_EpochIndex) -> u16 { (*obj).0 } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_AssetLockProofFFI_destroy<>(ffi: *mut platform_mobile_put_AssetLockProofFFI) { ferment::unbox_any(ffi); } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_epoch_EpochIndex_set_0<>(obj: *const dpp_block_epoch_EpochIndex) -> u16 { (*obj).0 } + #[doc = "FFI-representation of the [`platform_mobile::put::topup_identity_sdk`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_topup_identity_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, identity: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, asset_lock_proof: *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_AssetLockProofFFI, asset_lock_proof_private_key: *mut crate::fermented::generics::Vec_u8, is_testnet: bool) -> *mut crate::fermented::generics::Result_ok_u64_err_String { + let obj = platform_mobile::put::topup_identity_sdk(rust_sdk, >::ffi_from(identity), >::ffi_from(asset_lock_proof), >>::ffi_from(asset_lock_proof_private_key), is_testnet); + >>::ffi_to(obj) + } - #[doc = "FFI-representation of the [`Epoch`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_block_epoch_Epoch { - pub index: *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_EpochIndex, - pub key: *mut crate::fermented::generics::Arr_u8_2, - } + #[doc = "FFI-representation of the [`ChainAssetLockProofFFI`]"] + #[repr(C)] + #[derive(Clone)] + pub struct platform_mobile_put_ChainAssetLockProofFFI { + pub core_chain_locked_height: u32, + pub out_point: *mut platform_mobile::custom::OutPoint, + } - impl ferment::FFIConversionFrom for dpp_block_epoch_Epoch { - unsafe fn ffi_from_const(ffi: *const dpp_block_epoch_Epoch) -> dpp::block::epoch::Epoch { - let ffi_ref = &*ffi; - dpp::block::epoch::Epoch { index: >::ffi_from(ffi_ref.index), key: >::ffi_from(ffi_ref.key) } - } + impl ferment::FFIConversionFrom for platform_mobile_put_ChainAssetLockProofFFI { + unsafe fn ffi_from_const(ffi: *const platform_mobile_put_ChainAssetLockProofFFI) -> platform_mobile::put::ChainAssetLockProofFFI { + let ffi_ref = &*ffi; + platform_mobile::put::ChainAssetLockProofFFI { core_chain_locked_height: ffi_ref.core_chain_locked_height, out_point: >::ffi_from(ffi_ref.out_point) } } + } - impl ferment::FFIConversionTo for dpp_block_epoch_Epoch { unsafe fn ffi_to_const(obj: dpp::block::epoch::Epoch) -> *const dpp_block_epoch_Epoch { ferment::boxed(dpp_block_epoch_Epoch { index: >::ffi_to(obj.index), key: >::ffi_to(obj.key) }) } } + impl ferment::FFIConversionTo for platform_mobile_put_ChainAssetLockProofFFI { unsafe fn ffi_to_const(obj: platform_mobile::put::ChainAssetLockProofFFI) -> *const platform_mobile_put_ChainAssetLockProofFFI { ferment::boxed(platform_mobile_put_ChainAssetLockProofFFI { core_chain_locked_height: obj.core_chain_locked_height, out_point: >::ffi_to(obj.out_point) }) } } - impl Drop for dpp_block_epoch_Epoch { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.index); - ferment::unbox_any(ffi_ref.key); - } + impl Drop for platform_mobile_put_ChainAssetLockProofFFI { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ; + ferment::unbox_any(ffi_ref.out_point); } } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_epoch_Epoch_ctor<>(index: *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_EpochIndex, key: *mut crate::fermented::generics::Arr_u8_2) -> *mut dpp_block_epoch_Epoch { ferment::boxed(dpp_block_epoch_Epoch { index, key }) } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_ctor<>(core_chain_locked_height: u32, out_point: *mut platform_mobile::custom::OutPoint) -> *mut platform_mobile_put_ChainAssetLockProofFFI { ferment::boxed(platform_mobile_put_ChainAssetLockProofFFI { core_chain_locked_height, out_point }) } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_epoch_Epoch_destroy<>(ffi: *mut dpp_block_epoch_Epoch) { ferment::unbox_any(ffi); } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_destroy<>(ffi: *mut platform_mobile_put_ChainAssetLockProofFFI) { ferment::unbox_any(ffi); } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_epoch_Epoch_get_index<>(obj: *const dpp_block_epoch_Epoch) -> *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_EpochIndex { (*obj).index } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_get_core_chain_locked_height<>(obj: *const platform_mobile_put_ChainAssetLockProofFFI) -> u32 { (*obj).core_chain_locked_height } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_epoch_Epoch_get_key<>(obj: *const dpp_block_epoch_Epoch) -> *mut crate::fermented::generics::Arr_u8_2 { (*obj).key } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_get_out_point<>(obj: *const platform_mobile_put_ChainAssetLockProofFFI) -> *mut platform_mobile::custom::OutPoint { (*obj).out_point } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_epoch_Epoch_set_index<>(obj: *const dpp_block_epoch_Epoch) -> *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_EpochIndex { (*obj).index } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_set_core_chain_locked_height<>(obj: *const platform_mobile_put_ChainAssetLockProofFFI) -> u32 { (*obj).core_chain_locked_height } - #[no_mangle] - pub unsafe extern "C" fn dpp_block_epoch_Epoch_set_key<>(obj: *const dpp_block_epoch_Epoch) -> *mut crate::fermented::generics::Arr_u8_2 { (*obj).key } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_set_out_point<>(obj: *const platform_mobile_put_ChainAssetLockProofFFI) -> *mut platform_mobile::custom::OutPoint { (*obj).out_point } + + #[doc = "FFI-representation of the [`InstantAssetLockProofFFI`]"] + #[repr(C)] + #[derive(Clone)] + pub struct platform_mobile_put_InstantAssetLockProofFFI { + pub instant_lock: *mut crate::fermented::generics::Vec_u8, + pub transaction: *mut crate::fermented::generics::Vec_u8, + pub output_index: u32, } - pub mod extended_epoch_info { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for platform_mobile_put_InstantAssetLockProofFFI { + unsafe fn ffi_from_const(ffi: *const platform_mobile_put_InstantAssetLockProofFFI) -> platform_mobile::put::InstantAssetLockProofFFI { + let ffi_ref = &*ffi; + platform_mobile::put::InstantAssetLockProofFFI { instant_lock: >>::ffi_from(ffi_ref.instant_lock), transaction: >>::ffi_from(ffi_ref.transaction), output_index: ffi_ref.output_index } + } + } - pub mod finalized_epoch_info { - use crate as dash_sdk_bindings; + impl ferment::FFIConversionTo for platform_mobile_put_InstantAssetLockProofFFI { unsafe fn ffi_to_const(obj: platform_mobile::put::InstantAssetLockProofFFI) -> *const platform_mobile_put_InstantAssetLockProofFFI { ferment::boxed(platform_mobile_put_InstantAssetLockProofFFI { instant_lock: >>::ffi_to(obj.instant_lock), transaction: >>::ffi_to(obj.transaction), output_index: obj.output_index }) } } - pub mod v0 { use crate as dash_sdk_bindings; } + impl Drop for platform_mobile_put_InstantAssetLockProofFFI { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.instant_lock); + ferment::unbox_any(ffi_ref.transaction); + ; + } + } } - } - - pub mod withdrawal { - use crate as dash_sdk_bindings; - #[cfg(feature = "system_contracts")] - pub mod document_try_into_asset_unlock_base_transaction_info { - use crate as dash_sdk_bindings; - } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_ctor<>(instant_lock: *mut crate::fermented::generics::Vec_u8, transaction: *mut crate::fermented::generics::Vec_u8, output_index: u32) -> *mut platform_mobile_put_InstantAssetLockProofFFI { ferment::boxed(platform_mobile_put_InstantAssetLockProofFFI { instant_lock, transaction, output_index }) } - pub mod daily_withdrawal_limit { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_destroy<>(ffi: *mut platform_mobile_put_InstantAssetLockProofFFI) { ferment::unbox_any(ffi); } - pub mod v0 { use crate as dash_sdk_bindings; } - } - } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_get_instant_lock<>(obj: *const platform_mobile_put_InstantAssetLockProofFFI) -> *mut crate::fermented::generics::Vec_u8 { (*obj).instant_lock } - pub mod serialization { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_get_transaction<>(obj: *const platform_mobile_put_InstantAssetLockProofFFI) -> *mut crate::fermented::generics::Vec_u8 { (*obj).transaction } - pub mod errors { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_get_output_index<>(obj: *const platform_mobile_put_InstantAssetLockProofFFI) -> u32 { (*obj).output_index } - pub mod non_consensus_error { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_set_instant_lock<>(obj: *const platform_mobile_put_InstantAssetLockProofFFI) -> *mut crate::fermented::generics::Vec_u8 { (*obj).instant_lock } - pub mod consensus { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_set_transaction<>(obj: *const platform_mobile_put_InstantAssetLockProofFFI) -> *mut crate::fermented::generics::Vec_u8 { (*obj).transaction } - pub mod state { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_set_output_index<>(obj: *const platform_mobile_put_InstantAssetLockProofFFI) -> u32 { (*obj).output_index } - pub mod voting { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::put::ChainAssetLockProofFFI_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_clone(a: *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_ChainAssetLockProofFFI) -> *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_ChainAssetLockProofFFI { + let obj = platform_mobile::put::ChainAssetLockProofFFI_clone(>::ffi_from(a)); + >::ffi_to(obj) + } - pub mod data_contract { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`OutPointFFI`]"] + #[repr(C)] + #[derive(Clone)] + pub struct platform_mobile_put_OutPointFFI { + pub txid: *mut crate::fermented::generics::Arr_u8_32, + pub vout: u32, + } - pub mod document { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for platform_mobile_put_OutPointFFI { + unsafe fn ffi_from_const(ffi: *const platform_mobile_put_OutPointFFI) -> platform_mobile::put::OutPointFFI { + let ffi_ref = &*ffi; + platform_mobile::put::OutPointFFI { txid: >::ffi_from(ffi_ref.txid), vout: ffi_ref.vout } + } + } - pub mod token { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for platform_mobile_put_OutPointFFI { unsafe fn ffi_to_const(obj: platform_mobile::put::OutPointFFI) -> *const platform_mobile_put_OutPointFFI { ferment::boxed(platform_mobile_put_OutPointFFI { txid: >::ffi_to(obj.txid), vout: obj.vout }) } } - pub mod data_trigger { use crate as dash_sdk_bindings; } + impl Drop for platform_mobile_put_OutPointFFI { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.txid); + ; + } + } + } - pub mod group { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_ctor<>(txid: *mut crate::fermented::generics::Arr_u8_32, vout: u32) -> *mut platform_mobile_put_OutPointFFI { ferment::boxed(platform_mobile_put_OutPointFFI { txid, vout }) } - pub mod prefunded_specialized_balances { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_destroy<>(ffi: *mut platform_mobile_put_OutPointFFI) { ferment::unbox_any(ffi); } - pub mod identity { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_get_txid<>(obj: *const platform_mobile_put_OutPointFFI) -> *mut crate::fermented::generics::Arr_u8_32 { (*obj).txid } - pub mod signature { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_get_vout<>(obj: *const platform_mobile_put_OutPointFFI) -> u32 { (*obj).vout } - pub mod fee { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_set_txid<>(obj: *const platform_mobile_put_OutPointFFI) -> *mut crate::fermented::generics::Arr_u8_32 { (*obj).txid } - pub mod basic { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_set_vout<>(obj: *const platform_mobile_put_OutPointFFI) -> u32 { (*obj).vout } - pub mod token { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::put::replace_document_sdk`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_replace_document_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, document: *mut crate::fermented::types::dpp::document::dpp_document_Document, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type_str: *mut std::os::raw::c_char, identity_public_key: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey, block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, signer_context: usize, signer_callback: u64) -> *mut crate::fermented::generics::Result_ok_dpp_document_Document_err_String { + let obj = platform_mobile::put::replace_document_sdk(rust_sdk, >::ffi_from(document), >::ffi_from(data_contract_id), >::ffi_from(document_type_str), >::ffi_from(identity_public_key), >::ffi_from(block_height), >::ffi_from(core_block_height), signer_context, signer_callback); + >>::ffi_to(obj) + } - pub mod state_transition { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::put::OutPointFFI_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_clone(a: *mut platform_mobile::custom::OutPoint) -> *mut platform_mobile::custom::OutPoint { + let obj = platform_mobile::put::OutPointFFI_clone(>::ffi_from(a)); + >::ffi_to(obj) + } - pub mod json_schema_error { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::put::put_identity_update_sdk`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_put_put_identity_update_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, identity: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, master_public_key_id: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID, add_public_keys: *mut crate::fermented::generics::Vec_dpp_identity_identity_public_key_IdentityPublicKey, disable_public_keys: *mut crate::fermented::generics::Vec_dpp_identity_identity_public_key_KeyID, signer_context: usize, signer_callback: u64) -> *mut crate::fermented::generics::Result_ok_dpp_identity_identity_Identity_err_String { + let obj = platform_mobile::put::put_identity_update_sdk(rust_sdk, >::ffi_from(identity), >::ffi_from(master_public_key_id), >>::ffi_from(add_public_keys), >>::ffi_from(disable_public_keys), signer_context, signer_callback); + >>::ffi_to(obj) + } + } - pub mod group { use crate as dash_sdk_bindings; } + pub mod voting { + use crate as dash_sdk_bindings; - pub mod unsupported_version_error { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::voting::get_votes`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_voting_get_votes(rust_sdk: *mut platform_mobile::sdk::DashSdk, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::generics::Result_ok_Option_dpp_voting_votes_Vote_err_String { + let obj = platform_mobile::voting::get_votes(rust_sdk, >::ffi_from(data_contract_id)); + , String>>>::ffi_to(obj) + } - pub mod identity { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::voting::get_vote_contenders`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_voting_get_vote_contenders(rust_sdk: *mut platform_mobile::sdk::DashSdk, index_name: *mut std::os::raw::c_char, index_values: *mut crate::fermented::generics::Vec_platform_value_Value, document_type_name: *mut std::os::raw::c_char, contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::generics::Result_ok_drive_proof_verifier_types_Contenders_err_String { + let obj = platform_mobile::voting::get_vote_contenders(rust_sdk, >::ffi_from(index_name), >>::ffi_from(index_values), >::ffi_from(document_type_name), >::ffi_from(contract_id)); + >>::ffi_to(obj) + } - pub mod unsupported_protocol_version_error { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::voting::get_vote_polls`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_voting_get_vote_polls(rust_sdk: *mut platform_mobile::sdk::DashSdk, start_time: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, start_time_included: bool, end_time: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, end_time_included: bool, limit: u16, offset: u16, order_ascending: bool) -> *mut crate::fermented::generics::Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { + let obj = platform_mobile::voting::get_vote_polls(rust_sdk, >::ffi_from(start_time), start_time_included, >::ffi_from(end_time), end_time_included, limit, offset, order_ascending); + >>::ffi_to(obj) + } - pub mod document { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::voting::get_last_vote_from_masternode`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_voting_get_last_vote_from_masternode(rust_sdk: *mut platform_mobile::sdk::DashSdk, masternode_protxhash: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, index_name: *mut std::os::raw::c_char, index_values: *mut crate::fermented::generics::Vec_platform_value_Value, document_type_name: *mut std::os::raw::c_char, contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::generics::Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { + let obj = platform_mobile::voting::get_last_vote_from_masternode(rust_sdk, >::ffi_from(masternode_protxhash), >::ffi_from(index_name), >>::ffi_from(index_values), >::ffi_from(document_type_name), >::ffi_from(contract_id)); + >>::ffi_to(obj) + } - pub mod decode { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::voting::get_contested_resources`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_voting_get_contested_resources(rust_sdk: *mut platform_mobile::sdk::DashSdk, document_type_name: *mut std::os::raw::c_char, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, limit: u16, start_at: *mut crate::fermented::types::platform_value::platform_value_Value, start_at_include: bool) -> *mut crate::fermented::generics::Result_ok_drive_proof_verifier_types_ContestedResources_err_String { + let obj = platform_mobile::voting::get_contested_resources(rust_sdk, >::ffi_from(document_type_name), >::ffi_from(data_contract_id), limit, >::ffi_from_opt(start_at), start_at_include); + >>::ffi_to(obj) + } - pub mod data_contract { use crate as dash_sdk_bindings; } - } + #[doc = "FFI-representation of the [`platform_mobile::voting::put_vote_to_platform`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_voting_put_vote_to_platform(rust_sdk: *mut platform_mobile::sdk::DashSdk, vote: *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote, voter_pro_tx_hash: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, voting_public_key: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey, signer_context: usize, signer_callback: u64) -> *mut crate::fermented::generics::Result_ok_dpp_voting_votes_Vote_err_String { + let obj = platform_mobile::voting::put_vote_to_platform(rust_sdk, >::ffi_from(vote), >::ffi_from(voter_pro_tx_hash), >::ffi_from(voting_public_key), signer_context, signer_callback); + >>::ffi_to(obj) } } - #[cfg(feature = "state-transitions")] - pub mod state_transition { + pub mod fetch_document { use crate as dash_sdk_bindings; - pub mod serialization { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`StartPoint`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum platform_mobile_fetch_document_StartPoint { StartAfter(*mut crate::fermented::generics::Vec_u8), StartAt(*mut crate::fermented::generics::Vec_u8) } - pub mod traits { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for platform_mobile_fetch_document_StartPoint { + unsafe fn ffi_from_const(ffi: *const platform_mobile_fetch_document_StartPoint) -> platform_mobile::fetch_document::StartPoint { + let ffi_ref = &*ffi; + match ffi_ref { + platform_mobile_fetch_document_StartPoint::StartAfter(o_0) => platform_mobile::fetch_document::StartPoint::StartAfter(>>::ffi_from(*o_0)), + platform_mobile_fetch_document_StartPoint::StartAt(o_0) => platform_mobile::fetch_document::StartPoint::StartAt(>>::ffi_from(*o_0)) + } + } + } - pub mod abstract_state_transition { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for platform_mobile_fetch_document_StartPoint { + unsafe fn ffi_to_const(obj: platform_mobile::fetch_document::StartPoint) -> *const platform_mobile_fetch_document_StartPoint { + ferment::boxed(match obj { + platform_mobile::fetch_document::StartPoint::StartAfter(o_0) => platform_mobile_fetch_document_StartPoint::StartAfter(>>::ffi_to(o_0)), + platform_mobile::fetch_document::StartPoint::StartAt(o_0) => platform_mobile_fetch_document_StartPoint::StartAt(>>::ffi_to(o_0)), + _ => unreachable!("This is unreachable") + }) + } + } - pub mod errors { use crate as dash_sdk_bindings; } + impl Drop for platform_mobile_fetch_document_StartPoint { + fn drop(&mut self) { + unsafe { + match self { + platform_mobile_fetch_document_StartPoint::StartAfter(o_0) => { ferment::unbox_any(*o_0); } + platform_mobile_fetch_document_StartPoint::StartAt(o_0) => { ferment::unbox_any(*o_0); } + _ => unreachable!("This is unreachable") + }; + } + } + } - pub mod state_transitions { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_fetch_document_StartPoint_StartAfter_ctor(o_o_0: *mut crate::fermented::generics::Vec_u8) -> *mut platform_mobile_fetch_document_StartPoint { ferment::boxed(platform_mobile_fetch_document_StartPoint::StartAfter(o_o_0)) } - pub mod document { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_fetch_document_StartPoint_StartAt_ctor(o_o_0: *mut crate::fermented::generics::Vec_u8) -> *mut platform_mobile_fetch_document_StartPoint { ferment::boxed(platform_mobile_fetch_document_StartPoint::StartAt(o_o_0)) } - pub mod batch_transition { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_fetch_document_StartPoint_destroy<>(ffi: *mut platform_mobile_fetch_document_StartPoint) { ferment::unbox_any(ffi); } - pub mod batched_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::fetch_document::deserialize_document_sdk`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_fetch_document_deserialize_document_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, bytes: *mut crate::fermented::generics::Vec_u8, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type: *mut std::os::raw::c_char) -> *mut crate::fermented::generics::Result_ok_dpp_document_Document_err_String { + let obj = platform_mobile::fetch_document::deserialize_document_sdk(rust_sdk, >>::ffi_from(bytes), >::ffi_from(data_contract_id), >::ffi_from(document_type)); + >>::ffi_to(obj) + } - pub mod token_config_update_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::fetch_document::document_to_string`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_fetch_document_document_to_string(document: *mut crate::fermented::types::dpp::document::dpp_document_Document) -> *mut std::os::raw::c_char { + let obj = platform_mobile::fetch_document::document_to_string(>::ffi_from(document)); + >::ffi_to(obj) + } - pub mod v0 { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::fetch_document::fetch_documents_with_query_and_sdk`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_fetch_document_fetch_documents_with_query_and_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type: *mut std::os::raw::c_char, where_clauses: *mut crate::fermented::generics::Vec_drive_query_conditions_WhereClause, order_clauses: *mut crate::fermented::generics::Vec_drive_query_ordering_OrderClause, limit: u32, start: *mut crate::fermented::types::platform_mobile::fetch_document::platform_mobile_fetch_document_StartPoint) -> *mut crate::fermented::generics::Result_ok_Vec_dpp_document_Document_err_String { + let obj = platform_mobile::fetch_document::fetch_documents_with_query_and_sdk(rust_sdk, >::ffi_from(data_contract_id), >::ffi_from(document_type), >>::ffi_from(where_clauses), >>::ffi_from(order_clauses), limit, >::ffi_from_opt(start)); + , String>>>::ffi_to(obj) + } + } - pub mod validate_structure { use crate as dash_sdk_bindings; } - } + pub mod data_contracts { + use crate as dash_sdk_bindings; - pub mod document_transfer_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`DataContractFFI`]"] + #[repr(C)] + #[derive(Clone)] + pub struct platform_mobile_data_contracts_DataContractFFI { + pub id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, + pub owner_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, + pub doc_types: *mut crate::fermented::generics::Vec_String, + pub version: u32, + } - pub mod v0 { use crate as dash_sdk_bindings; } - } - - pub mod token_destroy_frozen_funds_transition { - use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for platform_mobile_data_contracts_DataContractFFI { + unsafe fn ffi_from_const(ffi: *const platform_mobile_data_contracts_DataContractFFI) -> platform_mobile::data_contracts::DataContractFFI { + let ffi_ref = &*ffi; + platform_mobile::data_contracts::DataContractFFI { id: >::ffi_from(ffi_ref.id), owner_id: >::ffi_from(ffi_ref.owner_id), doc_types: >>::ffi_from(ffi_ref.doc_types), version: ffi_ref.version } + } + } - pub mod validate_structure { use crate as dash_sdk_bindings; } - } + impl ferment::FFIConversionTo for platform_mobile_data_contracts_DataContractFFI { unsafe fn ffi_to_const(obj: platform_mobile::data_contracts::DataContractFFI) -> *const platform_mobile_data_contracts_DataContractFFI { ferment::boxed(platform_mobile_data_contracts_DataContractFFI { id: >::ffi_to(obj.id), owner_id: >::ffi_to(obj.owner_id), doc_types: >>::ffi_to(obj.doc_types), version: obj.version }) } } - pub mod token_mint_transition { - use crate as dash_sdk_bindings; + impl Drop for platform_mobile_data_contracts_DataContractFFI { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.id); + ferment::unbox_any(ffi_ref.owner_id); + ferment::unbox_any(ffi_ref.doc_types); + ; + } + } + } - pub mod validate_structure { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_ctor<>(id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, owner_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, doc_types: *mut crate::fermented::generics::Vec_String, version: u32) -> *mut platform_mobile_data_contracts_DataContractFFI { ferment::boxed(platform_mobile_data_contracts_DataContractFFI { id, owner_id, doc_types, version }) } - pub mod v0 { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_destroy<>(ffi: *mut platform_mobile_data_contracts_DataContractFFI) { ferment::unbox_any(ffi); } - pub mod document_purchase_transition { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_get_id<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).id } - pub mod v0 { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_get_owner_id<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).owner_id } - pub mod token_claim_transition { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_get_doc_types<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::generics::Vec_String { (*obj).doc_types } - pub mod validate_structure { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_get_version<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> u32 { (*obj).version } - pub mod v0 { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_set_id<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).id } - pub mod token_unfreeze_transition { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_set_owner_id<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).owner_id } - pub mod validate_structure { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_set_doc_types<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::generics::Vec_String { (*obj).doc_types } - pub mod v0 { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_set_version<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> u32 { (*obj).version } - pub mod token_burn_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::data_contracts::fetch_data_contract`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_data_contracts_fetch_data_contract(rust_sdk: *mut platform_mobile::sdk::DashSdk, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::generics::Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { + let obj = platform_mobile::data_contracts::fetch_data_contract(rust_sdk, >::ffi_from(data_contract_id)); + , String>>>::ffi_to(obj) + } - pub mod validate_structure { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::data_contracts::DataContractFFI_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_clone(value: *mut crate::fermented::types::platform_mobile::data_contracts::platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::types::platform_mobile::data_contracts::platform_mobile_data_contracts_DataContractFFI { + let obj = platform_mobile::data_contracts::DataContractFFI_clone(>::ffi_from(value)); + >::ffi_to(obj) + } + } - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod fetch_identity { + use crate as dash_sdk_bindings; - pub mod document_create_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::fetch_identity::fetch_identity_with_sdk`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_fetch_identity_fetch_identity_with_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, identifier: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::generics::Result_ok_Option_dpp_identity_identity_Identity_err_String { + let obj = platform_mobile::fetch_identity::fetch_identity_with_sdk(rust_sdk, >::ffi_from(identifier)); + , String>>>::ffi_to(obj) + } - pub mod v0 { use crate as dash_sdk_bindings; } - } + #[doc = "FFI-representation of the [`platform_mobile::fetch_identity::fetch_identity_balance_with_sdk`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_fetch_identity_fetch_identity_balance_with_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, identifier: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::generics::Result_ok_u64_err_String { + let obj = platform_mobile::fetch_identity::fetch_identity_balance_with_sdk(rust_sdk, >::ffi_from(identifier)); + >>::ffi_to(obj) + } - pub mod token_set_price_for_direct_purchase_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::fetch_identity::fetch_identity_with_keyhash_sdk`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_fetch_identity_fetch_identity_with_keyhash_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, key_hash: *mut crate::fermented::generics::Arr_u8_20) -> *mut crate::fermented::generics::Result_ok_dpp_identity_identity_Identity_err_String { + let obj = platform_mobile::fetch_identity::fetch_identity_with_keyhash_sdk(rust_sdk, >::ffi_from(key_hash)); + >>::ffi_to(obj) + } + } - pub mod v0 { use crate as dash_sdk_bindings; } + pub mod operators { + use crate as dash_sdk_bindings; - pub mod validate_structure { use crate as dash_sdk_bindings; } - } + #[doc = "FFI-representation of the [`platform_mobile::operators::Value_eq`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_operators_Value_eq(a: *mut crate::fermented::types::platform_value::platform_value_Value, b: *mut crate::fermented::types::platform_value::platform_value_Value) -> bool { + let obj = platform_mobile::operators::Value_eq(>::ffi_from(a), >::ffi_from(b)); + obj + } - pub mod document_delete_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::operators::Value_hash`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_operators_Value_hash(a: *mut crate::fermented::types::platform_value::platform_value_Value) -> i32 { + let obj = platform_mobile::operators::Value_hash(>::ffi_from(a)); + obj + } + } - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod sdk { + use crate as dash_sdk_bindings; - pub mod token_freeze_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::sdk::create_dash_sdk_with_context`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_sdk_create_dash_sdk_with_context(context_provider_context: usize, quorum_public_key_callback: u64, data_contract_callback: u64, is_testnet: bool, connect_timeout: usize, timeout: usize, retries: usize) -> *mut platform_mobile::sdk::DashSdk { + let obj = platform_mobile::sdk::create_dash_sdk_with_context(context_provider_context, quorum_public_key_callback, data_contract_callback, is_testnet, connect_timeout, timeout, retries); + ferment::boxed(obj) + } - pub mod v0 { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::sdk::create_dash_sdk`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_sdk_create_dash_sdk(quorum_public_key_callback: u64, data_contract_callback: u64, is_testnet: bool) -> *mut platform_mobile::sdk::DashSdk { + let obj = platform_mobile::sdk::create_dash_sdk(quorum_public_key_callback, data_contract_callback, is_testnet); + ferment::boxed(obj) + } - pub mod validate_structure { use crate as dash_sdk_bindings; } - } + #[doc = "FFI-representation of the [`platform_mobile::sdk::create_dash_sdk_using_single_evonode`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_sdk_create_dash_sdk_using_single_evonode(evonode: *mut std::os::raw::c_char, quorum_public_key_callback: u64, data_contract_callback: u64, is_testnet: bool) -> *mut platform_mobile::sdk::DashSdk { + let obj = platform_mobile::sdk::create_dash_sdk_using_single_evonode(>::ffi_from(evonode), quorum_public_key_callback, data_contract_callback, is_testnet); + ferment::boxed(obj) + } - pub mod token_transfer_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::sdk::destroy_dash_sdk`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_sdk_destroy_dash_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk) { + let obj = platform_mobile::sdk::destroy_dash_sdk(rust_sdk); + ; + } + } - pub mod v0 { use crate as dash_sdk_bindings; } + pub mod core { + use crate as dash_sdk_bindings; - pub mod validate_structure { use crate as dash_sdk_bindings; } - } + #[doc = "FFI-representation of the [`platform_mobile::core::get_transaction`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_core_get_transaction(txid: *mut crate::fermented::generics::Arr_u8_32, quorum_public_key_callback: u64, data_contract_callback: u64) -> *mut crate::fermented::generics::Result_ok_Vec_u8_err_String { + let obj = platform_mobile::core::get_transaction(>::ffi_from(txid), quorum_public_key_callback, data_contract_callback); + , String>>>::ffi_to(obj) + } - pub mod document_update_price_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::core::get_transaction_sdk`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_core_get_transaction_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, txid: *mut crate::fermented::generics::Arr_u8_32) -> *mut crate::fermented::generics::Result_ok_Vec_u8_err_String { + let obj = platform_mobile::core::get_transaction_sdk(rust_sdk, >::ffi_from(txid)); + , String>>>::ffi_to(obj) + } + } - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod config { + use crate as dash_sdk_bindings; - pub mod document_replace_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::config::testnet_address_list`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_config_testnet_address_list() -> *mut crate::fermented::generics::Vec_String { + let obj = platform_mobile::config::testnet_address_list(); + >>::ffi_to(obj) + } + } - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod identity { + use crate as dash_sdk_bindings; - pub mod token_direct_purchase_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::identity::Identity_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_identity_Identity_clone(identity: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity) -> *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity { + let obj = platform_mobile::identity::Identity_clone(>::ffi_from(identity)); + >::ffi_to(obj) + } - pub mod validate_structure { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::identity::get_identity2`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_identity_get_identity2(identifier: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity { + let obj = platform_mobile::identity::get_identity2(>::ffi_from(identifier)); + >::ffi_to(obj) + } - pub mod v0 { use crate as dash_sdk_bindings; } - } + #[doc = "FFI-representation of the [`platform_mobile::identity::IdentityV0_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_identity_IdentityV0_clone(identity: *mut crate::fermented::types::dpp::identity::v0::dpp_identity_v0_IdentityV0) -> *mut crate::fermented::types::dpp::identity::v0::dpp_identity_v0_IdentityV0 { + let obj = platform_mobile::identity::IdentityV0_clone(>::ffi_from(identity)); + >::ffi_to(obj) + } - pub mod token_emergency_action_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::identity::IdentityPublicKeyV0_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_identity_IdentityPublicKeyV0_clone(identity_public_key: *mut crate::fermented::types::dpp::identity::identity_public_key::v0::dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::v0::dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { + let obj = platform_mobile::identity::IdentityPublicKeyV0_clone(>::ffi_from(identity_public_key)); + >::ffi_to(obj) + } - pub mod v0 { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::identity::IdentityPublicKey_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_identity_IdentityPublicKey_clone(identity_public_key: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey { + let obj = platform_mobile::identity::IdentityPublicKey_clone(>::ffi_from(identity_public_key)); + >::ffi_to(obj) + } - pub mod validate_structure { use crate as dash_sdk_bindings; } - } + #[doc = "FFI-representation of the [`platform_mobile::identity::get_identity_contract_bounds`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_identity_get_identity_contract_bounds(identifier: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, contract_identifier: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity { + let obj = platform_mobile::identity::get_identity_contract_bounds(>::ffi_from(identifier), >::ffi_from_opt(contract_identifier)); + >::ffi_to(obj) + } - pub mod token_base_transition { - use crate as dash_sdk_bindings; + #[doc = "FFI-representation of the [`platform_mobile::identity::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_identity_std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey_clone(public_keys: *mut crate::fermented::generics::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey) -> *mut crate::fermented::generics::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { + let obj = platform_mobile::identity::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey_clone(>>::ffi_from(public_keys)); + >>::ffi_to(obj) + } - pub mod fields { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::identity::Identifier_clone`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_identity_Identifier_clone(identifier: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { + let obj = platform_mobile::identity::Identifier_clone(>::ffi_from(identifier)); + >::ffi_to(obj) + } - pub mod v0 { use crate as dash_sdk_bindings; } - } - - pub mod document_base_transition { - use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } - - pub mod fields { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`platform_mobile::identity::create_basic_identity`]"] + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_identity_create_basic_identity(id: *mut crate::fermented::generics::Arr_u8_32) -> *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity { + let obj = platform_mobile::identity::create_basic_identity(>::ffi_from(id)); + >::ffi_to(obj) + } + } + } - pub mod v1 { use crate as dash_sdk_bindings; } - } - } + pub mod drive { + use crate as dash_sdk_bindings; - pub mod v1 { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod cache { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } + pub mod data_contract { + use crate as dash_sdk_bindings; - pub mod fields { use crate as dash_sdk_bindings; } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + } - pub mod accessors { use crate as dash_sdk_bindings; } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod query { + use crate as dash_sdk_bindings; - pub mod resolvers { use crate as dash_sdk_bindings; } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod contested_resource_votes_given_by_identity_query { + use crate as dash_sdk_bindings; + } - pub mod methods { use crate as dash_sdk_bindings; } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod vote_poll_vote_state_query { + use crate as dash_sdk_bindings; + } - #[cfg(feature = "validation")] - pub mod validation { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod test_index { + use crate as dash_sdk_bindings; + } - pub mod find_duplicates_by_id { - use crate as dash_sdk_bindings; + #[cfg(any(feature = "server", feature = "verify"))] + pub mod drive_document_sum_query { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod mode_detection { + use crate as dash_sdk_bindings; - pub mod validate_basic_structure { use crate as dash_sdk_bindings; } - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod v0 { + use crate as dash_sdk_bindings; } } - pub mod contract { + #[cfg(test)] + pub mod tests { use crate as dash_sdk_bindings; + } - pub mod data_contract_update_transition { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod executors { + use crate as dash_sdk_bindings; + } - pub mod v0 { use crate as dash_sdk_bindings; } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod path_query { + use crate as dash_sdk_bindings; + } + } - pub mod methods { use crate as dash_sdk_bindings; } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod vote_polls_by_end_date_query { + use crate as dash_sdk_bindings; + } - pub mod accessors { use crate as dash_sdk_bindings; } - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod vote_polls_by_document_type_query { + use crate as dash_sdk_bindings; + } - pub mod data_contract_create_transition { - use crate as dash_sdk_bindings; + #[cfg(any(feature = "server", feature = "verify"))] + pub mod filter { + use crate as dash_sdk_bindings; + } - pub mod v0 { use crate as dash_sdk_bindings; } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod conditions { + use crate as dash_sdk_bindings; - #[cfg(feature = "state-transition-json-conversion")] - pub mod json_conversion { - use crate as dash_sdk_bindings; - } + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`WhereOperator`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum drive_query_conditions_WhereOperator { Equal, GreaterThan, GreaterThanOrEquals, LessThan, LessThanOrEquals, Between, BetweenExcludeBounds, BetweenExcludeLeft, BetweenExcludeRight, In, StartsWith } - pub mod accessors { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for drive_query_conditions_WhereOperator { + unsafe fn ffi_from_const(ffi: *const drive_query_conditions_WhereOperator) -> drive::query::conditions::WhereOperator { + let ffi_ref = &*ffi; + match ffi_ref { + drive_query_conditions_WhereOperator::Equal => drive::query::conditions::WhereOperator::Equal, + drive_query_conditions_WhereOperator::GreaterThan => drive::query::conditions::WhereOperator::GreaterThan, + drive_query_conditions_WhereOperator::GreaterThanOrEquals => drive::query::conditions::WhereOperator::GreaterThanOrEquals, + drive_query_conditions_WhereOperator::LessThan => drive::query::conditions::WhereOperator::LessThan, + drive_query_conditions_WhereOperator::LessThanOrEquals => drive::query::conditions::WhereOperator::LessThanOrEquals, + drive_query_conditions_WhereOperator::Between => drive::query::conditions::WhereOperator::Between, + drive_query_conditions_WhereOperator::BetweenExcludeBounds => drive::query::conditions::WhereOperator::BetweenExcludeBounds, + drive_query_conditions_WhereOperator::BetweenExcludeLeft => drive::query::conditions::WhereOperator::BetweenExcludeLeft, + drive_query_conditions_WhereOperator::BetweenExcludeRight => drive::query::conditions::WhereOperator::BetweenExcludeRight, + drive_query_conditions_WhereOperator::In => drive::query::conditions::WhereOperator::In, + drive_query_conditions_WhereOperator::StartsWith => drive::query::conditions::WhereOperator::StartsWith + } + } + } - pub mod methods { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for drive_query_conditions_WhereOperator { + unsafe fn ffi_to_const(obj: drive::query::conditions::WhereOperator) -> *const drive_query_conditions_WhereOperator { + ferment::boxed(match obj { + drive::query::conditions::WhereOperator::Equal => drive_query_conditions_WhereOperator::Equal, + drive::query::conditions::WhereOperator::GreaterThan => drive_query_conditions_WhereOperator::GreaterThan, + drive::query::conditions::WhereOperator::GreaterThanOrEquals => drive_query_conditions_WhereOperator::GreaterThanOrEquals, + drive::query::conditions::WhereOperator::LessThan => drive_query_conditions_WhereOperator::LessThan, + drive::query::conditions::WhereOperator::LessThanOrEquals => drive_query_conditions_WhereOperator::LessThanOrEquals, + drive::query::conditions::WhereOperator::Between => drive_query_conditions_WhereOperator::Between, + drive::query::conditions::WhereOperator::BetweenExcludeBounds => drive_query_conditions_WhereOperator::BetweenExcludeBounds, + drive::query::conditions::WhereOperator::BetweenExcludeLeft => drive_query_conditions_WhereOperator::BetweenExcludeLeft, + drive::query::conditions::WhereOperator::BetweenExcludeRight => drive_query_conditions_WhereOperator::BetweenExcludeRight, + drive::query::conditions::WhereOperator::In => drive_query_conditions_WhereOperator::In, + drive::query::conditions::WhereOperator::StartsWith => drive_query_conditions_WhereOperator::StartsWith, + _ => unreachable!("This is unreachable") + }) } + } - pub mod common_fields { use crate as dash_sdk_bindings; } + impl Drop for drive_query_conditions_WhereOperator { + fn drop(&mut self) { + unsafe { + match self { + drive_query_conditions_WhereOperator::Equal => {} + drive_query_conditions_WhereOperator::GreaterThan => {} + drive_query_conditions_WhereOperator::GreaterThanOrEquals => {} + drive_query_conditions_WhereOperator::LessThan => {} + drive_query_conditions_WhereOperator::LessThanOrEquals => {} + drive_query_conditions_WhereOperator::Between => {} + drive_query_conditions_WhereOperator::BetweenExcludeBounds => {} + drive_query_conditions_WhereOperator::BetweenExcludeLeft => {} + drive_query_conditions_WhereOperator::BetweenExcludeRight => {} + drive_query_conditions_WhereOperator::In => {} + drive_query_conditions_WhereOperator::StartsWith => {} + _ => unreachable!("This is unreachable") + }; + } + } } - pub mod identity { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereOperator_Equal_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::Equal {}) } - pub mod identity_create_transition { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereOperator_GreaterThan_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::GreaterThan {}) } - pub mod accessors { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereOperator_GreaterThanOrEquals_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::GreaterThanOrEquals {}) } - pub mod v0 { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereOperator_LessThan_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::LessThan {}) } - pub mod methods { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereOperator_LessThanOrEquals_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::LessThanOrEquals {}) } - pub mod public_key_in_creation { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereOperator_Between_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::Between {}) } - pub mod v0 { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereOperator_BetweenExcludeBounds_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::BetweenExcludeBounds {}) } - pub mod methods { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereOperator_BetweenExcludeLeft_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::BetweenExcludeLeft {}) } - pub mod hash { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereOperator_BetweenExcludeRight_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::BetweenExcludeRight {}) } - pub mod duplicated_key_ids_witness { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereOperator_In_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::In {}) } - pub mod duplicated_keys_witness { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereOperator_StartsWith_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::StartsWith {}) } - pub mod validate_identity_public_keys_structure { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereOperator_destroy<>(ffi: *mut drive_query_conditions_WhereOperator) { ferment::unbox_any(ffi); } - #[cfg(feature = "state-transition-signing")] - pub mod from_public_key_signed_with_private_key { - use crate as dash_sdk_bindings; - } + #[doc = "FFI-representation of the [`WhereClause`]"] + #[repr(C)] + #[derive(Clone)] + pub struct drive_query_conditions_WhereClause { + pub field: *mut std::os::raw::c_char, + pub operator: *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereOperator, + pub value: *mut crate::fermented::types::platform_value::platform_value_Value, + } - #[cfg(feature = "state-transition-signing")] - pub mod from_public_key_signed_external { - use crate as dash_sdk_bindings; - } - } + impl ferment::FFIConversionFrom for drive_query_conditions_WhereClause { + unsafe fn ffi_from_const(ffi: *const drive_query_conditions_WhereClause) -> drive::query::conditions::WhereClause { + let ffi_ref = &*ffi; + drive::query::conditions::WhereClause { field: >::ffi_from(ffi_ref.field), operator: >::ffi_from(ffi_ref.operator), value: >::ffi_from(ffi_ref.value) } } + } - pub mod identity_credit_withdrawal_transition { - use crate as dash_sdk_bindings; - - pub mod accessors { use crate as dash_sdk_bindings; } - - pub mod methods { use crate as dash_sdk_bindings; } - - pub mod v1 { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for drive_query_conditions_WhereClause { unsafe fn ffi_to_const(obj: drive::query::conditions::WhereClause) -> *const drive_query_conditions_WhereClause { ferment::boxed(drive_query_conditions_WhereClause { field: >::ffi_to(obj.field), operator: >::ffi_to(obj.operator), value: >::ffi_to(obj.value) }) } } - pub mod v0 { use crate as dash_sdk_bindings; } + impl Drop for drive_query_conditions_WhereClause { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_string(ffi_ref.field); + ferment::unbox_any(ffi_ref.operator); + ferment::unbox_any(ffi_ref.value); + } } + } - pub mod common_fields { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereClause_ctor<>(field: *mut std::os::raw::c_char, operator: *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereOperator, value: *mut crate::fermented::types::platform_value::platform_value_Value) -> *mut drive_query_conditions_WhereClause { ferment::boxed(drive_query_conditions_WhereClause { field, operator, value }) } - pub mod identity_update_transition { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereClause_destroy<>(ffi: *mut drive_query_conditions_WhereClause) { ferment::unbox_any(ffi); } - pub mod v0 { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereClause_get_field<>(obj: *const drive_query_conditions_WhereClause) -> *mut std::os::raw::c_char { (*obj).field } - #[cfg(feature = "state-transition-json-conversion")] - pub mod json_conversion { - use crate as dash_sdk_bindings; - } - } + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereClause_get_operator<>(obj: *const drive_query_conditions_WhereClause) -> *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereOperator { (*obj).operator } - pub mod accessors { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereClause_get_value<>(obj: *const drive_query_conditions_WhereClause) -> *mut crate::fermented::types::platform_value::platform_value_Value { (*obj).value } - pub mod methods { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereClause_set_field<>(obj: *const drive_query_conditions_WhereClause) -> *mut std::os::raw::c_char { (*obj).field } - pub mod fields { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereClause_set_operator<>(obj: *const drive_query_conditions_WhereClause) -> *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereOperator { (*obj).operator } - pub mod masternode_vote_transition { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_query_conditions_WhereClause_set_value<>(obj: *const drive_query_conditions_WhereClause) -> *mut crate::fermented::types::platform_value::platform_value_Value { (*obj).value } + } - pub mod fields { use crate as dash_sdk_bindings; } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod ordering { + use crate as dash_sdk_bindings; - pub mod accessors { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`OrderClause`]"] + #[repr(C)] + #[derive(Clone)] + pub struct drive_query_ordering_OrderClause { + pub field: *mut std::os::raw::c_char, + pub ascending: bool, + } - pub mod v0 { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for drive_query_ordering_OrderClause { + unsafe fn ffi_from_const(ffi: *const drive_query_ordering_OrderClause) -> drive::query::ordering::OrderClause { + let ffi_ref = &*ffi; + drive::query::ordering::OrderClause { field: >::ffi_from(ffi_ref.field), ascending: ffi_ref.ascending } + } + } - pub mod methods { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for drive_query_ordering_OrderClause { unsafe fn ffi_to_const(obj: drive::query::ordering::OrderClause) -> *const drive_query_ordering_OrderClause { ferment::boxed(drive_query_ordering_OrderClause { field: >::ffi_to(obj.field), ascending: obj.ascending }) } } + + impl Drop for drive_query_ordering_OrderClause { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_string(ffi_ref.field); + ; + } } + } - pub mod identity_credit_transfer_transition { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_query_ordering_OrderClause_ctor<>(field: *mut std::os::raw::c_char, ascending: bool) -> *mut drive_query_ordering_OrderClause { ferment::boxed(drive_query_ordering_OrderClause { field, ascending }) } - pub mod v0 { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_query_ordering_OrderClause_destroy<>(ffi: *mut drive_query_ordering_OrderClause) { ferment::unbox_any(ffi); } - pub mod fields { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_query_ordering_OrderClause_get_field<>(obj: *const drive_query_ordering_OrderClause) -> *mut std::os::raw::c_char { (*obj).field } - pub mod methods { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_query_ordering_OrderClause_get_ascending<>(obj: *const drive_query_ordering_OrderClause) -> bool { (*obj).ascending } - pub mod accessors { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn drive_query_ordering_OrderClause_set_field<>(obj: *const drive_query_ordering_OrderClause) -> *mut std::os::raw::c_char { (*obj).field } - pub mod identity_topup_transition { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_query_ordering_OrderClause_set_ascending<>(obj: *const drive_query_ordering_OrderClause) -> bool { (*obj).ascending } + } - pub mod v0 { use crate as dash_sdk_bindings; } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod drive_document_average_query { + use crate as dash_sdk_bindings; - pub mod accessors { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod drive_dispatcher { + use crate as dash_sdk_bindings; + } + } - pub mod methods { use crate as dash_sdk_bindings; } - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod drive_document_count_query { + use crate as dash_sdk_bindings; + + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; } - pub mod common_fields { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod executors { + use crate as dash_sdk_bindings; + } + } + + #[cfg(feature = "server")] + pub mod drive_document_count_and_sum_query { + use crate as dash_sdk_bindings; + + #[cfg(feature = "server")] + pub mod executors { + use crate as dash_sdk_bindings; + } + } + + #[cfg(any(feature = "server", feature = "verify"))] + pub mod vote_poll_contestant_votes_query { + use crate as dash_sdk_bindings; } } - pub mod voting { + #[cfg(any(feature = "server", feature = "verify"))] + pub mod error { use crate as dash_sdk_bindings; + } - pub mod vote_polls { + #[cfg(feature = "server")] + pub mod prove { + use crate as dash_sdk_bindings; + + pub mod prove_multiple_state_transition_results { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`VotePoll`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum dpp_voting_vote_polls_VotePoll { ContestedDocumentResourceVotePoll(*mut crate::fermented::types::dpp::voting::vote_polls::contested_document_resource_vote_poll::dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionFrom for dpp_voting_vote_polls_VotePoll { - unsafe fn ffi_from_const(ffi: *const dpp_voting_vote_polls_VotePoll) -> dpp::voting::vote_polls::VotePoll { - let ffi_ref = &*ffi; - match ffi_ref { dpp_voting_vote_polls_VotePoll::ContestedDocumentResourceVotePoll(o_0) => dpp::voting::vote_polls::VotePoll::ContestedDocumentResourceVotePoll(>::ffi_from(*o_0)) } - } - } + pub mod prove_elements { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionTo for dpp_voting_vote_polls_VotePoll { - unsafe fn ffi_to_const(obj: dpp::voting::vote_polls::VotePoll) -> *const dpp_voting_vote_polls_VotePoll { - ferment::boxed(match obj { - dpp::voting::vote_polls::VotePoll::ContestedDocumentResourceVotePoll(o_0) => dpp_voting_vote_polls_VotePoll::ContestedDocumentResourceVotePoll(>::ffi_to(o_0)), - _ => unreachable!("This is unreachable") - }) - } - } + #[cfg(feature = "server")] + pub mod prove_state_transition { + use crate as dash_sdk_bindings; + } + } - impl Drop for dpp_voting_vote_polls_VotePoll { - fn drop(&mut self) { - unsafe { - match self { - dpp_voting_vote_polls_VotePoll::ContestedDocumentResourceVotePoll(o_0) => { ferment::unbox_any(*o_0); } - _ => unreachable!("This is unreachable") - }; - } - } - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod verify { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_polls_VotePoll_ContestedDocumentResourceVotePoll_ctor(o_o_0: *mut crate::fermented::types::dpp::voting::vote_polls::contested_document_resource_vote_poll::dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut dpp_voting_vote_polls_VotePoll { ferment::boxed(dpp_voting_vote_polls_VotePoll::ContestedDocumentResourceVotePoll(o_o_0)) } + pub mod document_count { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_polls_VotePoll_destroy<>(ffi: *mut dpp_voting_vote_polls_VotePoll) { ferment::unbox_any(ffi); } + pub mod verify_carrier_aggregate_count_proof { use crate as dash_sdk_bindings; } - pub mod contested_document_resource_vote_poll { - use crate as dash_sdk_bindings; + pub mod verify_primary_key_count_tree_proof { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`ContestedDocumentResourceVotePoll`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { - pub contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, - pub document_type_name: *mut std::os::raw::c_char, - pub index_name: *mut std::os::raw::c_char, - pub index_values: *mut crate::fermented::generics::Vec_platform_value_Value, - } + pub mod verify_point_lookup_count_proof { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionFrom for dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { - unsafe fn ffi_from_const(ffi: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> dpp::voting::vote_polls::contested_document_resource_vote_poll::ContestedDocumentResourceVotePoll { - let ffi_ref = &*ffi; - dpp::voting::vote_polls::contested_document_resource_vote_poll::ContestedDocumentResourceVotePoll { contract_id: >::ffi_from(ffi_ref.contract_id), document_type_name: >::ffi_from(ffi_ref.document_type_name), index_name: >::ffi_from(ffi_ref.index_name), index_values: >>::ffi_from(ffi_ref.index_values) } - } - } + pub mod verify_aggregate_count_proof { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionTo for dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { - unsafe fn ffi_to_const(obj: dpp::voting::vote_polls::contested_document_resource_vote_poll::ContestedDocumentResourceVotePoll) -> *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { ferment::boxed(dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { contract_id: >::ffi_to(obj.contract_id), document_type_name: >::ffi_to(obj.document_type_name), index_name: >::ffi_to(obj.index_name), index_values: >>::ffi_to(obj.index_values) }) } - } + pub mod verify_distinct_count_proof { use crate as dash_sdk_bindings; } + } - impl Drop for dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.contract_id); - ferment::unbox_string(ffi_ref.document_type_name); - ferment::unbox_string(ffi_ref.index_name); - ferment::unbox_any(ffi_ref.index_values); - } - } - } + pub mod single_document { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_ctor<>(contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type_name: *mut std::os::raw::c_char, index_name: *mut std::os::raw::c_char, index_values: *mut crate::fermented::generics::Vec_platform_value_Value) -> *mut dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { ferment::boxed(dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { contract_id, document_type_name, index_name, index_values }) } + pub mod verify_proof { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_destroy<>(ffi: *mut dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) { ferment::unbox_any(ffi); } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_get_contract_id<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).contract_id } + pub mod verify_proof_keep_serialized { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_get_document_type_name<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut std::os::raw::c_char { (*obj).document_type_name } + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_get_index_name<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut std::os::raw::c_char { (*obj).index_name } + pub mod document { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_get_index_values<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut crate::fermented::generics::Vec_platform_value_Value { (*obj).index_values } + pub mod verify_document_history { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_set_contract_id<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).contract_id } + pub mod verify_proof { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_set_document_type_name<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut std::os::raw::c_char { (*obj).document_type_name } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_set_index_name<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut std::os::raw::c_char { (*obj).index_name } + pub mod verify_proof_keep_serialized { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_set_index_values<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut crate::fermented::generics::Vec_platform_value_Value { (*obj).index_values } + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod verify_start_at_document_in_proof { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } } - pub mod votes { + pub mod voting { use crate as dash_sdk_bindings; - pub mod resource_vote { + pub mod verify_vote_poll_votes_proof { use crate as dash_sdk_bindings; - pub mod v0 { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[doc = "FFI-representation of the [`ResourceVoteV0`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { - pub vote_poll: *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll, - pub resource_vote_choice: *mut crate::fermented::types::dpp::voting::vote_choices::resource_vote_choice::dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice, - } + pub mod verify_identity_votes_given_proof { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { - unsafe fn ffi_from_const(ffi: *const dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> dpp::voting::votes::resource_vote::v0::ResourceVoteV0 { - let ffi_ref = &*ffi; - dpp::voting::votes::resource_vote::v0::ResourceVoteV0 { vote_poll: >::ffi_from(ffi_ref.vote_poll), resource_vote_choice: >::ffi_from(ffi_ref.resource_vote_choice) } - } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionTo for dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { unsafe fn ffi_to_const(obj: dpp::voting::votes::resource_vote::v0::ResourceVoteV0) -> *const dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { ferment::boxed(dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { vote_poll: >::ffi_to(obj.vote_poll), resource_vote_choice: >::ffi_to(obj.resource_vote_choice) }) } } + pub mod verify_vote_poll_vote_state_proof { + use crate as dash_sdk_bindings; - impl Drop for dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.vote_poll); - ferment::unbox_any(ffi_ref.resource_vote_choice); - } - } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_votes_resource_vote_v0_ResourceVoteV0_ctor<>(vote_poll: *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll, resource_vote_choice: *mut crate::fermented::types::dpp::voting::vote_choices::resource_vote_choice::dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice) -> *mut dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { ferment::boxed(dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { vote_poll, resource_vote_choice }) } + pub mod verify_vote_polls_end_date_query { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_votes_resource_vote_v0_ResourceVoteV0_destroy<>(ffi: *mut dpp_voting_votes_resource_vote_v0_ResourceVoteV0) { ferment::unbox_any(ffi); } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_votes_resource_vote_v0_ResourceVoteV0_get_vote_poll<>(obj: *const dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll { (*obj).vote_poll } + pub mod verify_masternode_vote { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_votes_resource_vote_v0_ResourceVoteV0_get_resource_vote_choice<>(obj: *const dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> *mut crate::fermented::types::dpp::voting::vote_choices::resource_vote_choice::dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { (*obj).resource_vote_choice } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_votes_resource_vote_v0_ResourceVoteV0_set_vote_poll<>(obj: *const dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll { (*obj).vote_poll } + pub mod verify_contests_proof { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_votes_resource_vote_v0_ResourceVoteV0_set_resource_vote_choice<>(obj: *const dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> *mut crate::fermented::types::dpp::voting::vote_choices::resource_vote_choice::dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { (*obj).resource_vote_choice } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`ResourceVote`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum dpp_voting_votes_resource_vote_ResourceVote { V0(*mut crate::fermented::types::dpp::voting::votes::resource_vote::v0::dpp_voting_votes_resource_vote_v0_ResourceVoteV0) } + pub mod verify_specialized_balance { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for dpp_voting_votes_resource_vote_ResourceVote { - unsafe fn ffi_from_const(ffi: *const dpp_voting_votes_resource_vote_ResourceVote) -> dpp::voting::votes::resource_vote::ResourceVote { - let ffi_ref = &*ffi; - match ffi_ref { dpp_voting_votes_resource_vote_ResourceVote::V0(o_0) => dpp::voting::votes::resource_vote::ResourceVote::V0(>::ffi_from(*o_0)) } - } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - impl ferment::FFIConversionTo for dpp_voting_votes_resource_vote_ResourceVote { - unsafe fn ffi_to_const(obj: dpp::voting::votes::resource_vote::ResourceVote) -> *const dpp_voting_votes_resource_vote_ResourceVote { - ferment::boxed(match obj { - dpp::voting::votes::resource_vote::ResourceVote::V0(o_0) => dpp_voting_votes_resource_vote_ResourceVote::V0(>::ffi_to(o_0)), - _ => unreachable!("This is unreachable") - }) - } - } + pub mod address_funds { + use crate as dash_sdk_bindings; - impl Drop for dpp_voting_votes_resource_vote_ResourceVote { - fn drop(&mut self) { - unsafe { - match self { - dpp_voting_votes_resource_vote_ResourceVote::V0(o_0) => { ferment::unbox_any(*o_0); } - _ => unreachable!("This is unreachable") - }; - } - } - } + pub mod verify_addresses_infos { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_votes_resource_vote_ResourceVote_V0_ctor(o_o_0: *mut crate::fermented::types::dpp::voting::votes::resource_vote::v0::dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> *mut dpp_voting_votes_resource_vote_ResourceVote { ferment::boxed(dpp_voting_votes_resource_vote_ResourceVote::V0(o_o_0)) } + pub mod verify_address_funds_trunk_query { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_votes_resource_vote_ResourceVote_destroy<>(ffi: *mut dpp_voting_votes_resource_vote_ResourceVote) { ferment::unbox_any(ffi); } + pub mod verify_address_info { + use crate as dash_sdk_bindings; - pub mod accessors { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`Vote`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum dpp_voting_votes_Vote { ResourceVote(*mut crate::fermented::types::dpp::voting::votes::resource_vote::dpp_voting_votes_resource_vote_ResourceVote) } + pub mod verify_recent_address_balance_changes { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for dpp_voting_votes_Vote { - unsafe fn ffi_from_const(ffi: *const dpp_voting_votes_Vote) -> dpp::voting::votes::Vote { - let ffi_ref = &*ffi; - match ffi_ref { dpp_voting_votes_Vote::ResourceVote(o_0) => dpp::voting::votes::Vote::ResourceVote(>::ffi_from(*o_0)) } - } + pub mod v0 { use crate as dash_sdk_bindings; } } - impl ferment::FFIConversionTo for dpp_voting_votes_Vote { - unsafe fn ffi_to_const(obj: dpp::voting::votes::Vote) -> *const dpp_voting_votes_Vote { - ferment::boxed(match obj { - dpp::voting::votes::Vote::ResourceVote(o_0) => dpp_voting_votes_Vote::ResourceVote(>::ffi_to(o_0)), - _ => unreachable!("This is unreachable") - }) - } - } + pub mod verify_compacted_address_balance_changes { + use crate as dash_sdk_bindings; - impl Drop for dpp_voting_votes_Vote { - fn drop(&mut self) { - unsafe { - match self { - dpp_voting_votes_Vote::ResourceVote(o_0) => { ferment::unbox_any(*o_0); } - _ => unreachable!("This is unreachable") - }; - } - } + pub mod v0 { use crate as dash_sdk_bindings; } } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_votes_Vote_ResourceVote_ctor(o_o_0: *mut crate::fermented::types::dpp::voting::votes::resource_vote::dpp_voting_votes_resource_vote_ResourceVote) -> *mut dpp_voting_votes_Vote { ferment::boxed(dpp_voting_votes_Vote::ResourceVote(o_o_0)) } - - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_votes_Vote_destroy<>(ffi: *mut dpp_voting_votes_Vote) { ferment::unbox_any(ffi); } + pub mod verify_address_funds_branch_query { use crate as dash_sdk_bindings; } } - pub mod contender_structs { + pub mod identity { use crate as dash_sdk_bindings; - pub mod contender { + pub mod verify_identity_ids_by_unique_public_key_hashes { use crate as dash_sdk_bindings; } + + pub mod verify_identity_revision_for_identity_id { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`ContenderWithSerializedDocument`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { V0(*mut crate::fermented::types::dpp::voting::contender_structs::contender::v0::dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionFrom for dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { - unsafe fn ffi_from_const(ffi: *const dpp_voting_contender_structs_contender_ContenderWithSerializedDocument) -> dpp::voting::contender_structs::contender::ContenderWithSerializedDocument { - let ffi_ref = &*ffi; - match ffi_ref { dpp_voting_contender_structs_contender_ContenderWithSerializedDocument::V0(o_0) => dpp::voting::contender_structs::contender::ContenderWithSerializedDocument::V0(>::ffi_from(*o_0)) } - } - } + pub mod verify_identity_nonce { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionTo for dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { - unsafe fn ffi_to_const(obj: dpp::voting::contender_structs::contender::ContenderWithSerializedDocument) -> *const dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { - ferment::boxed(match obj { - dpp::voting::contender_structs::contender::ContenderWithSerializedDocument::V0(o_0) => dpp_voting_contender_structs_contender_ContenderWithSerializedDocument::V0(>::ffi_to(o_0)), - _ => unreachable!("This is unreachable") - }) - } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl Drop for dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { - fn drop(&mut self) { - unsafe { - match self { - dpp_voting_contender_structs_contender_ContenderWithSerializedDocument::V0(o_0) => { ferment::unbox_any(*o_0); } - _ => unreachable!("This is unreachable") - }; - } - } - } + pub mod verify_identity_id_by_non_unique_public_key_hash { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_contender_structs_contender_ContenderWithSerializedDocument_V0_ctor(o_o_0: *mut crate::fermented::types::dpp::voting::contender_structs::contender::v0::dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { ferment::boxed(dpp_voting_contender_structs_contender_ContenderWithSerializedDocument::V0(o_o_0)) } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_contender_structs_contender_ContenderWithSerializedDocument_destroy<>(ffi: *mut dpp_voting_contender_structs_contender_ContenderWithSerializedDocument) { ferment::unbox_any(ffi); } + pub mod verify_identities_contract_keys { use crate as dash_sdk_bindings; } - pub mod v0 { - use crate as dash_sdk_bindings; + pub mod verify_full_identities_by_public_key_hashes { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`ContenderWithSerializedDocumentV0`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { - pub identity_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, - pub serialized_document: *mut crate::fermented::generics::Vec_u8, - pub vote_tally: *mut u32, - } + pub mod verify_identity_id_by_unique_public_key_hash { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionFrom for dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { - unsafe fn ffi_from_const(ffi: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> dpp::voting::contender_structs::contender::v0::ContenderWithSerializedDocumentV0 { - let ffi_ref = &*ffi; - dpp::voting::contender_structs::contender::v0::ContenderWithSerializedDocumentV0 { identity_id: >::ffi_from(ffi_ref.identity_id), serialized_document: >>::ffi_from_opt(ffi_ref.serialized_document), vote_tally: ferment::from_opt_primitive(ffi_ref.vote_tally) } - } - } + pub mod verify_identity_contract_nonce { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionTo for dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { unsafe fn ffi_to_const(obj: dpp::voting::contender_structs::contender::v0::ContenderWithSerializedDocumentV0) -> *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { ferment::boxed(dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { identity_id: >::ffi_to(obj.identity_id), serialized_document: >>::ffi_to_opt(obj.serialized_document), vote_tally: ferment::to_opt_primitive(obj.vote_tally) }) } } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl Drop for dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.identity_id); - ferment::unbox_any_opt(ffi_ref.serialized_document); - ferment::destroy_opt_primitive(ffi_ref.vote_tally); - } - } - } + pub mod verify_identity_balance_and_revision_for_identity_id { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_ctor<>(identity_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, serialized_document: *mut crate::fermented::generics::Vec_u8, vote_tally: *mut u32) -> *mut dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { ferment::boxed(dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { identity_id, serialized_document, vote_tally }) } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_destroy<>(ffi: *mut dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) { ferment::unbox_any(ffi); } + pub mod verify_identity_keys_by_identity_id { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_get_identity_id<>(obj: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).identity_id } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_get_serialized_document<>(obj: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut crate::fermented::generics::Vec_u8 { (*obj).serialized_document } + pub mod verify_full_identity_by_identity_id { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_get_vote_tally<>(obj: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut u32 { (*obj).vote_tally } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_set_identity_id<>(obj: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).identity_id } + pub mod verify_identity_balances_for_identity_ids { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_set_serialized_document<>(obj: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut crate::fermented::generics::Vec_u8 { (*obj).serialized_document } + pub mod verify_full_identity_by_non_unique_public_key_hash { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_set_vote_tally<>(obj: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut u32 { (*obj).vote_tally } - } + pub mod v0 { use crate as dash_sdk_bindings; } } + + pub mod verify_identity_balance_for_identity_id { use crate as dash_sdk_bindings; } + + pub mod verify_full_identity_by_unique_public_key_hash { use crate as dash_sdk_bindings; } + + pub mod verify_identity_balance_revision_and_addresses_from_inputs { use crate as dash_sdk_bindings; } } - pub mod vote_info_storage { + pub mod system { use crate as dash_sdk_bindings; - pub mod contested_document_vote_poll_stored_info { use crate as dash_sdk_bindings; } + pub mod verify_epoch_proposers { use crate as dash_sdk_bindings; } - pub mod contested_document_vote_poll_winner_info { + pub mod verify_epoch_infos { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`ContestedDocumentVotePollWinnerInfo`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { NoWinner, WonByIdentity(*mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier), Locked } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionFrom for dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { - unsafe fn ffi_from_const(ffi: *const dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo) -> dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo { - let ffi_ref = &*ffi; - match ffi_ref { - dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::NoWinner => dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo::NoWinner, - dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::WonByIdentity(o_0) => dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo::WonByIdentity(>::ffi_from(*o_0)), - dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::Locked => dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo::Locked - } - } - } + pub mod verify_upgrade_vote_status { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionTo for dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { - unsafe fn ffi_to_const(obj: dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo) -> *const dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { - ferment::boxed(match obj { - dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo::NoWinner => dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::NoWinner, - dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo::WonByIdentity(o_0) => dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::WonByIdentity(>::ffi_to(o_0)), - dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo::Locked => dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::Locked, - _ => unreachable!("This is unreachable") - }) - } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl Drop for dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { - fn drop(&mut self) { - unsafe { - match self { - dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::NoWinner => {} - dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::WonByIdentity(o_0) => { ferment::unbox_any(*o_0); } - dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::Locked => {} - _ => unreachable!("This is unreachable") - }; - } - } - } + pub mod verify_elements { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_NoWinner_ctor() -> *mut dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { ferment::boxed(dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::NoWinner {}) } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_WonByIdentity_ctor(o_o_0: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { ferment::boxed(dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::WonByIdentity(o_o_0)) } + pub mod verify_upgrade_state { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_Locked_ctor() -> *mut dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { ferment::boxed(dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::Locked {}) } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_destroy<>(ffi: *mut dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo) { ferment::unbox_any(ffi); } + pub mod verify_finalized_epoch_infos { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } + + pub mod verify_total_credits_in_system { use crate as dash_sdk_bindings; } } - pub mod vote_choices { + pub mod contract { use crate as dash_sdk_bindings; - pub mod resource_vote_choice { + pub mod verify_contract { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`ResourceVoteChoice`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { TowardsIdentity(*mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier), Abstain, Lock } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionFrom for dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { - unsafe fn ffi_from_const(ffi: *const dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice) -> dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice { - let ffi_ref = &*ffi; - match ffi_ref { - dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::TowardsIdentity(o_0) => dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice::TowardsIdentity(>::ffi_from(*o_0)), - dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Abstain => dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice::Abstain, - dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Lock => dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice::Lock - } - } - } + pub mod verify_contract_history { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionTo for dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { - unsafe fn ffi_to_const(obj: dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice) -> *const dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { - ferment::boxed(match obj { - dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice::TowardsIdentity(o_0) => dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::TowardsIdentity(>::ffi_to(o_0)), - dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice::Abstain => dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Abstain, - dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice::Lock => dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Lock, - _ => unreachable!("This is unreachable") - }) - } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl Drop for dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { - fn drop(&mut self) { - unsafe { - match self { - dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::TowardsIdentity(o_0) => { ferment::unbox_any(*o_0); } - dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Abstain => {} - dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Lock => {} - _ => unreachable!("This is unreachable") - }; - } - } - } + pub mod verify_contract_return_serialization { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice_TowardsIdentity_ctor(o_o_0: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { ferment::boxed(dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::TowardsIdentity(o_o_0)) } + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice_Abstain_ctor() -> *mut dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { ferment::boxed(dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Abstain {}) } + pub mod tokens { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice_Lock_ctor() -> *mut dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { ferment::boxed(dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Lock {}) } + pub mod verify_token_balances_for_identity_id { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice_destroy<>(ffi: *mut dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice) { ferment::unbox_any(ffi); } + pub mod verify_token_total_supply_and_aggregated_identity_balance { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - } - } - pub mod balances { use crate as dash_sdk_bindings; } + pub mod verify_token_contract_info { use crate as dash_sdk_bindings; } - pub mod tokens { - use crate as dash_sdk_bindings; + pub mod verify_token_balance_for_identity_id { + use crate as dash_sdk_bindings; - pub mod token_payment_info { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod methods { use crate as dash_sdk_bindings; } + pub mod verify_token_info_for_identity_id { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod info { use crate as dash_sdk_bindings; } + pub mod verify_token_infos_for_identity_id { + use crate as dash_sdk_bindings; - pub mod contract_info { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod status { use crate as dash_sdk_bindings; } - } + pub mod verify_token_direct_selling_prices { + use crate as dash_sdk_bindings; - pub mod document { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[cfg(feature = "factories")] - pub mod specialized_document_factory { - use crate as dash_sdk_bindings; - } + pub mod verify_token_status { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`Document`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum dpp_document_Document { V0(*mut crate::fermented::types::dpp::document::v0::dpp_document_v0_DocumentV0) } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionFrom for dpp_document_Document { - unsafe fn ffi_from_const(ffi: *const dpp_document_Document) -> dpp::document::Document { - let ffi_ref = &*ffi; - match ffi_ref { dpp_document_Document::V0(o_0) => dpp::document::Document::V0(>::ffi_from(*o_0)) } + pub mod verify_token_direct_selling_price { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - } - impl ferment::FFIConversionTo for dpp_document_Document { - unsafe fn ffi_to_const(obj: dpp::document::Document) -> *const dpp_document_Document { - ferment::boxed(match obj { - dpp::document::Document::V0(o_0) => dpp_document_Document::V0(>::ffi_to(o_0)), - _ => unreachable!("This is unreachable") - }) + pub mod verify_token_statuses { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - } - impl Drop for dpp_document_Document { - fn drop(&mut self) { - unsafe { - match self { - dpp_document_Document::V0(o_0) => { ferment::unbox_any(*o_0); } - _ => unreachable!("This is unreachable") - }; - } + pub mod verify_token_infos_for_identity_ids { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_Document_V0_ctor(o_o_0: *mut crate::fermented::types::dpp::document::v0::dpp_document_v0_DocumentV0) -> *mut dpp_document_Document { ferment::boxed(dpp_document_Document::V0(o_o_0)) } + pub mod verify_token_pre_programmed_distributions { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_document_Document_destroy<>(ffi: *mut dpp_document_Document) { ferment::unbox_any(ffi); } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[cfg(feature = "extended-document")] - pub mod extended_document { - use crate as dash_sdk_bindings; + pub mod verify_token_balances_for_identity_ids { use crate as dash_sdk_bindings; } - pub mod v0 { use crate as dash_sdk_bindings; } + pub mod verify_token_perpetual_distribution_last_paid_time { + use crate as dash_sdk_bindings; - pub mod fields { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } } - pub mod document_methods { + pub mod state_transition { use crate as dash_sdk_bindings; - pub mod get_raw_for_contract { use crate as dash_sdk_bindings; } + pub mod verify_state_transition_was_executed_with_proof { + use crate as dash_sdk_bindings; - pub mod hash { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod get_raw_for_document_type { use crate as dash_sdk_bindings; } + pub mod state_transition_execution_path_queries { + use crate as dash_sdk_bindings; - pub mod is_equal_ignoring_timestamps { use crate as dash_sdk_bindings; } + pub mod token_transition { use crate as dash_sdk_bindings; } + } } - pub mod accessors { use crate as dash_sdk_bindings; } + pub mod document_sum { + use crate as dash_sdk_bindings; - #[cfg(feature = "factories")] - pub mod document_factory { + pub mod verify_aggregate_count_and_sum_proof { use crate as dash_sdk_bindings; } + + pub mod verify_carrier_aggregate_count_and_sum_proof { use crate as dash_sdk_bindings; } + + pub mod verify_distinct_sum_proof { use crate as dash_sdk_bindings; } + + pub mod verify_aggregate_sum_proof { use crate as dash_sdk_bindings; } + + pub mod verify_carrier_aggregate_sum_proof { use crate as dash_sdk_bindings; } + + pub mod verify_primary_key_sum_tree_proof { use crate as dash_sdk_bindings; } + + pub mod verify_distinct_count_and_sum_proof { use crate as dash_sdk_bindings; } + + pub mod verify_primary_key_count_sum_tree_proof { use crate as dash_sdk_bindings; } + + pub mod verify_point_lookup_count_and_sum_proof { use crate as dash_sdk_bindings; } + + pub mod verify_point_lookup_sum_proof { use crate as dash_sdk_bindings; } + } + + pub mod group { use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } + pub mod verify_active_action_infos { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod verify_action_signers_total_power { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod verify_group_info { use crate as dash_sdk_bindings; } + + pub mod verify_action_signers { use crate as dash_sdk_bindings; } + + pub mod verify_group_infos_in_contract { use crate as dash_sdk_bindings; } } - pub mod serialization_traits { + pub mod shielded { use crate as dash_sdk_bindings; - pub mod platform_serialization_conversion { + pub mod verify_shielded_notes_count { use crate as dash_sdk_bindings; - pub mod deserialize { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod serialize { use crate as dash_sdk_bindings; } + pub mod verify_most_recent_shielded_anchor { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - #[cfg(feature = "document-json-conversion")] - pub mod json_conversion { + pub mod verify_shielded_anchors { use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - #[cfg(feature = "document-cbor-conversion")] - pub mod cbor_conversion { + pub mod verify_shielded_encrypted_notes { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod verify_shielded_pool_state { use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - #[cfg(feature = "document-value-conversion")] - pub mod platform_value_conversion { + pub mod verify_shielded_nullifiers { use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } } + } - pub mod v0 { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod open { + use crate as dash_sdk_bindings; + } - #[doc = "FFI-representation of the [`DocumentV0`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_document_v0_DocumentV0 { - pub id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, - pub owner_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, - pub properties: *mut crate::fermented::generics::std_collections_Map_keys_String_values_platform_value_Value, - pub revision: *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision, - pub created_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, - pub updated_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, - pub transferred_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, - pub created_at_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, - pub updated_at_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, - pub transferred_at_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, - pub created_at_core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, - pub updated_at_core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, - pub transferred_at_core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, - } - - impl ferment::FFIConversionFrom for dpp_document_v0_DocumentV0 { - unsafe fn ffi_from_const(ffi: *const dpp_document_v0_DocumentV0) -> dpp::document::v0::DocumentV0 { - let ffi_ref = &*ffi; - dpp::document::v0::DocumentV0 { - id: >::ffi_from(ffi_ref.id), - owner_id: >::ffi_from(ffi_ref.owner_id), - properties: >>::ffi_from(ffi_ref.properties), - revision: >::ffi_from_opt(ffi_ref.revision), - created_at: >::ffi_from_opt(ffi_ref.created_at), - updated_at: >::ffi_from_opt(ffi_ref.updated_at), - transferred_at: >::ffi_from_opt(ffi_ref.transferred_at), - created_at_block_height: >::ffi_from_opt(ffi_ref.created_at_block_height), - updated_at_block_height: >::ffi_from_opt(ffi_ref.updated_at_block_height), - transferred_at_block_height: >::ffi_from_opt(ffi_ref.transferred_at_block_height), - created_at_core_block_height: >::ffi_from_opt(ffi_ref.created_at_core_block_height), - updated_at_core_block_height: >::ffi_from_opt(ffi_ref.updated_at_core_block_height), - transferred_at_core_block_height: >::ffi_from_opt(ffi_ref.transferred_at_core_block_height), - } - } - } + #[cfg(feature = "server")] + pub mod fees { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionTo for dpp_document_v0_DocumentV0 { - unsafe fn ffi_to_const(obj: dpp::document::v0::DocumentV0) -> *const dpp_document_v0_DocumentV0 { - ferment::boxed(dpp_document_v0_DocumentV0 { - id: >::ffi_to(obj.id), - owner_id: >::ffi_to(obj.owner_id), - properties: >>::ffi_to(obj.properties), - revision: >::ffi_to_opt(obj.revision), - created_at: >::ffi_to_opt(obj.created_at), - updated_at: >::ffi_to_opt(obj.updated_at), - transferred_at: >::ffi_to_opt(obj.transferred_at), - created_at_block_height: >::ffi_to_opt(obj.created_at_block_height), - updated_at_block_height: >::ffi_to_opt(obj.updated_at_block_height), - transferred_at_block_height: >::ffi_to_opt(obj.transferred_at_block_height), - created_at_core_block_height: >::ffi_to_opt(obj.created_at_core_block_height), - updated_at_core_block_height: >::ffi_to_opt(obj.updated_at_core_block_height), - transferred_at_core_block_height: >::ffi_to_opt(obj.transferred_at_core_block_height), - }) - } - } + pub mod op { use crate as dash_sdk_bindings; } - impl Drop for dpp_document_v0_DocumentV0 { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.id); - ferment::unbox_any(ffi_ref.owner_id); - ferment::unbox_any(ffi_ref.properties); - ferment::unbox_any_opt(ffi_ref.revision); - ferment::unbox_any_opt(ffi_ref.created_at); - ferment::unbox_any_opt(ffi_ref.updated_at); - ferment::unbox_any_opt(ffi_ref.transferred_at); - ferment::unbox_any_opt(ffi_ref.created_at_block_height); - ferment::unbox_any_opt(ffi_ref.updated_at_block_height); - ferment::unbox_any_opt(ffi_ref.transferred_at_block_height); - ferment::unbox_any_opt(ffi_ref.created_at_core_block_height); - ferment::unbox_any_opt(ffi_ref.updated_at_core_block_height); - ferment::unbox_any_opt(ffi_ref.transferred_at_core_block_height); - } - } - } + pub mod calculate_fee { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_ctor<>(id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, owner_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, properties: *mut crate::fermented::generics::std_collections_Map_keys_String_values_platform_value_Value, revision: *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision, created_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, updated_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, transferred_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, created_at_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, updated_at_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, transferred_at_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, created_at_core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, updated_at_core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, transferred_at_core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight) -> *mut dpp_document_v0_DocumentV0 { ferment::boxed(dpp_document_v0_DocumentV0 { id, owner_id, properties, revision, created_at, updated_at, transferred_at, created_at_block_height, updated_at_block_height, transferred_at_block_height, created_at_core_block_height, updated_at_core_block_height, transferred_at_core_block_height }) } + #[cfg(any(feature = "server", feature = "verify", feature = "fixtures-and-mocks"))] + pub mod util { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_destroy<>(ffi: *mut dpp_document_v0_DocumentV0) { ferment::unbox_any(ffi); } + #[cfg(feature = "server")] + pub mod operations { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_id<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).id } + pub mod apply_partial_batch_grovedb_operations { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_owner_id<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).owner_id } + pub mod apply_partial_batch_low_level_drive_operations { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_properties<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::generics::std_collections_Map_keys_String_values_platform_value_Value { (*obj).properties } + pub mod rollback_transaction { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_revision<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision { (*obj).revision } + pub mod apply_batch_low_level_drive_operations { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_created_at<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).created_at } + pub mod drop_cache { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_updated_at<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).updated_at } + pub mod apply_batch_grovedb_operations { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_transferred_at<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).transferred_at } + pub mod commit_transaction { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_created_at_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).created_at_block_height } + #[cfg(feature = "server")] + pub mod grove_operations { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_updated_at_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).updated_at_block_height } + pub mod batch_insert_empty_tree_if_not_exists_check_existing_operations { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_transferred_at_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).transferred_at_block_height } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_created_at_core_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).created_at_core_block_height } + pub mod grove_apply_operation { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_updated_at_core_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).updated_at_core_block_height } + pub mod grove_get_raw_path_query { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_transferred_at_core_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).transferred_at_core_block_height } + pub mod batch_insert { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_id<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).id } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_owner_id<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).owner_id } + pub mod grove_get_raw_path_query_with_optional { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_properties<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::generics::std_collections_Map_keys_String_values_platform_value_Value { (*obj).properties } + pub mod batch_insert_empty_provable_count_tree { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_revision<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision { (*obj).revision } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_created_at<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).created_at } + pub mod grove_get_proved_path_query_v1 { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_updated_at<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).updated_at } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_transferred_at<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).transferred_at } + pub mod batch_insert_if_not_exists { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_created_at_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).created_at_block_height } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_updated_at_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).updated_at_block_height } + pub mod grove_batch_operations_costs { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_transferred_at_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).transferred_at_block_height } + pub mod batch_delete_items_in_path_query { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_created_at_core_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).created_at_core_block_height } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_updated_at_core_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).updated_at_core_block_height } + pub mod batch_replace { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_transferred_at_core_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).transferred_at_core_block_height } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod fields { use crate as dash_sdk_bindings; } - } + pub mod grove_get_raw_optional { use crate as dash_sdk_bindings; } - pub mod prelude { - use crate as dash_sdk_bindings; + pub mod grove_get_proved_trunk_chunk_query { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`TimestampMillis`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_prelude_TimestampMillis(u64); + pub mod batch_move { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for dpp_prelude_TimestampMillis { - unsafe fn ffi_from_const(ffi: *const dpp_prelude_TimestampMillis) -> dpp::prelude::TimestampMillis { - let ffi_ref = &*ffi; - ffi_ref.0 + pub mod v0 { use crate as dash_sdk_bindings; } } - } - impl ferment::FFIConversionTo for dpp_prelude_TimestampMillis { unsafe fn ffi_to_const(obj: dpp::prelude::TimestampMillis) -> *const dpp_prelude_TimestampMillis { ferment::boxed(dpp_prelude_TimestampMillis(obj)) } } + pub mod batch_insert_empty_provable_count_provable_sum_tree { use crate as dash_sdk_bindings; } - impl Drop for dpp_prelude_TimestampMillis { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ; - } + pub mod grove_has_raw { use crate as dash_sdk_bindings; } + + pub mod batch_insert_empty_tree_if_not_exists { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - } - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_TimestampMillis_ctor<>(o_0: u64) -> *mut dpp_prelude_TimestampMillis { ferment::boxed(dpp_prelude_TimestampMillis(o_0)) } + pub mod grove_get_proved_path_query { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_TimestampMillis_destroy<>(ffi: *mut dpp_prelude_TimestampMillis) { ferment::unbox_any(ffi); } + pub mod grove_get_raw_optional_item { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_TimestampMillis_get_0<>(obj: *const dpp_prelude_TimestampMillis) -> u64 { (*obj).0 } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_TimestampMillis_set_0<>(obj: *const dpp_prelude_TimestampMillis) -> u64 { (*obj).0 } + pub mod batch_keep_item_insert_sum_item_or_add_to_if_already_exists { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`Revision`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_prelude_Revision(u64); + pub mod batch_delete { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionFrom for dpp_prelude_Revision { - unsafe fn ffi_from_const(ffi: *const dpp_prelude_Revision) -> dpp::prelude::Revision { - let ffi_ref = &*ffi; - ffi_ref.0 - } - } + pub mod grove_apply_batch_with_add_costs { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionTo for dpp_prelude_Revision { unsafe fn ffi_to_const(obj: dpp::prelude::Revision) -> *const dpp_prelude_Revision { ferment::boxed(dpp_prelude_Revision(obj)) } } + pub mod grove_get_path_query_serialized_or_sum_results { + use crate as dash_sdk_bindings; - impl Drop for dpp_prelude_Revision { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ; - } + pub mod v0 { use crate as dash_sdk_bindings; } } - } - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_Revision_ctor<>(o_0: u64) -> *mut dpp_prelude_Revision { ferment::boxed(dpp_prelude_Revision(o_0)) } + pub mod grove_apply_partial_batch_with_add_costs { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_Revision_destroy<>(ffi: *mut dpp_prelude_Revision) { ferment::unbox_any(ffi); } + pub mod batch_move_items_in_path_query { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_Revision_get_0<>(obj: *const dpp_prelude_Revision) -> u64 { (*obj).0 } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_Revision_set_0<>(obj: *const dpp_prelude_Revision) -> u64 { (*obj).0 } - - #[doc = "FFI-representation of the [`BlockHeight`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_prelude_BlockHeight(u64); + pub mod grove_get { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for dpp_prelude_BlockHeight { - unsafe fn ffi_from_const(ffi: *const dpp_prelude_BlockHeight) -> dpp::prelude::BlockHeight { - let ffi_ref = &*ffi; - ffi_ref.0 + pub mod v0 { use crate as dash_sdk_bindings; } } - } - impl ferment::FFIConversionTo for dpp_prelude_BlockHeight { unsafe fn ffi_to_const(obj: dpp::prelude::BlockHeight) -> *const dpp_prelude_BlockHeight { ferment::boxed(dpp_prelude_BlockHeight(obj)) } } + pub mod grove_get_raw { use crate as dash_sdk_bindings; } - impl Drop for dpp_prelude_BlockHeight { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ; - } + pub mod batch_insert_sum_item_or_add_to_if_already_exists { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - } - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_BlockHeight_ctor<>(o_0: u64) -> *mut dpp_prelude_BlockHeight { ferment::boxed(dpp_prelude_BlockHeight(o_0)) } + pub mod batch_insert_empty_provable_count_sum_tree { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_BlockHeight_destroy<>(ffi: *mut dpp_prelude_BlockHeight) { ferment::unbox_any(ffi); } + pub mod grove_get_big_sum_tree_total_value { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_BlockHeight_get_0<>(obj: *const dpp_prelude_BlockHeight) -> u64 { (*obj).0 } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_BlockHeight_set_0<>(obj: *const dpp_prelude_BlockHeight) -> u64 { (*obj).0 } + pub mod batch_insert_empty_count_tree { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`CoreBlockHeight`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_prelude_CoreBlockHeight(u32); + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionFrom for dpp_prelude_CoreBlockHeight { - unsafe fn ffi_from_const(ffi: *const dpp_prelude_CoreBlockHeight) -> dpp::prelude::CoreBlockHeight { - let ffi_ref = &*ffi; - ffi_ref.0 + pub mod grove_insert_if_not_exists_return_existing_element { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - } - impl ferment::FFIConversionTo for dpp_prelude_CoreBlockHeight { unsafe fn ffi_to_const(obj: dpp::prelude::CoreBlockHeight) -> *const dpp_prelude_CoreBlockHeight { ferment::boxed(dpp_prelude_CoreBlockHeight(obj)) } } + pub mod batch_insert_empty_count_sum_tree { + use crate as dash_sdk_bindings; - impl Drop for dpp_prelude_CoreBlockHeight { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ; - } + pub mod v0 { use crate as dash_sdk_bindings; } } - } - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_CoreBlockHeight_ctor<>(o_0: u32) -> *mut dpp_prelude_CoreBlockHeight { ferment::boxed(dpp_prelude_CoreBlockHeight(o_0)) } + pub mod grove_insert { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_CoreBlockHeight_destroy<>(ffi: *mut dpp_prelude_CoreBlockHeight) { ferment::unbox_any(ffi); } + pub mod grove_clear { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_CoreBlockHeight_get_0<>(obj: *const dpp_prelude_CoreBlockHeight) -> u32 { (*obj).0 } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_prelude_CoreBlockHeight_set_0<>(obj: *const dpp_prelude_CoreBlockHeight) -> u32 { (*obj).0 } - } + pub mod batch_insert_if_changed_value { + use crate as dash_sdk_bindings; - pub mod identity { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod identity_nonce { use crate as dash_sdk_bindings; } + pub mod grove_commitment_tree_count { use crate as dash_sdk_bindings; } - pub mod identity_public_key { - use crate as dash_sdk_bindings; + pub mod grove_delete { use crate as dash_sdk_bindings; } - pub mod key_type { + pub mod batch_insert_if_not_exists_return_existing_element { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`KeyType`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum dpp_identity_identity_public_key_key_type_KeyType { ECDSA_SECP256K1 = 0, BLS12_381 = 1, ECDSA_HASH160 = 2, BIP13_SCRIPT_HASH = 3, EDDSA_25519_HASH160 = 4 } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_key_type_KeyType { - unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_key_type_KeyType) -> dpp::identity::identity_public_key::key_type::KeyType { - let ffi_ref = &*ffi; - match ffi_ref { - dpp_identity_identity_public_key_key_type_KeyType::ECDSA_SECP256K1 => dpp::identity::identity_public_key::key_type::KeyType::ECDSA_SECP256K1, - dpp_identity_identity_public_key_key_type_KeyType::BLS12_381 => dpp::identity::identity_public_key::key_type::KeyType::BLS12_381, - dpp_identity_identity_public_key_key_type_KeyType::ECDSA_HASH160 => dpp::identity::identity_public_key::key_type::KeyType::ECDSA_HASH160, - dpp_identity_identity_public_key_key_type_KeyType::BIP13_SCRIPT_HASH => dpp::identity::identity_public_key::key_type::KeyType::BIP13_SCRIPT_HASH, - dpp_identity_identity_public_key_key_type_KeyType::EDDSA_25519_HASH160 => dpp::identity::identity_public_key::key_type::KeyType::EDDSA_25519_HASH160 - } - } - } + pub mod grove_get_proved_path_query_with_conditional { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionTo for dpp_identity_identity_public_key_key_type_KeyType { - unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::key_type::KeyType) -> *const dpp_identity_identity_public_key_key_type_KeyType { - ferment::boxed(match obj { - dpp::identity::identity_public_key::key_type::KeyType::ECDSA_SECP256K1 => dpp_identity_identity_public_key_key_type_KeyType::ECDSA_SECP256K1, - dpp::identity::identity_public_key::key_type::KeyType::BLS12_381 => dpp_identity_identity_public_key_key_type_KeyType::BLS12_381, - dpp::identity::identity_public_key::key_type::KeyType::ECDSA_HASH160 => dpp_identity_identity_public_key_key_type_KeyType::ECDSA_HASH160, - dpp::identity::identity_public_key::key_type::KeyType::BIP13_SCRIPT_HASH => dpp_identity_identity_public_key_key_type_KeyType::BIP13_SCRIPT_HASH, - dpp::identity::identity_public_key::key_type::KeyType::EDDSA_25519_HASH160 => dpp_identity_identity_public_key_key_type_KeyType::EDDSA_25519_HASH160, - _ => unreachable!("This is unreachable") - }) - } - } + pub mod batch_insert_empty_provable_sum_tree { use crate as dash_sdk_bindings; } - impl Drop for dpp_identity_identity_public_key_key_type_KeyType { - fn drop(&mut self) { - unsafe { - match self { - dpp_identity_identity_public_key_key_type_KeyType::ECDSA_SECP256K1 => {} - dpp_identity_identity_public_key_key_type_KeyType::BLS12_381 => {} - dpp_identity_identity_public_key_key_type_KeyType::ECDSA_HASH160 => {} - dpp_identity_identity_public_key_key_type_KeyType::BIP13_SCRIPT_HASH => {} - dpp_identity_identity_public_key_key_type_KeyType::EDDSA_25519_HASH160 => {} - _ => unreachable!("This is unreachable") - }; - } - } - } + pub mod grove_get_path_query_serialized_results { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_key_type_KeyType_ECDSA_SECP256K1_ctor() -> *mut dpp_identity_identity_public_key_key_type_KeyType { ferment::boxed(dpp_identity_identity_public_key_key_type_KeyType::ECDSA_SECP256K1 {}) } + pub mod batch_delete_up_tree_while_empty { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_key_type_KeyType_BLS12_381_ctor() -> *mut dpp_identity_identity_public_key_key_type_KeyType { ferment::boxed(dpp_identity_identity_public_key_key_type_KeyType::BLS12_381 {}) } + pub mod grove_insert_if_not_exists { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_key_type_KeyType_ECDSA_HASH160_ctor() -> *mut dpp_identity_identity_public_key_key_type_KeyType { ferment::boxed(dpp_identity_identity_public_key_key_type_KeyType::ECDSA_HASH160 {}) } + pub mod batch_insert_item_with_sum_item_if_not_exists { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_key_type_KeyType_BIP13_SCRIPT_HASH_ctor() -> *mut dpp_identity_identity_public_key_key_type_KeyType { ferment::boxed(dpp_identity_identity_public_key_key_type_KeyType::BIP13_SCRIPT_HASH {}) } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_key_type_KeyType_EDDSA_25519_HASH160_ctor() -> *mut dpp_identity_identity_public_key_key_type_KeyType { ferment::boxed(dpp_identity_identity_public_key_key_type_KeyType::EDDSA_25519_HASH160 {}) } + pub mod batch_insert_empty_tree { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_key_type_KeyType_destroy<>(ffi: *mut dpp_identity_identity_public_key_key_type_KeyType) { ferment::unbox_any(ffi); } + pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod conversion { - use crate as dash_sdk_bindings; + pub mod grove_get_raw_value_u64_from_encoded_var_vec { use crate as dash_sdk_bindings; } - #[cfg(feature = "platform-value")] - pub mod platform_value { - use crate as dash_sdk_bindings; - } + pub mod grove_get_path_query { use crate as dash_sdk_bindings; } - #[cfg(feature = "json-object")] - pub mod json { - use crate as dash_sdk_bindings; - } - } + pub mod grove_get_proved_branch_chunk_query { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`KeyID`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_identity_identity_public_key_KeyID(u32); + pub mod grove_insert_empty_tree { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_KeyID { - unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_KeyID) -> dpp::identity::identity_public_key::KeyID { - let ffi_ref = &*ffi; - ffi_ref.0 - } + pub mod v0 { use crate as dash_sdk_bindings; } } - impl ferment::FFIConversionTo for dpp_identity_identity_public_key_KeyID { unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::KeyID) -> *const dpp_identity_identity_public_key_KeyID { ferment::boxed(dpp_identity_identity_public_key_KeyID(obj)) } } + pub mod batch_remove_raw { use crate as dash_sdk_bindings; } - impl Drop for dpp_identity_identity_public_key_KeyID { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ; - } - } + pub mod grove_get_raw_item { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyID_ctor<>(o_0: u32) -> *mut dpp_identity_identity_public_key_KeyID { ferment::boxed(dpp_identity_identity_public_key_KeyID(o_0)) } + pub mod batch_refresh_reference { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyID_destroy<>(ffi: *mut dpp_identity_identity_public_key_KeyID) { ferment::unbox_any(ffi); } + pub mod grove_get_optional_sum_tree_total_value { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyID_get_0<>(obj: *const dpp_identity_identity_public_key_KeyID) -> u32 { (*obj).0 } + pub mod batch_insert_empty_sum_tree { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyID_set_0<>(obj: *const dpp_identity_identity_public_key_KeyID) -> u32 { (*obj).0 } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[doc = "FFI-representation of the [`TimestampMillis`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_identity_identity_public_key_TimestampMillis(u64); + pub mod grove_get_path_query_with_optional { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_TimestampMillis { - unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_TimestampMillis) -> dpp::identity::identity_public_key::TimestampMillis { - let ffi_ref = &*ffi; - ffi_ref.0 - } + pub mod grove_get_sum_tree_total_value { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - impl ferment::FFIConversionTo for dpp_identity_identity_public_key_TimestampMillis { unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::TimestampMillis) -> *const dpp_identity_identity_public_key_TimestampMillis { ferment::boxed(dpp_identity_identity_public_key_TimestampMillis(obj)) } } + pub mod batch_insert_sum_item_if_not_exists { + use crate as dash_sdk_bindings; - impl Drop for dpp_identity_identity_public_key_TimestampMillis { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ; - } - } + pub mod v0 { use crate as dash_sdk_bindings; } } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_TimestampMillis_ctor<>(o_0: u64) -> *mut dpp_identity_identity_public_key_TimestampMillis { ferment::boxed(dpp_identity_identity_public_key_TimestampMillis(o_0)) } + #[cfg(feature = "server")] + pub mod batch { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_TimestampMillis_destroy<>(ffi: *mut dpp_identity_identity_public_key_TimestampMillis) { ferment::unbox_any(ffi); } + pub mod drive_op_batch { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_TimestampMillis_get_0<>(obj: *const dpp_identity_identity_public_key_TimestampMillis) -> u64 { (*obj).0 } + pub mod token { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_TimestampMillis_set_0<>(obj: *const dpp_identity_identity_public_key_TimestampMillis) -> u64 { (*obj).0 } + pub mod drive_methods { + use crate as dash_sdk_bindings; - pub mod purpose { - use crate as dash_sdk_bindings; + pub mod convert_drive_operations_to_grove_operations { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`Purpose`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum dpp_identity_identity_public_key_purpose_Purpose { AUTHENTICATION = 0, ENCRYPTION = 1, DECRYPTION = 2, TRANSFER = 3, SYSTEM = 4, VOTING = 5, OWNER = 6 } + pub mod apply_drive_operations { use crate as dash_sdk_bindings; } + } + } + } - impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_purpose_Purpose { - unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_purpose_Purpose) -> dpp::identity::identity_public_key::purpose::Purpose { - let ffi_ref = &*ffi; - match ffi_ref { - dpp_identity_identity_public_key_purpose_Purpose::AUTHENTICATION => dpp::identity::identity_public_key::purpose::Purpose::AUTHENTICATION, - dpp_identity_identity_public_key_purpose_Purpose::ENCRYPTION => dpp::identity::identity_public_key::purpose::Purpose::ENCRYPTION, - dpp_identity_identity_public_key_purpose_Purpose::DECRYPTION => dpp::identity::identity_public_key::purpose::Purpose::DECRYPTION, - dpp_identity_identity_public_key_purpose_Purpose::TRANSFER => dpp::identity::identity_public_key::purpose::Purpose::TRANSFER, - dpp_identity_identity_public_key_purpose_Purpose::SYSTEM => dpp::identity::identity_public_key::purpose::Purpose::SYSTEM, - dpp_identity_identity_public_key_purpose_Purpose::VOTING => dpp::identity::identity_public_key::purpose::Purpose::VOTING, - dpp_identity_identity_public_key_purpose_Purpose::OWNER => dpp::identity::identity_public_key::purpose::Purpose::OWNER - } - } - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod object_size_info { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionTo for dpp_identity_identity_public_key_purpose_Purpose { - unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::purpose::Purpose) -> *const dpp_identity_identity_public_key_purpose_Purpose { - ferment::boxed(match obj { - dpp::identity::identity_public_key::purpose::Purpose::AUTHENTICATION => dpp_identity_identity_public_key_purpose_Purpose::AUTHENTICATION, - dpp::identity::identity_public_key::purpose::Purpose::ENCRYPTION => dpp_identity_identity_public_key_purpose_Purpose::ENCRYPTION, - dpp::identity::identity_public_key::purpose::Purpose::DECRYPTION => dpp_identity_identity_public_key_purpose_Purpose::DECRYPTION, - dpp::identity::identity_public_key::purpose::Purpose::TRANSFER => dpp_identity_identity_public_key_purpose_Purpose::TRANSFER, - dpp::identity::identity_public_key::purpose::Purpose::SYSTEM => dpp_identity_identity_public_key_purpose_Purpose::SYSTEM, - dpp::identity::identity_public_key::purpose::Purpose::VOTING => dpp_identity_identity_public_key_purpose_Purpose::VOTING, - dpp::identity::identity_public_key::purpose::Purpose::OWNER => dpp_identity_identity_public_key_purpose_Purpose::OWNER, - _ => unreachable!("This is unreachable") - }) - } - } + #[cfg(feature = "server")] + pub mod path_key_info { + use crate as dash_sdk_bindings; + } - impl Drop for dpp_identity_identity_public_key_purpose_Purpose { - fn drop(&mut self) { - unsafe { - match self { - dpp_identity_identity_public_key_purpose_Purpose::AUTHENTICATION => {} - dpp_identity_identity_public_key_purpose_Purpose::ENCRYPTION => {} - dpp_identity_identity_public_key_purpose_Purpose::DECRYPTION => {} - dpp_identity_identity_public_key_purpose_Purpose::TRANSFER => {} - dpp_identity_identity_public_key_purpose_Purpose::SYSTEM => {} - dpp_identity_identity_public_key_purpose_Purpose::VOTING => {} - dpp_identity_identity_public_key_purpose_Purpose::OWNER => {} - _ => unreachable!("This is unreachable") - }; - } - } - } + #[cfg(feature = "server")] + pub mod drive_key_info { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_AUTHENTICATION_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::AUTHENTICATION {}) } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod contract_info { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_ENCRYPTION_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::ENCRYPTION {}) } + #[cfg(feature = "server")] + pub mod document_info { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_DECRYPTION_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::DECRYPTION {}) } + #[cfg(feature = "server")] + pub mod key_value_info { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_TRANSFER_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::TRANSFER {}) } + #[cfg(feature = "server")] + pub mod path_info { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_SYSTEM_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::SYSTEM {}) } + #[cfg(feature = "server")] + pub mod path_key_element_info { + use crate as dash_sdk_bindings; + } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_VOTING_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::VOTING {}) } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod common { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_OWNER_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::OWNER {}) } + pub mod encode { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_destroy<>(ffi: *mut dpp_identity_identity_public_key_purpose_Purpose) { ferment::unbox_any(ffi); } + #[cfg(any(test, feature = "server", feature = "fixtures-and-mocks"))] + pub mod test_helpers { + use crate as dash_sdk_bindings; + + #[cfg(any(test, feature = "fixtures-and-mocks"))] + pub mod test_utils { + use crate as dash_sdk_bindings; } + } + } - pub mod v0 { + #[cfg(feature = "server")] + pub mod state_transition_action { + use crate as dash_sdk_bindings; + + pub mod system { + use crate as dash_sdk_bindings; + + pub mod bump_identity_data_contract_nonce_action { use crate as dash_sdk_bindings; - pub mod methods { use crate as dash_sdk_bindings; } + pub mod v0 { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`IdentityPublicKeyV0`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { - pub id: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID, - pub purpose: *mut crate::fermented::types::dpp::identity::identity_public_key::purpose::dpp_identity_identity_public_key_purpose_Purpose, - pub security_level: *mut crate::fermented::types::dpp::identity::identity_public_key::security_level::dpp_identity_identity_public_key_security_level_SecurityLevel, - pub contract_bounds: *mut crate::fermented::types::dpp::identity::identity_public_key::contract_bounds::dpp_identity_identity_public_key_contract_bounds_ContractBounds, - pub key_type: *mut crate::fermented::types::dpp::identity::identity_public_key::key_type::dpp_identity_identity_public_key_key_type_KeyType, - pub read_only: bool, - pub data: *mut crate::fermented::types::platform_value::types::binary_data::platform_value_types_binary_data_BinaryData, - pub disabled_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, + pub mod transformer { use crate as dash_sdk_bindings; } } - impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { - unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> dpp::identity::identity_public_key::v0::IdentityPublicKeyV0 { - let ffi_ref = &*ffi; - dpp::identity::identity_public_key::v0::IdentityPublicKeyV0 { - id: >::ffi_from(ffi_ref.id), - purpose: >::ffi_from(ffi_ref.purpose), - security_level: >::ffi_from(ffi_ref.security_level), - contract_bounds: >::ffi_from_opt(ffi_ref.contract_bounds), - key_type: >::ffi_from(ffi_ref.key_type), - read_only: ffi_ref.read_only, - data: >::ffi_from(ffi_ref.data), - disabled_at: >::ffi_from_opt(ffi_ref.disabled_at), - } - } - } + pub mod transformer { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionTo for dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { - unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::v0::IdentityPublicKeyV0) -> *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { - ferment::boxed(dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { - id: >::ffi_to(obj.id), - purpose: >::ffi_to(obj.purpose), - security_level: >::ffi_to(obj.security_level), - contract_bounds: >::ffi_to_opt(obj.contract_bounds), - key_type: >::ffi_to(obj.key_type), - read_only: obj.read_only, - data: >::ffi_to(obj.data), - disabled_at: >::ffi_to_opt(obj.disabled_at), - }) - } - } + pub mod partially_use_asset_lock_action { + use crate as dash_sdk_bindings; - impl Drop for dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.id); - ferment::unbox_any(ffi_ref.purpose); - ferment::unbox_any(ffi_ref.security_level); - ferment::unbox_any_opt(ffi_ref.contract_bounds); - ferment::unbox_any(ffi_ref.key_type); - ; - ferment::unbox_any(ffi_ref.data); - ferment::unbox_any_opt(ffi_ref.disabled_at); - } - } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_ctor<>(id: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID, purpose: *mut crate::fermented::types::dpp::identity::identity_public_key::purpose::dpp_identity_identity_public_key_purpose_Purpose, security_level: *mut crate::fermented::types::dpp::identity::identity_public_key::security_level::dpp_identity_identity_public_key_security_level_SecurityLevel, contract_bounds: *mut crate::fermented::types::dpp::identity::identity_public_key::contract_bounds::dpp_identity_identity_public_key_contract_bounds_ContractBounds, key_type: *mut crate::fermented::types::dpp::identity::identity_public_key::key_type::dpp_identity_identity_public_key_key_type_KeyType, read_only: bool, data: *mut crate::fermented::types::platform_value::types::binary_data::platform_value_types_binary_data_BinaryData, disabled_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis) -> *mut dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { ferment::boxed(dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { id, purpose, security_level, contract_bounds, key_type, read_only, data, disabled_at }) } + pub mod bump_identity_nonce_action { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_destroy<>(ffi: *mut dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) { ferment::unbox_any(ffi); } + pub mod v0 { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_id<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID { (*obj).id } + pub mod transformer { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_purpose<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::purpose::dpp_identity_identity_public_key_purpose_Purpose { (*obj).purpose } + pub mod transformer { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_security_level<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::security_level::dpp_identity_identity_public_key_security_level_SecurityLevel { (*obj).security_level } + pub mod bump_address_input_nonces_action { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_contract_bounds<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::contract_bounds::dpp_identity_identity_public_key_contract_bounds_ContractBounds { (*obj).contract_bounds } + pub mod v0 { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_key_type<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::key_type::dpp_identity_identity_public_key_key_type_KeyType { (*obj).key_type } + pub mod transformer { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_read_only<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> bool { (*obj).read_only } + pub mod transformer { use crate as dash_sdk_bindings; } + } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_data<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::platform_value::types::binary_data::platform_value_types_binary_data_BinaryData { (*obj).data } + pub mod identity { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_disabled_at<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).disabled_at } + pub mod identity_credit_withdrawal { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_id<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID { (*obj).id } + pub mod v0 { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_purpose<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::purpose::dpp_identity_identity_public_key_purpose_Purpose { (*obj).purpose } + pub mod transformer { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_security_level<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::security_level::dpp_identity_identity_public_key_security_level_SecurityLevel { (*obj).security_level } + pub mod masternode_vote { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_contract_bounds<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::contract_bounds::dpp_identity_identity_public_key_contract_bounds_ContractBounds { (*obj).contract_bounds } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_key_type<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::key_type::dpp_identity_identity_public_key_key_type_KeyType { (*obj).key_type } + pub mod identity_update { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_read_only<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> bool { (*obj).read_only } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_data<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::platform_value::types::binary_data::platform_value_types_binary_data_BinaryData { (*obj).data } + pub mod identity_create_from_addresses { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_disabled_at<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).disabled_at } + pub mod v0 { + use crate as dash_sdk_bindings; - pub mod conversion { use crate as dash_sdk_bindings; } + pub mod transformer { use crate as dash_sdk_bindings; } + } } - pub mod security_level { + pub mod identity_topup_from_addresses { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`SecurityLevel`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum dpp_identity_identity_public_key_security_level_SecurityLevel { MASTER = 0, CRITICAL = 1, HIGH = 2, MEDIUM = 3 } + pub mod v0 { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_security_level_SecurityLevel { - unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_security_level_SecurityLevel) -> dpp::identity::identity_public_key::security_level::SecurityLevel { - let ffi_ref = &*ffi; - match ffi_ref { - dpp_identity_identity_public_key_security_level_SecurityLevel::MASTER => dpp::identity::identity_public_key::security_level::SecurityLevel::MASTER, - dpp_identity_identity_public_key_security_level_SecurityLevel::CRITICAL => dpp::identity::identity_public_key::security_level::SecurityLevel::CRITICAL, - dpp_identity_identity_public_key_security_level_SecurityLevel::HIGH => dpp::identity::identity_public_key::security_level::SecurityLevel::HIGH, - dpp_identity_identity_public_key_security_level_SecurityLevel::MEDIUM => dpp::identity::identity_public_key::security_level::SecurityLevel::MEDIUM - } - } + pub mod transformer { use crate as dash_sdk_bindings; } } + } - impl ferment::FFIConversionTo for dpp_identity_identity_public_key_security_level_SecurityLevel { - unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::security_level::SecurityLevel) -> *const dpp_identity_identity_public_key_security_level_SecurityLevel { - ferment::boxed(match obj { - dpp::identity::identity_public_key::security_level::SecurityLevel::MASTER => dpp_identity_identity_public_key_security_level_SecurityLevel::MASTER, - dpp::identity::identity_public_key::security_level::SecurityLevel::CRITICAL => dpp_identity_identity_public_key_security_level_SecurityLevel::CRITICAL, - dpp::identity::identity_public_key::security_level::SecurityLevel::HIGH => dpp_identity_identity_public_key_security_level_SecurityLevel::HIGH, - dpp::identity::identity_public_key::security_level::SecurityLevel::MEDIUM => dpp_identity_identity_public_key_security_level_SecurityLevel::MEDIUM, - _ => unreachable!("This is unreachable") - }) - } - } + pub mod identity_create { + use crate as dash_sdk_bindings; - impl Drop for dpp_identity_identity_public_key_security_level_SecurityLevel { - fn drop(&mut self) { - unsafe { - match self { - dpp_identity_identity_public_key_security_level_SecurityLevel::MASTER => {} - dpp_identity_identity_public_key_security_level_SecurityLevel::CRITICAL => {} - dpp_identity_identity_public_key_security_level_SecurityLevel::HIGH => {} - dpp_identity_identity_public_key_security_level_SecurityLevel::MEDIUM => {} - _ => unreachable!("This is unreachable") - }; - } - } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_security_level_SecurityLevel_MASTER_ctor() -> *mut dpp_identity_identity_public_key_security_level_SecurityLevel { ferment::boxed(dpp_identity_identity_public_key_security_level_SecurityLevel::MASTER {}) } + pub mod identity_credit_transfer { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_security_level_SecurityLevel_CRITICAL_ctor() -> *mut dpp_identity_identity_public_key_security_level_SecurityLevel { ferment::boxed(dpp_identity_identity_public_key_security_level_SecurityLevel::CRITICAL {}) } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_security_level_SecurityLevel_HIGH_ctor() -> *mut dpp_identity_identity_public_key_security_level_SecurityLevel { ferment::boxed(dpp_identity_identity_public_key_security_level_SecurityLevel::HIGH {}) } + pub mod identity_topup { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_security_level_SecurityLevel_MEDIUM_ctor() -> *mut dpp_identity_identity_public_key_security_level_SecurityLevel { ferment::boxed(dpp_identity_identity_public_key_security_level_SecurityLevel::MEDIUM {}) } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_security_level_SecurityLevel_destroy<>(ffi: *mut dpp_identity_identity_public_key_security_level_SecurityLevel) { ferment::unbox_any(ffi); } + pub mod identity_credit_transfer_to_addresses { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } + } - pub mod accessors { use crate as dash_sdk_bindings; } + pub mod contract { + use crate as dash_sdk_bindings; - pub mod contract_bounds { + pub mod data_contract_create { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`ContractBounds`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum dpp_identity_identity_public_key_contract_bounds_ContractBounds { SingleContract { id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier }, SingleContractDocumentType { id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type_name: *mut std::os::raw::c_char } } - - impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_contract_bounds_ContractBounds { - unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_contract_bounds_ContractBounds) -> dpp::identity::identity_public_key::contract_bounds::ContractBounds { - let ffi_ref = &*ffi; - match ffi_ref { - dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContract { id } => dpp::identity::identity_public_key::contract_bounds::ContractBounds::SingleContract { id: >::ffi_from(*id) }, - dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContractDocumentType { id, document_type_name } => dpp::identity::identity_public_key::contract_bounds::ContractBounds::SingleContractDocumentType { id: >::ffi_from(*id), document_type_name: >::ffi_from(*document_type_name) } - } - } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionTo for dpp_identity_identity_public_key_contract_bounds_ContractBounds { - unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::contract_bounds::ContractBounds) -> *const dpp_identity_identity_public_key_contract_bounds_ContractBounds { - ferment::boxed(match obj { - dpp::identity::identity_public_key::contract_bounds::ContractBounds::SingleContract { id } => dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContract { id: >::ffi_to(id) }, - dpp::identity::identity_public_key::contract_bounds::ContractBounds::SingleContractDocumentType { id, document_type_name } => dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContractDocumentType { id: >::ffi_to(id), document_type_name: >::ffi_to(document_type_name) }, - _ => unreachable!("This is unreachable") - }) - } - } + pub mod data_contract_update { + use crate as dash_sdk_bindings; - impl Drop for dpp_identity_identity_public_key_contract_bounds_ContractBounds { - fn drop(&mut self) { - unsafe { - match self { - dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContract { id } => { ferment::unbox_any(*id); } - dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContractDocumentType { id, document_type_name } => { - ferment::unbox_any(*id); - ; - ferment::unbox_string(*document_type_name); - } - _ => unreachable!("This is unreachable") - }; - } - } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_contract_bounds_ContractBounds_SingleContract_ctor(id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut dpp_identity_identity_public_key_contract_bounds_ContractBounds { ferment::boxed(dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContract { id }) } + pub mod address_funds { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_contract_bounds_ContractBounds_SingleContractDocumentType_ctor(id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type_name: *mut std::os::raw::c_char) -> *mut dpp_identity_identity_public_key_contract_bounds_ContractBounds { ferment::boxed(dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContractDocumentType { id, document_type_name }) } + pub mod address_credit_withdrawal { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_contract_bounds_ContractBounds_destroy<>(ffi: *mut dpp_identity_identity_public_key_contract_bounds_ContractBounds) { ferment::unbox_any(ffi); } + pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod methods { + pub mod address_funds_transfer { use crate as dash_sdk_bindings; - pub mod hash { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } - #[doc = "FFI-representation of the [`KeyCount`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_identity_identity_public_key_KeyCount(*mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID); + pub mod address_funding_from_asset_lock { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_KeyCount { - unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_KeyCount) -> dpp::identity::identity_public_key::KeyCount { - let ffi_ref = &*ffi; - >::ffi_from(ffi_ref.0) - } + pub mod v0 { use crate as dash_sdk_bindings; } } + } - impl ferment::FFIConversionTo for dpp_identity_identity_public_key_KeyCount { unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::KeyCount) -> *const dpp_identity_identity_public_key_KeyCount { ferment::boxed(dpp_identity_identity_public_key_KeyCount(>::ffi_to(obj))) } } + pub mod shielded { + use crate as dash_sdk_bindings; - impl Drop for dpp_identity_identity_public_key_KeyCount { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.0); - } - } + pub mod unshield { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyCount_ctor<>(o_0: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID) -> *mut dpp_identity_identity_public_key_KeyCount { ferment::boxed(dpp_identity_identity_public_key_KeyCount(o_0)) } + pub mod shield_from_asset_lock { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyCount_destroy<>(ffi: *mut dpp_identity_identity_public_key_KeyCount) { ferment::unbox_any(ffi); } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyCount_get_0<>(obj: *const dpp_identity_identity_public_key_KeyCount) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID { (*obj).0 } + pub mod shielded_transfer { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyCount_set_0<>(obj: *const dpp_identity_identity_public_key_KeyCount) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID { (*obj).0 } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`IdentityPublicKey`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum dpp_identity_identity_public_key_IdentityPublicKey { V0(*mut crate::fermented::types::dpp::identity::identity_public_key::v0::dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) } + pub mod shielded_withdrawal { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_IdentityPublicKey { - unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_IdentityPublicKey) -> dpp::identity::identity_public_key::IdentityPublicKey { - let ffi_ref = &*ffi; - match ffi_ref { dpp_identity_identity_public_key_IdentityPublicKey::V0(o_0) => dpp::identity::identity_public_key::IdentityPublicKey::V0(>::ffi_from(*o_0)) } - } + pub mod v0 { use crate as dash_sdk_bindings; } } - impl ferment::FFIConversionTo for dpp_identity_identity_public_key_IdentityPublicKey { - unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::IdentityPublicKey) -> *const dpp_identity_identity_public_key_IdentityPublicKey { - ferment::boxed(match obj { - dpp::identity::identity_public_key::IdentityPublicKey::V0(o_0) => dpp_identity_identity_public_key_IdentityPublicKey::V0(>::ffi_to(o_0)), - _ => unreachable!("This is unreachable") - }) - } - } + pub mod shield { + use crate as dash_sdk_bindings; - impl Drop for dpp_identity_identity_public_key_IdentityPublicKey { - fn drop(&mut self) { - unsafe { - match self { - dpp_identity_identity_public_key_IdentityPublicKey::V0(o_0) => { ferment::unbox_any(*o_0); } - _ => unreachable!("This is unreachable") - }; - } - } + pub mod v0 { use crate as dash_sdk_bindings; } } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_IdentityPublicKey_V0_ctor(o_o_0: *mut crate::fermented::types::dpp::identity::identity_public_key::v0::dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut dpp_identity_identity_public_key_IdentityPublicKey { ferment::boxed(dpp_identity_identity_public_key_IdentityPublicKey::V0(o_o_0)) } + pub mod identity_create_from_shielded_pool { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_public_key_IdentityPublicKey_destroy<>(ffi: *mut dpp_identity_identity_public_key_IdentityPublicKey) { ferment::unbox_any(ffi); } + pub mod v0 { use crate as dash_sdk_bindings; } + } } - pub mod accessors { use crate as dash_sdk_bindings; } - - pub mod identity { + pub mod action_convert_to_operations { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`Identity`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum dpp_identity_identity_Identity { V0(*mut crate::fermented::types::dpp::identity::v0::dpp_identity_v0_IdentityV0) } + pub mod identity { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for dpp_identity_identity_Identity { - unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_Identity) -> dpp::identity::identity::Identity { - let ffi_ref = &*ffi; - match ffi_ref { dpp_identity_identity_Identity::V0(o_0) => dpp::identity::identity::Identity::V0(>::ffi_from(*o_0)) } - } - } + pub mod identity_credit_withdrawal_transition { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionTo for dpp_identity_identity_Identity { - unsafe fn ffi_to_const(obj: dpp::identity::identity::Identity) -> *const dpp_identity_identity_Identity { - ferment::boxed(match obj { - dpp::identity::identity::Identity::V0(o_0) => dpp_identity_identity_Identity::V0(>::ffi_to(o_0)), - _ => unreachable!("This is unreachable") - }) - } - } + pub mod identity_top_up_from_addresses_transition { use crate as dash_sdk_bindings; } - impl Drop for dpp_identity_identity_Identity { - fn drop(&mut self) { - unsafe { - match self { - dpp_identity_identity_Identity::V0(o_0) => { ferment::unbox_any(*o_0); } - _ => unreachable!("This is unreachable") - }; - } - } - } + pub mod identity_top_up_transition { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_Identity_V0_ctor(o_o_0: *mut crate::fermented::types::dpp::identity::v0::dpp_identity_v0_IdentityV0) -> *mut dpp_identity_identity_Identity { ferment::boxed(dpp_identity_identity_Identity::V0(o_o_0)) } + pub mod identity_credit_transfer_transition { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_identity_Identity_destroy<>(ffi: *mut dpp_identity_identity_Identity) { ferment::unbox_any(ffi); } - } + pub mod masternode_vote_transition { use crate as dash_sdk_bindings; } - pub mod credits_converter { use crate as dash_sdk_bindings; } + pub mod identity_create_transition { use crate as dash_sdk_bindings; } - pub mod conversion { - use crate as dash_sdk_bindings; + pub mod identity_update_transition { use crate as dash_sdk_bindings; } - #[cfg(feature = "identity-cbor-conversion")] - pub mod cbor { - use crate as dash_sdk_bindings; + pub mod identity_create_from_addresses_transition { use crate as dash_sdk_bindings; } + + pub mod identity_credit_transfer_to_addresses_transition { use crate as dash_sdk_bindings; } } - #[cfg(feature = "identity-value-conversion")] - pub mod platform_value { + pub mod batch { use crate as dash_sdk_bindings; + + pub mod token { use crate as dash_sdk_bindings; } + + pub mod batch_transition { use crate as dash_sdk_bindings; } + + pub mod document { use crate as dash_sdk_bindings; } } - #[cfg(feature = "identity-json-conversion")] - pub mod json { + pub mod system { use crate as dash_sdk_bindings; + + pub mod partially_use_asset_lock { use crate as dash_sdk_bindings; } + + pub mod bump_identity_nonce { use crate as dash_sdk_bindings; } + + pub mod bump_identity_data_contract_nonce { use crate as dash_sdk_bindings; } + + pub mod bump_address_input_nonces { use crate as dash_sdk_bindings; } } - } - pub mod methods { - use crate as dash_sdk_bindings; + pub mod address_funds { + use crate as dash_sdk_bindings; - pub mod create_basic_identity { use crate as dash_sdk_bindings; } - } + pub mod address_credit_withdrawal_transition { use crate as dash_sdk_bindings; } - pub mod v0 { - use crate as dash_sdk_bindings; + pub mod address_funding_from_asset_lock_transition { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`IdentityV0`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dpp_identity_v0_IdentityV0 { - pub id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, - pub public_keys: *mut crate::fermented::generics::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey, - pub balance: u64, - pub revision: *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision, + pub mod address_funds_transfer_transition { use crate as dash_sdk_bindings; } } - impl ferment::FFIConversionFrom for dpp_identity_v0_IdentityV0 { - unsafe fn ffi_from_const(ffi: *const dpp_identity_v0_IdentityV0) -> dpp::identity::v0::IdentityV0 { - let ffi_ref = &*ffi; - dpp::identity::v0::IdentityV0 { id: >::ffi_from(ffi_ref.id), public_keys: >>::ffi_from(ffi_ref.public_keys), balance: ffi_ref.balance, revision: >::ffi_from(ffi_ref.revision) } - } - } + pub mod contract { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionTo for dpp_identity_v0_IdentityV0 { unsafe fn ffi_to_const(obj: dpp::identity::v0::IdentityV0) -> *const dpp_identity_v0_IdentityV0 { ferment::boxed(dpp_identity_v0_IdentityV0 { id: >::ffi_to(obj.id), public_keys: >>::ffi_to(obj.public_keys), balance: obj.balance, revision: >::ffi_to(obj.revision) }) } } + pub mod data_contract_create_transition { use crate as dash_sdk_bindings; } - impl Drop for dpp_identity_v0_IdentityV0 { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.id); - ferment::unbox_any(ffi_ref.public_keys); - ; - ferment::unbox_any(ffi_ref.revision); - } - } + pub mod data_contract_update_transition { use crate as dash_sdk_bindings; } } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_ctor<>(id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, public_keys: *mut crate::fermented::generics::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey, balance: u64, revision: *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision) -> *mut dpp_identity_v0_IdentityV0 { ferment::boxed(dpp_identity_v0_IdentityV0 { id, public_keys, balance, revision }) } - - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_destroy<>(ffi: *mut dpp_identity_v0_IdentityV0) { ferment::unbox_any(ffi); } - - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_get_id<>(obj: *const dpp_identity_v0_IdentityV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).id } - - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_get_public_keys<>(obj: *const dpp_identity_v0_IdentityV0) -> *mut crate::fermented::generics::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { (*obj).public_keys } - - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_get_balance<>(obj: *const dpp_identity_v0_IdentityV0) -> u64 { (*obj).balance } + pub mod shielded { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_get_revision<>(obj: *const dpp_identity_v0_IdentityV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision { (*obj).revision } + pub mod shield_from_asset_lock_transition { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_set_id<>(obj: *const dpp_identity_v0_IdentityV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).id } + pub mod shield_transition { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_set_public_keys<>(obj: *const dpp_identity_v0_IdentityV0) -> *mut crate::fermented::generics::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { (*obj).public_keys } + pub mod unshield_transition { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_set_balance<>(obj: *const dpp_identity_v0_IdentityV0) -> u64 { (*obj).balance } + pub mod shielded_transfer_transition { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_set_revision<>(obj: *const dpp_identity_v0_IdentityV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision { (*obj).revision } + pub mod identity_create_from_shielded_pool_transition { use crate as dash_sdk_bindings; } - pub mod conversion { use crate as dash_sdk_bindings; } + pub mod shielded_withdrawal_transition { use crate as dash_sdk_bindings; } + } } - pub mod state_transition { + pub mod batch { use crate as dash_sdk_bindings; - pub mod asset_lock_proof { + pub mod batched_transition { use crate as dash_sdk_bindings; - pub mod validate_asset_lock_transaction_structure { use crate as dash_sdk_bindings; } - - pub mod chain { use crate as dash_sdk_bindings; } - - pub mod instant { + pub mod token_transition { use crate as dash_sdk_bindings; - pub mod methods { + pub mod token_burn_transition_action { use crate as dash_sdk_bindings; - pub mod validate_structure { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } - } - } - } - pub mod errors { use crate as dash_sdk_bindings; } + pub mod token_mint_transition_action { + use crate as dash_sdk_bindings; - pub mod fields { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[cfg(feature = "fixtures-and-mocks")] - pub mod tests { - use crate as dash_sdk_bindings; + pub mod token_freeze_transition_action { + use crate as dash_sdk_bindings; - pub mod fixtures { use crate as dash_sdk_bindings; } - } + pub mod v0 { + use crate as dash_sdk_bindings; - pub mod util { - use crate as dash_sdk_bindings; + pub mod transformer { use crate as dash_sdk_bindings; } + } + } - #[cfg(feature = "cbor")] - pub mod cbor_value { - use crate as dash_sdk_bindings; + pub mod token_emergency_action_transition_action { + use crate as dash_sdk_bindings; - pub mod convert { use crate as dash_sdk_bindings; } + pub mod v0 { + use crate as dash_sdk_bindings; - pub mod canonical { use crate as dash_sdk_bindings; } - } + pub mod transformer { use crate as dash_sdk_bindings; } + } + } - pub mod json_schema { use crate as dash_sdk_bindings; } + pub mod token_base_transition_action { + use crate as dash_sdk_bindings; - pub mod strings { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } - } + pub mod token_transition_action_type { use crate as dash_sdk_bindings; } - pub mod json_value { - use crate as dash_sdk_bindings; + pub mod token_direct_purchase_transition_action { + use crate as dash_sdk_bindings; - pub mod remove_path { use crate as dash_sdk_bindings; } + pub mod v0 { + use crate as dash_sdk_bindings; - pub mod insert_with_path { use crate as dash_sdk_bindings; } - } + pub mod transformer { use crate as dash_sdk_bindings; } + } + } - pub mod json_path { use crate as dash_sdk_bindings; } + pub mod token_claim_transition_action { + use crate as dash_sdk_bindings; - pub mod deserializer { use crate as dash_sdk_bindings; } - } + pub mod v0 { + use crate as dash_sdk_bindings; - pub mod core_subsidy { - use crate as dash_sdk_bindings; + pub mod transformer { use crate as dash_sdk_bindings; } + } + } - pub mod epoch_core_reward_credits_for_distribution { - use crate as dash_sdk_bindings; + pub mod token_config_update_transition_action { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } - } + pub mod v0 { + use crate as dash_sdk_bindings; - #[cfg(feature = "system_contracts")] - pub mod system_data_contracts { - use crate as dash_sdk_bindings; - } + pub mod transformer { use crate as dash_sdk_bindings; } + } + } - pub mod data_contract { - use crate as dash_sdk_bindings; + pub mod token_destroy_frozen_funds_transition_action { + use crate as dash_sdk_bindings; - pub mod serialized_version { use crate as dash_sdk_bindings; } + pub mod v0 { + use crate as dash_sdk_bindings; - #[cfg(any(feature = "state-transitions", feature = "factories"))] - pub mod created_data_contract { - use crate as dash_sdk_bindings; + pub mod transformer { use crate as dash_sdk_bindings; } + } + } - pub mod fields { use crate as dash_sdk_bindings; } - } + pub mod token_unfreeze_transition_action { + use crate as dash_sdk_bindings; - pub mod accessors { use crate as dash_sdk_bindings; } + pub mod v0 { + use crate as dash_sdk_bindings; - pub mod group { - use crate as dash_sdk_bindings; + pub mod transformer { use crate as dash_sdk_bindings; } + } + } - pub mod accessors { use crate as dash_sdk_bindings; } + pub mod token_transfer_transition_action { + use crate as dash_sdk_bindings; - pub mod v0 { - use crate as dash_sdk_bindings; + pub mod v0 { + use crate as dash_sdk_bindings; - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } - } + pub mod transformer { use crate as dash_sdk_bindings; } + } + } - pub mod methods { use crate as dash_sdk_bindings; } - } + pub mod token_set_price_for_direct_purchase_transition_action { + use crate as dash_sdk_bindings; - pub mod v1 { - use crate as dash_sdk_bindings; + pub mod v0 { + use crate as dash_sdk_bindings; - pub mod serialization { use crate as dash_sdk_bindings; } + pub mod transformer { use crate as dash_sdk_bindings; } + } + } + } - pub mod methods { - use crate as dash_sdk_bindings; + pub mod document_transition { + use crate as dash_sdk_bindings; - pub mod schema { use crate as dash_sdk_bindings; } - } + pub mod document_base_transition_action { + use crate as dash_sdk_bindings; - pub mod conversion { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod document_type { - use crate as dash_sdk_bindings; + pub mod document_replace_transition_action { + use crate as dash_sdk_bindings; - pub mod token_costs { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod v0 { use crate as dash_sdk_bindings; } + pub mod document_create_transition_action { + use crate as dash_sdk_bindings; - pub mod class_methods { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod try_from_schema { - use crate as dash_sdk_bindings; + pub mod document_delete_transition_action { + use crate as dash_sdk_bindings; - pub mod v0 { + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod document_update_price_transition_action { use crate as dash_sdk_bindings; - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } + pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod v1 { + pub mod document_purchase_transition_action { use crate as dash_sdk_bindings; - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } + pub mod v0 { use crate as dash_sdk_bindings; } } - } - pub mod create_document_types_from_document_schemas { - use crate as dash_sdk_bindings; + pub mod document_transfer_transition_action { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } } } + } + } - pub mod schema { - use crate as dash_sdk_bindings; + #[cfg(any(feature = "server", feature = "verify"))] + pub mod drive { + use crate as dash_sdk_bindings; - pub mod enrich_with_base_schema { use crate as dash_sdk_bindings; } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod identity { + use crate as dash_sdk_bindings; - #[cfg(feature = "validation")] - pub mod validate_schema_compatibility { - use crate as dash_sdk_bindings; - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod balance { + use crate as dash_sdk_bindings; - #[cfg(feature = "validation")] - pub mod recursive_schema_validator { + #[cfg(feature = "server")] + pub mod update { use crate as dash_sdk_bindings; - pub mod traversal_validator { use crate as dash_sdk_bindings; } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } } - pub mod find_identifier_and_binary_paths { use crate as dash_sdk_bindings; } - - #[cfg(feature = "validation")] - pub mod validate_max_depth { + #[cfg(feature = "server")] + pub mod prove { use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } } } - pub mod methods { + #[cfg(any(feature = "server", feature = "verify"))] + pub mod fetch { use crate as dash_sdk_bindings; - #[cfg(feature = "validation")] - pub mod validate_update { + #[cfg(feature = "server")] + pub mod prove { use crate as dash_sdk_bindings; - pub mod v0 { + pub mod prove_full_identity_by_non_unique_public_key_hash { use crate as dash_sdk_bindings; - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } + pub mod v0 { use crate as dash_sdk_bindings; } } - } - } - pub mod property { use crate as dash_sdk_bindings; } + pub mod prove_identity_id_by_unique_public_key_hash { + use crate as dash_sdk_bindings; - pub mod index_level { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod v1 { use crate as dash_sdk_bindings; } + pub mod prove_full_identity { + use crate as dash_sdk_bindings; - pub mod index { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod accessors { use crate as dash_sdk_bindings; } - } + pub mod prove_identity_ids_by_unique_public_key_hashes { + use crate as dash_sdk_bindings; - pub mod change_control_rules { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod associated_token { - use crate as dash_sdk_bindings; + pub mod prove_full_identity_by_unique_public_key_hash { + use crate as dash_sdk_bindings; - pub mod token_marketplace_rules { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod accessors { use crate as dash_sdk_bindings; } + pub mod prove_full_identities { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod token_distribution_rules { - use crate as dash_sdk_bindings; + pub mod prove_full_identities_by_unique_public_key_hashes { + use crate as dash_sdk_bindings; - pub mod accessors { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod prove_identities_contract_keys { use crate as dash_sdk_bindings; } + } - pub mod token_perpetual_distribution { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod partial_identity { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } + pub mod fetch_identity_balance_with_keys { use crate as dash_sdk_bindings; } - pub mod reward_distribution_moment { use crate as dash_sdk_bindings; } + pub mod fetch_identity_keys { use crate as dash_sdk_bindings; } - pub mod reward_distribution_type { - use crate as dash_sdk_bindings; + pub mod fetch_identity_balance_with_keys_and_revision { use crate as dash_sdk_bindings; } - pub mod validation { use crate as dash_sdk_bindings; } - } + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } - pub mod methods { use crate as dash_sdk_bindings; } + pub mod fetch_identity_revision_with_keys { use crate as dash_sdk_bindings; } - pub mod distribution_function { + pub mod fetch_identity_with_balance { use crate as dash_sdk_bindings; } + } + + #[cfg(feature = "server")] + pub mod revision { use crate as dash_sdk_bindings; - pub mod evaluate_interval { - use crate as dash_sdk_bindings; + pub mod fetch_identity_revision { use crate as dash_sdk_bindings; } - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; } + } - pub mod validation { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod nonce { + use crate as dash_sdk_bindings; - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; } - pub mod evaluate { - use crate as dash_sdk_bindings; + pub mod prove_identity_nonce { use crate as dash_sdk_bindings; } - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } - } + pub mod fetch_identity_nonce { use crate as dash_sdk_bindings; } } - } - pub mod token_pre_programmed_distribution { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod fetch_by_public_key_hashes { + use crate as dash_sdk_bindings; - pub mod accessors { use crate as dash_sdk_bindings; } - } + pub mod fetch_full_identities_by_unique_public_key_hashes { use crate as dash_sdk_bindings; } - pub mod token_configuration_convention { - use crate as dash_sdk_bindings; + pub mod fetch_full_identity_by_non_unique_public_key_hash { use crate as dash_sdk_bindings; } - pub mod accessors { use crate as dash_sdk_bindings; } + pub mod fetch_identity_ids_by_unique_public_key_hashes { use crate as dash_sdk_bindings; } - pub mod methods { - use crate as dash_sdk_bindings; + pub mod has_non_unique_public_key_hash { use crate as dash_sdk_bindings; } - pub mod validate_localizations { use crate as dash_sdk_bindings; } - } - } + pub mod fetch_full_identity_by_unique_public_key_hash { use crate as dash_sdk_bindings; } - pub mod token_keeps_history_rules { - use crate as dash_sdk_bindings; + pub mod fetch_identity_id_by_unique_public_key_hash { use crate as dash_sdk_bindings; } - pub mod v0 { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } - pub mod accessors { use crate as dash_sdk_bindings; } - } + pub mod has_non_unique_public_key_hash_already_for_identity { use crate as dash_sdk_bindings; } - pub mod token_configuration { - use crate as dash_sdk_bindings; + pub mod has_unique_public_key_hash { use crate as dash_sdk_bindings; } - pub mod v0 { use crate as dash_sdk_bindings; } + pub mod has_any_of_unique_public_key_hashes { use crate as dash_sdk_bindings; } - pub mod methods { + pub mod fetch_identity_ids_by_non_unique_public_key_hash { use crate as dash_sdk_bindings; } + } + + #[cfg(feature = "server")] + pub mod balance { use crate as dash_sdk_bindings; - pub mod validate_token_configuration_update { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } - pub mod apply_token_configuration_item { use crate as dash_sdk_bindings; } + pub mod fetch_identity_negative_balance { use crate as dash_sdk_bindings; } - pub mod can_apply_token_configuration_item { use crate as dash_sdk_bindings; } + pub mod fetch_identity_balance_include_debt { use crate as dash_sdk_bindings; } - pub mod validate_token_configuration_groups_exist { use crate as dash_sdk_bindings; } + pub mod fetch_identity_balance { use crate as dash_sdk_bindings; } + } - pub mod authorized_action_takers_for_configuration_item { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; } - pub mod accessors { use crate as dash_sdk_bindings; } - } + #[cfg(feature = "server")] + pub mod full_identity { + use crate as dash_sdk_bindings; - pub mod token_configuration_localization { - use crate as dash_sdk_bindings; + pub mod fetch_full_identity { use crate as dash_sdk_bindings; } - pub mod accessors { use crate as dash_sdk_bindings; } + pub mod fetch_full_identities { use crate as dash_sdk_bindings; } - pub mod v0 { use crate as dash_sdk_bindings; } - } - } + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } - #[cfg(any( - feature = "data-contract-value-conversion", - feature = "data-contract-cbor-conversion", - feature = "data-contract-json-conversion" - ))] - pub mod conversion { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod contract_keys { + use crate as dash_sdk_bindings; - #[cfg(feature = "data-contract-cbor-conversion")] - pub mod cbor { - use crate as dash_sdk_bindings; - } + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } - #[cfg(feature = "data-contract-value-conversion")] - pub mod value { - use crate as dash_sdk_bindings; - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod queries { + use crate as dash_sdk_bindings; - #[cfg(feature = "data-contract-json-conversion")] - pub mod json { - use crate as dash_sdk_bindings; + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } } - } - - pub mod extra { - use crate as dash_sdk_bindings; - #[cfg(test)] - pub mod drive_api_tests { + #[cfg(feature = "server")] + pub mod withdrawals { use crate as dash_sdk_bindings; - } - } - pub mod storage_requirements { use crate as dash_sdk_bindings; } + pub mod calculate_current_withdrawal_limit { use crate as dash_sdk_bindings; } - pub mod methods { - use crate as dash_sdk_bindings; + pub mod transaction { + use crate as dash_sdk_bindings; - pub mod registration_cost { use crate as dash_sdk_bindings; } + pub mod index { + use crate as dash_sdk_bindings; - pub mod schema { use crate as dash_sdk_bindings; } + pub mod add_update_next_withdrawal_transaction_index_operation { use crate as dash_sdk_bindings; } - #[cfg(feature = "validation")] - pub mod validate_document { - use crate as dash_sdk_bindings; - } + pub mod fetch_next_withdrawal_transaction_index { use crate as dash_sdk_bindings; } + } - pub mod equal_ignoring_time_based_fields { use crate as dash_sdk_bindings; } + pub mod queue { + use crate as dash_sdk_bindings; - #[cfg(feature = "validation")] - pub mod validate_update { - use crate as dash_sdk_bindings; + pub mod add_enqueue_untied_withdrawal_transaction_operations { use crate as dash_sdk_bindings; } - pub mod v0 { + pub mod move_broadcasted_withdrawal_transactions_back_to_queue_operations { use crate as dash_sdk_bindings; } + + pub mod dequeue_untied_withdrawal_transactions { use crate as dash_sdk_bindings; } + + pub mod remove_broadcasted_withdrawal_transactions_after_completion { use crate as dash_sdk_bindings; } + } + } + + pub mod document { use crate as dash_sdk_bindings; - #[cfg(test)] - pub mod tests { + pub mod find_withdrawal_documents_by_status_and_transaction_indices { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod fetch_oldest_withdrawal_documents_by_status { use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } } } - #[cfg(feature = "validation")] - pub mod validate_groups { + #[cfg(any(feature = "server", feature = "verify"))] + pub mod key { use crate as dash_sdk_bindings; - } - } - pub mod v0 { - use crate as dash_sdk_bindings; + #[cfg(any(feature = "server", feature = "verify"))] + pub mod queries { + use crate as dash_sdk_bindings; + } - pub mod data_contract { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod insert_key_hash_identity_reference { + use crate as dash_sdk_bindings; - pub mod conversion { use crate as dash_sdk_bindings; } + pub mod insert_non_unique_public_key_hash_reference_to_identity { use crate as dash_sdk_bindings; } - pub mod serialization { use crate as dash_sdk_bindings; } + pub mod estimation_costs { + use crate as dash_sdk_bindings; - pub mod methods { - use crate as dash_sdk_bindings; + pub mod add_estimation_costs_for_insert_non_unique_public_key_hash_reference { use crate as dash_sdk_bindings; } - pub mod schema { use crate as dash_sdk_bindings; } - } - } + pub mod add_estimation_costs_for_insert_unique_public_key_hash_reference { use crate as dash_sdk_bindings; } + } - #[cfg(feature = "factories")] - pub mod factory { - use crate as dash_sdk_bindings; + pub mod insert_reference_to_non_unique_key { use crate as dash_sdk_bindings; } - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod insert_unique_public_key_hash_reference_to_identity { use crate as dash_sdk_bindings; } - pub mod config { - use crate as dash_sdk_bindings; + pub mod insert_reference_to_unique_key { use crate as dash_sdk_bindings; } + } - pub mod fields { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod insert { + use crate as dash_sdk_bindings; - pub mod methods { - use crate as dash_sdk_bindings; + pub mod replace_key_in_storage { use crate as dash_sdk_bindings; } - pub mod validate_update { use crate as dash_sdk_bindings; } - } - } + pub mod insert_key_searchable_references { use crate as dash_sdk_bindings; } - pub mod errors { use crate as dash_sdk_bindings; } - } - } + pub mod insert_key_to_storage { use crate as dash_sdk_bindings; } - pub mod drive_proof_verifier { - use crate as dash_sdk_bindings; + pub mod create_key_tree_with_keys { use crate as dash_sdk_bindings; } - pub mod types { - use crate as dash_sdk_bindings; + pub mod create_new_identity_key_query_trees { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`VotePollsGroupedByTimestamp`]"] - #[repr(C)] - #[derive(Clone)] - pub struct drive_proof_verifier_types_VotePollsGroupedByTimestamp(*mut crate::fermented::generics::Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll); + pub mod insert_new_unique_key { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionFrom for drive_proof_verifier_types_VotePollsGroupedByTimestamp { - unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_VotePollsGroupedByTimestamp) -> drive_proof_verifier::types::VotePollsGroupedByTimestamp { - let ffi_ref = &*ffi; - drive_proof_verifier::types::VotePollsGroupedByTimestamp()>>>::ffi_from(ffi_ref.0)) - } - } + pub mod insert_new_non_unique_key { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionTo for drive_proof_verifier_types_VotePollsGroupedByTimestamp { unsafe fn ffi_to_const(obj: drive_proof_verifier::types::VotePollsGroupedByTimestamp) -> *const drive_proof_verifier_types_VotePollsGroupedByTimestamp { ferment::boxed(drive_proof_verifier_types_VotePollsGroupedByTimestamp()>>>::ffi_to(obj.0))) } } + #[cfg(feature = "server")] + pub mod prove { + use crate as dash_sdk_bindings; - impl Drop for drive_proof_verifier_types_VotePollsGroupedByTimestamp { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.0); - } - } - } + pub mod prove_identity_keys { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_VotePollsGroupedByTimestamp_ctor<>(o_0: *mut crate::fermented::generics::Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) -> *mut drive_proof_verifier_types_VotePollsGroupedByTimestamp { ferment::boxed(drive_proof_verifier_types_VotePollsGroupedByTimestamp(o_0)) } + pub mod prove_identities_all_keys { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_VotePollsGroupedByTimestamp_destroy<>(ffi: *mut drive_proof_verifier_types_VotePollsGroupedByTimestamp) { ferment::unbox_any(ffi); } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod fetch { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_VotePollsGroupedByTimestamp_get_0<>(obj: *const drive_proof_verifier_types_VotePollsGroupedByTimestamp) -> *mut crate::fermented::generics::Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { (*obj).0 } + #[cfg(feature = "server")] + pub mod fetch_identities_all_keys { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_VotePollsGroupedByTimestamp_set_0<>(obj: *const drive_proof_verifier_types_VotePollsGroupedByTimestamp) -> *mut crate::fermented::generics::Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { (*obj).0 } + #[cfg(feature = "server")] + pub mod fetch_all_current_identity_keys { + use crate as dash_sdk_bindings; + } - #[doc = "FFI-representation of the [`ContestedResources`]"] - #[repr(C)] - #[derive(Clone)] - pub struct drive_proof_verifier_types_ContestedResources(*mut crate::fermented::generics::Vec_drive_proof_verifier_types_ContestedResource); + #[cfg(feature = "server")] + pub mod fetch_all_identity_keys { + use crate as dash_sdk_bindings; + } - impl ferment::FFIConversionFrom for drive_proof_verifier_types_ContestedResources { - unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_ContestedResources) -> drive_proof_verifier::types::ContestedResources { - let ffi_ref = &*ffi; - drive_proof_verifier::types::ContestedResources(>>::ffi_from(ffi_ref.0)) + #[cfg(feature = "server")] + pub mod fetch_identity_keys { + use crate as dash_sdk_bindings; + } + } } - } - impl ferment::FFIConversionTo for drive_proof_verifier_types_ContestedResources { unsafe fn ffi_to_const(obj: drive_proof_verifier::types::ContestedResources) -> *const drive_proof_verifier_types_ContestedResources { ferment::boxed(drive_proof_verifier_types_ContestedResources(>>::ffi_to(obj.0))) } } + #[cfg(feature = "server")] + pub mod insert { + use crate as dash_sdk_bindings; - impl Drop for drive_proof_verifier_types_ContestedResources { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.0); - } + pub mod add_new_identity { use crate as dash_sdk_bindings; } } - } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResources_ctor<>(o_0: *mut crate::fermented::generics::Vec_drive_proof_verifier_types_ContestedResource) -> *mut drive_proof_verifier_types_ContestedResources { ferment::boxed(drive_proof_verifier_types_ContestedResources(o_0)) } + #[cfg(feature = "server")] + pub mod estimation_costs { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResources_destroy<>(ffi: *mut drive_proof_verifier_types_ContestedResources) { ferment::unbox_any(ffi); } + pub mod for_identity_contract_info { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResources_get_0<>(obj: *const drive_proof_verifier_types_ContestedResources) -> *mut crate::fermented::generics::Vec_drive_proof_verifier_types_ContestedResource { (*obj).0 } + pub mod for_update_revision { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResources_set_0<>(obj: *const drive_proof_verifier_types_ContestedResources) -> *mut crate::fermented::generics::Vec_drive_proof_verifier_types_ContestedResource { (*obj).0 } + pub mod for_identity_contract_info_group_key_purpose { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`Contenders`]"] - #[repr(C)] - #[derive(Clone)] - pub struct drive_proof_verifier_types_Contenders { - pub winner: *mut crate::fermented::generics::Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo, - pub contenders: *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument, - pub abstain_vote_tally: *mut u32, - pub lock_vote_tally: *mut u32, - } + pub mod for_identity_contract_info_group { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionFrom for drive_proof_verifier_types_Contenders { - unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_Contenders) -> drive_proof_verifier::types::Contenders { - let ffi_ref = &*ffi; - drive_proof_verifier::types::Contenders { - winner: >::ffi_from_opt(ffi_ref.winner), - contenders: >>::ffi_from(ffi_ref.contenders), - abstain_vote_tally: ferment::from_opt_primitive(ffi_ref.abstain_vote_tally), - lock_vote_tally: ferment::from_opt_primitive(ffi_ref.lock_vote_tally), - } - } - } + pub mod for_update_nonce { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionTo for drive_proof_verifier_types_Contenders { - unsafe fn ffi_to_const(obj: drive_proof_verifier::types::Contenders) -> *const drive_proof_verifier_types_Contenders { - ferment::boxed(drive_proof_verifier_types_Contenders { winner: >::ffi_to_opt(obj.winner), contenders: >>::ffi_to(obj.contenders), abstain_vote_tally: ferment::to_opt_primitive(obj.abstain_vote_tally), lock_vote_tally: ferment::to_opt_primitive(obj.lock_vote_tally) }) - } - } + pub mod for_keys_for_identity_id { use crate as dash_sdk_bindings; } - impl Drop for drive_proof_verifier_types_Contenders { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any_opt(ffi_ref.winner); - ferment::unbox_any(ffi_ref.contenders); - ferment::destroy_opt_primitive(ffi_ref.abstain_vote_tally); - ferment::destroy_opt_primitive(ffi_ref.lock_vote_tally); - } - } - } + pub mod for_identity_contract_info_group_keys { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_ctor<>(winner: *mut crate::fermented::generics::Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo, contenders: *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument, abstain_vote_tally: *mut u32, lock_vote_tally: *mut u32) -> *mut drive_proof_verifier_types_Contenders { ferment::boxed(drive_proof_verifier_types_Contenders { winner, contenders, abstain_vote_tally, lock_vote_tally }) } + pub mod for_balances { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_destroy<>(ffi: *mut drive_proof_verifier_types_Contenders) { ferment::unbox_any(ffi); } + pub mod for_root_key_reference_tree { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_get_winner<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut crate::fermented::generics::Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { (*obj).winner } - - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_get_contenders<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { (*obj).contenders } - - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_get_abstain_vote_tally<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut u32 { (*obj).abstain_vote_tally } - - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_get_lock_vote_tally<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut u32 { (*obj).lock_vote_tally } - - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_set_winner<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut crate::fermented::generics::Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { (*obj).winner } - - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_set_contenders<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { (*obj).contenders } + pub mod for_authentication_keys_security_level_in_key_reference_tree { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_set_abstain_vote_tally<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut u32 { (*obj).abstain_vote_tally } + pub mod for_negative_credit { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_set_lock_vote_tally<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut u32 { (*obj).lock_vote_tally } + pub mod for_purpose_in_key_reference_tree { use crate as dash_sdk_bindings; } + } - #[doc = "FFI-representation of the [`Voters`]"] - #[repr(C)] - #[derive(Clone)] - pub struct drive_proof_verifier_types_Voters(*mut crate::fermented::generics::std_collections_BTreeSet_drive_proof_verifier_types_Voter); + #[cfg(feature = "server")] + pub mod update { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for drive_proof_verifier_types_Voters { - unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_Voters) -> drive_proof_verifier::types::Voters { - let ffi_ref = &*ffi; - drive_proof_verifier::types::Voters(>>::ffi_from(ffi_ref.0)) - } - } + pub mod structs { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionTo for drive_proof_verifier_types_Voters { unsafe fn ffi_to_const(obj: drive_proof_verifier::types::Voters) -> *const drive_proof_verifier_types_Voters { ferment::boxed(drive_proof_verifier_types_Voters(>>::ffi_to(obj.0))) } } + pub mod apply_balance_change_outcome { use crate as dash_sdk_bindings; } - impl Drop for drive_proof_verifier_types_Voters { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.0); + pub mod add_to_previous_balance_outcome { use crate as dash_sdk_bindings; } } - } - } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Voters_ctor<>(o_0: *mut crate::fermented::generics::std_collections_BTreeSet_drive_proof_verifier_types_Voter) -> *mut drive_proof_verifier_types_Voters { ferment::boxed(drive_proof_verifier_types_Voters(o_0)) } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Voters_destroy<>(ffi: *mut drive_proof_verifier_types_Voters) { ferment::unbox_any(ffi); } + pub mod methods { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Voters_get_0<>(obj: *const drive_proof_verifier_types_Voters) -> *mut crate::fermented::generics::std_collections_BTreeSet_drive_proof_verifier_types_Voter { (*obj).0 } + pub mod merge_identity_nonce { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Voters_set_0<>(obj: *const drive_proof_verifier_types_Voters) -> *mut crate::fermented::generics::std_collections_BTreeSet_drive_proof_verifier_types_Voter { (*obj).0 } + pub mod add_new_unique_keys_to_identity { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`ResourceVotesByIdentity`]"] - #[repr(C)] - #[derive(Clone)] - pub struct drive_proof_verifier_types_ResourceVotesByIdentity(*mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote); + pub mod apply_balance_change_from_fee_to_identity { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionFrom for drive_proof_verifier_types_ResourceVotesByIdentity { - unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_ResourceVotesByIdentity) -> drive_proof_verifier::types::ResourceVotesByIdentity { - let ffi_ref = &*ffi; - >>>::ffi_from(ffi_ref.0) - } - } + pub mod refresh_identity_key_reference_operations { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionTo for drive_proof_verifier_types_ResourceVotesByIdentity { unsafe fn ffi_to_const(obj: drive_proof_verifier::types::ResourceVotesByIdentity) -> *const drive_proof_verifier_types_ResourceVotesByIdentity { ferment::boxed(drive_proof_verifier_types_ResourceVotesByIdentity(>>>::ffi_to(obj))) } } + pub mod re_enable_identity_keys { use crate as dash_sdk_bindings; } - impl Drop for drive_proof_verifier_types_ResourceVotesByIdentity { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.0); - } - } - } + pub mod remove_from_identity_balance { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_ResourceVotesByIdentity_ctor<>(o_0: *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote) -> *mut drive_proof_verifier_types_ResourceVotesByIdentity { ferment::boxed(drive_proof_verifier_types_ResourceVotesByIdentity(o_0)) } + pub mod disable_identity_keys { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_ResourceVotesByIdentity_destroy<>(ffi: *mut drive_proof_verifier_types_ResourceVotesByIdentity) { ferment::unbox_any(ffi); } + pub mod add_new_non_unique_keys_to_identity { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_ResourceVotesByIdentity_get_0<>(obj: *const drive_proof_verifier_types_ResourceVotesByIdentity) -> *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { (*obj).0 } + pub mod update_identity_revision { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_ResourceVotesByIdentity_set_0<>(obj: *const drive_proof_verifier_types_ResourceVotesByIdentity) -> *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { (*obj).0 } + pub mod add_to_identity_balance { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`ContestedResource`]"] - #[repr(C)] - #[derive(Clone)] - pub struct drive_proof_verifier_types_ContestedResource(*mut crate::fermented::types::platform_value::platform_value_Value); + pub mod add_to_previous_balance { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionFrom for drive_proof_verifier_types_ContestedResource { - unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_ContestedResource) -> drive_proof_verifier::types::ContestedResource { - let ffi_ref = &*ffi; - drive_proof_verifier::types::ContestedResource(>::ffi_from(ffi_ref.0)) - } - } + pub mod add_new_keys_to_identity { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionTo for drive_proof_verifier_types_ContestedResource { unsafe fn ffi_to_const(obj: drive_proof_verifier::types::ContestedResource) -> *const drive_proof_verifier_types_ContestedResource { ferment::boxed(drive_proof_verifier_types_ContestedResource(>::ffi_to(obj.0))) } } + pub mod operations { + use crate as dash_sdk_bindings; - impl Drop for drive_proof_verifier_types_ContestedResource { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.0); - } - } - } + pub mod update_identity_revision_operation { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResource_ctor<>(o_0: *mut crate::fermented::types::platform_value::platform_value_Value) -> *mut drive_proof_verifier_types_ContestedResource { ferment::boxed(drive_proof_verifier_types_ContestedResource(o_0)) } + pub mod initialize_negative_identity_balance_operation { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResource_destroy<>(ffi: *mut drive_proof_verifier_types_ContestedResource) { ferment::unbox_any(ffi); } + pub mod update_identity_negative_credit_operation { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResource_get_0<>(obj: *const drive_proof_verifier_types_ContestedResource) -> *mut crate::fermented::types::platform_value::platform_value_Value { (*obj).0 } + pub mod initialize_identity_revision_operation { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResource_set_0<>(obj: *const drive_proof_verifier_types_ContestedResource) -> *mut crate::fermented::types::platform_value::platform_value_Value { (*obj).0 } + pub mod initialize_identity_nonce_operation { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`Voter`]"] - #[repr(C)] - #[derive(Clone)] - pub struct drive_proof_verifier_types_Voter(*mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier); + pub mod merge_identity_nonce_operations { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for drive_proof_verifier_types_Voter { - unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_Voter) -> drive_proof_verifier::types::Voter { - let ffi_ref = &*ffi; - drive_proof_verifier::types::Voter(>::ffi_from(ffi_ref.0)) - } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionTo for drive_proof_verifier_types_Voter { unsafe fn ffi_to_const(obj: drive_proof_verifier::types::Voter) -> *const drive_proof_verifier_types_Voter { ferment::boxed(drive_proof_verifier_types_Voter(>::ffi_to(obj.0))) } } + pub mod insert_identity_balance_operation { use crate as dash_sdk_bindings; } - impl Drop for drive_proof_verifier_types_Voter { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.0); + pub mod update_identity_balance_operation { use crate as dash_sdk_bindings; } } } - } - - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Voter_ctor<>(o_0: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut drive_proof_verifier_types_Voter { ferment::boxed(drive_proof_verifier_types_Voter(o_0)) } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Voter_destroy<>(ffi: *mut drive_proof_verifier_types_Voter) { ferment::unbox_any(ffi); } - - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Voter_get_0<>(obj: *const drive_proof_verifier_types_Voter) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).0 } + #[cfg(all(test, any(feature = "server", feature = "verify")))] + pub mod tests { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn drive_proof_verifier_types_Voter_set_0<>(obj: *const drive_proof_verifier_types_Voter) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).0 } - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod contract_info { + use crate as dash_sdk_bindings; - pub mod proof { use crate as dash_sdk_bindings; } - } + #[cfg(feature = "server")] + pub mod identity_contract_nonce { + use crate as dash_sdk_bindings; - pub mod dash_sdk { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod fetch_identity_contract_nonce { + use crate as dash_sdk_bindings; - pub mod error { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } - } + #[cfg(feature = "server")] + pub mod prove_identity_contract_nonce { + use crate as dash_sdk_bindings; - pub mod mock { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[cfg(feature = "mocks")] - pub mod sdk { - use crate as dash_sdk_bindings; - } - } + pub mod merge_identity_contract_nonce { + use crate as dash_sdk_bindings; - pub mod sync { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - pub mod core { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod keys { + use crate as dash_sdk_bindings; - pub mod platform { - use crate as dash_sdk_bindings; + pub mod add_potential_contract_info_for_contract_bounded_key { use crate as dash_sdk_bindings; } - pub mod transition { use crate as dash_sdk_bindings; } + pub mod refresh_potential_contract_info_key_references { use crate as dash_sdk_bindings; } + } + } + } - pub mod tokens { + #[cfg(feature = "server")] + pub mod platform_state { use crate as dash_sdk_bindings; - pub mod transitions { use crate as dash_sdk_bindings; } + pub mod fetch_platform_state_bytes { use crate as dash_sdk_bindings; } - pub mod builders { use crate as dash_sdk_bindings; } + pub mod store_platform_state_bytes { use crate as dash_sdk_bindings; } } - pub mod documents { + #[cfg(any(feature = "server", feature = "verify"))] + pub mod address_funds { use crate as dash_sdk_bindings; - pub mod transitions { use crate as dash_sdk_bindings; } - } + #[cfg(feature = "server")] + pub mod fetch { + use crate as dash_sdk_bindings; - pub mod types { - use crate as dash_sdk_bindings; + pub mod fetch_balances_with_nonces { use crate as dash_sdk_bindings; } - pub mod identity { + pub mod fetch_balance_and_nonce { use crate as dash_sdk_bindings; } + } + + #[cfg(feature = "server")] + pub mod add_balance_to_address { use crate as dash_sdk_bindings; + } - #[doc = "FFI-representation of the [`PublicKeyHash`]"] - #[repr(C)] - #[derive(Clone)] - pub struct dash_sdk_platform_types_identity_PublicKeyHash(*mut crate::fermented::generics::Arr_u8_20); + #[cfg(feature = "server")] + pub mod estimated_costs { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for dash_sdk_platform_types_identity_PublicKeyHash { - unsafe fn ffi_from_const(ffi: *const dash_sdk_platform_types_identity_PublicKeyHash) -> dash_sdk::platform::types::identity::PublicKeyHash { - let ffi_ref = &*ffi; - dash_sdk::platform::types::identity::PublicKeyHash(>::ffi_from(ffi_ref.0)) - } + pub mod for_address_balance_update { use crate as dash_sdk_bindings; } + } + + #[cfg(feature = "server")] + pub mod prove { + use crate as dash_sdk_bindings; + + pub mod prove_balances_with_nonces { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - impl ferment::FFIConversionTo for dash_sdk_platform_types_identity_PublicKeyHash { unsafe fn ffi_to_const(obj: dash_sdk::platform::types::identity::PublicKeyHash) -> *const dash_sdk_platform_types_identity_PublicKeyHash { ferment::boxed(dash_sdk_platform_types_identity_PublicKeyHash(>::ffi_to(obj.0))) } } + pub mod prove_balance_and_nonce { + use crate as dash_sdk_bindings; - impl Drop for dash_sdk_platform_types_identity_PublicKeyHash { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.0); - } - } + pub mod v0 { use crate as dash_sdk_bindings; } } - #[no_mangle] - pub unsafe extern "C" fn dash_sdk_platform_types_identity_PublicKeyHash_ctor<>(o_0: *mut crate::fermented::generics::Arr_u8_20) -> *mut dash_sdk_platform_types_identity_PublicKeyHash { ferment::boxed(dash_sdk_platform_types_identity_PublicKeyHash(o_0)) } + pub mod prove_address_funds_trunk_query { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dash_sdk_platform_types_identity_PublicKeyHash_destroy<>(ffi: *mut dash_sdk_platform_types_identity_PublicKeyHash) { ferment::unbox_any(ffi); } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn dash_sdk_platform_types_identity_PublicKeyHash_get_0<>(obj: *const dash_sdk_platform_types_identity_PublicKeyHash) -> *mut crate::fermented::generics::Arr_u8_20 { (*obj).0 } + pub mod prove_address_funds_branch_query { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn dash_sdk_platform_types_identity_PublicKeyHash_set_0<>(obj: *const dash_sdk_platform_types_identity_PublicKeyHash) -> *mut crate::fermented::generics::Arr_u8_20 { (*obj).0 } + pub mod v0 { use crate as dash_sdk_bindings; } + } } - } - } - - pub mod sdk { use crate as dash_sdk_bindings; } - } - pub mod drive { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod set_balance_to_address { + use crate as dash_sdk_bindings; + } - #[cfg(feature = "server")] - pub mod state_transition_action { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod remove_balance_from_address { + use crate as dash_sdk_bindings; + } + } - pub mod batch { + #[cfg(any(feature = "server", feature = "verify"))] + pub mod group { use crate as dash_sdk_bindings; - pub mod batched_transition { + #[cfg(feature = "server")] + pub mod prove { use crate as dash_sdk_bindings; - pub mod token_transition { + pub mod prove_group_infos { use crate as dash_sdk_bindings; - pub mod token_claim_transition_action { - use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } - } - - pub mod token_unfreeze_transition_action { - use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } - } - - pub mod token_freeze_transition_action { - use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } - } - - pub mod token_mint_transition_action { - use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod token_base_transition_action { - use crate as dash_sdk_bindings; + pub mod prove_group_info { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod token_set_price_for_direct_purchase_transition_action { - use crate as dash_sdk_bindings; + pub mod prove_action_infos { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod token_direct_purchase_transition_action { - use crate as dash_sdk_bindings; + pub mod prove_action_signers { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - pub mod token_transfer_transition_action { - use crate as dash_sdk_bindings; + pub mod paths { use crate as dash_sdk_bindings; } - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod queries { use crate as dash_sdk_bindings; } - pub mod token_emergency_action_transition_action { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod estimated_costs { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod for_add_group_action { use crate as dash_sdk_bindings; } - pub mod token_destroy_frozen_funds_transition_action { - use crate as dash_sdk_bindings; + pub mod for_add_groups { use crate as dash_sdk_bindings; } + } - pub mod v0 { use crate as dash_sdk_bindings; } - } + #[cfg(feature = "server")] + pub mod fetch { + use crate as dash_sdk_bindings; - pub mod token_burn_transition_action { - use crate as dash_sdk_bindings; + pub mod fetch_group_info { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod token_config_update_transition_action { - use crate as dash_sdk_bindings; + pub mod fetch_action_id_has_signer { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod document_transition { + pub mod fetch_action_is_closed { use crate as dash_sdk_bindings; - pub mod document_purchase_transition_action { - use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod document_replace_transition_action { - use crate as dash_sdk_bindings; + pub mod fetch_action_id_info_keep_serialized { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod document_transfer_transition_action { - use crate as dash_sdk_bindings; + pub mod fetch_action_id_signers_power { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod document_create_transition_action { - use crate as dash_sdk_bindings; + pub mod fetch_action_infos { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod document_base_transition_action { - use crate as dash_sdk_bindings; + pub mod fetch_action_signers { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod document_delete_transition_action { - use crate as dash_sdk_bindings; + pub mod fetch_group_infos { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod document_update_price_transition_action { - use crate as dash_sdk_bindings; + pub mod fetch_active_action_info { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } } } - } - - pub mod action_convert_to_operations { - use crate as dash_sdk_bindings; - - pub mod system { use crate as dash_sdk_bindings; } - pub mod batch { + #[cfg(feature = "server")] + pub mod insert { use crate as dash_sdk_bindings; - pub mod document { use crate as dash_sdk_bindings; } + pub mod add_group_action { use crate as dash_sdk_bindings; } - pub mod token { use crate as dash_sdk_bindings; } + pub mod add_new_groups { use crate as dash_sdk_bindings; } } - - pub mod contract { use crate as dash_sdk_bindings; } - - pub mod identity { use crate as dash_sdk_bindings; } } - pub mod identity { + #[cfg(any(feature = "server", feature = "verify"))] + pub mod balances { use crate as dash_sdk_bindings; - pub mod identity_update { + #[cfg(feature = "server")] + pub mod calculate_total_credits_balance { use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod identity_create { + #[cfg(feature = "server")] + pub mod remove_from_system_credits_operations { use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod identity_credit_transfer { + #[cfg(feature = "server")] + pub mod remove_from_system_credits { use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod identity_topup { + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod masternode_vote { + #[cfg(feature = "server")] + pub mod add_to_system_credits_operations { use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod identity_credit_withdrawal { + #[cfg(feature = "server")] + pub mod add_to_system_credits { use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } - - pub mod transformer { use crate as dash_sdk_bindings; } } } - pub mod system { + #[cfg(any(feature = "server", feature = "verify"))] + pub mod prefunded_specialized_balances { use crate as dash_sdk_bindings; - pub mod bump_identity_nonce_action { + #[cfg(feature = "server")] + pub mod estimation_costs { use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } + pub mod for_prefunded_specialized_balance_update { use crate as dash_sdk_bindings; } } - pub mod partially_use_asset_lock_action { + #[cfg(feature = "server")] + pub mod empty_prefunded_specialized_balance { use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod bump_identity_data_contract_nonce_action { + #[cfg(feature = "server")] + pub mod fetch { use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } - } + pub mod single_balance { + use crate as dash_sdk_bindings; - pub mod contract { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - pub mod data_contract_create { + #[cfg(feature = "server")] + pub mod add_prefunded_specialized_balance_operations { use crate as dash_sdk_bindings; pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod v1 { use crate as dash_sdk_bindings; } } - pub mod data_contract_update { + #[cfg(feature = "server")] + pub mod prove { use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } - } - } + pub mod single_balance { + use crate as dash_sdk_bindings; - #[cfg(any(feature = "server", feature = "verify"))] - pub mod drive { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - #[cfg(feature = "server")] - pub mod platform_state { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod add_prefunded_specialized_balance { + use crate as dash_sdk_bindings; + } - pub mod fetch_platform_state_bytes { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod empty_prefunded_specialized_balance_operations { + use crate as dash_sdk_bindings; - pub mod store_platform_state_bytes { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[cfg(feature = "server")] - pub mod initialization { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod deduct_from_prefunded_specialized_balance_operations { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } + pub mod v1 { use crate as dash_sdk_bindings; } - pub mod genesis_core_height { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } } #[cfg(any(feature = "server", feature = "verify"))] - pub mod votes { + pub mod shielded { use crate as dash_sdk_bindings; - #[cfg(any(feature = "server", feature = "verify"))] - pub mod resolved { + #[cfg(feature = "server")] + pub mod has_nullifier { use crate as dash_sdk_bindings; - pub mod votes { - use crate as dash_sdk_bindings; - - pub mod resolved_resource_vote { - use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } - - pub mod accessors { use crate as dash_sdk_bindings; } - } - } - - pub mod vote_polls { - use crate as dash_sdk_bindings; - - pub mod contested_document_resource_vote_poll { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod cleanup { + pub mod insert_note { use crate as dash_sdk_bindings; - pub mod remove_all_votes_given_by_identities { use crate as dash_sdk_bindings; } - - pub mod remove_contested_resource_vote_poll_top_level_index_operations { use crate as dash_sdk_bindings; } - - pub mod remove_contested_resource_vote_poll_votes_operations { use crate as dash_sdk_bindings; } - - pub mod remove_specific_votes_given_by_identity { use crate as dash_sdk_bindings; } - - pub mod remove_contested_resource_vote_poll_end_date_query_operations { use crate as dash_sdk_bindings; } - - pub mod remove_contested_resource_vote_poll_info_operations { use crate as dash_sdk_bindings; } - - pub mod remove_contested_resource_vote_poll_contenders_operations { use crate as dash_sdk_bindings; } - - pub mod remove_contested_resource_vote_poll_documents_operations { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod fetch { + pub mod prune_anchors { use crate as dash_sdk_bindings; - pub mod fetch_identities_voting_for_contenders { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod fetch_contested_document_vote_poll_stored_info { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod update_total_balance { + use crate as dash_sdk_bindings; - pub mod fetch_identity_contested_resource_vote { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod insert { + pub mod read_total_balance { use crate as dash_sdk_bindings; - pub mod register_identity_vote { use crate as dash_sdk_bindings; } - - pub mod vote_poll { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod add_vote_poll_end_date_query_operations { use crate as dash_sdk_bindings; } - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod paths { + use crate as dash_sdk_bindings; + } - pub mod contested_resource { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod record_anchor_if_changed { + use crate as dash_sdk_bindings; - pub mod individual_vote { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod register_contested_resource_identity_vote { use crate as dash_sdk_bindings; } - } + #[cfg(feature = "server")] + pub mod insert_nullifiers { + use crate as dash_sdk_bindings; - pub mod insert_stored_info_for_contested_resource_vote_poll { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod storage_form { + #[cfg(feature = "server")] + pub mod has_anchor { use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod setup { + pub mod notes_count { use crate as dash_sdk_bindings; - pub mod setup_initial_vote_tree_main_structure { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } } #[cfg(any(feature = "server", feature = "verify"))] - pub mod identity { + pub mod tokens { use crate as dash_sdk_bindings; - #[cfg(any(feature = "server", feature = "verify"))] - pub mod contract_info { + pub mod balance { use crate as dash_sdk_bindings; #[cfg(feature = "server")] - pub mod identity_contract_nonce { + pub mod add_to_previous_token_balance { use crate as dash_sdk_bindings; - pub mod merge_identity_contract_nonce { + pub mod v0 { use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } } + } - #[cfg(feature = "server")] - pub mod fetch_identity_contract_nonce { - use crate as dash_sdk_bindings; - } + #[cfg(feature = "server")] + pub mod prove_identity_token_balances { + use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod prove_identity_contract_nonce { - use crate as dash_sdk_bindings; - } + pub mod v0 { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod keys { + pub mod fetch_identity_token_balance { use crate as dash_sdk_bindings; - pub mod add_potential_contract_info_for_contract_bounded_key { use crate as dash_sdk_bindings; } - - pub mod refresh_potential_contract_info_key_references { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } - } - - #[cfg(feature = "server")] - pub mod withdrawals { - use crate as dash_sdk_bindings; - pub mod transaction { + #[cfg(feature = "server")] + pub mod fetch_identities_token_balances { use crate as dash_sdk_bindings; - pub mod index { - use crate as dash_sdk_bindings; - - pub mod add_update_next_withdrawal_transaction_index_operation { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod fetch_next_withdrawal_transaction_index { use crate as dash_sdk_bindings; } - } + #[cfg(feature = "server")] + pub mod update { + use crate as dash_sdk_bindings; - pub mod queue { + #[cfg(test)] + pub mod tests { use crate as dash_sdk_bindings; - - pub mod add_enqueue_untied_withdrawal_transaction_operations { use crate as dash_sdk_bindings; } - - pub mod dequeue_untied_withdrawal_transactions { use crate as dash_sdk_bindings; } - - pub mod remove_broadcasted_withdrawal_transactions_after_completion { use crate as dash_sdk_bindings; } - - pub mod move_broadcasted_withdrawal_transactions_back_to_queue_operations { use crate as dash_sdk_bindings; } } } - pub mod document { + #[cfg(feature = "server")] + pub mod prove_identities_token_balances { use crate as dash_sdk_bindings; - pub mod fetch_oldest_withdrawal_documents_by_status { - use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod find_withdrawal_documents_by_status_and_transaction_indices { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod fetch_identity_token_balances { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod calculate_current_withdrawal_limit { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod remove_from_identity_token_balance { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } } #[cfg(feature = "server")] - pub mod update { + pub mod mint { use crate as dash_sdk_bindings; + } - pub mod operations { + pub mod direct_purchase { + use crate as dash_sdk_bindings; + + #[cfg(feature = "server")] + pub mod prove_tokens_direct_purchase_price { use crate as dash_sdk_bindings; + } - pub mod update_identity_balance_operation { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod fetch_token_direct_purchase_price { + use crate as dash_sdk_bindings; + } - pub mod insert_identity_balance_operation { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod set_direct_purchase_price { + use crate as dash_sdk_bindings; + } - pub mod initialize_negative_identity_balance_operation { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod fetch_tokens_direct_purchase_price { + use crate as dash_sdk_bindings; + } + } - pub mod merge_identity_nonce_operations { - use crate as dash_sdk_bindings; + pub mod paths { use crate as dash_sdk_bindings; } - pub mod v0 { use crate as dash_sdk_bindings; } - } + #[cfg(feature = "server")] + pub mod calculate_total_tokens_balance { + use crate as dash_sdk_bindings; + } - pub mod update_identity_revision_operation { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod transfer { + use crate as dash_sdk_bindings; + } - pub mod initialize_identity_revision_operation { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod freeze { + use crate as dash_sdk_bindings; + } - pub mod initialize_identity_nonce_operation { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod burn { + use crate as dash_sdk_bindings; + } - pub mod update_identity_negative_credit_operation { use crate as dash_sdk_bindings; } - } + pub mod status { + use crate as dash_sdk_bindings; - #[cfg(test)] - pub mod tests { + #[cfg(feature = "server")] + pub mod fetch_token_statuses { use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod methods { + #[cfg(feature = "server")] + pub mod prove_token_statuses { use crate as dash_sdk_bindings; - pub mod add_to_identity_balance { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod add_to_previous_balance { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod fetch_token_status { + use crate as dash_sdk_bindings; - pub mod apply_balance_change_from_fee_to_identity { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - pub mod re_enable_identity_keys { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod unfreeze { + use crate as dash_sdk_bindings; + } - pub mod add_new_unique_keys_to_identity { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod apply_status { + use crate as dash_sdk_bindings; + } - pub mod add_new_non_unique_keys_to_identity { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod estimated_costs { + use crate as dash_sdk_bindings; - pub mod update_identity_revision { use crate as dash_sdk_bindings; } + pub mod for_token_pre_programmed_distribution { use crate as dash_sdk_bindings; } - pub mod refresh_identity_key_reference_operations { use crate as dash_sdk_bindings; } + pub mod for_token_identity_infos { use crate as dash_sdk_bindings; } - pub mod remove_from_identity_balance { use crate as dash_sdk_bindings; } + pub mod for_token_contract_infos { use crate as dash_sdk_bindings; } - pub mod merge_identity_nonce { use crate as dash_sdk_bindings; } + pub mod for_token_direct_selling_prices { use crate as dash_sdk_bindings; } - pub mod disable_identity_keys { use crate as dash_sdk_bindings; } + pub mod for_token_perpetual_distribution { use crate as dash_sdk_bindings; } - pub mod add_new_keys_to_identity { use crate as dash_sdk_bindings; } - } + pub mod for_token_balances { use crate as dash_sdk_bindings; } - pub mod structs { - use crate as dash_sdk_bindings; + pub mod for_root_token_ms_interval_distribution { use crate as dash_sdk_bindings; } - pub mod add_to_previous_balance_outcome { use crate as dash_sdk_bindings; } + pub mod for_token_status_infos { use crate as dash_sdk_bindings; } - pub mod apply_balance_change_outcome { use crate as dash_sdk_bindings; } - } + pub mod for_token_total_supply { use crate as dash_sdk_bindings; } } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod fetch { + pub mod info { use crate as dash_sdk_bindings; #[cfg(feature = "server")] - pub mod contract_keys { + pub mod fetch_identities_token_infos { use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod fetch_by_public_key_hashes { + pub mod prove_identities_token_infos { use crate as dash_sdk_bindings; - pub mod fetch_full_identity_by_non_unique_public_key_hash { use crate as dash_sdk_bindings; } - - pub mod fetch_full_identities_by_unique_public_key_hashes { use crate as dash_sdk_bindings; } - - pub mod fetch_identity_id_by_unique_public_key_hash { use crate as dash_sdk_bindings; } - - pub mod fetch_identity_ids_by_non_unique_public_key_hash { use crate as dash_sdk_bindings; } - - pub mod fetch_full_identity_by_unique_public_key_hash { use crate as dash_sdk_bindings; } - - pub mod has_any_of_unique_public_key_hashes { use crate as dash_sdk_bindings; } - - pub mod has_non_unique_public_key_hash_already_for_identity { use crate as dash_sdk_bindings; } - - pub mod fetch_identity_ids_by_unique_public_key_hashes { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod has_non_unique_public_key_hash { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod fetch_identity_token_info { + use crate as dash_sdk_bindings; - pub mod has_unique_public_key_hash { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod revision { + pub mod prove_identity_token_infos { use crate as dash_sdk_bindings; - pub mod fetch_identity_revision { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } + pub mod queries { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] - pub mod balance { + pub mod fetch_identity_token_infos { use crate as dash_sdk_bindings; - pub mod fetch_identity_balance { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - pub mod fetch_identity_balance_include_debt { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod add_transaction_history_operations { + use crate as dash_sdk_bindings; + } - pub mod fetch_identity_negative_balance { use crate as dash_sdk_bindings; } - } + pub mod contract_info { + use crate as dash_sdk_bindings; #[cfg(feature = "server")] - pub mod nonce { + pub mod fetch_token_contract_info { use crate as dash_sdk_bindings; + } - pub mod prove_identity_nonce { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod prove_token_contract_info { + use crate as dash_sdk_bindings; - pub mod fetch_identity_nonce { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } + } - #[cfg(feature = "server")] - pub mod full_identity { + #[cfg(feature = "server")] + pub mod system { + use crate as dash_sdk_bindings; + + pub mod add_to_token_total_supply { use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod fetch_full_identities { use crate as dash_sdk_bindings; } + pub mod fetch_token_total_aggregated_identity_balances { + use crate as dash_sdk_bindings; - pub mod fetch_full_identity { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } - #[cfg(feature = "server")] - pub mod partial_identity { + pub mod fetch_token_total_supply { use crate as dash_sdk_bindings; - pub mod fetch_identity_keys { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod fetch_identity_balance_with_keys { use crate as dash_sdk_bindings; } + pub mod remove_from_token_total_supply { + use crate as dash_sdk_bindings; - pub mod fetch_identity_revision_with_keys { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod fetch_identity_with_balance { use crate as dash_sdk_bindings; } + pub mod create_token_trees { + use crate as dash_sdk_bindings; - pub mod fetch_identity_balance_with_keys_and_revision { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } - #[cfg(feature = "server")] - pub mod prove { + pub mod prove_token_total_supply_and_aggregated_identity_balances { use crate as dash_sdk_bindings; - pub mod prove_full_identity_by_non_unique_public_key_hash { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - pub mod v0 { use crate as dash_sdk_bindings; } - } + #[cfg(feature = "server")] + pub mod mint_many { + use crate as dash_sdk_bindings; - pub mod prove_full_identities { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod distribution { + use crate as dash_sdk_bindings; - pub mod prove_identity_ids_by_unique_public_key_hashes { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod fetch { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod perpetual_distribution_last_paid_moment { use crate as dash_sdk_bindings; } - pub mod prove_full_identities_by_unique_public_key_hashes { - use crate as dash_sdk_bindings; + pub mod pre_programmed_distribution_last_paid_time_ms { use crate as dash_sdk_bindings; } - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod pre_programmed_distributions { use crate as dash_sdk_bindings; } + } - pub mod prove_identity_id_by_unique_public_key_hash { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod add_perpetual_distribution { + use crate as dash_sdk_bindings; + } - pub mod v0 { use crate as dash_sdk_bindings; } - } + #[cfg(feature = "server")] + pub mod prove { + use crate as dash_sdk_bindings; - pub mod prove_full_identity { - use crate as dash_sdk_bindings; + pub mod perpetual_distribution_last_paid_moment { use crate as dash_sdk_bindings; } - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod pre_programmed_distributions { use crate as dash_sdk_bindings; } + } - pub mod prove_identities_contract_keys { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod mark_perpetual_release_as_distributed { + use crate as dash_sdk_bindings; + } - pub mod prove_full_identity_by_unique_public_key_hash { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod add_pre_programmed_distribution { + use crate as dash_sdk_bindings; + } - pub mod v0 { use crate as dash_sdk_bindings; } - } + #[cfg(feature = "server")] + pub mod mark_pre_programmed_release_as_distributed { + use crate as dash_sdk_bindings; } } + } + + #[cfg(feature = "server")] + pub mod system { + use crate as dash_sdk_bindings; - #[cfg(feature = "server")] pub mod estimation_costs { use crate as dash_sdk_bindings; - pub mod for_keys_for_identity_id { use crate as dash_sdk_bindings; } - - pub mod for_balances { use crate as dash_sdk_bindings; } + pub mod for_total_system_credits_update { use crate as dash_sdk_bindings; } + } - pub mod for_update_nonce { use crate as dash_sdk_bindings; } + pub mod fetch_elements { use crate as dash_sdk_bindings; } - pub mod for_identity_contract_info_group { use crate as dash_sdk_bindings; } + pub mod protocol_version { use crate as dash_sdk_bindings; } - pub mod for_identity_contract_info_group_keys { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod genesis_time { + use crate as dash_sdk_bindings; - pub mod for_purpose_in_key_reference_tree { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + } - pub mod for_identity_contract_info_group_key_purpose { use crate as dash_sdk_bindings; } + #[cfg(any(feature = "server", feature = "verify", feature = "fixtures-and-mocks"))] + pub mod contract { + use crate as dash_sdk_bindings; - pub mod for_identity_contract_info { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod insert { + use crate as dash_sdk_bindings; - pub mod for_root_key_reference_tree { use crate as dash_sdk_bindings; } + pub mod insert_contract { + use crate as dash_sdk_bindings; - pub mod for_update_revision { use crate as dash_sdk_bindings; } + pub mod v1 { use crate as dash_sdk_bindings; } - pub mod for_negative_credit { use crate as dash_sdk_bindings; } + pub mod v0 { + use crate as dash_sdk_bindings; - pub mod for_authentication_keys_security_level_in_key_reference_tree { use crate as dash_sdk_bindings; } - } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod key { - use crate as dash_sdk_bindings; + pub mod add_description { + use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod insert_key_hash_identity_reference { + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod add_contract_to_storage { use crate as dash_sdk_bindings; - pub mod insert_reference_to_non_unique_key { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod insert_reference_to_unique_key { use crate as dash_sdk_bindings; } + pub mod add_new_keywords { + use crate as dash_sdk_bindings; - pub mod insert_non_unique_public_key_hash_reference_to_identity { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - pub mod insert_unique_public_key_hash_reference_to_identity { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod migration { + use crate as dash_sdk_bindings; + } - pub mod estimation_costs { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod get_fetch { + use crate as dash_sdk_bindings; - pub mod add_estimation_costs_for_insert_unique_public_key_hash_reference { use crate as dash_sdk_bindings; } + pub mod get_contracts_with_fetch_info { use crate as dash_sdk_bindings; } - pub mod add_estimation_costs_for_insert_non_unique_public_key_hash_reference { use crate as dash_sdk_bindings; } - } + pub mod get_contract_with_fetch_info { use crate as dash_sdk_bindings; } + + pub mod get_cached_contract_with_fetch_info { use crate as dash_sdk_bindings; } + + pub mod fetch_contracts { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - #[cfg(feature = "server")] - pub mod insert { + pub mod fetch_contract { use crate as dash_sdk_bindings; } + + pub mod fetch_contract_ids { use crate as dash_sdk_bindings; - pub mod create_key_tree_with_keys { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod insert_new_non_unique_key { use crate as dash_sdk_bindings; } + pub mod get_system_or_user_contract_with_fee { use crate as dash_sdk_bindings; } - pub mod create_new_identity_key_query_trees { use crate as dash_sdk_bindings; } + pub mod fetch_contract_with_history { use crate as dash_sdk_bindings; } + } - pub mod replace_key_in_storage { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod prove { + use crate as dash_sdk_bindings; - pub mod insert_key_to_storage { use crate as dash_sdk_bindings; } + pub mod prove_contract_history { use crate as dash_sdk_bindings; } - pub mod insert_new_unique_key { use crate as dash_sdk_bindings; } + pub mod prove_contracts { use crate as dash_sdk_bindings; } - pub mod insert_key_searchable_references { use crate as dash_sdk_bindings; } - } + pub mod prove_contract { use crate as dash_sdk_bindings; } + } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod fetch { + #[cfg(feature = "server")] + pub mod update { + use crate as dash_sdk_bindings; + + pub mod update_contract { use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod fetch_all_identity_keys { - use crate as dash_sdk_bindings; - } + pub mod v1 { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod fetch_all_current_identity_keys { - use crate as dash_sdk_bindings; - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[cfg(feature = "server")] - pub mod fetch_identity_keys { - use crate as dash_sdk_bindings; - } + pub mod update_keywords { + use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod fetch_identities_all_keys { - use crate as dash_sdk_bindings; - } + pub mod v0 { use crate as dash_sdk_bindings; } } - #[cfg(feature = "server")] - pub mod prove { + pub mod update_description { use crate as dash_sdk_bindings; - pub mod prove_identity_keys { use crate as dash_sdk_bindings; } - - pub mod prove_identities_all_keys { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } } #[cfg(feature = "server")] - pub mod insert { + pub mod apply { use crate as dash_sdk_bindings; - pub mod add_new_identity { use crate as dash_sdk_bindings; } + pub mod apply_contract { use crate as dash_sdk_bindings; } + + pub mod apply_contract_with_serialization { use crate as dash_sdk_bindings; } } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod balance { + #[cfg(feature = "server")] + pub mod estimation_costs { use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod prove { - use crate as dash_sdk_bindings; - - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } - } - - #[cfg(feature = "server")] - pub mod update { + pub mod add_estimation_costs_for_contract_insertion { use crate as dash_sdk_bindings; - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } + pub mod v1 { use crate as dash_sdk_bindings; } } } } @@ -3963,3021 +3869,5024 @@ pub mod types { pub mod shared_estimation_costs { use crate as dash_sdk_bindings; - pub mod add_estimation_costs_for_levels_up_to_contract_document_type_excluded { use crate as dash_sdk_bindings; } + pub mod add_estimation_costs_for_contested_document_tree_levels_up_to_contract { use crate as dash_sdk_bindings; } pub mod add_estimation_costs_for_levels_up_to_contract { use crate as dash_sdk_bindings; } - pub mod add_estimation_costs_for_contested_document_tree_levels_up_to_contract { use crate as dash_sdk_bindings; } - pub mod add_estimation_costs_for_contested_document_tree_levels_up_to_contract_document_type_excluded { use crate as dash_sdk_bindings; } + + pub mod add_estimation_costs_for_levels_up_to_contract_document_type_excluded { use crate as dash_sdk_bindings; } } } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod credit_pools { + #[cfg(feature = "server")] + pub mod asset_lock { use crate as dash_sdk_bindings; - #[cfg(any(feature = "server", feature = "verify"))] - pub mod epochs { + pub mod estimation_costs { use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod get_finalized_epoch_info { - use crate as dash_sdk_bindings; - } - - #[cfg(feature = "server")] - pub mod get_epochs_protocol_versions { - use crate as dash_sdk_bindings; - } - - #[cfg(feature = "server")] - pub mod start_block { - use crate as dash_sdk_bindings; - - pub mod get_epoch_start_block_core_height { use crate as dash_sdk_bindings; } + pub mod add_estimation_costs_for_adding_asset_lock { use crate as dash_sdk_bindings; } + } - #[cfg(feature = "server")] - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } + pub mod add_asset_lock_outpoint_operations { use crate as dash_sdk_bindings; } - pub mod get_first_epoch_start_block_info_between_epochs { use crate as dash_sdk_bindings; } + pub mod fetch_asset_lock_outpoint_info { use crate as dash_sdk_bindings; } + } - pub mod get_epoch_start_block_height { use crate as dash_sdk_bindings; } - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod credit_pools { + use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod get_epoch_protocol_version { - use crate as dash_sdk_bindings; - } + #[cfg(feature = "server")] + pub mod unpaid_epoch { + use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod credit_distribution_pools { + pub mod get_unpaid_epoch_index { use crate as dash_sdk_bindings; - pub mod add_epoch_processing_credits_for_distribution_operation { use crate as dash_sdk_bindings; } - - pub mod add_epoch_final_info_operation { use crate as dash_sdk_bindings; } - - pub mod get_epoch_fee_multiplier { + pub mod v0 { use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } } + } + } - pub mod get_epoch_total_credits_for_distribution { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod pending_epoch_refunds { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod methods { + use crate as dash_sdk_bindings; - pub mod get_epoch_processing_credits_for_distribution { + pub mod add_delete_pending_epoch_refunds_except_specified { use crate as dash_sdk_bindings; pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod get_storage_credits_for_distribution_for_epochs_in_range { use crate as dash_sdk_bindings; } + pub mod fetch_pending_epoch_refunds { use crate as dash_sdk_bindings; } - pub mod get_epoch_storage_credits_for_distribution { + pub mod fetch_and_add_pending_epoch_refunds_to_collection { use crate as dash_sdk_bindings; pub mod v0 { use crate as dash_sdk_bindings; } } } - #[cfg(feature = "server")] - pub mod get_epochs_infos { + pub mod operations { use crate as dash_sdk_bindings; + + pub mod add_update_pending_epoch_refunds_operations { use crate as dash_sdk_bindings; } } + } - #[cfg(feature = "server")] - pub mod prove_epochs_infos { + #[cfg(feature = "server")] + pub mod operations { + use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod tests { use crate as dash_sdk_bindings; } + } - #[cfg(feature = "server")] - pub mod proposers { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } - pub mod prove_epoch_proposers { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod storage_fee_distribution_pool { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod get_storage_fees_from_distribution_pool { + use crate as dash_sdk_bindings; - pub mod get_epochs_proposer_block_count { + pub mod v0 { use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } } + } + } - pub mod fetch_epoch_proposers { - use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod epochs { + use crate as dash_sdk_bindings; - pub mod is_epochs_proposers_tree_empty { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod prove_finalized_epoch_infos { + use crate as dash_sdk_bindings; } #[cfg(feature = "server")] - pub mod prove_finalized_epoch_infos { + pub mod get_finalized_epoch_info { use crate as dash_sdk_bindings; } #[cfg(feature = "server")] - pub mod operations_factory { + pub mod start_block { use crate as dash_sdk_bindings; + pub mod get_epoch_start_block_height { use crate as dash_sdk_bindings; } + + #[cfg(feature = "server")] #[cfg(test)] pub mod tests { use crate as dash_sdk_bindings; } + + pub mod get_epoch_start_block_core_height { use crate as dash_sdk_bindings; } + + pub mod get_first_epoch_start_block_info_between_epochs { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod start_time { + pub mod has_epoch_tree_exists { use crate as dash_sdk_bindings; - pub mod get_epoch_start_time { + #[cfg(test)] + pub mod tests { use crate as dash_sdk_bindings; - - pub mod v0 { - use crate as dash_sdk_bindings; - - #[cfg(feature = "server")] - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } - } } } #[cfg(feature = "server")] - pub mod has_epoch_tree_exists { + pub mod credit_distribution_pools { use crate as dash_sdk_bindings; - #[cfg(test)] - pub mod tests { + pub mod add_epoch_processing_credits_for_distribution_operation { use crate as dash_sdk_bindings; } + + pub mod get_epoch_storage_credits_for_distribution { use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } - } - } - #[cfg(feature = "server")] - pub mod storage_fee_distribution_pool { - use crate as dash_sdk_bindings; + pub mod add_epoch_final_info_operation { use crate as dash_sdk_bindings; } - pub mod get_storage_fees_from_distribution_pool { - use crate as dash_sdk_bindings; + pub mod get_epoch_processing_credits_for_distribution { + use crate as dash_sdk_bindings; - pub mod v0 { + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod get_epoch_total_credits_for_distribution { use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod get_epoch_fee_multiplier { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } + + pub mod get_storage_credits_for_distribution_for_epochs_in_range { use crate as dash_sdk_bindings; } } - } - #[cfg(feature = "server")] - pub mod operations { - use crate as dash_sdk_bindings; + #[cfg(feature = "server")] + pub mod get_epochs_protocol_versions { + use crate as dash_sdk_bindings; + } - #[cfg(test)] - pub mod tests { + #[cfg(feature = "server")] + pub mod get_epochs_infos { use crate as dash_sdk_bindings; } - } - #[cfg(feature = "server")] - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } + #[cfg(feature = "server")] + pub mod operations_factory { + use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod unpaid_epoch { - use crate as dash_sdk_bindings; + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } - pub mod get_unpaid_epoch_index { + #[cfg(feature = "server")] + pub mod start_time { use crate as dash_sdk_bindings; - pub mod v0 { + pub mod get_epoch_start_time { use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - #[cfg(test)] - pub mod tests { + pub mod v0 { use crate as dash_sdk_bindings; + + #[cfg(feature = "server")] + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } } } } - } - - #[cfg(feature = "server")] - pub mod pending_epoch_refunds { - use crate as dash_sdk_bindings; - pub mod methods { + #[cfg(feature = "server")] + pub mod proposers { use crate as dash_sdk_bindings; - pub mod add_delete_pending_epoch_refunds_except_specified { + pub mod is_epochs_proposers_tree_empty { use crate as dash_sdk_bindings; } + + pub mod get_epochs_proposer_block_count { use crate as dash_sdk_bindings; pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod fetch_and_add_pending_epoch_refunds_to_collection { + pub mod prove_epoch_proposers { use crate as dash_sdk_bindings; pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod fetch_pending_epoch_refunds { use crate as dash_sdk_bindings; } + pub mod fetch_epoch_proposers { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } } - pub mod operations { + #[cfg(feature = "server")] + pub mod prove_epochs_infos { use crate as dash_sdk_bindings; + } - pub mod add_update_pending_epoch_refunds_operations { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod get_epoch_protocol_version { + use crate as dash_sdk_bindings; } } } #[cfg(feature = "server")] - pub mod asset_lock { + pub mod saved_block_transactions { use crate as dash_sdk_bindings; - pub mod fetch_asset_lock_outpoint_info { use crate as dash_sdk_bindings; } - - pub mod add_asset_lock_outpoint_operations { use crate as dash_sdk_bindings; } - - pub mod estimation_costs { + pub mod fetch_compacted_address_balances { use crate as dash_sdk_bindings; - pub mod add_estimation_costs_for_adding_asset_lock { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } } - } - - #[cfg(any(feature = "server", feature = "verify"))] - pub mod balances { - use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod remove_from_system_credits { + pub mod fetch_address_balances { use crate as dash_sdk_bindings; - } - #[cfg(feature = "server")] - pub mod add_to_system_credits { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } } - #[cfg(feature = "server")] - pub mod calculate_total_credits_balance { - use crate as dash_sdk_bindings; - } + pub mod compact_address_balances { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod add_to_system_credits_operations { + pub mod store_address_balances { use crate as dash_sdk_bindings; - } - #[cfg(feature = "server")] - pub mod remove_from_system_credits_operations { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } } + + pub mod cleanup_expired_address_balances { use crate as dash_sdk_bindings; } } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod prefunded_specialized_balances { + #[cfg(feature = "server")] + pub mod initialization { use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod estimation_costs { - use crate as dash_sdk_bindings; - - pub mod for_prefunded_specialized_balance_update { use crate as dash_sdk_bindings; } - } + pub mod genesis_core_height { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod prove { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod single_balance { use crate as dash_sdk_bindings; } - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod protocol_upgrade { + use crate as dash_sdk_bindings; #[cfg(feature = "server")] - pub mod deduct_from_prefunded_specialized_balance { + pub mod fetch_proved_validator_version_votes { use crate as dash_sdk_bindings; } #[cfg(feature = "server")] - pub mod empty_prefunded_specialized_balance_operations { + pub mod fetch_proved_versions_with_counter { use crate as dash_sdk_bindings; } #[cfg(feature = "server")] - pub mod deduct_from_prefunded_specialized_balance_operations { + pub mod fetch_validator_version_votes { use crate as dash_sdk_bindings; } #[cfg(feature = "server")] - pub mod add_prefunded_specialized_balance { + pub mod remove_validators_proposed_app_versions { use crate as dash_sdk_bindings; } #[cfg(feature = "server")] - pub mod fetch { + pub mod fetch_versions_with_counter { use crate as dash_sdk_bindings; - - pub mod single_balance { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod add_prefunded_specialized_balance_operations { + pub mod update_validator_proposed_app_version { use crate as dash_sdk_bindings; } #[cfg(feature = "server")] - pub mod empty_prefunded_specialized_balance { + pub mod clear_version_information { use crate as dash_sdk_bindings; } } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod group { + #[cfg(any(feature = "server", feature = "verify", feature = "fixtures-and-mocks"))] + pub mod document { use crate as dash_sdk_bindings; #[cfg(feature = "server")] - pub mod insert { + pub mod prove { use crate as dash_sdk_bindings; - pub mod add_new_groups { use crate as dash_sdk_bindings; } - - pub mod add_group_action { use crate as dash_sdk_bindings; } + pub mod prove_document_history { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod prove { + pub mod primary_key_tree_type { use crate as dash_sdk_bindings; + } - pub mod prove_group_infos { + #[cfg(any(feature = "server", feature = "fixtures-and-mocks"))] + pub mod query { + use crate as dash_sdk_bindings; + + pub mod query_contested_documents_storage { use crate as dash_sdk_bindings; pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod prove_group_info { + pub mod query_contested_documents_vote_state { use crate as dash_sdk_bindings; pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod prove_action_infos { + pub mod fetch_document_history_query { use crate as dash_sdk_bindings; } + + pub mod query_documents_with_flags { use crate as dash_sdk_bindings; pub mod v0 { use crate as dash_sdk_bindings; } } - pub mod prove_action_signers { + pub mod query_documents { use crate as dash_sdk_bindings; pub mod v0 { use crate as dash_sdk_bindings; } } } - #[cfg(feature = "server")] - pub mod fetch { + #[cfg(any(feature = "server", feature = "fixtures-and-mocks"))] + pub mod update { use crate as dash_sdk_bindings; - pub mod fetch_action_signers { use crate as dash_sdk_bindings; } - - pub mod fetch_active_action_info { use crate as dash_sdk_bindings; } - - pub mod fetch_group_info { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod add_update_multiple_documents_operations { + use crate as dash_sdk_bindings; + } - pub mod fetch_group_infos { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod update_document_for_contract { + use crate as dash_sdk_bindings; + } - pub mod fetch_action_infos { use crate as dash_sdk_bindings; } + #[cfg(feature = "server")] + pub mod update_document_for_contract_id { + use crate as dash_sdk_bindings; + } - pub mod fetch_action_id_signers_power { use crate as dash_sdk_bindings; } + pub mod internal { + use crate as dash_sdk_bindings; - pub mod fetch_action_is_closed { use crate as dash_sdk_bindings; } + pub mod update_document_for_contract_operations { use crate as dash_sdk_bindings; } - pub mod fetch_action_id_info_keep_serialized { use crate as dash_sdk_bindings; } + pub mod update_document_for_contract_apply_and_add_to_operations { use crate as dash_sdk_bindings; } + } - pub mod fetch_action_id_has_signer { use crate as dash_sdk_bindings; } + pub mod update_document_with_serialization_for_contract { use crate as dash_sdk_bindings; } } - #[cfg(feature = "server")] - pub mod estimated_costs { + #[cfg(any(feature = "server", feature = "fixtures-and-mocks"))] + pub mod insert_contested { use crate as dash_sdk_bindings; - pub mod for_add_groups { use crate as dash_sdk_bindings; } + pub mod add_contested_indices_for_contract_operations { use crate as dash_sdk_bindings; } - pub mod for_add_group_action { use crate as dash_sdk_bindings; } - } - } + pub mod add_contested_vote_subtrees_for_non_identities_operations { use crate as dash_sdk_bindings; } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod protocol_upgrade { - use crate as dash_sdk_bindings; + pub mod add_contested_reference_and_vote_subtree_to_document_operations { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod update_validator_proposed_app_version { - use crate as dash_sdk_bindings; - } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } - #[cfg(feature = "server")] - pub mod fetch_proved_validator_version_votes { - use crate as dash_sdk_bindings; - } + pub mod add_contested_document_for_contract { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod remove_validators_proposed_app_versions { - use crate as dash_sdk_bindings; - } + pub mod add_contested_document_to_primary_storage { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod fetch_versions_with_counter { - use crate as dash_sdk_bindings; - } + pub mod add_contested_document { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod fetch_proved_versions_with_counter { - use crate as dash_sdk_bindings; - } + pub mod add_contested_document_for_contract_apply_and_add_to_operations { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod fetch_validator_version_votes { - use crate as dash_sdk_bindings; + pub mod add_contested_document_for_contract_operations { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod clear_version_information { - use crate as dash_sdk_bindings; - } - } - - #[cfg(any(feature = "server", feature = "verify"))] - pub mod tokens { - use crate as dash_sdk_bindings; - - pub mod status { + pub mod index_uniqueness { use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod fetch_token_statuses { + pub mod internal { use crate as dash_sdk_bindings; - } - #[cfg(feature = "server")] - pub mod fetch_token_status { - use crate as dash_sdk_bindings; + pub mod validate_uniqueness_of_data { use crate as dash_sdk_bindings; } } - #[cfg(feature = "server")] - pub mod prove_token_statuses { - use crate as dash_sdk_bindings; + pub mod validate_document_update_price_transition_action_uniqueness { use crate as dash_sdk_bindings; } - pub mod v0 { use crate as dash_sdk_bindings; } - } - } + pub mod validate_document_replace_transition_action_uniqueness { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod apply_status { - use crate as dash_sdk_bindings; - } + pub mod validate_document_create_transition_action_uniqueness { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod freeze { - use crate as dash_sdk_bindings; + pub mod validate_document_purchase_transition_action_uniqueness { use crate as dash_sdk_bindings; } + + pub mod validate_document_transfer_transition_action_uniqueness { use crate as dash_sdk_bindings; } } - pub mod balance { + #[cfg(feature = "server")] + pub mod delete { use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod remove_from_identity_token_balance { - use crate as dash_sdk_bindings; - } + pub mod remove_document_from_primary_storage { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod prove_identities_token_balances { - use crate as dash_sdk_bindings; + pub mod delete_document_for_contract_operations { use crate as dash_sdk_bindings; } - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod delete_document_for_contract_apply_and_add_to_operations { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod prove_identity_token_balances { - use crate as dash_sdk_bindings; + pub mod remove_reference_for_index_level_for_contract_operations { use crate as dash_sdk_bindings; } - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod remove_indices_for_top_index_level_for_contract_operations { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod fetch_identities_token_balances { + pub mod internal { use crate as dash_sdk_bindings; - } - #[cfg(feature = "server")] - pub mod fetch_identity_token_balances { - use crate as dash_sdk_bindings; + pub mod add_estimation_costs_for_remove_document_to_primary_storage { use crate as dash_sdk_bindings; } } - #[cfg(feature = "server")] - pub mod add_to_previous_token_balance { - use crate as dash_sdk_bindings; - } + pub mod remove_indices_for_index_level_for_contract_operations { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod update { - use crate as dash_sdk_bindings; + pub mod delete_document_for_contract_id { use crate as dash_sdk_bindings; } - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } - } + pub mod delete_document_for_contract_id_with_named_type_operations { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod fetch_identity_token_balance { - use crate as dash_sdk_bindings; - } - } + pub mod delete_document_for_contract_with_named_type_operations { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod calculate_total_tokens_balance { - use crate as dash_sdk_bindings; + pub mod delete_document_for_contract { use crate as dash_sdk_bindings; } } - pub mod contract_info { + #[cfg(any(feature = "server", feature = "fixtures-and-mocks"))] + pub mod insert { use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod prove_token_contract_info { + pub mod add_document_for_contract_operations { use crate as dash_sdk_bindings; } + + pub mod add_document { use crate as dash_sdk_bindings; } + + pub mod add_document_for_contract_apply_and_add_to_operations { use crate as dash_sdk_bindings; } + + pub mod add_document_to_primary_storage { use crate as dash_sdk_bindings; pub mod v0 { use crate as dash_sdk_bindings; } } - #[cfg(feature = "server")] - pub mod fetch_token_contract_info { - use crate as dash_sdk_bindings; - } + pub mod add_document_for_contract { use crate as dash_sdk_bindings; } + + pub mod add_reference_for_index_level_for_contract_operations { use crate as dash_sdk_bindings; } + + pub mod add_indices_for_index_level_for_contract_operations { use crate as dash_sdk_bindings; } + + pub mod add_indices_for_top_index_level_for_contract_operations { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod mint_many { + pub mod estimation_costs { use crate as dash_sdk_bindings; + + pub mod add_estimation_costs_for_add_contested_document_to_primary_storage { use crate as dash_sdk_bindings; } + + pub mod add_estimation_costs_for_add_document_to_primary_storage { use crate as dash_sdk_bindings; } + + pub mod stateless_delete_of_non_tree_for_costs { use crate as dash_sdk_bindings; } } - pub mod distribution { + #[cfg(any(feature = "server", feature = "fixtures-and-mocks"))] + pub mod get_fetch { use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod mark_pre_programmed_release_as_distributed { - use crate as dash_sdk_bindings; - } + pub mod fetch_document_history { use crate as dash_sdk_bindings; } + } + } - #[cfg(feature = "server")] - pub mod mark_perpetual_release_as_distributed { - use crate as dash_sdk_bindings; - } + #[cfg(any(feature = "server", feature = "verify"))] + pub mod votes { + use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod fetch { + #[cfg(feature = "server")] + pub mod insert { + use crate as dash_sdk_bindings; + + pub mod register_identity_vote { use crate as dash_sdk_bindings; } + + pub mod contested_resource { use crate as dash_sdk_bindings; - pub mod pre_programmed_distribution_last_paid_time_ms { use crate as dash_sdk_bindings; } + pub mod individual_vote { + use crate as dash_sdk_bindings; - pub mod pre_programmed_distributions { use crate as dash_sdk_bindings; } + pub mod register_contested_resource_identity_vote { + use crate as dash_sdk_bindings; - pub mod perpetual_distribution_last_paid_moment { use crate as dash_sdk_bindings; } - } + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - #[cfg(feature = "server")] - pub mod add_perpetual_distribution { - use crate as dash_sdk_bindings; - } + pub mod insert_stored_info_for_contested_resource_vote_poll { + use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod add_pre_programmed_distribution { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } } - #[cfg(feature = "server")] - pub mod prove { + pub mod vote_poll { use crate as dash_sdk_bindings; - pub mod perpetual_distribution_last_paid_moment { use crate as dash_sdk_bindings; } - - pub mod pre_programmed_distributions { use crate as dash_sdk_bindings; } + pub mod add_vote_poll_end_date_query_operations { use crate as dash_sdk_bindings; } } } - pub mod info { + #[cfg(any(feature = "server", feature = "verify"))] + pub mod resolved { use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod fetch_identities_token_infos { + pub mod vote_polls { use crate as dash_sdk_bindings; + + pub mod contested_document_resource_vote_poll { use crate as dash_sdk_bindings; } } - #[cfg(feature = "server")] - pub mod fetch_identity_token_infos { - use crate as dash_sdk_bindings; - } - - #[cfg(feature = "server")] - pub mod prove_identity_token_infos { - use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } - } - - #[cfg(feature = "server")] - pub mod prove_identities_token_infos { - use crate as dash_sdk_bindings; - - pub mod v0 { use crate as dash_sdk_bindings; } - } - - #[cfg(feature = "server")] - pub mod fetch_identity_token_info { - use crate as dash_sdk_bindings; - } - } - - #[cfg(feature = "server")] - pub mod burn { - use crate as dash_sdk_bindings; - } - - pub mod direct_purchase { - use crate as dash_sdk_bindings; - - #[cfg(feature = "server")] - pub mod set_direct_purchase_price { + pub mod votes { use crate as dash_sdk_bindings; - } - #[cfg(feature = "server")] - pub mod prove_tokens_direct_purchase_price { - use crate as dash_sdk_bindings; - } + pub mod resolved_resource_vote { + use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod fetch_token_direct_purchase_price { - use crate as dash_sdk_bindings; - } + pub mod accessors { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod fetch_tokens_direct_purchase_price { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } } } - #[cfg(feature = "server")] - pub mod unfreeze { - use crate as dash_sdk_bindings; - } - - #[cfg(feature = "server")] - pub mod transfer { + #[cfg(any(feature = "server", feature = "verify"))] + pub mod paths { use crate as dash_sdk_bindings; } #[cfg(feature = "server")] - pub mod estimated_costs { + pub mod cleanup { use crate as dash_sdk_bindings; - pub mod for_token_status_infos { use crate as dash_sdk_bindings; } - - pub mod for_token_total_supply { use crate as dash_sdk_bindings; } + pub mod remove_contested_resource_vote_poll_end_date_query_operations { use crate as dash_sdk_bindings; } - pub mod for_token_balances { use crate as dash_sdk_bindings; } + pub mod remove_specific_votes_given_by_identity { use crate as dash_sdk_bindings; } - pub mod for_root_token_ms_interval_distribution { use crate as dash_sdk_bindings; } + pub mod remove_all_votes_given_by_identities { use crate as dash_sdk_bindings; } - pub mod for_token_identity_infos { use crate as dash_sdk_bindings; } + pub mod remove_contested_resource_vote_poll_votes_operations { use crate as dash_sdk_bindings; } - pub mod for_token_direct_selling_prices { use crate as dash_sdk_bindings; } + pub mod remove_contested_resource_vote_poll_info_operations { use crate as dash_sdk_bindings; } - pub mod for_token_contract_infos { use crate as dash_sdk_bindings; } + pub mod remove_contested_resource_vote_poll_documents_operations { use crate as dash_sdk_bindings; } - pub mod for_token_perpetual_distribution { use crate as dash_sdk_bindings; } + pub mod remove_contested_resource_vote_poll_top_level_index_operations { use crate as dash_sdk_bindings; } - pub mod for_token_pre_programmed_distribution { use crate as dash_sdk_bindings; } + pub mod remove_contested_resource_vote_poll_contenders_operations { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod mint { + pub mod setup { use crate as dash_sdk_bindings; - } - #[cfg(feature = "server")] - pub mod add_transaction_history_operations { - use crate as dash_sdk_bindings; + pub mod setup_initial_vote_tree_main_structure { use crate as dash_sdk_bindings; } } #[cfg(feature = "server")] - pub mod system { + pub mod fetch { use crate as dash_sdk_bindings; - pub mod add_to_token_total_supply { use crate as dash_sdk_bindings; } - - pub mod fetch_token_total_aggregated_identity_balances { use crate as dash_sdk_bindings; } + pub mod fetch_identities_voting_for_contenders { use crate as dash_sdk_bindings; } - pub mod create_token_trees { use crate as dash_sdk_bindings; } + pub mod fetch_contested_document_vote_poll_stored_info { use crate as dash_sdk_bindings; } - pub mod fetch_token_total_supply { use crate as dash_sdk_bindings; } + pub mod fetch_identity_contested_resource_vote { use crate as dash_sdk_bindings; } + } - pub mod prove_token_total_supply_and_aggregated_identity_balances { - use crate as dash_sdk_bindings; + #[cfg(any(feature = "server", feature = "verify"))] + pub mod storage_form { + use crate as dash_sdk_bindings; - pub mod v0 { use crate as dash_sdk_bindings; } - } + pub mod contested_document_resource_storage_form { use crate as dash_sdk_bindings; } - pub mod remove_from_token_total_supply { use crate as dash_sdk_bindings; } + pub mod vote_storage_form { use crate as dash_sdk_bindings; } } } + } + } - #[cfg(any(feature = "server", feature = "verify", feature = "fixtures-and-mocks"))] - pub mod contract { - use crate as dash_sdk_bindings; - - #[cfg(feature = "server")] - pub mod prove { - use crate as dash_sdk_bindings; + pub mod drive_proof_verifier { + use crate as dash_sdk_bindings; - pub mod prove_contracts { use crate as dash_sdk_bindings; } + pub mod types { + use crate as dash_sdk_bindings; - pub mod prove_contract { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`VotePollsGroupedByTimestamp`]"] + #[repr(C)] + #[derive(Clone)] + pub struct drive_proof_verifier_types_VotePollsGroupedByTimestamp(*mut crate::fermented::generics::Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll); - pub mod prove_contract_history { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for drive_proof_verifier_types_VotePollsGroupedByTimestamp { + unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_VotePollsGroupedByTimestamp) -> drive_proof_verifier::types::VotePollsGroupedByTimestamp { + let ffi_ref = &*ffi; + drive_proof_verifier::types::VotePollsGroupedByTimestamp()>>>::ffi_from(ffi_ref.0)) } + } - #[cfg(feature = "server")] - pub mod get_fetch { - use crate as dash_sdk_bindings; - - pub mod fetch_contract { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for drive_proof_verifier_types_VotePollsGroupedByTimestamp { unsafe fn ffi_to_const(obj: drive_proof_verifier::types::VotePollsGroupedByTimestamp) -> *const drive_proof_verifier_types_VotePollsGroupedByTimestamp { ferment::boxed(drive_proof_verifier_types_VotePollsGroupedByTimestamp()>>>::ffi_to(obj.0))) } } - pub mod get_contract_with_fetch_info { use crate as dash_sdk_bindings; } + impl Drop for drive_proof_verifier_types_VotePollsGroupedByTimestamp { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.0); + } + } + } - pub mod get_cached_contract_with_fetch_info { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_VotePollsGroupedByTimestamp_ctor<>(o_0: *mut crate::fermented::generics::Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) -> *mut drive_proof_verifier_types_VotePollsGroupedByTimestamp { ferment::boxed(drive_proof_verifier_types_VotePollsGroupedByTimestamp(o_0)) } - pub mod get_contracts_with_fetch_info { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_VotePollsGroupedByTimestamp_destroy<>(ffi: *mut drive_proof_verifier_types_VotePollsGroupedByTimestamp) { ferment::unbox_any(ffi); } - pub mod fetch_contract_with_history { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_VotePollsGroupedByTimestamp_get_0<>(obj: *const drive_proof_verifier_types_VotePollsGroupedByTimestamp) -> *mut crate::fermented::generics::Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { (*obj).0 } - #[cfg(feature = "server")] - pub mod insert { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_VotePollsGroupedByTimestamp_set_0<>(obj: *const drive_proof_verifier_types_VotePollsGroupedByTimestamp) -> *mut crate::fermented::generics::Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { (*obj).0 } - pub mod add_description { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`Voter`]"] + #[repr(C)] + #[derive(Clone)] + pub struct drive_proof_verifier_types_Voter(*mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier); - pub mod add_contract_to_storage { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for drive_proof_verifier_types_Voter { + unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_Voter) -> drive_proof_verifier::types::Voter { + let ffi_ref = &*ffi; + drive_proof_verifier::types::Voter(>::ffi_from(ffi_ref.0)) + } + } - pub mod add_new_keywords { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for drive_proof_verifier_types_Voter { unsafe fn ffi_to_const(obj: drive_proof_verifier::types::Voter) -> *const drive_proof_verifier_types_Voter { ferment::boxed(drive_proof_verifier_types_Voter(>::ffi_to(obj.0))) } } - pub mod insert_contract { use crate as dash_sdk_bindings; } + impl Drop for drive_proof_verifier_types_Voter { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.0); + } } + } - #[cfg(feature = "server")] - pub mod update { - use crate as dash_sdk_bindings; - - pub mod update_contract { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Voter_ctor<>(o_0: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut drive_proof_verifier_types_Voter { ferment::boxed(drive_proof_verifier_types_Voter(o_0)) } - pub mod update_keywords { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Voter_destroy<>(ffi: *mut drive_proof_verifier_types_Voter) { ferment::unbox_any(ffi); } - pub mod update_description { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Voter_get_0<>(obj: *const drive_proof_verifier_types_Voter) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).0 } - #[cfg(feature = "server")] - pub mod apply { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Voter_set_0<>(obj: *const drive_proof_verifier_types_Voter) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).0 } - pub mod apply_contract_with_serialization { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`ResourceVotesByIdentity`]"] + #[repr(C)] + #[derive(Clone)] + pub struct drive_proof_verifier_types_ResourceVotesByIdentity(*mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote); - pub mod apply_contract { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for drive_proof_verifier_types_ResourceVotesByIdentity { + unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_ResourceVotesByIdentity) -> drive_proof_verifier::types::ResourceVotesByIdentity { + let ffi_ref = &*ffi; + >>>::ffi_from(ffi_ref.0) } + } - #[cfg(feature = "server")] - pub mod estimation_costs { - use crate as dash_sdk_bindings; + impl ferment::FFIConversionTo for drive_proof_verifier_types_ResourceVotesByIdentity { unsafe fn ffi_to_const(obj: drive_proof_verifier::types::ResourceVotesByIdentity) -> *const drive_proof_verifier_types_ResourceVotesByIdentity { ferment::boxed(drive_proof_verifier_types_ResourceVotesByIdentity(>>>::ffi_to(obj))) } } - pub mod add_estimation_costs_for_contract_insertion { use crate as dash_sdk_bindings; } + impl Drop for drive_proof_verifier_types_ResourceVotesByIdentity { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.0); + } } } - #[cfg(feature = "server")] - pub mod system { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_ResourceVotesByIdentity_ctor<>(o_0: *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote) -> *mut drive_proof_verifier_types_ResourceVotesByIdentity { ferment::boxed(drive_proof_verifier_types_ResourceVotesByIdentity(o_0)) } - pub mod fetch_elements { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_ResourceVotesByIdentity_destroy<>(ffi: *mut drive_proof_verifier_types_ResourceVotesByIdentity) { ferment::unbox_any(ffi); } - pub mod estimation_costs { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_ResourceVotesByIdentity_get_0<>(obj: *const drive_proof_verifier_types_ResourceVotesByIdentity) -> *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { (*obj).0 } - pub mod for_total_system_credits_update { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_ResourceVotesByIdentity_set_0<>(obj: *const drive_proof_verifier_types_ResourceVotesByIdentity) -> *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { (*obj).0 } + + #[doc = "FFI-representation of the [`ContestedResources`]"] + #[repr(C)] + #[derive(Clone)] + pub struct drive_proof_verifier_types_ContestedResources(*mut crate::fermented::generics::Vec_drive_proof_verifier_types_ContestedResource); + + impl ferment::FFIConversionFrom for drive_proof_verifier_types_ContestedResources { + unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_ContestedResources) -> drive_proof_verifier::types::ContestedResources { + let ffi_ref = &*ffi; + drive_proof_verifier::types::ContestedResources(>>::ffi_from(ffi_ref.0)) } + } - #[cfg(feature = "server")] - pub mod genesis_time { - use crate as dash_sdk_bindings; + impl ferment::FFIConversionTo for drive_proof_verifier_types_ContestedResources { unsafe fn ffi_to_const(obj: drive_proof_verifier::types::ContestedResources) -> *const drive_proof_verifier_types_ContestedResources { ferment::boxed(drive_proof_verifier_types_ContestedResources(>>::ffi_to(obj.0))) } } - #[cfg(feature = "server")] - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; + impl Drop for drive_proof_verifier_types_ContestedResources { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.0); } } - - pub mod protocol_version { use crate as dash_sdk_bindings; } } - #[cfg(any(feature = "server", feature = "verify", feature = "fixtures-and-mocks"))] - pub mod document { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResources_ctor<>(o_0: *mut crate::fermented::generics::Vec_drive_proof_verifier_types_ContestedResource) -> *mut drive_proof_verifier_types_ContestedResources { ferment::boxed(drive_proof_verifier_types_ContestedResources(o_0)) } - #[cfg(any(feature = "server", feature = "fixtures-and-mocks"))] - pub mod update { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResources_destroy<>(ffi: *mut drive_proof_verifier_types_ContestedResources) { ferment::unbox_any(ffi); } - #[cfg(feature = "server")] - pub mod update_document_for_contract { - use crate as dash_sdk_bindings; - } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResources_get_0<>(obj: *const drive_proof_verifier_types_ContestedResources) -> *mut crate::fermented::generics::Vec_drive_proof_verifier_types_ContestedResource { (*obj).0 } - #[cfg(feature = "server")] - pub mod add_update_multiple_documents_operations { - use crate as dash_sdk_bindings; - } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResources_set_0<>(obj: *const drive_proof_verifier_types_ContestedResources) -> *mut crate::fermented::generics::Vec_drive_proof_verifier_types_ContestedResource { (*obj).0 } - pub mod update_document_with_serialization_for_contract { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`Contenders`]"] + #[repr(C)] + #[derive(Clone)] + pub struct drive_proof_verifier_types_Contenders { + pub winner: *mut crate::fermented::generics::Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo, + pub contenders: *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument, + pub abstain_vote_tally: *mut u32, + pub lock_vote_tally: *mut u32, + } - #[cfg(feature = "server")] - pub mod update_document_for_contract_id { - use crate as dash_sdk_bindings; + impl ferment::FFIConversionFrom for drive_proof_verifier_types_Contenders { + unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_Contenders) -> drive_proof_verifier::types::Contenders { + let ffi_ref = &*ffi; + drive_proof_verifier::types::Contenders { + winner: >::ffi_from_opt(ffi_ref.winner), + contenders: >>::ffi_from(ffi_ref.contenders), + abstain_vote_tally: ferment::from_opt_primitive(ffi_ref.abstain_vote_tally), + lock_vote_tally: ferment::from_opt_primitive(ffi_ref.lock_vote_tally), } + } + } - pub mod internal { - use crate as dash_sdk_bindings; - - pub mod update_document_for_contract_operations { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for drive_proof_verifier_types_Contenders { + unsafe fn ffi_to_const(obj: drive_proof_verifier::types::Contenders) -> *const drive_proof_verifier_types_Contenders { + ferment::boxed(drive_proof_verifier_types_Contenders { winner: >::ffi_to_opt(obj.winner), contenders: >>::ffi_to(obj.contenders), abstain_vote_tally: ferment::to_opt_primitive(obj.abstain_vote_tally), lock_vote_tally: ferment::to_opt_primitive(obj.lock_vote_tally) }) + } + } - pub mod update_document_for_contract_apply_and_add_to_operations { use crate as dash_sdk_bindings; } + impl Drop for drive_proof_verifier_types_Contenders { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any_opt(ffi_ref.winner); + ferment::unbox_any(ffi_ref.contenders); + ferment::destroy_opt_primitive(ffi_ref.abstain_vote_tally); + ferment::destroy_opt_primitive(ffi_ref.lock_vote_tally); } } + } - #[cfg(any(feature = "server", feature = "fixtures-and-mocks"))] - pub mod insert { - use crate as dash_sdk_bindings; - - pub mod add_document { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_ctor<>(winner: *mut crate::fermented::generics::Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo, contenders: *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument, abstain_vote_tally: *mut u32, lock_vote_tally: *mut u32) -> *mut drive_proof_verifier_types_Contenders { ferment::boxed(drive_proof_verifier_types_Contenders { winner, contenders, abstain_vote_tally, lock_vote_tally }) } - pub mod add_reference_for_index_level_for_contract_operations { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_destroy<>(ffi: *mut drive_proof_verifier_types_Contenders) { ferment::unbox_any(ffi); } - pub mod add_document_for_contract_operations { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_get_winner<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut crate::fermented::generics::Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { (*obj).winner } - pub mod add_indices_for_index_level_for_contract_operations { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_get_contenders<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { (*obj).contenders } - pub mod add_document_to_primary_storage { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_get_abstain_vote_tally<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut u32 { (*obj).abstain_vote_tally } - pub mod add_indices_for_top_index_level_for_contract_operations { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_get_lock_vote_tally<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut u32 { (*obj).lock_vote_tally } - pub mod add_document_for_contract_apply_and_add_to_operations { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_set_winner<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut crate::fermented::generics::Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { (*obj).winner } - pub mod add_document_for_contract { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_set_contenders<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut crate::fermented::generics::std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { (*obj).contenders } - #[cfg(any(feature = "server", feature = "fixtures-and-mocks"))] - pub mod insert_contested { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_set_abstain_vote_tally<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut u32 { (*obj).abstain_vote_tally } - pub mod add_contested_document_to_primary_storage { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Contenders_set_lock_vote_tally<>(obj: *const drive_proof_verifier_types_Contenders) -> *mut u32 { (*obj).lock_vote_tally } - pub mod add_contested_document { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`Voters`]"] + #[repr(C)] + #[derive(Clone)] + pub struct drive_proof_verifier_types_Voters(*mut crate::fermented::generics::std_collections_BTreeSet_drive_proof_verifier_types_Voter); - pub mod add_contested_document_for_contract_apply_and_add_to_operations { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for drive_proof_verifier_types_Voters { + unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_Voters) -> drive_proof_verifier::types::Voters { + let ffi_ref = &*ffi; + drive_proof_verifier::types::Voters(>>::ffi_from(ffi_ref.0)) + } + } - pub mod add_contested_vote_subtrees_for_non_identities_operations { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for drive_proof_verifier_types_Voters { unsafe fn ffi_to_const(obj: drive_proof_verifier::types::Voters) -> *const drive_proof_verifier_types_Voters { ferment::boxed(drive_proof_verifier_types_Voters(>>::ffi_to(obj.0))) } } - pub mod add_contested_document_for_contract_operations { use crate as dash_sdk_bindings; } + impl Drop for drive_proof_verifier_types_Voters { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.0); + } + } + } - pub mod add_contested_document_for_contract { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Voters_ctor<>(o_0: *mut crate::fermented::generics::std_collections_BTreeSet_drive_proof_verifier_types_Voter) -> *mut drive_proof_verifier_types_Voters { ferment::boxed(drive_proof_verifier_types_Voters(o_0)) } - pub mod add_contested_indices_for_contract_operations { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Voters_destroy<>(ffi: *mut drive_proof_verifier_types_Voters) { ferment::unbox_any(ffi); } - pub mod add_contested_reference_and_vote_subtree_to_document_operations { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Voters_get_0<>(obj: *const drive_proof_verifier_types_Voters) -> *mut crate::fermented::generics::std_collections_BTreeSet_drive_proof_verifier_types_Voter { (*obj).0 } - #[cfg(any(feature = "server", feature = "fixtures-and-mocks"))] - pub mod query { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_Voters_set_0<>(obj: *const drive_proof_verifier_types_Voters) -> *mut crate::fermented::generics::std_collections_BTreeSet_drive_proof_verifier_types_Voter { (*obj).0 } - pub mod query_documents { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`ContestedResource`]"] + #[repr(C)] + #[derive(Clone)] + pub struct drive_proof_verifier_types_ContestedResource(*mut crate::fermented::types::platform_value::platform_value_Value); - pub mod query_contested_documents_storage { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for drive_proof_verifier_types_ContestedResource { + unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_ContestedResource) -> drive_proof_verifier::types::ContestedResource { + let ffi_ref = &*ffi; + drive_proof_verifier::types::ContestedResource(>::ffi_from(ffi_ref.0)) + } + } - pub mod query_contested_documents_vote_state { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for drive_proof_verifier_types_ContestedResource { unsafe fn ffi_to_const(obj: drive_proof_verifier::types::ContestedResource) -> *const drive_proof_verifier_types_ContestedResource { ferment::boxed(drive_proof_verifier_types_ContestedResource(>::ffi_to(obj.0))) } } - pub mod query_documents_with_flags { use crate as dash_sdk_bindings; } + impl Drop for drive_proof_verifier_types_ContestedResource { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.0); + } } + } - #[cfg(feature = "server")] - pub mod estimation_costs { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResource_ctor<>(o_0: *mut crate::fermented::types::platform_value::platform_value_Value) -> *mut drive_proof_verifier_types_ContestedResource { ferment::boxed(drive_proof_verifier_types_ContestedResource(o_0)) } - pub mod add_estimation_costs_for_add_document_to_primary_storage { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResource_destroy<>(ffi: *mut drive_proof_verifier_types_ContestedResource) { ferment::unbox_any(ffi); } - pub mod stateless_delete_of_non_tree_for_costs { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResource_get_0<>(obj: *const drive_proof_verifier_types_ContestedResource) -> *mut crate::fermented::types::platform_value::platform_value_Value { (*obj).0 } - pub mod add_estimation_costs_for_add_contested_document_to_primary_storage { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResource_set_0<>(obj: *const drive_proof_verifier_types_ContestedResource) -> *mut crate::fermented::types::platform_value::platform_value_Value { (*obj).0 } + } - #[cfg(feature = "server")] - pub mod index_uniqueness { - use crate as dash_sdk_bindings; + pub mod verify { use crate as dash_sdk_bindings; } - pub mod validate_document_create_transition_action_uniqueness { use crate as dash_sdk_bindings; } + pub mod from_request { use crate as dash_sdk_bindings; } - pub mod validate_document_replace_transition_action_uniqueness { use crate as dash_sdk_bindings; } + pub mod proof { use crate as dash_sdk_bindings; } - pub mod internal { - use crate as dash_sdk_bindings; + pub mod unproved { use crate as dash_sdk_bindings; } - pub mod validate_uniqueness_of_data { use crate as dash_sdk_bindings; } - } + pub mod error { use crate as dash_sdk_bindings; } + } - pub mod validate_document_purchase_transition_action_uniqueness { use crate as dash_sdk_bindings; } + pub mod platform_value { + use crate as dash_sdk_bindings; - pub mod validate_document_update_price_transition_action_uniqueness { use crate as dash_sdk_bindings; } + pub mod macros { use crate as dash_sdk_bindings; } - pub mod validate_document_uniqueness { use crate as dash_sdk_bindings; } + pub mod system_bytes { use crate as dash_sdk_bindings; } - pub mod validate_document_transfer_transition_action_uniqueness { use crate as dash_sdk_bindings; } - } + pub mod types { + use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod delete { - use crate as dash_sdk_bindings; + pub mod bytes_36 { use crate as dash_sdk_bindings; } - pub mod remove_indices_for_top_index_level_for_contract_operations { use crate as dash_sdk_bindings; } + pub mod identifier { + use crate as dash_sdk_bindings; - pub mod remove_document_from_primary_storage { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`Identifier`]"] + #[repr(C)] + #[derive(Clone)] + pub struct platform_value_types_identifier_Identifier(*mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_IdentifierBytes32); - pub mod delete_document_for_contract_with_named_type_operations { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for platform_value_types_identifier_Identifier { + unsafe fn ffi_from_const(ffi: *const platform_value_types_identifier_Identifier) -> platform_value::types::identifier::Identifier { + let ffi_ref = &*ffi; + platform_value::types::identifier::Identifier(>::ffi_from(ffi_ref.0)) + } + } - pub mod internal { - use crate as dash_sdk_bindings; + impl ferment::FFIConversionTo for platform_value_types_identifier_Identifier { unsafe fn ffi_to_const(obj: platform_value::types::identifier::Identifier) -> *const platform_value_types_identifier_Identifier { ferment::boxed(platform_value_types_identifier_Identifier(>::ffi_to(obj.0))) } } - pub mod add_estimation_costs_for_remove_document_to_primary_storage { use crate as dash_sdk_bindings; } + impl Drop for platform_value_types_identifier_Identifier { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.0); + } } + } - pub mod delete_document_for_contract_id_with_named_type_operations { use crate as dash_sdk_bindings; } - - pub mod delete_document_for_contract_operations { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_types_identifier_Identifier_ctor<>(o_0: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_IdentifierBytes32) -> *mut platform_value_types_identifier_Identifier { ferment::boxed(platform_value_types_identifier_Identifier(o_0)) } - pub mod delete_document_for_contract { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_types_identifier_Identifier_destroy<>(ffi: *mut platform_value_types_identifier_Identifier) { ferment::unbox_any(ffi); } - pub mod delete_document_for_contract_apply_and_add_to_operations { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_types_identifier_Identifier_get_0<>(obj: *const platform_value_types_identifier_Identifier) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_IdentifierBytes32 { (*obj).0 } - pub mod delete_document_for_contract_id { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_types_identifier_Identifier_set_0<>(obj: *const platform_value_types_identifier_Identifier) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_IdentifierBytes32 { (*obj).0 } - pub mod remove_reference_for_index_level_for_contract_operations { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`IdentifierBytes32`]"] + #[repr(C)] + #[derive(Clone)] + pub struct platform_value_types_identifier_IdentifierBytes32(*mut crate::fermented::generics::Arr_u8_32); - pub mod remove_indices_for_index_level_for_contract_operations { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for platform_value_types_identifier_IdentifierBytes32 { + unsafe fn ffi_from_const(ffi: *const platform_value_types_identifier_IdentifierBytes32) -> platform_value::types::identifier::IdentifierBytes32 { + let ffi_ref = &*ffi; + platform_value::types::identifier::IdentifierBytes32(>::ffi_from(ffi_ref.0)) + } } - } - } - - #[cfg(any(feature = "server", feature = "verify"))] - pub mod verify { - use crate as dash_sdk_bindings; - - pub mod group { - use crate as dash_sdk_bindings; - pub mod verify_action_signers_total_power { use crate as dash_sdk_bindings; } - - pub mod verify_active_action_infos { use crate as dash_sdk_bindings; } - - pub mod verify_group_info { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for platform_value_types_identifier_IdentifierBytes32 { unsafe fn ffi_to_const(obj: platform_value::types::identifier::IdentifierBytes32) -> *const platform_value_types_identifier_IdentifierBytes32 { ferment::boxed(platform_value_types_identifier_IdentifierBytes32(>::ffi_to(obj.0))) } } - pub mod verify_group_infos_in_contract { use crate as dash_sdk_bindings; } + impl Drop for platform_value_types_identifier_IdentifierBytes32 { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.0); + } + } + } - pub mod verify_action_signers { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn platform_value_types_identifier_IdentifierBytes32_ctor<>(o_0: *mut crate::fermented::generics::Arr_u8_32) -> *mut platform_value_types_identifier_IdentifierBytes32 { ferment::boxed(platform_value_types_identifier_IdentifierBytes32(o_0)) } - pub mod state_transition { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_value_types_identifier_IdentifierBytes32_destroy<>(ffi: *mut platform_value_types_identifier_IdentifierBytes32) { ferment::unbox_any(ffi); } - pub mod verify_state_transition_was_executed_with_proof { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_types_identifier_IdentifierBytes32_get_0<>(obj: *const platform_value_types_identifier_IdentifierBytes32) -> *mut crate::fermented::generics::Arr_u8_32 { (*obj).0 } - pub mod state_transition_execution_path_queries { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_types_identifier_IdentifierBytes32_set_0<>(obj: *const platform_value_types_identifier_IdentifierBytes32) -> *mut crate::fermented::generics::Arr_u8_32 { (*obj).0 } } - pub mod single_document { - use crate as dash_sdk_bindings; - - pub mod verify_proof_keep_serialized { use crate as dash_sdk_bindings; } + pub mod bytes_32 { use crate as dash_sdk_bindings; } - pub mod verify_proof { use crate as dash_sdk_bindings; } - } + pub mod bytes_20 { use crate as dash_sdk_bindings; } - pub mod tokens { + pub mod binary_data { use crate as dash_sdk_bindings; - pub mod verify_token_direct_selling_prices { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`BinaryData`]"] + #[repr(C)] + #[derive(Clone)] + pub struct platform_value_types_binary_data_BinaryData(*mut crate::fermented::generics::Vec_u8); - pub mod verify_token_infos_for_identity_id { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for platform_value_types_binary_data_BinaryData { + unsafe fn ffi_from_const(ffi: *const platform_value_types_binary_data_BinaryData) -> platform_value::types::binary_data::BinaryData { + let ffi_ref = &*ffi; + platform_value::types::binary_data::BinaryData(>>::ffi_from(ffi_ref.0)) + } + } - pub mod verify_token_perpetual_distribution_last_paid_time { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for platform_value_types_binary_data_BinaryData { unsafe fn ffi_to_const(obj: platform_value::types::binary_data::BinaryData) -> *const platform_value_types_binary_data_BinaryData { ferment::boxed(platform_value_types_binary_data_BinaryData(>>::ffi_to(obj.0))) } } - pub mod verify_token_balances_for_identity_id { use crate as dash_sdk_bindings; } + impl Drop for platform_value_types_binary_data_BinaryData { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.0); + } + } + } - pub mod verify_token_direct_selling_price { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_types_binary_data_BinaryData_ctor<>(o_0: *mut crate::fermented::generics::Vec_u8) -> *mut platform_value_types_binary_data_BinaryData { ferment::boxed(platform_value_types_binary_data_BinaryData(o_0)) } - pub mod verify_token_balance_for_identity_id { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_types_binary_data_BinaryData_destroy<>(ffi: *mut platform_value_types_binary_data_BinaryData) { ferment::unbox_any(ffi); } - pub mod verify_token_status { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_types_binary_data_BinaryData_get_0<>(obj: *const platform_value_types_binary_data_BinaryData) -> *mut crate::fermented::generics::Vec_u8 { (*obj).0 } - pub mod verify_token_balances_for_identity_ids { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_types_binary_data_BinaryData_set_0<>(obj: *const platform_value_types_binary_data_BinaryData) -> *mut crate::fermented::generics::Vec_u8 { (*obj).0 } + } + } - pub mod verify_token_info_for_identity_id { use crate as dash_sdk_bindings; } + pub mod converter { + use crate as dash_sdk_bindings; - pub mod verify_token_total_supply_and_aggregated_identity_balance { use crate as dash_sdk_bindings; } + #[cfg(feature = "json")] + pub mod serde_json { + use crate as dash_sdk_bindings; + } - pub mod verify_token_pre_programmed_distributions { use crate as dash_sdk_bindings; } + #[cfg(feature = "cbor")] + pub mod ciborium { + use crate as dash_sdk_bindings; + } + } - pub mod verify_token_statuses { use crate as dash_sdk_bindings; } + pub mod patch { + use crate as dash_sdk_bindings; - pub mod verify_token_infos_for_identity_ids { use crate as dash_sdk_bindings; } + pub mod diff { use crate as dash_sdk_bindings; } + } - pub mod verify_token_contract_info { use crate as dash_sdk_bindings; } - } + pub mod eq { use crate as dash_sdk_bindings; } - pub mod contract { - use crate as dash_sdk_bindings; + pub mod inner_value { use crate as dash_sdk_bindings; } - pub mod verify_contract { use crate as dash_sdk_bindings; } + pub mod inner_value_at_path { + use crate as dash_sdk_bindings; - pub mod verify_contract_history { use crate as dash_sdk_bindings; } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; } + } - pub mod document { - use crate as dash_sdk_bindings; + pub mod btreemap_extensions { + use crate as dash_sdk_bindings; - pub mod verify_proof_keep_serialized { use crate as dash_sdk_bindings; } + pub mod btreemap_path_extensions { use crate as dash_sdk_bindings; } - pub mod verify_proof { use crate as dash_sdk_bindings; } + pub mod btreemap_removal_extensions { + use crate as dash_sdk_bindings; - pub mod verify_start_at_document_in_proof { use crate as dash_sdk_bindings; } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } } - pub mod system { - use crate as dash_sdk_bindings; + pub mod btreemap_field_replacement { use crate as dash_sdk_bindings; } + } - pub mod verify_elements { use crate as dash_sdk_bindings; } + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`Value`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum platform_value_Value { U128(*mut [u8; 16]), I128(*mut [u8; 16]), U64(u64), I64(i64), U32(u32), I32(i32), U16(u16), I16(i16), U8(u8), I8(i8), Bytes(*mut crate::fermented::generics::Vec_u8), Bytes20(*mut crate::fermented::generics::Arr_u8_20), Bytes32(*mut crate::fermented::generics::Arr_u8_32), Bytes36(*mut crate::fermented::generics::Arr_u8_36), EnumU8(*mut crate::fermented::generics::Vec_u8), EnumString(*mut crate::fermented::generics::Vec_String), Identifier(*mut crate::fermented::types::platform_value::platform_value_Hash256), Float(f64), Text(*mut std::os::raw::c_char), Bool(bool), Null, Array(*mut crate::fermented::generics::Vec_platform_value_Value), Map(*mut crate::fermented::types::platform_value::value_map::platform_value_value_map_ValueMap) } - pub mod verify_finalized_epoch_infos { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for platform_value_Value { + unsafe fn ffi_from_const(ffi: *const platform_value_Value) -> platform_value::Value { + let ffi_ref = &*ffi; + match ffi_ref { + platform_value_Value::U128(o_0) => platform_value::Value::U128(<[u8; 16] as ferment::FFIConversionFrom>::ffi_from(*o_0)), + platform_value_Value::I128(o_0) => platform_value::Value::I128(<[u8; 16] as ferment::FFIConversionFrom>::ffi_from(*o_0)), + platform_value_Value::U64(o_0) => platform_value::Value::U64(*o_0), + platform_value_Value::I64(o_0) => platform_value::Value::I64(*o_0), + platform_value_Value::U32(o_0) => platform_value::Value::U32(*o_0), + platform_value_Value::I32(o_0) => platform_value::Value::I32(*o_0), + platform_value_Value::U16(o_0) => platform_value::Value::U16(*o_0), + platform_value_Value::I16(o_0) => platform_value::Value::I16(*o_0), + platform_value_Value::U8(o_0) => platform_value::Value::U8(*o_0), + platform_value_Value::I8(o_0) => platform_value::Value::I8(*o_0), + platform_value_Value::Bytes(o_0) => platform_value::Value::Bytes(>>::ffi_from(*o_0)), + platform_value_Value::Bytes20(o_0) => platform_value::Value::Bytes20(>::ffi_from(*o_0)), + platform_value_Value::Bytes32(o_0) => platform_value::Value::Bytes32(>::ffi_from(*o_0)), + platform_value_Value::Bytes36(o_0) => platform_value::Value::Bytes36(>::ffi_from(*o_0)), + platform_value_Value::EnumU8(o_0) => platform_value::Value::EnumU8(>>::ffi_from(*o_0)), + platform_value_Value::EnumString(o_0) => platform_value::Value::EnumString(>>::ffi_from(*o_0)), + platform_value_Value::Identifier(o_0) => platform_value::Value::Identifier(>::ffi_from(*o_0)), + platform_value_Value::Float(o_0) => platform_value::Value::Float(*o_0), + platform_value_Value::Text(o_0) => platform_value::Value::Text(>::ffi_from(*o_0)), + platform_value_Value::Bool(o_0) => platform_value::Value::Bool(*o_0), + platform_value_Value::Null => platform_value::Value::Null, + platform_value_Value::Array(o_0) => platform_value::Value::Array(>>::ffi_from(*o_0)), + platform_value_Value::Map(o_0) => platform_value::Value::Map(>::ffi_from(*o_0)) + } + } + } - pub mod verify_epoch_infos { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for platform_value_Value { + unsafe fn ffi_to_const(obj: platform_value::Value) -> *const platform_value_Value { + ferment::boxed(match obj { + platform_value::Value::U128(o_0) => platform_value_Value::U128(<[u8; 16] as ferment::FFIConversionTo>::ffi_to(o_0)), + platform_value::Value::I128(o_0) => platform_value_Value::I128(<[u8; 16] as ferment::FFIConversionTo>::ffi_to(o_0)), + platform_value::Value::U64(o_0) => platform_value_Value::U64(o_0), + platform_value::Value::I64(o_0) => platform_value_Value::I64(o_0), + platform_value::Value::U32(o_0) => platform_value_Value::U32(o_0), + platform_value::Value::I32(o_0) => platform_value_Value::I32(o_0), + platform_value::Value::U16(o_0) => platform_value_Value::U16(o_0), + platform_value::Value::I16(o_0) => platform_value_Value::I16(o_0), + platform_value::Value::U8(o_0) => platform_value_Value::U8(o_0), + platform_value::Value::I8(o_0) => platform_value_Value::I8(o_0), + platform_value::Value::Bytes(o_0) => platform_value_Value::Bytes(>>::ffi_to(o_0)), + platform_value::Value::Bytes20(o_0) => platform_value_Value::Bytes20(>::ffi_to(o_0)), + platform_value::Value::Bytes32(o_0) => platform_value_Value::Bytes32(>::ffi_to(o_0)), + platform_value::Value::Bytes36(o_0) => platform_value_Value::Bytes36(>::ffi_to(o_0)), + platform_value::Value::EnumU8(o_0) => platform_value_Value::EnumU8(>>::ffi_to(o_0)), + platform_value::Value::EnumString(o_0) => platform_value_Value::EnumString(>>::ffi_to(o_0)), + platform_value::Value::Identifier(o_0) => platform_value_Value::Identifier(>::ffi_to(o_0)), + platform_value::Value::Float(o_0) => platform_value_Value::Float(o_0), + platform_value::Value::Text(o_0) => platform_value_Value::Text(>::ffi_to(o_0)), + platform_value::Value::Bool(o_0) => platform_value_Value::Bool(o_0), + platform_value::Value::Null => platform_value_Value::Null, + platform_value::Value::Array(o_0) => platform_value_Value::Array(>>::ffi_to(o_0)), + platform_value::Value::Map(o_0) => platform_value_Value::Map(>::ffi_to(o_0)), + _ => unreachable!("This is unreachable") + }) + } + } - pub mod verify_epoch_proposers { use crate as dash_sdk_bindings; } + impl Drop for platform_value_Value { + fn drop(&mut self) { + unsafe { + match self { + platform_value_Value::U128(o_0) => { ferment::unbox_any_opt(*o_0); } + platform_value_Value::I128(o_0) => { ferment::unbox_any_opt(*o_0); } + platform_value_Value::U64(o_0) => { ; } + platform_value_Value::I64(o_0) => { ; } + platform_value_Value::U32(o_0) => { ; } + platform_value_Value::I32(o_0) => { ; } + platform_value_Value::U16(o_0) => { ; } + platform_value_Value::I16(o_0) => { ; } + platform_value_Value::U8(o_0) => { ; } + platform_value_Value::I8(o_0) => { ; } + platform_value_Value::Bytes(o_0) => { ferment::unbox_any(*o_0); } + platform_value_Value::Bytes20(o_0) => { ferment::unbox_any(*o_0); } + platform_value_Value::Bytes32(o_0) => { ferment::unbox_any(*o_0); } + platform_value_Value::Bytes36(o_0) => { ferment::unbox_any(*o_0); } + platform_value_Value::EnumU8(o_0) => { ferment::unbox_any(*o_0); } + platform_value_Value::EnumString(o_0) => { ferment::unbox_any(*o_0); } + platform_value_Value::Identifier(o_0) => { ferment::unbox_any(*o_0); } + platform_value_Value::Float(o_0) => { ; } + platform_value_Value::Text(o_0) => { ferment::unbox_string(*o_0); } + platform_value_Value::Bool(o_0) => { ; } + platform_value_Value::Null => {} + platform_value_Value::Array(o_0) => { ferment::unbox_any(*o_0); } + platform_value_Value::Map(o_0) => { ferment::unbox_any(*o_0); } + _ => unreachable!("This is unreachable") + }; + } + } + } - pub mod verify_upgrade_state { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_U128_ctor(o_o_0: *mut [u8; 16]) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::U128(o_o_0)) } - pub mod verify_upgrade_vote_status { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_I128_ctor(o_o_0: *mut [u8; 16]) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::I128(o_o_0)) } - pub mod verify_total_credits_in_system { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_U64_ctor(o_o_0: u64) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::U64(o_o_0)) } - pub mod voting { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_I64_ctor(o_o_0: i64) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::I64(o_o_0)) } - pub mod verify_vote_poll_vote_state_proof { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_U32_ctor(o_o_0: u32) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::U32(o_o_0)) } - pub mod verify_vote_polls_end_date_query { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_I32_ctor(o_o_0: i32) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::I32(o_o_0)) } - pub mod verify_vote_poll_votes_proof { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_U16_ctor(o_o_0: u16) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::U16(o_o_0)) } - pub mod verify_masternode_vote { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_I16_ctor(o_o_0: i16) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::I16(o_o_0)) } - pub mod verify_contests_proof { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_U8_ctor(o_o_0: u8) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::U8(o_o_0)) } - pub mod verify_identity_votes_given_proof { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_I8_ctor(o_o_0: i8) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::I8(o_o_0)) } - pub mod verify_specialized_balance { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_Bytes_ctor(o_o_0: *mut crate::fermented::generics::Vec_u8) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Bytes(o_o_0)) } - pub mod identity { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_Bytes20_ctor(o_o_0: *mut crate::fermented::generics::Arr_u8_20) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Bytes20(o_o_0)) } - pub mod verify_identity_balance_for_identity_id { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_Bytes32_ctor(o_o_0: *mut crate::fermented::generics::Arr_u8_32) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Bytes32(o_o_0)) } - pub mod verify_identity_revision_for_identity_id { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_Bytes36_ctor(o_o_0: *mut crate::fermented::generics::Arr_u8_36) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Bytes36(o_o_0)) } - pub mod verify_full_identity_by_identity_id { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_EnumU8_ctor(o_o_0: *mut crate::fermented::generics::Vec_u8) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::EnumU8(o_o_0)) } - pub mod verify_identity_id_by_unique_public_key_hash { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_EnumString_ctor(o_o_0: *mut crate::fermented::generics::Vec_String) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::EnumString(o_o_0)) } - pub mod verify_identity_ids_by_unique_public_key_hashes { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_Identifier_ctor(o_o_0: *mut crate::fermented::types::platform_value::platform_value_Hash256) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Identifier(o_o_0)) } - pub mod verify_identity_nonce { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_Float_ctor(o_o_0: f64) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Float(o_o_0)) } - pub mod verify_identity_balance_and_revision_for_identity_id { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_Text_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Text(o_o_0)) } - pub mod verify_full_identities_by_public_key_hashes { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_Bool_ctor(o_o_0: bool) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Bool(o_o_0)) } - pub mod verify_identity_keys_by_identity_id { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_Null_ctor() -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Null {}) } - pub mod verify_full_identity_by_unique_public_key_hash { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_Array_ctor(o_o_0: *mut crate::fermented::generics::Vec_platform_value_Value) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Array(o_o_0)) } - pub mod verify_full_identity_by_non_unique_public_key_hash { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_Map_ctor(o_o_0: *mut crate::fermented::types::platform_value::value_map::platform_value_value_map_ValueMap) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Map(o_o_0)) } - pub mod verify_identity_id_by_non_unique_public_key_hash { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn platform_value_Value_destroy<>(ffi: *mut platform_value_Value) { ferment::unbox_any(ffi); } - pub mod verify_identity_balances_for_identity_ids { use crate as dash_sdk_bindings; } + pub mod pointer { use crate as dash_sdk_bindings; } - pub mod verify_identities_contract_keys { use crate as dash_sdk_bindings; } + pub mod replace { use crate as dash_sdk_bindings; } - pub mod verify_identity_contract_nonce { use crate as dash_sdk_bindings; } - } - } + pub mod index { use crate as dash_sdk_bindings; } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod query { + pub mod value_map { + use crate as dash_sdk_bindings; + + #[doc = "FFI-representation of the [`ValueMap`]"] + #[repr(C)] + #[derive(Clone)] + pub struct platform_value_value_map_ValueMap(*mut crate::fermented::generics::Vec_Tuple_platform_value_Value_platform_value_Value); + + impl ferment::FFIConversionFrom for platform_value_value_map_ValueMap { + unsafe fn ffi_from_const(ffi: *const platform_value_value_map_ValueMap) -> platform_value::value_map::ValueMap { + let ffi_ref = &*ffi; + >>::ffi_from(ffi_ref.0) + } + } + + impl ferment::FFIConversionTo for platform_value_value_map_ValueMap { unsafe fn ffi_to_const(obj: platform_value::value_map::ValueMap) -> *const platform_value_value_map_ValueMap { ferment::boxed(platform_value_value_map_ValueMap(>>::ffi_to(obj))) } } + + impl Drop for platform_value_value_map_ValueMap { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.0); + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_value_map_ValueMap_ctor<>(o_0: *mut crate::fermented::generics::Vec_Tuple_platform_value_Value_platform_value_Value) -> *mut platform_value_value_map_ValueMap { ferment::boxed(platform_value_value_map_ValueMap(o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_value_map_ValueMap_destroy<>(ffi: *mut platform_value_value_map_ValueMap) { ferment::unbox_any(ffi); } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_value_map_ValueMap_get_0<>(obj: *const platform_value_value_map_ValueMap) -> *mut crate::fermented::generics::Vec_Tuple_platform_value_Value_platform_value_Value { (*obj).0 } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_value_map_ValueMap_set_0<>(obj: *const platform_value_value_map_ValueMap) -> *mut crate::fermented::generics::Vec_Tuple_platform_value_Value_platform_value_Value { (*obj).0 } + } + + #[doc = "FFI-representation of the [`Hash256`]"] + #[repr(C)] + #[derive(Clone)] + pub struct platform_value_Hash256(*mut crate::fermented::generics::Arr_u8_32); + + impl ferment::FFIConversionFrom for platform_value_Hash256 { + unsafe fn ffi_from_const(ffi: *const platform_value_Hash256) -> platform_value::Hash256 { + let ffi_ref = &*ffi; + >::ffi_from(ffi_ref.0) + } + } + + impl ferment::FFIConversionTo for platform_value_Hash256 { unsafe fn ffi_to_const(obj: platform_value::Hash256) -> *const platform_value_Hash256 { ferment::boxed(platform_value_Hash256(>::ffi_to(obj))) } } + + impl Drop for platform_value_Hash256 { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.0); + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_Hash256_ctor<>(o_0: *mut crate::fermented::generics::Arr_u8_32) -> *mut platform_value_Hash256 { ferment::boxed(platform_value_Hash256(o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_Hash256_destroy<>(ffi: *mut platform_value_Hash256) { ferment::unbox_any(ffi); } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_Hash256_get_0<>(obj: *const platform_value_Hash256) -> *mut crate::fermented::generics::Arr_u8_32 { (*obj).0 } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_Hash256_set_0<>(obj: *const platform_value_Hash256) -> *mut crate::fermented::generics::Arr_u8_32 { (*obj).0 } + + pub mod value_serialization { + use crate as dash_sdk_bindings; + + pub mod ser { use crate as dash_sdk_bindings; } + + pub mod de { use crate as dash_sdk_bindings; } + } + + pub mod error { + use crate as dash_sdk_bindings; + + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`Error`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum platform_value_error_Error { Unsupported(*mut std::os::raw::c_char), StructureError(*mut std::os::raw::c_char), PathError(*mut std::os::raw::c_char), IntegerSizeError, IntegerParsingError, StringDecodingError(*mut std::os::raw::c_char), KeyMustBeAString, ByteLengthNot20BytesError(*mut std::os::raw::c_char), ByteLengthNot32BytesError(*mut std::os::raw::c_char), ByteLengthNot36BytesError(*mut std::os::raw::c_char), SerdeSerializationError(*mut std::os::raw::c_char), SerdeDeserializationError(*mut std::os::raw::c_char), CborSerializationError(*mut std::os::raw::c_char) } + + impl ferment::FFIConversionFrom for platform_value_error_Error { + unsafe fn ffi_from_const(ffi: *const platform_value_error_Error) -> platform_value::error::Error { + let ffi_ref = &*ffi; + match ffi_ref { + platform_value_error_Error::Unsupported(o_0) => platform_value::error::Error::Unsupported(>::ffi_from(*o_0)), + platform_value_error_Error::StructureError(o_0) => platform_value::error::Error::StructureError(>::ffi_from(*o_0)), + platform_value_error_Error::PathError(o_0) => platform_value::error::Error::PathError(>::ffi_from(*o_0)), + platform_value_error_Error::IntegerSizeError => platform_value::error::Error::IntegerSizeError, + platform_value_error_Error::IntegerParsingError => platform_value::error::Error::IntegerParsingError, + platform_value_error_Error::StringDecodingError(o_0) => platform_value::error::Error::StringDecodingError(>::ffi_from(*o_0)), + platform_value_error_Error::KeyMustBeAString => platform_value::error::Error::KeyMustBeAString, + platform_value_error_Error::ByteLengthNot20BytesError(o_0) => platform_value::error::Error::ByteLengthNot20BytesError(>::ffi_from(*o_0)), + platform_value_error_Error::ByteLengthNot32BytesError(o_0) => platform_value::error::Error::ByteLengthNot32BytesError(>::ffi_from(*o_0)), + platform_value_error_Error::ByteLengthNot36BytesError(o_0) => platform_value::error::Error::ByteLengthNot36BytesError(>::ffi_from(*o_0)), + platform_value_error_Error::SerdeSerializationError(o_0) => platform_value::error::Error::SerdeSerializationError(>::ffi_from(*o_0)), + platform_value_error_Error::SerdeDeserializationError(o_0) => platform_value::error::Error::SerdeDeserializationError(>::ffi_from(*o_0)), + platform_value_error_Error::CborSerializationError(o_0) => platform_value::error::Error::CborSerializationError(>::ffi_from(*o_0)) + } + } + } + + impl ferment::FFIConversionTo for platform_value_error_Error { + unsafe fn ffi_to_const(obj: platform_value::error::Error) -> *const platform_value_error_Error { + ferment::boxed(match obj { + platform_value::error::Error::Unsupported(o_0) => platform_value_error_Error::Unsupported(>::ffi_to(o_0)), + platform_value::error::Error::StructureError(o_0) => platform_value_error_Error::StructureError(>::ffi_to(o_0)), + platform_value::error::Error::PathError(o_0) => platform_value_error_Error::PathError(>::ffi_to(o_0)), + platform_value::error::Error::IntegerSizeError => platform_value_error_Error::IntegerSizeError, + platform_value::error::Error::IntegerParsingError => platform_value_error_Error::IntegerParsingError, + platform_value::error::Error::StringDecodingError(o_0) => platform_value_error_Error::StringDecodingError(>::ffi_to(o_0)), + platform_value::error::Error::KeyMustBeAString => platform_value_error_Error::KeyMustBeAString, + platform_value::error::Error::ByteLengthNot20BytesError(o_0) => platform_value_error_Error::ByteLengthNot20BytesError(>::ffi_to(o_0)), + platform_value::error::Error::ByteLengthNot32BytesError(o_0) => platform_value_error_Error::ByteLengthNot32BytesError(>::ffi_to(o_0)), + platform_value::error::Error::ByteLengthNot36BytesError(o_0) => platform_value_error_Error::ByteLengthNot36BytesError(>::ffi_to(o_0)), + platform_value::error::Error::SerdeSerializationError(o_0) => platform_value_error_Error::SerdeSerializationError(>::ffi_to(o_0)), + platform_value::error::Error::SerdeDeserializationError(o_0) => platform_value_error_Error::SerdeDeserializationError(>::ffi_to(o_0)), + platform_value::error::Error::CborSerializationError(o_0) => platform_value_error_Error::CborSerializationError(>::ffi_to(o_0)), + _ => unreachable!("This is unreachable") + }) + } + } + + impl Drop for platform_value_error_Error { + fn drop(&mut self) { + unsafe { + match self { + platform_value_error_Error::Unsupported(o_0) => { ferment::unbox_string(*o_0); } + platform_value_error_Error::StructureError(o_0) => { ferment::unbox_string(*o_0); } + platform_value_error_Error::PathError(o_0) => { ferment::unbox_string(*o_0); } + platform_value_error_Error::IntegerSizeError => {} + platform_value_error_Error::IntegerParsingError => {} + platform_value_error_Error::StringDecodingError(o_0) => { ferment::unbox_string(*o_0); } + platform_value_error_Error::KeyMustBeAString => {} + platform_value_error_Error::ByteLengthNot20BytesError(o_0) => { ferment::unbox_string(*o_0); } + platform_value_error_Error::ByteLengthNot32BytesError(o_0) => { ferment::unbox_string(*o_0); } + platform_value_error_Error::ByteLengthNot36BytesError(o_0) => { ferment::unbox_string(*o_0); } + platform_value_error_Error::SerdeSerializationError(o_0) => { ferment::unbox_string(*o_0); } + platform_value_error_Error::SerdeDeserializationError(o_0) => { ferment::unbox_string(*o_0); } + platform_value_error_Error::CborSerializationError(o_0) => { ferment::unbox_string(*o_0); } + _ => unreachable!("This is unreachable") + }; + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_Unsupported_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::Unsupported(o_o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_StructureError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::StructureError(o_o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_PathError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::PathError(o_o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_IntegerSizeError_ctor() -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::IntegerSizeError {}) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_IntegerParsingError_ctor() -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::IntegerParsingError {}) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_StringDecodingError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::StringDecodingError(o_o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_KeyMustBeAString_ctor() -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::KeyMustBeAString {}) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_ByteLengthNot20BytesError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::ByteLengthNot20BytesError(o_o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_ByteLengthNot32BytesError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::ByteLengthNot32BytesError(o_o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_ByteLengthNot36BytesError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::ByteLengthNot36BytesError(o_o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_SerdeSerializationError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::SerdeSerializationError(o_o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_SerdeDeserializationError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::SerdeDeserializationError(o_o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_CborSerializationError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::CborSerializationError(o_o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn platform_value_error_Error_destroy<>(ffi: *mut platform_value_error_Error) { ferment::unbox_any(ffi); } + } + } + + pub mod dpp { + use crate as dash_sdk_bindings; + + #[cfg(feature = "state-transitions")] + pub mod state_transition { use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod test_index { - use crate as dash_sdk_bindings; - } + pub mod serialization { use crate as dash_sdk_bindings; } + + pub mod state_transitions { + use crate as dash_sdk_bindings; + + pub mod identity { + use crate as dash_sdk_bindings; + + pub mod identity_credit_transfer_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod fields { use crate as dash_sdk_bindings; } + + pub mod methods { use crate as dash_sdk_bindings; } + } + + pub mod identity_credit_withdrawal_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod v1 { use crate as dash_sdk_bindings; } + + pub mod accessors { use crate as dash_sdk_bindings; } + } + + pub mod identity_topup_transition { + use crate as dash_sdk_bindings; + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod accessors { use crate as dash_sdk_bindings; } + } + + pub mod identity_create_transition { + use crate as dash_sdk_bindings; + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod methods { use crate as dash_sdk_bindings; } + } + + pub mod identity_credit_transfer_to_addresses_transition { + use crate as dash_sdk_bindings; + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod v0 { + use crate as dash_sdk_bindings; + + pub mod state_transition_validation { use crate as dash_sdk_bindings; } + } + + pub mod fields { use crate as dash_sdk_bindings; } + + pub mod methods { use crate as dash_sdk_bindings; } + } + + pub mod identity_create_from_addresses_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod methods { use crate as dash_sdk_bindings; } + } + + pub mod common_fields { use crate as dash_sdk_bindings; } + + pub mod identity_topup_from_addresses_transition { + use crate as dash_sdk_bindings; + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod masternode_vote_transition { + use crate as dash_sdk_bindings; + + pub mod fields { use crate as dash_sdk_bindings; } + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod accessors { use crate as dash_sdk_bindings; } + } + + pub mod public_key_in_creation { + use crate as dash_sdk_bindings; + + pub mod methods { + use crate as dash_sdk_bindings; + + pub mod duplicated_key_ids_witness { use crate as dash_sdk_bindings; } + + pub mod duplicated_keys_witness { use crate as dash_sdk_bindings; } + + #[cfg(feature = "state-transition-signing")] + pub mod from_public_key_signed_external { + use crate as dash_sdk_bindings; + } + + pub mod validate_identity_public_keys_structure { use crate as dash_sdk_bindings; } + + pub mod hash { use crate as dash_sdk_bindings; } + + #[cfg(feature = "state-transition-signing")] + pub mod from_public_key_signed_with_private_key { + use crate as dash_sdk_bindings; + } + } + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod identity_update_transition { + use crate as dash_sdk_bindings; + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod v0 { + use crate as dash_sdk_bindings; + + #[cfg(feature = "json-conversion")] + pub mod json_conversion { + use crate as dash_sdk_bindings; + } + } + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod fields { use crate as dash_sdk_bindings; } + } + } + + pub mod common_fields { use crate as dash_sdk_bindings; } + + pub mod shielded { + use crate as dash_sdk_bindings; + + pub mod shield_transition { + use crate as dash_sdk_bindings; + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod v0 { + use crate as dash_sdk_bindings; + + pub mod state_transition_validation { use crate as dash_sdk_bindings; } + } + } + + pub mod common_validation { use crate as dash_sdk_bindings; } + + pub mod identity_create_from_shielded_pool_transition { + use crate as dash_sdk_bindings; + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod v0 { + use crate as dash_sdk_bindings; + + pub mod state_transition_validation { use crate as dash_sdk_bindings; } + } + } + + pub mod shielded_transfer_transition { + use crate as dash_sdk_bindings; + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod v0 { + use crate as dash_sdk_bindings; + + pub mod state_transition_validation { use crate as dash_sdk_bindings; } + } + } + + pub mod unshield_transition { + use crate as dash_sdk_bindings; + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod v0 { + use crate as dash_sdk_bindings; + + pub mod state_transition_validation { use crate as dash_sdk_bindings; } + } + + pub mod methods { use crate as dash_sdk_bindings; } + } + + pub mod shield_from_asset_lock_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { + use crate as dash_sdk_bindings; + + pub mod state_transition_validation { use crate as dash_sdk_bindings; } + } + + pub mod methods { use crate as dash_sdk_bindings; } + } + + pub mod shielded_withdrawal_transition { + use crate as dash_sdk_bindings; + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod v0 { + use crate as dash_sdk_bindings; + + pub mod state_transition_validation { use crate as dash_sdk_bindings; } + } + } + } + + pub mod address_funds { + use crate as dash_sdk_bindings; + + pub mod address_funding_from_asset_lock_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { + use crate as dash_sdk_bindings; + + pub mod state_transition_validation { use crate as dash_sdk_bindings; } + } + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod accessors { use crate as dash_sdk_bindings; } + } + + pub mod address_credit_withdrawal_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { + use crate as dash_sdk_bindings; + + pub mod state_transition_validation { use crate as dash_sdk_bindings; } + } + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod methods { use crate as dash_sdk_bindings; } + } + + pub mod address_funds_transfer_transition { + use crate as dash_sdk_bindings; + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod v0 { + use crate as dash_sdk_bindings; + + pub mod state_transition_validation { use crate as dash_sdk_bindings; } + } + } + } + + pub mod contract { + use crate as dash_sdk_bindings; + + pub mod data_contract_create_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + + #[cfg(feature = "json-conversion")] + pub mod json_conversion { + use crate as dash_sdk_bindings; + } + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod methods { use crate as dash_sdk_bindings; } + } + + pub mod common_fields { use crate as dash_sdk_bindings; } + + pub mod data_contract_update_transition { + use crate as dash_sdk_bindings; + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod v0 { use crate as dash_sdk_bindings; } + } + } + + pub mod document { + use crate as dash_sdk_bindings; + + pub mod batch_transition { + use crate as dash_sdk_bindings; + + #[cfg(feature = "validation")] + pub mod validation { + use crate as dash_sdk_bindings; + + pub mod validate_basic_structure { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod find_duplicates_by_id { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + } + + pub mod resolvers { use crate as dash_sdk_bindings; } + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod batched_transition { + use crate as dash_sdk_bindings; + + pub mod token_transfer_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod validate_structure { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + } + + pub mod token_transition { use crate as dash_sdk_bindings; } + + pub mod document_transition { use crate as dash_sdk_bindings; } + + pub mod document_transfer_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod token_emergency_action_transition { + use crate as dash_sdk_bindings; + + pub mod validate_structure { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod document_delete_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod token_destroy_frozen_funds_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod validate_structure { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + } + + pub mod document_replace_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod token_burn_transition { + use crate as dash_sdk_bindings; + + pub mod validate_structure { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod document_update_price_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod token_set_price_for_direct_purchase_transition { + use crate as dash_sdk_bindings; + + pub mod v0_methods { use crate as dash_sdk_bindings; } + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod validate_structure { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + } + + pub mod document_base_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod fields { use crate as dash_sdk_bindings; } + + pub mod v1 { use crate as dash_sdk_bindings; } + } + + pub mod resolvers { use crate as dash_sdk_bindings; } + + pub mod document_purchase_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod document_transition_action_type { use crate as dash_sdk_bindings; } + + pub mod token_claim_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod validate_structure { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + } + + pub mod token_transition_action_type { use crate as dash_sdk_bindings; } + + pub mod token_direct_purchase_transition { + use crate as dash_sdk_bindings; + + pub mod validate_structure { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod token_freeze_transition { + use crate as dash_sdk_bindings; + + pub mod validate_structure { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod token_base_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod fields { use crate as dash_sdk_bindings; } + } + + pub mod token_unfreeze_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod validate_structure { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + } + + pub mod token_mint_transition { + use crate as dash_sdk_bindings; + + pub mod validate_structure { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod v0 { + use crate as dash_sdk_bindings; + + pub mod v0_methods { use crate as dash_sdk_bindings; } + } + } + + pub mod document_create_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod token_config_update_transition { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod validate_structure { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod v0_methods { use crate as dash_sdk_bindings; } + } + } + + pub mod fields { use crate as dash_sdk_bindings; } + + pub mod v1 { use crate as dash_sdk_bindings; } + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod v0 { use crate as dash_sdk_bindings; } + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + } + } + + pub mod traits { use crate as dash_sdk_bindings; } + + pub mod state_transition_types { use crate as dash_sdk_bindings; } + + pub mod errors { use crate as dash_sdk_bindings; } + + pub mod abstract_state_transition { use crate as dash_sdk_bindings; } + } + + pub mod core_subsidy { + use crate as dash_sdk_bindings; + + pub mod epoch_core_reward_credits_for_distribution { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + } + + pub mod document { + use crate as dash_sdk_bindings; + + pub mod serialization_traits { + use crate as dash_sdk_bindings; + + #[cfg(feature = "document-cbor-conversion")] + pub mod cbor_conversion { + use crate as dash_sdk_bindings; + } + + #[cfg(feature = "json-conversion")] + pub mod json_conversion { + use crate as dash_sdk_bindings; + } + + #[cfg(feature = "value-conversion")] + pub mod platform_value_conversion { + use crate as dash_sdk_bindings; + } + + pub mod platform_serialization_conversion { + use crate as dash_sdk_bindings; + + pub mod serialize { use crate as dash_sdk_bindings; } + + pub mod deserialize { use crate as dash_sdk_bindings; } + } + } + + #[cfg(feature = "extended-document")] + pub mod extended_document { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod fields { use crate as dash_sdk_bindings; } + } + + #[cfg(feature = "factories")] + pub mod document_factory { + use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`Document`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum dpp_document_Document { V0(*mut crate::fermented::types::dpp::document::v0::dpp_document_v0_DocumentV0) } + + impl ferment::FFIConversionFrom for dpp_document_Document { + unsafe fn ffi_from_const(ffi: *const dpp_document_Document) -> dpp::document::Document { + let ffi_ref = &*ffi; + match ffi_ref { dpp_document_Document::V0(o_0) => dpp::document::Document::V0(>::ffi_from(*o_0)) } + } + } + + impl ferment::FFIConversionTo for dpp_document_Document { + unsafe fn ffi_to_const(obj: dpp::document::Document) -> *const dpp_document_Document { + ferment::boxed(match obj { + dpp::document::Document::V0(o_0) => dpp_document_Document::V0(>::ffi_to(o_0)), + _ => unreachable!("This is unreachable") + }) + } + } + + impl Drop for dpp_document_Document { + fn drop(&mut self) { + unsafe { + match self { + dpp_document_Document::V0(o_0) => { ferment::unbox_any(*o_0); } + _ => unreachable!("This is unreachable") + }; + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_Document_V0_ctor(o_o_0: *mut crate::fermented::types::dpp::document::v0::dpp_document_v0_DocumentV0) -> *mut dpp_document_Document { ferment::boxed(dpp_document_Document::V0(o_o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_Document_destroy<>(ffi: *mut dpp_document_Document) { ferment::unbox_any(ffi); } + + pub mod fields { use crate as dash_sdk_bindings; } + + pub mod document_methods { + use crate as dash_sdk_bindings; + + pub mod hash { use crate as dash_sdk_bindings; } + + pub mod is_equal_ignoring_timestamps { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod get_raw_for_contract { use crate as dash_sdk_bindings; } + + pub mod get_raw_for_document_type { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + } + + pub mod v0 { + use crate as dash_sdk_bindings; + + #[doc = "FFI-representation of the [`DocumentV0`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_document_v0_DocumentV0 { + pub id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, + pub owner_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, + pub properties: *mut crate::fermented::generics::std_collections_Map_keys_String_values_platform_value_Value, + pub revision: *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision, + pub created_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, + pub updated_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, + pub transferred_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, + pub created_at_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, + pub updated_at_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, + pub transferred_at_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, + pub created_at_core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, + pub updated_at_core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, + pub transferred_at_core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, + pub creator_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, + } + + impl ferment::FFIConversionFrom for dpp_document_v0_DocumentV0 { + unsafe fn ffi_from_const(ffi: *const dpp_document_v0_DocumentV0) -> dpp::document::v0::DocumentV0 { + let ffi_ref = &*ffi; + dpp::document::v0::DocumentV0 { + id: >::ffi_from(ffi_ref.id), + owner_id: >::ffi_from(ffi_ref.owner_id), + properties: >>::ffi_from(ffi_ref.properties), + revision: >::ffi_from_opt(ffi_ref.revision), + created_at: >::ffi_from_opt(ffi_ref.created_at), + updated_at: >::ffi_from_opt(ffi_ref.updated_at), + transferred_at: >::ffi_from_opt(ffi_ref.transferred_at), + created_at_block_height: >::ffi_from_opt(ffi_ref.created_at_block_height), + updated_at_block_height: >::ffi_from_opt(ffi_ref.updated_at_block_height), + transferred_at_block_height: >::ffi_from_opt(ffi_ref.transferred_at_block_height), + created_at_core_block_height: >::ffi_from_opt(ffi_ref.created_at_core_block_height), + updated_at_core_block_height: >::ffi_from_opt(ffi_ref.updated_at_core_block_height), + transferred_at_core_block_height: >::ffi_from_opt(ffi_ref.transferred_at_core_block_height), + creator_id: >::ffi_from_opt(ffi_ref.creator_id), + } + } + } + + impl ferment::FFIConversionTo for dpp_document_v0_DocumentV0 { + unsafe fn ffi_to_const(obj: dpp::document::v0::DocumentV0) -> *const dpp_document_v0_DocumentV0 { + ferment::boxed(dpp_document_v0_DocumentV0 { + id: >::ffi_to(obj.id), + owner_id: >::ffi_to(obj.owner_id), + properties: >>::ffi_to(obj.properties), + revision: >::ffi_to_opt(obj.revision), + created_at: >::ffi_to_opt(obj.created_at), + updated_at: >::ffi_to_opt(obj.updated_at), + transferred_at: >::ffi_to_opt(obj.transferred_at), + created_at_block_height: >::ffi_to_opt(obj.created_at_block_height), + updated_at_block_height: >::ffi_to_opt(obj.updated_at_block_height), + transferred_at_block_height: >::ffi_to_opt(obj.transferred_at_block_height), + created_at_core_block_height: >::ffi_to_opt(obj.created_at_core_block_height), + updated_at_core_block_height: >::ffi_to_opt(obj.updated_at_core_block_height), + transferred_at_core_block_height: >::ffi_to_opt(obj.transferred_at_core_block_height), + creator_id: >::ffi_to_opt(obj.creator_id), + }) + } + } + + impl Drop for dpp_document_v0_DocumentV0 { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.id); + ferment::unbox_any(ffi_ref.owner_id); + ferment::unbox_any(ffi_ref.properties); + ferment::unbox_any_opt(ffi_ref.revision); + ferment::unbox_any_opt(ffi_ref.created_at); + ferment::unbox_any_opt(ffi_ref.updated_at); + ferment::unbox_any_opt(ffi_ref.transferred_at); + ferment::unbox_any_opt(ffi_ref.created_at_block_height); + ferment::unbox_any_opt(ffi_ref.updated_at_block_height); + ferment::unbox_any_opt(ffi_ref.transferred_at_block_height); + ferment::unbox_any_opt(ffi_ref.created_at_core_block_height); + ferment::unbox_any_opt(ffi_ref.updated_at_core_block_height); + ferment::unbox_any_opt(ffi_ref.transferred_at_core_block_height); + ferment::unbox_any_opt(ffi_ref.creator_id); + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_ctor<>(id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, owner_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, properties: *mut crate::fermented::generics::std_collections_Map_keys_String_values_platform_value_Value, revision: *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision, created_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, updated_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, transferred_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, created_at_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, updated_at_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, transferred_at_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, created_at_core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, updated_at_core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, transferred_at_core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, creator_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut dpp_document_v0_DocumentV0 { ferment::boxed(dpp_document_v0_DocumentV0 { id, owner_id, properties, revision, created_at, updated_at, transferred_at, created_at_block_height, updated_at_block_height, transferred_at_block_height, created_at_core_block_height, updated_at_core_block_height, transferred_at_core_block_height, creator_id }) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_destroy<>(ffi: *mut dpp_document_v0_DocumentV0) { ferment::unbox_any(ffi); } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_id<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).id } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_owner_id<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).owner_id } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_properties<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::generics::std_collections_Map_keys_String_values_platform_value_Value { (*obj).properties } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_revision<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision { (*obj).revision } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_created_at<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).created_at } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_updated_at<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).updated_at } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_transferred_at<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).transferred_at } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_created_at_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).created_at_block_height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_updated_at_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).updated_at_block_height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_transferred_at_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).transferred_at_block_height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_created_at_core_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).created_at_core_block_height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_updated_at_core_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).updated_at_core_block_height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_transferred_at_core_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).transferred_at_core_block_height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_get_creator_id<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).creator_id } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_id<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).id } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_owner_id<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).owner_id } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_properties<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::generics::std_collections_Map_keys_String_values_platform_value_Value { (*obj).properties } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_revision<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision { (*obj).revision } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_created_at<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).created_at } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_updated_at<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).updated_at } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_transferred_at<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).transferred_at } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_created_at_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).created_at_block_height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_updated_at_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).updated_at_block_height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_transferred_at_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).transferred_at_block_height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_created_at_core_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).created_at_core_block_height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_updated_at_core_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).updated_at_core_block_height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_transferred_at_core_block_height<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).transferred_at_core_block_height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_document_v0_DocumentV0_set_creator_id<>(obj: *const dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).creator_id } + + #[cfg(feature = "value-conversion")] + pub mod platform_value_conversion { + use crate as dash_sdk_bindings; + } + + #[cfg(feature = "document-cbor-conversion")] + pub mod cbor_conversion { + use crate as dash_sdk_bindings; + } + + #[cfg(feature = "json-conversion")] + pub mod json_conversion { + use crate as dash_sdk_bindings; + } + + pub mod serialize { use crate as dash_sdk_bindings; } + } + + #[cfg(feature = "factories")] + pub mod specialized_document_factory { + use crate as dash_sdk_bindings; + + pub mod v0 { + use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + } + + pub mod accessors { use crate as dash_sdk_bindings; } + } + + #[cfg(feature = "system_contracts")] + pub mod system_data_contracts { + use crate as dash_sdk_bindings; + } + + pub mod fee { + use crate as dash_sdk_bindings; + + pub mod epoch { + use crate as dash_sdk_bindings; + + #[cfg(feature = "fee-distribution")] + pub mod distribution { + use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + } + + #[cfg(feature = "fee-distribution")] + pub mod fee_result { + use crate as dash_sdk_bindings; + + pub mod refunds { + use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + } + + pub mod default_costs { use crate as dash_sdk_bindings; } + } + + #[cfg(feature = "core-types")] + pub mod core_types { + use crate as dash_sdk_bindings; + + pub mod validator { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + pub mod validator_set { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + } + + pub mod identity { + use crate as dash_sdk_bindings; + + pub mod errors { use crate as dash_sdk_bindings; } + + pub mod accessors { use crate as dash_sdk_bindings; } + + #[cfg(feature = "factories")] + pub mod identity_factory { + use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + + #[cfg(feature = "client")] + pub mod identity_facade { + use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + + pub mod identity_nonce { use crate as dash_sdk_bindings; } + + pub mod methods { + use crate as dash_sdk_bindings; + + pub mod create_basic_identity { use crate as dash_sdk_bindings; } + } + + pub mod v0 { + use crate as dash_sdk_bindings; + + #[doc = "FFI-representation of the [`IdentityV0`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_identity_v0_IdentityV0 { + pub id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, + pub public_keys: *mut crate::fermented::generics::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey, + pub balance: u64, + pub revision: *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision, + } + + impl ferment::FFIConversionFrom for dpp_identity_v0_IdentityV0 { + unsafe fn ffi_from_const(ffi: *const dpp_identity_v0_IdentityV0) -> dpp::identity::v0::IdentityV0 { + let ffi_ref = &*ffi; + dpp::identity::v0::IdentityV0 { id: >::ffi_from(ffi_ref.id), public_keys: >>::ffi_from(ffi_ref.public_keys), balance: ffi_ref.balance, revision: >::ffi_from(ffi_ref.revision) } + } + } + + impl ferment::FFIConversionTo for dpp_identity_v0_IdentityV0 { unsafe fn ffi_to_const(obj: dpp::identity::v0::IdentityV0) -> *const dpp_identity_v0_IdentityV0 { ferment::boxed(dpp_identity_v0_IdentityV0 { id: >::ffi_to(obj.id), public_keys: >>::ffi_to(obj.public_keys), balance: obj.balance, revision: >::ffi_to(obj.revision) }) } } + + impl Drop for dpp_identity_v0_IdentityV0 { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.id); + ferment::unbox_any(ffi_ref.public_keys); + ; + ferment::unbox_any(ffi_ref.revision); + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_ctor<>(id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, public_keys: *mut crate::fermented::generics::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey, balance: u64, revision: *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision) -> *mut dpp_identity_v0_IdentityV0 { ferment::boxed(dpp_identity_v0_IdentityV0 { id, public_keys, balance, revision }) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_destroy<>(ffi: *mut dpp_identity_v0_IdentityV0) { ferment::unbox_any(ffi); } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_get_id<>(obj: *const dpp_identity_v0_IdentityV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).id } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_get_public_keys<>(obj: *const dpp_identity_v0_IdentityV0) -> *mut crate::fermented::generics::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { (*obj).public_keys } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_get_balance<>(obj: *const dpp_identity_v0_IdentityV0) -> u64 { (*obj).balance } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_get_revision<>(obj: *const dpp_identity_v0_IdentityV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision { (*obj).revision } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_set_id<>(obj: *const dpp_identity_v0_IdentityV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).id } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_set_public_keys<>(obj: *const dpp_identity_v0_IdentityV0) -> *mut crate::fermented::generics::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { (*obj).public_keys } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_set_balance<>(obj: *const dpp_identity_v0_IdentityV0) -> u64 { (*obj).balance } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_v0_IdentityV0_set_revision<>(obj: *const dpp_identity_v0_IdentityV0) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision { (*obj).revision } + + pub mod conversion { + use crate as dash_sdk_bindings; + + #[cfg(feature = "value-conversion")] + pub mod platform_value { + use crate as dash_sdk_bindings; + } + + #[cfg(feature = "json-conversion")] + pub mod json { + use crate as dash_sdk_bindings; + } + } + } + + pub mod identity { + use crate as dash_sdk_bindings; + + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`Identity`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum dpp_identity_identity_Identity { V0(*mut crate::fermented::types::dpp::identity::v0::dpp_identity_v0_IdentityV0) } + + impl ferment::FFIConversionFrom for dpp_identity_identity_Identity { + unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_Identity) -> dpp::identity::identity::Identity { + let ffi_ref = &*ffi; + match ffi_ref { dpp_identity_identity_Identity::V0(o_0) => dpp::identity::identity::Identity::V0(>::ffi_from(*o_0)) } + } + } + + impl ferment::FFIConversionTo for dpp_identity_identity_Identity { + unsafe fn ffi_to_const(obj: dpp::identity::identity::Identity) -> *const dpp_identity_identity_Identity { + ferment::boxed(match obj { + dpp::identity::identity::Identity::V0(o_0) => dpp_identity_identity_Identity::V0(>::ffi_to(o_0)), + _ => unreachable!("This is unreachable") + }) + } + } + + impl Drop for dpp_identity_identity_Identity { + fn drop(&mut self) { + unsafe { + match self { + dpp_identity_identity_Identity::V0(o_0) => { ferment::unbox_any(*o_0); } + _ => unreachable!("This is unreachable") + }; + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_Identity_V0_ctor(o_o_0: *mut crate::fermented::types::dpp::identity::v0::dpp_identity_v0_IdentityV0) -> *mut dpp_identity_identity_Identity { ferment::boxed(dpp_identity_identity_Identity::V0(o_o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_Identity_destroy<>(ffi: *mut dpp_identity_identity_Identity) { ferment::unbox_any(ffi); } + } + + pub mod conversion { + use crate as dash_sdk_bindings; + + #[cfg(feature = "identity-cbor-conversion")] + pub mod cbor { + use crate as dash_sdk_bindings; + } + + #[cfg(feature = "json-conversion")] + pub mod json { + use crate as dash_sdk_bindings; + } + + #[cfg(feature = "value-conversion")] + pub mod platform_value { + use crate as dash_sdk_bindings; + } + } + + pub mod core_script { + use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + + pub mod credits_converter { use crate as dash_sdk_bindings; } + + pub mod fields { use crate as dash_sdk_bindings; } + + pub mod state_transition { + use crate as dash_sdk_bindings; + + pub mod asset_lock_proof { + use crate as dash_sdk_bindings; + + pub mod chain { + use crate as dash_sdk_bindings; + + pub mod chain_asset_lock_proof { use crate as dash_sdk_bindings; } + } + + pub mod instant { + use crate as dash_sdk_bindings; + + pub mod methods { + use crate as dash_sdk_bindings; + + pub mod validate_structure { use crate as dash_sdk_bindings; } + } + + pub mod instant_asset_lock_proof { use crate as dash_sdk_bindings; } + } + + pub mod validate_asset_lock_transaction_structure { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } + } + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + } + + pub mod identity_public_key { + use crate as dash_sdk_bindings; + + pub mod v0 { + use crate as dash_sdk_bindings; + + #[doc = "FFI-representation of the [`IdentityPublicKeyV0`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { + pub id: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID, + pub purpose: *mut crate::fermented::types::dpp::identity::identity_public_key::purpose::dpp_identity_identity_public_key_purpose_Purpose, + pub security_level: *mut crate::fermented::types::dpp::identity::identity_public_key::security_level::dpp_identity_identity_public_key_security_level_SecurityLevel, + pub contract_bounds: *mut crate::fermented::types::dpp::identity::identity_public_key::contract_bounds::dpp_identity_identity_public_key_contract_bounds_ContractBounds, + pub key_type: *mut crate::fermented::types::dpp::identity::identity_public_key::key_type::dpp_identity_identity_public_key_key_type_KeyType, + pub read_only: bool, + pub data: *mut crate::fermented::types::platform_value::types::binary_data::platform_value_types_binary_data_BinaryData, + pub disabled_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, + } + + impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { + unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> dpp::identity::identity_public_key::v0::IdentityPublicKeyV0 { + let ffi_ref = &*ffi; + dpp::identity::identity_public_key::v0::IdentityPublicKeyV0 { + id: >::ffi_from(ffi_ref.id), + purpose: >::ffi_from(ffi_ref.purpose), + security_level: >::ffi_from(ffi_ref.security_level), + contract_bounds: >::ffi_from_opt(ffi_ref.contract_bounds), + key_type: >::ffi_from(ffi_ref.key_type), + read_only: ffi_ref.read_only, + data: >::ffi_from(ffi_ref.data), + disabled_at: >::ffi_from_opt(ffi_ref.disabled_at), + } + } + } + + impl ferment::FFIConversionTo for dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { + unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::v0::IdentityPublicKeyV0) -> *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { + ferment::boxed(dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { + id: >::ffi_to(obj.id), + purpose: >::ffi_to(obj.purpose), + security_level: >::ffi_to(obj.security_level), + contract_bounds: >::ffi_to_opt(obj.contract_bounds), + key_type: >::ffi_to(obj.key_type), + read_only: obj.read_only, + data: >::ffi_to(obj.data), + disabled_at: >::ffi_to_opt(obj.disabled_at), + }) + } + } + + impl Drop for dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.id); + ferment::unbox_any(ffi_ref.purpose); + ferment::unbox_any(ffi_ref.security_level); + ferment::unbox_any_opt(ffi_ref.contract_bounds); + ferment::unbox_any(ffi_ref.key_type); + ; + ferment::unbox_any(ffi_ref.data); + ferment::unbox_any_opt(ffi_ref.disabled_at); + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_ctor<>(id: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID, purpose: *mut crate::fermented::types::dpp::identity::identity_public_key::purpose::dpp_identity_identity_public_key_purpose_Purpose, security_level: *mut crate::fermented::types::dpp::identity::identity_public_key::security_level::dpp_identity_identity_public_key_security_level_SecurityLevel, contract_bounds: *mut crate::fermented::types::dpp::identity::identity_public_key::contract_bounds::dpp_identity_identity_public_key_contract_bounds_ContractBounds, key_type: *mut crate::fermented::types::dpp::identity::identity_public_key::key_type::dpp_identity_identity_public_key_key_type_KeyType, read_only: bool, data: *mut crate::fermented::types::platform_value::types::binary_data::platform_value_types_binary_data_BinaryData, disabled_at: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis) -> *mut dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { ferment::boxed(dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { id, purpose, security_level, contract_bounds, key_type, read_only, data, disabled_at }) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_destroy<>(ffi: *mut dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) { ferment::unbox_any(ffi); } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_id<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID { (*obj).id } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_purpose<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::purpose::dpp_identity_identity_public_key_purpose_Purpose { (*obj).purpose } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_security_level<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::security_level::dpp_identity_identity_public_key_security_level_SecurityLevel { (*obj).security_level } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_contract_bounds<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::contract_bounds::dpp_identity_identity_public_key_contract_bounds_ContractBounds { (*obj).contract_bounds } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_key_type<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::key_type::dpp_identity_identity_public_key_key_type_KeyType { (*obj).key_type } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_read_only<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> bool { (*obj).read_only } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_data<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::platform_value::types::binary_data::platform_value_types_binary_data_BinaryData { (*obj).data } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_get_disabled_at<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).disabled_at } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_id<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID { (*obj).id } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_purpose<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::purpose::dpp_identity_identity_public_key_purpose_Purpose { (*obj).purpose } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_security_level<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::security_level::dpp_identity_identity_public_key_security_level_SecurityLevel { (*obj).security_level } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_contract_bounds<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::contract_bounds::dpp_identity_identity_public_key_contract_bounds_ContractBounds { (*obj).contract_bounds } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_key_type<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::key_type::dpp_identity_identity_public_key_key_type_KeyType { (*obj).key_type } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_read_only<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> bool { (*obj).read_only } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_data<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::platform_value::types::binary_data::platform_value_types_binary_data_BinaryData { (*obj).data } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_v0_IdentityPublicKeyV0_set_disabled_at<>(obj: *const dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { (*obj).disabled_at } + + pub mod methods { use crate as dash_sdk_bindings; } + + pub mod conversion { + use crate as dash_sdk_bindings; + + #[cfg(feature = "value-conversion")] + pub mod platform_value { + use crate as dash_sdk_bindings; + } + + #[cfg(feature = "json-conversion")] + pub mod json { + use crate as dash_sdk_bindings; + } + } + } + + #[doc = "FFI-representation of the [`TimestampMillis`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_identity_identity_public_key_TimestampMillis(u64); + + impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_TimestampMillis { + unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_TimestampMillis) -> dpp::identity::identity_public_key::TimestampMillis { + let ffi_ref = &*ffi; + ffi_ref.0 + } + } + + impl ferment::FFIConversionTo for dpp_identity_identity_public_key_TimestampMillis { unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::TimestampMillis) -> *const dpp_identity_identity_public_key_TimestampMillis { ferment::boxed(dpp_identity_identity_public_key_TimestampMillis(obj)) } } + + impl Drop for dpp_identity_identity_public_key_TimestampMillis { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ; + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_TimestampMillis_ctor<>(o_0: u64) -> *mut dpp_identity_identity_public_key_TimestampMillis { ferment::boxed(dpp_identity_identity_public_key_TimestampMillis(o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_TimestampMillis_destroy<>(ffi: *mut dpp_identity_identity_public_key_TimestampMillis) { ferment::unbox_any(ffi); } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_TimestampMillis_get_0<>(obj: *const dpp_identity_identity_public_key_TimestampMillis) -> u64 { (*obj).0 } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_TimestampMillis_set_0<>(obj: *const dpp_identity_identity_public_key_TimestampMillis) -> u64 { (*obj).0 } + + pub mod accessors { use crate as dash_sdk_bindings; } + + pub mod security_level { + use crate as dash_sdk_bindings; + + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`SecurityLevel`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum dpp_identity_identity_public_key_security_level_SecurityLevel { MASTER = 0, CRITICAL = 1, HIGH = 2, MEDIUM = 3 } + + impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_security_level_SecurityLevel { + unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_security_level_SecurityLevel) -> dpp::identity::identity_public_key::security_level::SecurityLevel { + let ffi_ref = &*ffi; + match ffi_ref { + dpp_identity_identity_public_key_security_level_SecurityLevel::MASTER => dpp::identity::identity_public_key::security_level::SecurityLevel::MASTER, + dpp_identity_identity_public_key_security_level_SecurityLevel::CRITICAL => dpp::identity::identity_public_key::security_level::SecurityLevel::CRITICAL, + dpp_identity_identity_public_key_security_level_SecurityLevel::HIGH => dpp::identity::identity_public_key::security_level::SecurityLevel::HIGH, + dpp_identity_identity_public_key_security_level_SecurityLevel::MEDIUM => dpp::identity::identity_public_key::security_level::SecurityLevel::MEDIUM + } + } + } + + impl ferment::FFIConversionTo for dpp_identity_identity_public_key_security_level_SecurityLevel { + unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::security_level::SecurityLevel) -> *const dpp_identity_identity_public_key_security_level_SecurityLevel { + ferment::boxed(match obj { + dpp::identity::identity_public_key::security_level::SecurityLevel::MASTER => dpp_identity_identity_public_key_security_level_SecurityLevel::MASTER, + dpp::identity::identity_public_key::security_level::SecurityLevel::CRITICAL => dpp_identity_identity_public_key_security_level_SecurityLevel::CRITICAL, + dpp::identity::identity_public_key::security_level::SecurityLevel::HIGH => dpp_identity_identity_public_key_security_level_SecurityLevel::HIGH, + dpp::identity::identity_public_key::security_level::SecurityLevel::MEDIUM => dpp_identity_identity_public_key_security_level_SecurityLevel::MEDIUM, + _ => unreachable!("This is unreachable") + }) + } + } + + impl Drop for dpp_identity_identity_public_key_security_level_SecurityLevel { + fn drop(&mut self) { + unsafe { + match self { + dpp_identity_identity_public_key_security_level_SecurityLevel::MASTER => {} + dpp_identity_identity_public_key_security_level_SecurityLevel::CRITICAL => {} + dpp_identity_identity_public_key_security_level_SecurityLevel::HIGH => {} + dpp_identity_identity_public_key_security_level_SecurityLevel::MEDIUM => {} + _ => unreachable!("This is unreachable") + }; + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_security_level_SecurityLevel_MASTER_ctor() -> *mut dpp_identity_identity_public_key_security_level_SecurityLevel { ferment::boxed(dpp_identity_identity_public_key_security_level_SecurityLevel::MASTER {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_security_level_SecurityLevel_CRITICAL_ctor() -> *mut dpp_identity_identity_public_key_security_level_SecurityLevel { ferment::boxed(dpp_identity_identity_public_key_security_level_SecurityLevel::CRITICAL {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_security_level_SecurityLevel_HIGH_ctor() -> *mut dpp_identity_identity_public_key_security_level_SecurityLevel { ferment::boxed(dpp_identity_identity_public_key_security_level_SecurityLevel::HIGH {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_security_level_SecurityLevel_MEDIUM_ctor() -> *mut dpp_identity_identity_public_key_security_level_SecurityLevel { ferment::boxed(dpp_identity_identity_public_key_security_level_SecurityLevel::MEDIUM {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_security_level_SecurityLevel_destroy<>(ffi: *mut dpp_identity_identity_public_key_security_level_SecurityLevel) { ferment::unbox_any(ffi); } + } + + pub mod methods { + use crate as dash_sdk_bindings; + + pub mod hash { use crate as dash_sdk_bindings; } + } + + pub mod key_type { + use crate as dash_sdk_bindings; + + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`KeyType`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum dpp_identity_identity_public_key_key_type_KeyType { ECDSA_SECP256K1 = 0, BLS12_381 = 1, ECDSA_HASH160 = 2, BIP13_SCRIPT_HASH = 3, EDDSA_25519_HASH160 = 4 } + + impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_key_type_KeyType { + unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_key_type_KeyType) -> dpp::identity::identity_public_key::key_type::KeyType { + let ffi_ref = &*ffi; + match ffi_ref { + dpp_identity_identity_public_key_key_type_KeyType::ECDSA_SECP256K1 => dpp::identity::identity_public_key::key_type::KeyType::ECDSA_SECP256K1, + dpp_identity_identity_public_key_key_type_KeyType::BLS12_381 => dpp::identity::identity_public_key::key_type::KeyType::BLS12_381, + dpp_identity_identity_public_key_key_type_KeyType::ECDSA_HASH160 => dpp::identity::identity_public_key::key_type::KeyType::ECDSA_HASH160, + dpp_identity_identity_public_key_key_type_KeyType::BIP13_SCRIPT_HASH => dpp::identity::identity_public_key::key_type::KeyType::BIP13_SCRIPT_HASH, + dpp_identity_identity_public_key_key_type_KeyType::EDDSA_25519_HASH160 => dpp::identity::identity_public_key::key_type::KeyType::EDDSA_25519_HASH160 + } + } + } + + impl ferment::FFIConversionTo for dpp_identity_identity_public_key_key_type_KeyType { + unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::key_type::KeyType) -> *const dpp_identity_identity_public_key_key_type_KeyType { + ferment::boxed(match obj { + dpp::identity::identity_public_key::key_type::KeyType::ECDSA_SECP256K1 => dpp_identity_identity_public_key_key_type_KeyType::ECDSA_SECP256K1, + dpp::identity::identity_public_key::key_type::KeyType::BLS12_381 => dpp_identity_identity_public_key_key_type_KeyType::BLS12_381, + dpp::identity::identity_public_key::key_type::KeyType::ECDSA_HASH160 => dpp_identity_identity_public_key_key_type_KeyType::ECDSA_HASH160, + dpp::identity::identity_public_key::key_type::KeyType::BIP13_SCRIPT_HASH => dpp_identity_identity_public_key_key_type_KeyType::BIP13_SCRIPT_HASH, + dpp::identity::identity_public_key::key_type::KeyType::EDDSA_25519_HASH160 => dpp_identity_identity_public_key_key_type_KeyType::EDDSA_25519_HASH160, + _ => unreachable!("This is unreachable") + }) + } + } + + impl Drop for dpp_identity_identity_public_key_key_type_KeyType { + fn drop(&mut self) { + unsafe { + match self { + dpp_identity_identity_public_key_key_type_KeyType::ECDSA_SECP256K1 => {} + dpp_identity_identity_public_key_key_type_KeyType::BLS12_381 => {} + dpp_identity_identity_public_key_key_type_KeyType::ECDSA_HASH160 => {} + dpp_identity_identity_public_key_key_type_KeyType::BIP13_SCRIPT_HASH => {} + dpp_identity_identity_public_key_key_type_KeyType::EDDSA_25519_HASH160 => {} + _ => unreachable!("This is unreachable") + }; + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_key_type_KeyType_ECDSA_SECP256K1_ctor() -> *mut dpp_identity_identity_public_key_key_type_KeyType { ferment::boxed(dpp_identity_identity_public_key_key_type_KeyType::ECDSA_SECP256K1 {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_key_type_KeyType_BLS12_381_ctor() -> *mut dpp_identity_identity_public_key_key_type_KeyType { ferment::boxed(dpp_identity_identity_public_key_key_type_KeyType::BLS12_381 {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_key_type_KeyType_ECDSA_HASH160_ctor() -> *mut dpp_identity_identity_public_key_key_type_KeyType { ferment::boxed(dpp_identity_identity_public_key_key_type_KeyType::ECDSA_HASH160 {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_key_type_KeyType_BIP13_SCRIPT_HASH_ctor() -> *mut dpp_identity_identity_public_key_key_type_KeyType { ferment::boxed(dpp_identity_identity_public_key_key_type_KeyType::BIP13_SCRIPT_HASH {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_key_type_KeyType_EDDSA_25519_HASH160_ctor() -> *mut dpp_identity_identity_public_key_key_type_KeyType { ferment::boxed(dpp_identity_identity_public_key_key_type_KeyType::EDDSA_25519_HASH160 {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_key_type_KeyType_destroy<>(ffi: *mut dpp_identity_identity_public_key_key_type_KeyType) { ferment::unbox_any(ffi); } + } + + pub mod contract_bounds { + use crate as dash_sdk_bindings; + + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`ContractBounds`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum dpp_identity_identity_public_key_contract_bounds_ContractBounds { SingleContract { id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier }, SingleContractDocumentType { id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type_name: *mut std::os::raw::c_char } } + + impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_contract_bounds_ContractBounds { + unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_contract_bounds_ContractBounds) -> dpp::identity::identity_public_key::contract_bounds::ContractBounds { + let ffi_ref = &*ffi; + match ffi_ref { + dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContract { id } => dpp::identity::identity_public_key::contract_bounds::ContractBounds::SingleContract { id: >::ffi_from(*id) }, + dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContractDocumentType { id, document_type_name } => dpp::identity::identity_public_key::contract_bounds::ContractBounds::SingleContractDocumentType { id: >::ffi_from(*id), document_type_name: >::ffi_from(*document_type_name) } + } + } + } + + impl ferment::FFIConversionTo for dpp_identity_identity_public_key_contract_bounds_ContractBounds { + unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::contract_bounds::ContractBounds) -> *const dpp_identity_identity_public_key_contract_bounds_ContractBounds { + ferment::boxed(match obj { + dpp::identity::identity_public_key::contract_bounds::ContractBounds::SingleContract { id } => dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContract { id: >::ffi_to(id) }, + dpp::identity::identity_public_key::contract_bounds::ContractBounds::SingleContractDocumentType { id, document_type_name } => dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContractDocumentType { id: >::ffi_to(id), document_type_name: >::ffi_to(document_type_name) }, + _ => unreachable!("This is unreachable") + }) + } + } + + impl Drop for dpp_identity_identity_public_key_contract_bounds_ContractBounds { + fn drop(&mut self) { + unsafe { + match self { + dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContract { id } => { ferment::unbox_any(*id); } + dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContractDocumentType { id, document_type_name } => { + ferment::unbox_any(*id); + ; + ferment::unbox_string(*document_type_name); + } + _ => unreachable!("This is unreachable") + }; + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_contract_bounds_ContractBounds_SingleContract_ctor(id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut dpp_identity_identity_public_key_contract_bounds_ContractBounds { ferment::boxed(dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContract { id }) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_contract_bounds_ContractBounds_SingleContractDocumentType_ctor(id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type_name: *mut std::os::raw::c_char) -> *mut dpp_identity_identity_public_key_contract_bounds_ContractBounds { ferment::boxed(dpp_identity_identity_public_key_contract_bounds_ContractBounds::SingleContractDocumentType { id, document_type_name }) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_contract_bounds_ContractBounds_destroy<>(ffi: *mut dpp_identity_identity_public_key_contract_bounds_ContractBounds) { ferment::unbox_any(ffi); } + } + + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`IdentityPublicKey`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum dpp_identity_identity_public_key_IdentityPublicKey { V0(*mut crate::fermented::types::dpp::identity::identity_public_key::v0::dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) } + + impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_IdentityPublicKey { + unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_IdentityPublicKey) -> dpp::identity::identity_public_key::IdentityPublicKey { + let ffi_ref = &*ffi; + match ffi_ref { dpp_identity_identity_public_key_IdentityPublicKey::V0(o_0) => dpp::identity::identity_public_key::IdentityPublicKey::V0(>::ffi_from(*o_0)) } + } + } + + impl ferment::FFIConversionTo for dpp_identity_identity_public_key_IdentityPublicKey { + unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::IdentityPublicKey) -> *const dpp_identity_identity_public_key_IdentityPublicKey { + ferment::boxed(match obj { + dpp::identity::identity_public_key::IdentityPublicKey::V0(o_0) => dpp_identity_identity_public_key_IdentityPublicKey::V0(>::ffi_to(o_0)), + _ => unreachable!("This is unreachable") + }) + } + } + + impl Drop for dpp_identity_identity_public_key_IdentityPublicKey { + fn drop(&mut self) { + unsafe { + match self { + dpp_identity_identity_public_key_IdentityPublicKey::V0(o_0) => { ferment::unbox_any(*o_0); } + _ => unreachable!("This is unreachable") + }; + } + } + } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod ordering { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_IdentityPublicKey_V0_ctor(o_o_0: *mut crate::fermented::types::dpp::identity::identity_public_key::v0::dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut dpp_identity_identity_public_key_IdentityPublicKey { ferment::boxed(dpp_identity_identity_public_key_IdentityPublicKey::V0(o_o_0)) } - #[doc = "FFI-representation of the [`OrderClause`]"] + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_IdentityPublicKey_destroy<>(ffi: *mut dpp_identity_identity_public_key_IdentityPublicKey) { ferment::unbox_any(ffi); } + + pub mod conversion { + use crate as dash_sdk_bindings; + + #[cfg(feature = "value-conversion")] + pub mod platform_value { + use crate as dash_sdk_bindings; + } + + #[cfg(feature = "json-conversion")] + pub mod json { + use crate as dash_sdk_bindings; + } + } + + #[doc = "FFI-representation of the [`KeyCount`]"] #[repr(C)] #[derive(Clone)] - pub struct drive_query_ordering_OrderClause { - pub field: *mut std::os::raw::c_char, - pub ascending: bool, - } + pub struct dpp_identity_identity_public_key_KeyCount(*mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID); - impl ferment::FFIConversionFrom for drive_query_ordering_OrderClause { - unsafe fn ffi_from_const(ffi: *const drive_query_ordering_OrderClause) -> drive::query::ordering::OrderClause { + impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_KeyCount { + unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_KeyCount) -> dpp::identity::identity_public_key::KeyCount { let ffi_ref = &*ffi; - drive::query::ordering::OrderClause { field: >::ffi_from(ffi_ref.field), ascending: ffi_ref.ascending } + >::ffi_from(ffi_ref.0) } } - impl ferment::FFIConversionTo for drive_query_ordering_OrderClause { unsafe fn ffi_to_const(obj: drive::query::ordering::OrderClause) -> *const drive_query_ordering_OrderClause { ferment::boxed(drive_query_ordering_OrderClause { field: >::ffi_to(obj.field), ascending: obj.ascending }) } } + impl ferment::FFIConversionTo for dpp_identity_identity_public_key_KeyCount { unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::KeyCount) -> *const dpp_identity_identity_public_key_KeyCount { ferment::boxed(dpp_identity_identity_public_key_KeyCount(>::ffi_to(obj))) } } - impl Drop for drive_query_ordering_OrderClause { + impl Drop for dpp_identity_identity_public_key_KeyCount { fn drop(&mut self) { unsafe { let ffi_ref = self; - ferment::unbox_string(ffi_ref.field); - ; + ferment::unbox_any(ffi_ref.0); } } } #[no_mangle] - pub unsafe extern "C" fn drive_query_ordering_OrderClause_ctor<>(field: *mut std::os::raw::c_char, ascending: bool) -> *mut drive_query_ordering_OrderClause { ferment::boxed(drive_query_ordering_OrderClause { field, ascending }) } + pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyCount_ctor<>(o_0: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID) -> *mut dpp_identity_identity_public_key_KeyCount { ferment::boxed(dpp_identity_identity_public_key_KeyCount(o_0)) } #[no_mangle] - pub unsafe extern "C" fn drive_query_ordering_OrderClause_destroy<>(ffi: *mut drive_query_ordering_OrderClause) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyCount_destroy<>(ffi: *mut dpp_identity_identity_public_key_KeyCount) { ferment::unbox_any(ffi); } #[no_mangle] - pub unsafe extern "C" fn drive_query_ordering_OrderClause_get_field<>(obj: *const drive_query_ordering_OrderClause) -> *mut std::os::raw::c_char { (*obj).field } + pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyCount_get_0<>(obj: *const dpp_identity_identity_public_key_KeyCount) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID { (*obj).0 } #[no_mangle] - pub unsafe extern "C" fn drive_query_ordering_OrderClause_get_ascending<>(obj: *const drive_query_ordering_OrderClause) -> bool { (*obj).ascending } + pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyCount_set_0<>(obj: *const dpp_identity_identity_public_key_KeyCount) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID { (*obj).0 } + + pub mod purpose { + use crate as dash_sdk_bindings; + + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`Purpose`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum dpp_identity_identity_public_key_purpose_Purpose { AUTHENTICATION = 0, ENCRYPTION = 1, DECRYPTION = 2, TRANSFER = 3, SYSTEM = 4, VOTING = 5, OWNER = 6 } + + impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_purpose_Purpose { + unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_purpose_Purpose) -> dpp::identity::identity_public_key::purpose::Purpose { + let ffi_ref = &*ffi; + match ffi_ref { + dpp_identity_identity_public_key_purpose_Purpose::AUTHENTICATION => dpp::identity::identity_public_key::purpose::Purpose::AUTHENTICATION, + dpp_identity_identity_public_key_purpose_Purpose::ENCRYPTION => dpp::identity::identity_public_key::purpose::Purpose::ENCRYPTION, + dpp_identity_identity_public_key_purpose_Purpose::DECRYPTION => dpp::identity::identity_public_key::purpose::Purpose::DECRYPTION, + dpp_identity_identity_public_key_purpose_Purpose::TRANSFER => dpp::identity::identity_public_key::purpose::Purpose::TRANSFER, + dpp_identity_identity_public_key_purpose_Purpose::SYSTEM => dpp::identity::identity_public_key::purpose::Purpose::SYSTEM, + dpp_identity_identity_public_key_purpose_Purpose::VOTING => dpp::identity::identity_public_key::purpose::Purpose::VOTING, + dpp_identity_identity_public_key_purpose_Purpose::OWNER => dpp::identity::identity_public_key::purpose::Purpose::OWNER + } + } + } + + impl ferment::FFIConversionTo for dpp_identity_identity_public_key_purpose_Purpose { + unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::purpose::Purpose) -> *const dpp_identity_identity_public_key_purpose_Purpose { + ferment::boxed(match obj { + dpp::identity::identity_public_key::purpose::Purpose::AUTHENTICATION => dpp_identity_identity_public_key_purpose_Purpose::AUTHENTICATION, + dpp::identity::identity_public_key::purpose::Purpose::ENCRYPTION => dpp_identity_identity_public_key_purpose_Purpose::ENCRYPTION, + dpp::identity::identity_public_key::purpose::Purpose::DECRYPTION => dpp_identity_identity_public_key_purpose_Purpose::DECRYPTION, + dpp::identity::identity_public_key::purpose::Purpose::TRANSFER => dpp_identity_identity_public_key_purpose_Purpose::TRANSFER, + dpp::identity::identity_public_key::purpose::Purpose::SYSTEM => dpp_identity_identity_public_key_purpose_Purpose::SYSTEM, + dpp::identity::identity_public_key::purpose::Purpose::VOTING => dpp_identity_identity_public_key_purpose_Purpose::VOTING, + dpp::identity::identity_public_key::purpose::Purpose::OWNER => dpp_identity_identity_public_key_purpose_Purpose::OWNER, + _ => unreachable!("This is unreachable") + }) + } + } + + impl Drop for dpp_identity_identity_public_key_purpose_Purpose { + fn drop(&mut self) { + unsafe { + match self { + dpp_identity_identity_public_key_purpose_Purpose::AUTHENTICATION => {} + dpp_identity_identity_public_key_purpose_Purpose::ENCRYPTION => {} + dpp_identity_identity_public_key_purpose_Purpose::DECRYPTION => {} + dpp_identity_identity_public_key_purpose_Purpose::TRANSFER => {} + dpp_identity_identity_public_key_purpose_Purpose::SYSTEM => {} + dpp_identity_identity_public_key_purpose_Purpose::VOTING => {} + dpp_identity_identity_public_key_purpose_Purpose::OWNER => {} + _ => unreachable!("This is unreachable") + }; + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_AUTHENTICATION_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::AUTHENTICATION {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_ENCRYPTION_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::ENCRYPTION {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_DECRYPTION_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::DECRYPTION {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_TRANSFER_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::TRANSFER {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_SYSTEM_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::SYSTEM {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_VOTING_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::VOTING {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_OWNER_ctor() -> *mut dpp_identity_identity_public_key_purpose_Purpose { ferment::boxed(dpp_identity_identity_public_key_purpose_Purpose::OWNER {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_purpose_Purpose_destroy<>(ffi: *mut dpp_identity_identity_public_key_purpose_Purpose) { ferment::unbox_any(ffi); } + } + + #[doc = "FFI-representation of the [`KeyID`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_identity_identity_public_key_KeyID(u32); + + impl ferment::FFIConversionFrom for dpp_identity_identity_public_key_KeyID { + unsafe fn ffi_from_const(ffi: *const dpp_identity_identity_public_key_KeyID) -> dpp::identity::identity_public_key::KeyID { + let ffi_ref = &*ffi; + ffi_ref.0 + } + } + + impl ferment::FFIConversionTo for dpp_identity_identity_public_key_KeyID { unsafe fn ffi_to_const(obj: dpp::identity::identity_public_key::KeyID) -> *const dpp_identity_identity_public_key_KeyID { ferment::boxed(dpp_identity_identity_public_key_KeyID(obj)) } } + + impl Drop for dpp_identity_identity_public_key_KeyID { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ; + } + } + } #[no_mangle] - pub unsafe extern "C" fn drive_query_ordering_OrderClause_set_field<>(obj: *const drive_query_ordering_OrderClause) -> *mut std::os::raw::c_char { (*obj).field } + pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyID_ctor<>(o_0: u32) -> *mut dpp_identity_identity_public_key_KeyID { ferment::boxed(dpp_identity_identity_public_key_KeyID(o_0)) } #[no_mangle] - pub unsafe extern "C" fn drive_query_ordering_OrderClause_set_ascending<>(obj: *const drive_query_ordering_OrderClause) -> bool { (*obj).ascending } + pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyID_destroy<>(ffi: *mut dpp_identity_identity_public_key_KeyID) { ferment::unbox_any(ffi); } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyID_get_0<>(obj: *const dpp_identity_identity_public_key_KeyID) -> u32 { (*obj).0 } + + #[no_mangle] + pub unsafe extern "C" fn dpp_identity_identity_public_key_KeyID_set_0<>(obj: *const dpp_identity_identity_public_key_KeyID) -> u32 { (*obj).0 } + } + } + + pub mod address_funds { + use crate as dash_sdk_bindings; + + pub mod platform_address { use crate as dash_sdk_bindings; } + + pub mod witness { use crate as dash_sdk_bindings; } + + pub mod witness_verification_operations { use crate as dash_sdk_bindings; } + + #[cfg(feature = "json-conversion")] + pub mod serde_helpers { + use crate as dash_sdk_bindings; + + pub mod address_output_map_optional_amount { use crate as dash_sdk_bindings; } + + pub mod address_input_map { use crate as dash_sdk_bindings; } + + pub mod address_output_singular { use crate as dash_sdk_bindings; } + + pub mod address_output_map_required_amount { use crate as dash_sdk_bindings; } + } + + #[cfg(feature = "shielded-client")] + pub mod orchard_address { + use crate as dash_sdk_bindings; + } + + pub mod fee_strategy { + use crate as dash_sdk_bindings; + + pub mod deduct_fee_from_inputs_and_outputs { use crate as dash_sdk_bindings; } + } + } + + pub mod errors { + use crate as dash_sdk_bindings; + + pub mod non_consensus_error { use crate as dash_sdk_bindings; } + + pub mod consensus { + use crate as dash_sdk_bindings; + + pub mod state { + use crate as dash_sdk_bindings; + + pub mod address_funds { use crate as dash_sdk_bindings; } + + pub mod group { use crate as dash_sdk_bindings; } + + pub mod document { use crate as dash_sdk_bindings; } + + pub mod identity { use crate as dash_sdk_bindings; } + + pub mod shielded { use crate as dash_sdk_bindings; } + + pub mod data_contract { use crate as dash_sdk_bindings; } + + pub mod token { use crate as dash_sdk_bindings; } + + pub mod voting { use crate as dash_sdk_bindings; } + + pub mod prefunded_specialized_balances { use crate as dash_sdk_bindings; } + + pub mod data_trigger { use crate as dash_sdk_bindings; } + } + + pub mod fee { use crate as dash_sdk_bindings; } + + pub mod signature { use crate as dash_sdk_bindings; } + + pub mod basic { + use crate as dash_sdk_bindings; + + pub mod identity { use crate as dash_sdk_bindings; } + + pub mod group { use crate as dash_sdk_bindings; } + + pub mod token { use crate as dash_sdk_bindings; } + + pub mod data_contract { use crate as dash_sdk_bindings; } + + pub mod unsupported_protocol_version_error { use crate as dash_sdk_bindings; } + + pub mod json_schema_error { use crate as dash_sdk_bindings; } + + pub mod unsupported_version_error { use crate as dash_sdk_bindings; } + + pub mod decode { use crate as dash_sdk_bindings; } + + pub mod state_transition { use crate as dash_sdk_bindings; } + + pub mod document { use crate as dash_sdk_bindings; } + } } + } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod conditions { + pub mod data_contract { + use crate as dash_sdk_bindings; + + #[cfg(feature = "factories")] + pub mod factory { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`WhereOperator`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum drive_query_conditions_WhereOperator { Equal, GreaterThan, GreaterThanOrEquals, LessThan, LessThanOrEquals, Between, BetweenExcludeBounds, BetweenExcludeLeft, BetweenExcludeRight, In, StartsWith } + pub mod v0 { use crate as dash_sdk_bindings; } + } - impl ferment::FFIConversionFrom for drive_query_conditions_WhereOperator { - unsafe fn ffi_from_const(ffi: *const drive_query_conditions_WhereOperator) -> drive::query::conditions::WhereOperator { - let ffi_ref = &*ffi; - match ffi_ref { - drive_query_conditions_WhereOperator::Equal => drive::query::conditions::WhereOperator::Equal, - drive_query_conditions_WhereOperator::GreaterThan => drive::query::conditions::WhereOperator::GreaterThan, - drive_query_conditions_WhereOperator::GreaterThanOrEquals => drive::query::conditions::WhereOperator::GreaterThanOrEquals, - drive_query_conditions_WhereOperator::LessThan => drive::query::conditions::WhereOperator::LessThan, - drive_query_conditions_WhereOperator::LessThanOrEquals => drive::query::conditions::WhereOperator::LessThanOrEquals, - drive_query_conditions_WhereOperator::Between => drive::query::conditions::WhereOperator::Between, - drive_query_conditions_WhereOperator::BetweenExcludeBounds => drive::query::conditions::WhereOperator::BetweenExcludeBounds, - drive_query_conditions_WhereOperator::BetweenExcludeLeft => drive::query::conditions::WhereOperator::BetweenExcludeLeft, - drive_query_conditions_WhereOperator::BetweenExcludeRight => drive::query::conditions::WhereOperator::BetweenExcludeRight, - drive_query_conditions_WhereOperator::In => drive::query::conditions::WhereOperator::In, - drive_query_conditions_WhereOperator::StartsWith => drive::query::conditions::WhereOperator::StartsWith - } - } - } + pub mod storage_requirements { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionTo for drive_query_conditions_WhereOperator { - unsafe fn ffi_to_const(obj: drive::query::conditions::WhereOperator) -> *const drive_query_conditions_WhereOperator { - ferment::boxed(match obj { - drive::query::conditions::WhereOperator::Equal => drive_query_conditions_WhereOperator::Equal, - drive::query::conditions::WhereOperator::GreaterThan => drive_query_conditions_WhereOperator::GreaterThan, - drive::query::conditions::WhereOperator::GreaterThanOrEquals => drive_query_conditions_WhereOperator::GreaterThanOrEquals, - drive::query::conditions::WhereOperator::LessThan => drive_query_conditions_WhereOperator::LessThan, - drive::query::conditions::WhereOperator::LessThanOrEquals => drive_query_conditions_WhereOperator::LessThanOrEquals, - drive::query::conditions::WhereOperator::Between => drive_query_conditions_WhereOperator::Between, - drive::query::conditions::WhereOperator::BetweenExcludeBounds => drive_query_conditions_WhereOperator::BetweenExcludeBounds, - drive::query::conditions::WhereOperator::BetweenExcludeLeft => drive_query_conditions_WhereOperator::BetweenExcludeLeft, - drive::query::conditions::WhereOperator::BetweenExcludeRight => drive_query_conditions_WhereOperator::BetweenExcludeRight, - drive::query::conditions::WhereOperator::In => drive_query_conditions_WhereOperator::In, - drive::query::conditions::WhereOperator::StartsWith => drive_query_conditions_WhereOperator::StartsWith, - _ => unreachable!("This is unreachable") - }) - } - } + pub mod document_type { + use crate as dash_sdk_bindings; - impl Drop for drive_query_conditions_WhereOperator { - fn drop(&mut self) { - unsafe { - match self { - drive_query_conditions_WhereOperator::Equal => {} - drive_query_conditions_WhereOperator::GreaterThan => {} - drive_query_conditions_WhereOperator::GreaterThanOrEquals => {} - drive_query_conditions_WhereOperator::LessThan => {} - drive_query_conditions_WhereOperator::LessThanOrEquals => {} - drive_query_conditions_WhereOperator::Between => {} - drive_query_conditions_WhereOperator::BetweenExcludeBounds => {} - drive_query_conditions_WhereOperator::BetweenExcludeLeft => {} - drive_query_conditions_WhereOperator::BetweenExcludeRight => {} - drive_query_conditions_WhereOperator::In => {} - drive_query_conditions_WhereOperator::StartsWith => {} - _ => unreachable!("This is unreachable") - }; - } - } + #[cfg(feature = "random-documents")] + pub mod random_document { + use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereOperator_Equal_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::Equal {}) } + pub mod v2 { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereOperator_GreaterThan_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::GreaterThan {}) } + pub mod accessors { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereOperator_GreaterThanOrEquals_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::GreaterThanOrEquals {}) } + pub mod index_level { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereOperator_LessThan_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::LessThan {}) } + pub mod v0 { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereOperator_LessThanOrEquals_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::LessThanOrEquals {}) } + pub mod property { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereOperator_Between_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::Between {}) } + pub mod array { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereOperator_BetweenExcludeBounds_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::BetweenExcludeBounds {}) } + pub mod methods { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereOperator_BetweenExcludeLeft_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::BetweenExcludeLeft {}) } + #[cfg(feature = "validation")] + pub mod validate_update { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereOperator_BetweenExcludeRight_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::BetweenExcludeRight {}) } + pub mod v0 { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereOperator_In_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::In {}) } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + } + } - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereOperator_StartsWith_ctor() -> *mut drive_query_conditions_WhereOperator { ferment::boxed(drive_query_conditions_WhereOperator::StartsWith {}) } + pub mod class_methods { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereOperator_destroy<>(ffi: *mut drive_query_conditions_WhereOperator) { ferment::unbox_any(ffi); } + pub mod should_use_creator_id { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`WhereClause`]"] - #[repr(C)] - #[derive(Clone)] - pub struct drive_query_conditions_WhereClause { - pub field: *mut std::os::raw::c_char, - pub operator: *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereOperator, - pub value: *mut crate::fermented::types::platform_value::platform_value_Value, - } + pub mod create_document_types_from_document_schemas { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for drive_query_conditions_WhereClause { - unsafe fn ffi_from_const(ffi: *const drive_query_conditions_WhereClause) -> drive::query::conditions::WhereClause { - let ffi_ref = &*ffi; - drive::query::conditions::WhereClause { field: >::ffi_from(ffi_ref.field), operator: >::ffi_from(ffi_ref.operator), value: >::ffi_from(ffi_ref.value) } + pub mod v0 { use crate as dash_sdk_bindings; } } - } - impl ferment::FFIConversionTo for drive_query_conditions_WhereClause { unsafe fn ffi_to_const(obj: drive::query::conditions::WhereClause) -> *const drive_query_conditions_WhereClause { ferment::boxed(drive_query_conditions_WhereClause { field: >::ffi_to(obj.field), operator: >::ffi_to(obj.operator), value: >::ffi_to(obj.value) }) } } + pub mod try_from_schema { + use crate as dash_sdk_bindings; - impl Drop for drive_query_conditions_WhereClause { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_string(ffi_ref.field); - ferment::unbox_any(ffi_ref.operator); - ferment::unbox_any(ffi_ref.value); + pub mod v0 { + use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + + pub mod v1 { + use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } } + + pub mod v2 { use crate as dash_sdk_bindings; } } } - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereClause_ctor<>(field: *mut std::os::raw::c_char, operator: *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereOperator, value: *mut crate::fermented::types::platform_value::platform_value_Value) -> *mut drive_query_conditions_WhereClause { ferment::boxed(drive_query_conditions_WhereClause { field, operator, value }) } + pub mod token_costs { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereClause_destroy<>(ffi: *mut drive_query_conditions_WhereClause) { ferment::unbox_any(ffi); } + pub mod index { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereClause_get_field<>(obj: *const drive_query_conditions_WhereClause) -> *mut std::os::raw::c_char { (*obj).field } + pub mod v1 { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereClause_get_operator<>(obj: *const drive_query_conditions_WhereClause) -> *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereOperator { (*obj).operator } + pub mod schema { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereClause_get_value<>(obj: *const drive_query_conditions_WhereClause) -> *mut crate::fermented::types::platform_value::platform_value_Value { (*obj).value } + #[cfg(feature = "validation")] + pub mod recursive_schema_validator { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereClause_set_field<>(obj: *const drive_query_conditions_WhereClause) -> *mut std::os::raw::c_char { (*obj).field } + pub mod traversal_validator { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereClause_set_operator<>(obj: *const drive_query_conditions_WhereClause) -> *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereOperator { (*obj).operator } + pub mod enrich_with_base_schema { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn drive_query_conditions_WhereClause_set_value<>(obj: *const drive_query_conditions_WhereClause) -> *mut crate::fermented::types::platform_value::platform_value_Value { (*obj).value } - } - } + pub mod allowed_top_level_properties { use crate as dash_sdk_bindings; } - #[cfg(feature = "server")] - pub mod prove { - use crate as dash_sdk_bindings; + #[cfg(feature = "validation")] + pub mod validate_max_depth { + use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod prove_state_transition { - use crate as dash_sdk_bindings; - } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod prove_elements { use crate as dash_sdk_bindings; } + pub mod find_identifier_and_binary_paths { use crate as dash_sdk_bindings; } - pub mod prove_multiple_state_transition_results { use crate as dash_sdk_bindings; } - } + #[cfg(feature = "validation")] + pub mod validate_schema_compatibility { + use crate as dash_sdk_bindings; + } + } + } - #[cfg(feature = "server")] - pub mod fees { - use crate as dash_sdk_bindings; + pub mod accessors { use crate as dash_sdk_bindings; } - pub mod calculate_fee { use crate as dash_sdk_bindings; } - } + pub mod errors { use crate as dash_sdk_bindings; } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod error { - use crate as dash_sdk_bindings; - } + pub mod group { + use crate as dash_sdk_bindings; - #[cfg(feature = "server")] - pub mod cache { - use crate as dash_sdk_bindings; + pub mod methods { use crate as dash_sdk_bindings; } - pub mod data_contract { - use crate as dash_sdk_bindings; + pub mod accessors { use crate as dash_sdk_bindings; } - #[cfg(test)] - pub mod tests { + pub mod v0 { use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } } } - } - #[cfg(any(feature = "server", feature = "verify", feature = "fixtures-and-mocks"))] - pub mod util { - use crate as dash_sdk_bindings; + pub mod methods { + use crate as dash_sdk_bindings; + + pub mod equal_ignoring_time_based_fields { use crate as dash_sdk_bindings; } + + pub mod registration_cost { use crate as dash_sdk_bindings; } + + pub mod schema { use crate as dash_sdk_bindings; } + + #[cfg(feature = "validation")] + pub mod validate_document { + use crate as dash_sdk_bindings; + } - #[cfg(feature = "server")] - pub mod batch { - use crate as dash_sdk_bindings; + #[cfg(feature = "validation")] + pub mod validate_groups { + use crate as dash_sdk_bindings; + } - pub mod drive_op_batch { + #[cfg(feature = "validation")] + pub mod validate_update { use crate as dash_sdk_bindings; - pub mod drive_methods { + pub mod v0 { use crate as dash_sdk_bindings; - pub mod convert_drive_operations_to_grove_operations { use crate as dash_sdk_bindings; } - - pub mod apply_drive_operations { use crate as dash_sdk_bindings; } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } } } } - #[cfg(any(feature = "server", feature = "verify"))] - pub mod object_size_info { + pub mod extra { use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod drive_api_tests { + use crate as dash_sdk_bindings; + } } - #[cfg(feature = "server")] - pub mod grove_operations { + #[cfg(any(feature = "state-transitions", feature = "factories"))] + pub mod created_data_contract { use crate as dash_sdk_bindings; - pub mod batch_remove_raw { use crate as dash_sdk_bindings; } - - pub mod grove_get_path_query_serialized_results { use crate as dash_sdk_bindings; } - - pub mod batch_insert_sum_item_if_not_exists { use crate as dash_sdk_bindings; } - - pub mod batch_insert_if_changed_value { use crate as dash_sdk_bindings; } - - pub mod batch_insert_empty_tree_if_not_exists_check_existing_operations { use crate as dash_sdk_bindings; } - - pub mod grove_get_raw { use crate as dash_sdk_bindings; } - - pub mod batch_insert_empty_sum_tree { use crate as dash_sdk_bindings; } + pub mod fields { use crate as dash_sdk_bindings; } + } - pub mod grove_get_path_query_with_optional { use crate as dash_sdk_bindings; } + pub mod config { + use crate as dash_sdk_bindings; - pub mod batch_insert { use crate as dash_sdk_bindings; } + pub mod methods { + use crate as dash_sdk_bindings; - pub mod grove_get_raw_value_u64_from_encoded_var_vec { use crate as dash_sdk_bindings; } + pub mod validate_update { + use crate as dash_sdk_bindings; - pub mod grove_get_proved_path_query { use crate as dash_sdk_bindings; } + pub mod v1 { use crate as dash_sdk_bindings; } + } + } - pub mod grove_get_big_sum_tree_total_value { use crate as dash_sdk_bindings; } + pub mod fields { use crate as dash_sdk_bindings; } - pub mod grove_insert_if_not_exists { use crate as dash_sdk_bindings; } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } - pub mod batch_insert_sum_item_or_add_to_if_already_exists { use crate as dash_sdk_bindings; } + pub mod change_control_rules { + use crate as dash_sdk_bindings; - pub mod grove_get_sum_tree_total_value { use crate as dash_sdk_bindings; } + pub mod authorized_action_takers { use crate as dash_sdk_bindings; } + } - pub mod grove_batch_operations_costs { use crate as dash_sdk_bindings; } + pub mod v0 { + use crate as dash_sdk_bindings; - pub mod grove_get_raw_optional_item { use crate as dash_sdk_bindings; } + pub mod serialization { use crate as dash_sdk_bindings; } - pub mod batch_insert_empty_tree { use crate as dash_sdk_bindings; } + pub mod conversion { use crate as dash_sdk_bindings; } - pub mod batch_insert_if_not_exists_return_existing_element { use crate as dash_sdk_bindings; } + pub mod data_contract { use crate as dash_sdk_bindings; } - pub mod batch_delete_up_tree_while_empty { use crate as dash_sdk_bindings; } + pub mod methods { + use crate as dash_sdk_bindings; - pub mod grove_delete { use crate as dash_sdk_bindings; } + pub mod schema { use crate as dash_sdk_bindings; } + } + } - pub mod grove_clear { use crate as dash_sdk_bindings; } + #[cfg(any( + feature = "value-conversion", + feature = "data-contract-cbor-conversion", + feature = "json-conversion", + feature = "serde-conversion" + ))] + pub mod conversion { + use crate as dash_sdk_bindings; - pub mod batch_delete { use crate as dash_sdk_bindings; } + #[cfg(feature = "data-contract-cbor-conversion")] + pub mod cbor { + use crate as dash_sdk_bindings; + } - pub mod batch_move_items_in_path_query { + #[cfg(feature = "value-conversion")] + pub mod value { use crate as dash_sdk_bindings; + } - pub mod v0 { use crate as dash_sdk_bindings; } + #[cfg(feature = "json-conversion")] + pub mod json { + use crate as dash_sdk_bindings; } + } - pub mod grove_insert_if_not_exists_return_existing_element { use crate as dash_sdk_bindings; } + pub mod serialized_version { use crate as dash_sdk_bindings; } - pub mod grove_insert { use crate as dash_sdk_bindings; } + pub mod associated_token { + use crate as dash_sdk_bindings; - pub mod batch_refresh_reference { use crate as dash_sdk_bindings; } + pub mod token_distribution_rules { + use crate as dash_sdk_bindings; - pub mod grove_get_path_query_serialized_or_sum_results { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } - pub mod grove_get_path_query { use crate as dash_sdk_bindings; } + pub mod accessors { use crate as dash_sdk_bindings; } + } - pub mod batch_replace { use crate as dash_sdk_bindings; } + pub mod token_configuration_convention { + use crate as dash_sdk_bindings; - pub mod grove_get_raw_item { use crate as dash_sdk_bindings; } + pub mod accessors { use crate as dash_sdk_bindings; } - pub mod grove_get_optional_sum_tree_total_value { use crate as dash_sdk_bindings; } + pub mod methods { + use crate as dash_sdk_bindings; - pub mod grove_has_raw { use crate as dash_sdk_bindings; } + pub mod validate_localizations { use crate as dash_sdk_bindings; } + } + } - pub mod batch_move { + pub mod token_configuration { use crate as dash_sdk_bindings; pub mod v0 { use crate as dash_sdk_bindings; } - } - pub mod grove_apply_batch_with_add_costs { use crate as dash_sdk_bindings; } + pub mod methods { + use crate as dash_sdk_bindings; - pub mod grove_insert_empty_tree { use crate as dash_sdk_bindings; } + pub mod authorized_action_takers_for_configuration_item { + use crate as dash_sdk_bindings; - pub mod grove_get_raw_optional { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod batch_insert_empty_tree_if_not_exists { use crate as dash_sdk_bindings; } + pub mod can_apply_token_configuration_item { + use crate as dash_sdk_bindings; - pub mod grove_get_raw_path_query { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod grove_apply_partial_batch_with_add_costs { use crate as dash_sdk_bindings; } + pub mod apply_token_configuration_item { + use crate as dash_sdk_bindings; - pub mod grove_get { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod grove_get_proved_path_query_with_conditional { use crate as dash_sdk_bindings; } + pub mod validate_token_configuration_update { + use crate as dash_sdk_bindings; - pub mod batch_insert_if_not_exists { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod grove_apply_operation { use crate as dash_sdk_bindings; } + pub mod validate_token_configuration_groups_exist { + use crate as dash_sdk_bindings; - pub mod batch_delete_items_in_path_query { - use crate as dash_sdk_bindings; + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - pub mod v0 { use crate as dash_sdk_bindings; } + pub mod accessors { use crate as dash_sdk_bindings; } } - pub mod grove_get_raw_path_query_with_optional { use crate as dash_sdk_bindings; } - - pub mod grove_insert_empty_sum_tree { use crate as dash_sdk_bindings; } - } - - #[cfg(any(test, feature = "server", feature = "fixtures-and-mocks"))] - pub mod test_helpers { - use crate as dash_sdk_bindings; - - #[cfg(any(test, feature = "fixtures-and-mocks"))] - pub mod test_utils { + pub mod token_configuration_localization { use crate as dash_sdk_bindings; - } - } - - #[cfg(any(feature = "server", feature = "verify"))] - pub mod common { - use crate as dash_sdk_bindings; - } - - #[cfg(feature = "server")] - pub mod operations { - use crate as dash_sdk_bindings; - pub mod apply_batch_grovedb_operations { use crate as dash_sdk_bindings; } - - pub mod rollback_transaction { use crate as dash_sdk_bindings; } - - pub mod apply_partial_batch_grovedb_operations { use crate as dash_sdk_bindings; } + pub mod accessors { use crate as dash_sdk_bindings; } - pub mod drop_cache { use crate as dash_sdk_bindings; } + pub mod v0 { use crate as dash_sdk_bindings; } + } - pub mod apply_batch_low_level_drive_operations { use crate as dash_sdk_bindings; } + pub mod token_pre_programmed_distribution { + use crate as dash_sdk_bindings; - pub mod apply_partial_batch_low_level_drive_operations { use crate as dash_sdk_bindings; } + pub mod accessors { use crate as dash_sdk_bindings; } + } - pub mod commit_transaction { use crate as dash_sdk_bindings; } - } - } - } + pub mod token_perpetual_distribution { + use crate as dash_sdk_bindings; - pub mod platform_value { - use crate as dash_sdk_bindings; + pub mod distribution_recipient { + use crate as dash_sdk_bindings; - pub mod value_map { - use crate as dash_sdk_bindings; + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } - #[doc = "FFI-representation of the [`ValueMap`]"] - #[repr(C)] - #[derive(Clone)] - pub struct platform_value_value_map_ValueMap(*mut crate::fermented::generics::Vec_Tuple_platform_value_Value_platform_value_Value); + pub mod distribution_function { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for platform_value_value_map_ValueMap { - unsafe fn ffi_from_const(ffi: *const platform_value_value_map_ValueMap) -> platform_value::value_map::ValueMap { - let ffi_ref = &*ffi; - >>::ffi_from(ffi_ref.0) - } - } + pub mod evaluate { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionTo for platform_value_value_map_ValueMap { unsafe fn ffi_to_const(obj: platform_value::value_map::ValueMap) -> *const platform_value_value_map_ValueMap { ferment::boxed(platform_value_value_map_ValueMap(>>::ffi_to(obj))) } } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } - impl Drop for platform_value_value_map_ValueMap { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.0); - } - } - } + pub mod validation { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_value_map_ValueMap_ctor<>(o_0: *mut crate::fermented::generics::Vec_Tuple_platform_value_Value_platform_value_Value) -> *mut platform_value_value_map_ValueMap { ferment::boxed(platform_value_value_map_ValueMap(o_0)) } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_value_map_ValueMap_destroy<>(ffi: *mut platform_value_value_map_ValueMap) { ferment::unbox_any(ffi); } + pub mod encode { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn platform_value_value_map_ValueMap_get_0<>(obj: *const platform_value_value_map_ValueMap) -> *mut crate::fermented::generics::Vec_Tuple_platform_value_Value_platform_value_Value { (*obj).0 } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_value_map_ValueMap_set_0<>(obj: *const platform_value_value_map_ValueMap) -> *mut crate::fermented::generics::Vec_Tuple_platform_value_Value_platform_value_Value { (*obj).0 } - } + pub mod evaluate_interval { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`Hash256`]"] - #[repr(C)] - #[derive(Clone)] - pub struct platform_value_Hash256(*mut crate::fermented::generics::Arr_u8_32); + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } + } - impl ferment::FFIConversionFrom for platform_value_Hash256 { - unsafe fn ffi_from_const(ffi: *const platform_value_Hash256) -> platform_value::Hash256 { - let ffi_ref = &*ffi; - >::ffi_from(ffi_ref.0) - } - } + pub mod methods { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionTo for platform_value_Hash256 { unsafe fn ffi_to_const(obj: platform_value::Hash256) -> *const platform_value_Hash256 { ferment::boxed(platform_value_Hash256(>::ffi_to(obj))) } } + pub mod reward_distribution_moment { use crate as dash_sdk_bindings; } - impl Drop for platform_value_Hash256 { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.0); - } - } - } + pub mod reward_distribution_type { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_Hash256_ctor<>(o_0: *mut crate::fermented::generics::Arr_u8_32) -> *mut platform_value_Hash256 { ferment::boxed(platform_value_Hash256(o_0)) } + pub mod validation { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Hash256_destroy<>(ffi: *mut platform_value_Hash256) { ferment::unbox_any(ffi); } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Hash256_get_0<>(obj: *const platform_value_Hash256) -> *mut crate::fermented::generics::Arr_u8_32 { (*obj).0 } + pub mod token_configuration_item { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Hash256_set_0<>(obj: *const platform_value_Hash256) -> *mut crate::fermented::generics::Arr_u8_32 { (*obj).0 } + pub mod token_marketplace_rules { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`Value`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum platform_value_Value { U128(*mut [u8; 16]), I128(*mut [u8; 16]), U64(u64), I64(i64), U32(u32), I32(i32), U16(u16), I16(i16), U8(u8), I8(i8), Bytes(*mut crate::fermented::generics::Vec_u8), Bytes20(*mut crate::fermented::generics::Arr_u8_20), Bytes32(*mut crate::fermented::generics::Arr_u8_32), Bytes36(*mut crate::fermented::generics::Arr_u8_36), EnumU8(*mut crate::fermented::generics::Vec_u8), EnumString(*mut crate::fermented::generics::Vec_String), Identifier(*mut crate::fermented::types::platform_value::platform_value_Hash256), Float(f64), Text(*mut std::os::raw::c_char), Bool(bool), Null, Array(*mut crate::fermented::generics::Vec_platform_value_Value), Map(*mut crate::fermented::types::platform_value::value_map::platform_value_value_map_ValueMap) } + pub mod v0 { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionFrom for platform_value_Value { - unsafe fn ffi_from_const(ffi: *const platform_value_Value) -> platform_value::Value { - let ffi_ref = &*ffi; - match ffi_ref { - platform_value_Value::U128(o_0) => platform_value::Value::U128(<[u8; 16] as ferment::FFIConversionFrom>::ffi_from(*o_0)), - platform_value_Value::I128(o_0) => platform_value::Value::I128(<[u8; 16] as ferment::FFIConversionFrom>::ffi_from(*o_0)), - platform_value_Value::U64(o_0) => platform_value::Value::U64(*o_0), - platform_value_Value::I64(o_0) => platform_value::Value::I64(*o_0), - platform_value_Value::U32(o_0) => platform_value::Value::U32(*o_0), - platform_value_Value::I32(o_0) => platform_value::Value::I32(*o_0), - platform_value_Value::U16(o_0) => platform_value::Value::U16(*o_0), - platform_value_Value::I16(o_0) => platform_value::Value::I16(*o_0), - platform_value_Value::U8(o_0) => platform_value::Value::U8(*o_0), - platform_value_Value::I8(o_0) => platform_value::Value::I8(*o_0), - platform_value_Value::Bytes(o_0) => platform_value::Value::Bytes(>>::ffi_from(*o_0)), - platform_value_Value::Bytes20(o_0) => platform_value::Value::Bytes20(>::ffi_from(*o_0)), - platform_value_Value::Bytes32(o_0) => platform_value::Value::Bytes32(>::ffi_from(*o_0)), - platform_value_Value::Bytes36(o_0) => platform_value::Value::Bytes36(>::ffi_from(*o_0)), - platform_value_Value::EnumU8(o_0) => platform_value::Value::EnumU8(>>::ffi_from(*o_0)), - platform_value_Value::EnumString(o_0) => platform_value::Value::EnumString(>>::ffi_from(*o_0)), - platform_value_Value::Identifier(o_0) => platform_value::Value::Identifier(>::ffi_from(*o_0)), - platform_value_Value::Float(o_0) => platform_value::Value::Float(*o_0), - platform_value_Value::Text(o_0) => platform_value::Value::Text(>::ffi_from(*o_0)), - platform_value_Value::Bool(o_0) => platform_value::Value::Bool(*o_0), - platform_value_Value::Null => platform_value::Value::Null, - platform_value_Value::Array(o_0) => platform_value::Value::Array(>>::ffi_from(*o_0)), - platform_value_Value::Map(o_0) => platform_value::Value::Map(>::ffi_from(*o_0)) + pub mod accessors { use crate as dash_sdk_bindings; } } - } - } - impl ferment::FFIConversionTo for platform_value_Value { - unsafe fn ffi_to_const(obj: platform_value::Value) -> *const platform_value_Value { - ferment::boxed(match obj { - platform_value::Value::U128(o_0) => platform_value_Value::U128(<[u8; 16] as ferment::FFIConversionTo>::ffi_to(o_0)), - platform_value::Value::I128(o_0) => platform_value_Value::I128(<[u8; 16] as ferment::FFIConversionTo>::ffi_to(o_0)), - platform_value::Value::U64(o_0) => platform_value_Value::U64(o_0), - platform_value::Value::I64(o_0) => platform_value_Value::I64(o_0), - platform_value::Value::U32(o_0) => platform_value_Value::U32(o_0), - platform_value::Value::I32(o_0) => platform_value_Value::I32(o_0), - platform_value::Value::U16(o_0) => platform_value_Value::U16(o_0), - platform_value::Value::I16(o_0) => platform_value_Value::I16(o_0), - platform_value::Value::U8(o_0) => platform_value_Value::U8(o_0), - platform_value::Value::I8(o_0) => platform_value_Value::I8(o_0), - platform_value::Value::Bytes(o_0) => platform_value_Value::Bytes(>>::ffi_to(o_0)), - platform_value::Value::Bytes20(o_0) => platform_value_Value::Bytes20(>::ffi_to(o_0)), - platform_value::Value::Bytes32(o_0) => platform_value_Value::Bytes32(>::ffi_to(o_0)), - platform_value::Value::Bytes36(o_0) => platform_value_Value::Bytes36(>::ffi_to(o_0)), - platform_value::Value::EnumU8(o_0) => platform_value_Value::EnumU8(>>::ffi_to(o_0)), - platform_value::Value::EnumString(o_0) => platform_value_Value::EnumString(>>::ffi_to(o_0)), - platform_value::Value::Identifier(o_0) => platform_value_Value::Identifier(>::ffi_to(o_0)), - platform_value::Value::Float(o_0) => platform_value_Value::Float(o_0), - platform_value::Value::Text(o_0) => platform_value_Value::Text(>::ffi_to(o_0)), - platform_value::Value::Bool(o_0) => platform_value_Value::Bool(o_0), - platform_value::Value::Null => platform_value_Value::Null, - platform_value::Value::Array(o_0) => platform_value_Value::Array(>>::ffi_to(o_0)), - platform_value::Value::Map(o_0) => platform_value_Value::Map(>::ffi_to(o_0)), - _ => unreachable!("This is unreachable") - }) - } - } + pub mod token_keeps_history_rules { + use crate as dash_sdk_bindings; - impl Drop for platform_value_Value { - fn drop(&mut self) { - unsafe { - match self { - platform_value_Value::U128(o_0) => { ferment::unbox_any_opt(*o_0); } - platform_value_Value::I128(o_0) => { ferment::unbox_any_opt(*o_0); } - platform_value_Value::U64(o_0) => { ; } - platform_value_Value::I64(o_0) => { ; } - platform_value_Value::U32(o_0) => { ; } - platform_value_Value::I32(o_0) => { ; } - platform_value_Value::U16(o_0) => { ; } - platform_value_Value::I16(o_0) => { ; } - platform_value_Value::U8(o_0) => { ; } - platform_value_Value::I8(o_0) => { ; } - platform_value_Value::Bytes(o_0) => { ferment::unbox_any(*o_0); } - platform_value_Value::Bytes20(o_0) => { ferment::unbox_any(*o_0); } - platform_value_Value::Bytes32(o_0) => { ferment::unbox_any(*o_0); } - platform_value_Value::Bytes36(o_0) => { ferment::unbox_any(*o_0); } - platform_value_Value::EnumU8(o_0) => { ferment::unbox_any(*o_0); } - platform_value_Value::EnumString(o_0) => { ferment::unbox_any(*o_0); } - platform_value_Value::Identifier(o_0) => { ferment::unbox_any(*o_0); } - platform_value_Value::Float(o_0) => { ; } - platform_value_Value::Text(o_0) => { ferment::unbox_string(*o_0); } - platform_value_Value::Bool(o_0) => { ; } - platform_value_Value::Null => {} - platform_value_Value::Array(o_0) => { ferment::unbox_any(*o_0); } - platform_value_Value::Map(o_0) => { ferment::unbox_any(*o_0); } - _ => unreachable!("This is unreachable") - }; + pub mod v0 { use crate as dash_sdk_bindings; } + + pub mod accessors { use crate as dash_sdk_bindings; } } } - } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_U128_ctor(o_o_0: *mut [u8; 16]) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::U128(o_o_0)) } + pub mod v1 { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_I128_ctor(o_o_0: *mut [u8; 16]) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::I128(o_o_0)) } + pub mod conversion { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_U64_ctor(o_o_0: u64) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::U64(o_o_0)) } + pub mod serialization { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_I64_ctor(o_o_0: i64) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::I64(o_o_0)) } + pub mod methods { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_U32_ctor(o_o_0: u32) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::U32(o_o_0)) } + pub mod schema { use crate as dash_sdk_bindings; } + } + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_I32_ctor(o_o_0: i32) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::I32(o_o_0)) } + pub mod withdrawal { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_U16_ctor(o_o_0: u16) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::U16(o_o_0)) } + #[cfg(all(feature = "withdrawals-contract", feature = "system_contracts"))] + pub mod document_try_into_asset_unlock_base_transaction_info { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_I16_ctor(o_o_0: i16) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::I16(o_o_0)) } + #[cfg(feature = "serde-conversion")] + pub mod pooling_serde { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_U8_ctor(o_o_0: u8) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::U8(o_o_0)) } + pub mod daily_withdrawal_limit { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_I8_ctor(o_o_0: i8) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::I8(o_o_0)) } + pub mod v0 { use crate as dash_sdk_bindings; } + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_Bytes_ctor(o_o_0: *mut crate::fermented::generics::Vec_u8) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Bytes(o_o_0)) } + pub mod bls { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_Bytes20_ctor(o_o_0: *mut crate::fermented::generics::Arr_u8_20) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Bytes20(o_o_0)) } + pub mod voting { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_Bytes32_ctor(o_o_0: *mut crate::fermented::generics::Arr_u8_32) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Bytes32(o_o_0)) } + pub mod vote_choices { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_Bytes36_ctor(o_o_0: *mut crate::fermented::generics::Arr_u8_36) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Bytes36(o_o_0)) } + pub mod resource_vote_choice { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_EnumU8_ctor(o_o_0: *mut crate::fermented::generics::Vec_u8) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::EnumU8(o_o_0)) } + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`ResourceVoteChoice`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { TowardsIdentity(*mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier), Abstain, Lock } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_EnumString_ctor(o_o_0: *mut crate::fermented::generics::Vec_String) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::EnumString(o_o_0)) } + impl ferment::FFIConversionFrom for dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { + unsafe fn ffi_from_const(ffi: *const dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice) -> dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice { + let ffi_ref = &*ffi; + match ffi_ref { + dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::TowardsIdentity(o_0) => dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice::TowardsIdentity(>::ffi_from(*o_0)), + dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Abstain => dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice::Abstain, + dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Lock => dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice::Lock + } + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_Identifier_ctor(o_o_0: *mut crate::fermented::types::platform_value::platform_value_Hash256) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Identifier(o_o_0)) } + impl ferment::FFIConversionTo for dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { + unsafe fn ffi_to_const(obj: dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice) -> *const dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { + ferment::boxed(match obj { + dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice::TowardsIdentity(o_0) => dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::TowardsIdentity(>::ffi_to(o_0)), + dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice::Abstain => dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Abstain, + dpp::voting::vote_choices::resource_vote_choice::ResourceVoteChoice::Lock => dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Lock, + _ => unreachable!("This is unreachable") + }) + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_Float_ctor(o_o_0: f64) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Float(o_o_0)) } + impl Drop for dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { + fn drop(&mut self) { + unsafe { + match self { + dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::TowardsIdentity(o_0) => { ferment::unbox_any(*o_0); } + dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Abstain => {} + dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Lock => {} + _ => unreachable!("This is unreachable") + }; + } + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_Text_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Text(o_o_0)) } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice_TowardsIdentity_ctor(o_o_0: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { ferment::boxed(dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::TowardsIdentity(o_o_0)) } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_Bool_ctor(o_o_0: bool) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Bool(o_o_0)) } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice_Abstain_ctor() -> *mut dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { ferment::boxed(dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Abstain {}) } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_Null_ctor() -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Null {}) } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice_Lock_ctor() -> *mut dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { ferment::boxed(dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice::Lock {}) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice_destroy<>(ffi: *mut dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice) { ferment::unbox_any(ffi); } + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_Array_ctor(o_o_0: *mut crate::fermented::generics::Vec_platform_value_Value) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Array(o_o_0)) } + pub mod vote_polls { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_Map_ctor(o_o_0: *mut crate::fermented::types::platform_value::value_map::platform_value_value_map_ValueMap) -> *mut platform_value_Value { ferment::boxed(platform_value_Value::Map(o_o_0)) } + pub mod contested_document_resource_vote_poll { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_Value_destroy<>(ffi: *mut platform_value_Value) { ferment::unbox_any(ffi); } + #[doc = "FFI-representation of the [`ContestedDocumentResourceVotePoll`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { + pub contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, + pub document_type_name: *mut std::os::raw::c_char, + pub index_name: *mut std::os::raw::c_char, + pub index_values: *mut crate::fermented::generics::Vec_platform_value_Value, + } - pub mod index { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionFrom for dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { + unsafe fn ffi_from_const(ffi: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> dpp::voting::vote_polls::contested_document_resource_vote_poll::ContestedDocumentResourceVotePoll { + let ffi_ref = &*ffi; + dpp::voting::vote_polls::contested_document_resource_vote_poll::ContestedDocumentResourceVotePoll { contract_id: >::ffi_from(ffi_ref.contract_id), document_type_name: >::ffi_from(ffi_ref.document_type_name), index_name: >::ffi_from(ffi_ref.index_name), index_values: >>::ffi_from(ffi_ref.index_values) } + } + } - pub mod value_serialization { use crate as dash_sdk_bindings; } + impl ferment::FFIConversionTo for dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { + unsafe fn ffi_to_const(obj: dpp::voting::vote_polls::contested_document_resource_vote_poll::ContestedDocumentResourceVotePoll) -> *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { ferment::boxed(dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { contract_id: >::ffi_to(obj.contract_id), document_type_name: >::ffi_to(obj.document_type_name), index_name: >::ffi_to(obj.index_name), index_values: >>::ffi_to(obj.index_values) }) } + } - pub mod converter { - use crate as dash_sdk_bindings; + impl Drop for dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.contract_id); + ferment::unbox_string(ffi_ref.document_type_name); + ferment::unbox_string(ffi_ref.index_name); + ferment::unbox_any(ffi_ref.index_values); + } + } + } - #[cfg(feature = "json")] - pub mod serde_json { - use crate as dash_sdk_bindings; - } - } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_ctor<>(contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type_name: *mut std::os::raw::c_char, index_name: *mut std::os::raw::c_char, index_values: *mut crate::fermented::generics::Vec_platform_value_Value) -> *mut dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { ferment::boxed(dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { contract_id, document_type_name, index_name, index_values }) } - pub mod btreemap_extensions { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_destroy<>(ffi: *mut dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) { ferment::unbox_any(ffi); } - pub mod macros { use crate as dash_sdk_bindings; } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_get_contract_id<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).contract_id } - pub mod patch { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_get_document_type_name<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut std::os::raw::c_char { (*obj).document_type_name } - pub mod diff { use crate as dash_sdk_bindings; } - } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_get_index_name<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut std::os::raw::c_char { (*obj).index_name } - pub mod inner_value_at_path { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_get_index_values<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut crate::fermented::generics::Vec_platform_value_Value { (*obj).index_values } - #[cfg(test)] - pub mod tests { - use crate as dash_sdk_bindings; - } - } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_set_contract_id<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).contract_id } - pub mod error { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_set_document_type_name<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut std::os::raw::c_char { (*obj).document_type_name } - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`Error`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum platform_value_error_Error { Unsupported(*mut std::os::raw::c_char), StructureError(*mut std::os::raw::c_char), PathError(*mut std::os::raw::c_char), IntegerSizeError, IntegerParsingError, StringDecodingError(*mut std::os::raw::c_char), KeyMustBeAString, ByteLengthNot20BytesError(*mut std::os::raw::c_char), ByteLengthNot32BytesError(*mut std::os::raw::c_char), ByteLengthNot36BytesError(*mut std::os::raw::c_char), SerdeSerializationError(*mut std::os::raw::c_char), SerdeDeserializationError(*mut std::os::raw::c_char), CborSerializationError(*mut std::os::raw::c_char) } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_set_index_name<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut std::os::raw::c_char { (*obj).index_name } - impl ferment::FFIConversionFrom for platform_value_error_Error { - unsafe fn ffi_from_const(ffi: *const platform_value_error_Error) -> platform_value::error::Error { - let ffi_ref = &*ffi; - match ffi_ref { - platform_value_error_Error::Unsupported(o_0) => platform_value::error::Error::Unsupported(>::ffi_from(*o_0)), - platform_value_error_Error::StructureError(o_0) => platform_value::error::Error::StructureError(>::ffi_from(*o_0)), - platform_value_error_Error::PathError(o_0) => platform_value::error::Error::PathError(>::ffi_from(*o_0)), - platform_value_error_Error::IntegerSizeError => platform_value::error::Error::IntegerSizeError, - platform_value_error_Error::IntegerParsingError => platform_value::error::Error::IntegerParsingError, - platform_value_error_Error::StringDecodingError(o_0) => platform_value::error::Error::StringDecodingError(>::ffi_from(*o_0)), - platform_value_error_Error::KeyMustBeAString => platform_value::error::Error::KeyMustBeAString, - platform_value_error_Error::ByteLengthNot20BytesError(o_0) => platform_value::error::Error::ByteLengthNot20BytesError(>::ffi_from(*o_0)), - platform_value_error_Error::ByteLengthNot32BytesError(o_0) => platform_value::error::Error::ByteLengthNot32BytesError(>::ffi_from(*o_0)), - platform_value_error_Error::ByteLengthNot36BytesError(o_0) => platform_value::error::Error::ByteLengthNot36BytesError(>::ffi_from(*o_0)), - platform_value_error_Error::SerdeSerializationError(o_0) => platform_value::error::Error::SerdeSerializationError(>::ffi_from(*o_0)), - platform_value_error_Error::SerdeDeserializationError(o_0) => platform_value::error::Error::SerdeDeserializationError(>::ffi_from(*o_0)), - platform_value_error_Error::CborSerializationError(o_0) => platform_value::error::Error::CborSerializationError(>::ffi_from(*o_0)) - } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll_set_index_values<>(obj: *const dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut crate::fermented::generics::Vec_platform_value_Value { (*obj).index_values } } - } - impl ferment::FFIConversionTo for platform_value_error_Error { - unsafe fn ffi_to_const(obj: platform_value::error::Error) -> *const platform_value_error_Error { - ferment::boxed(match obj { - platform_value::error::Error::Unsupported(o_0) => platform_value_error_Error::Unsupported(>::ffi_to(o_0)), - platform_value::error::Error::StructureError(o_0) => platform_value_error_Error::StructureError(>::ffi_to(o_0)), - platform_value::error::Error::PathError(o_0) => platform_value_error_Error::PathError(>::ffi_to(o_0)), - platform_value::error::Error::IntegerSizeError => platform_value_error_Error::IntegerSizeError, - platform_value::error::Error::IntegerParsingError => platform_value_error_Error::IntegerParsingError, - platform_value::error::Error::StringDecodingError(o_0) => platform_value_error_Error::StringDecodingError(>::ffi_to(o_0)), - platform_value::error::Error::KeyMustBeAString => platform_value_error_Error::KeyMustBeAString, - platform_value::error::Error::ByteLengthNot20BytesError(o_0) => platform_value_error_Error::ByteLengthNot20BytesError(>::ffi_to(o_0)), - platform_value::error::Error::ByteLengthNot32BytesError(o_0) => platform_value_error_Error::ByteLengthNot32BytesError(>::ffi_to(o_0)), - platform_value::error::Error::ByteLengthNot36BytesError(o_0) => platform_value_error_Error::ByteLengthNot36BytesError(>::ffi_to(o_0)), - platform_value::error::Error::SerdeSerializationError(o_0) => platform_value_error_Error::SerdeSerializationError(>::ffi_to(o_0)), - platform_value::error::Error::SerdeDeserializationError(o_0) => platform_value_error_Error::SerdeDeserializationError(>::ffi_to(o_0)), - platform_value::error::Error::CborSerializationError(o_0) => platform_value_error_Error::CborSerializationError(>::ffi_to(o_0)), - _ => unreachable!("This is unreachable") - }) + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`VotePoll`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum dpp_voting_vote_polls_VotePoll { ContestedDocumentResourceVotePoll(*mut crate::fermented::types::dpp::voting::vote_polls::contested_document_resource_vote_poll::dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) } + + impl ferment::FFIConversionFrom for dpp_voting_vote_polls_VotePoll { + unsafe fn ffi_from_const(ffi: *const dpp_voting_vote_polls_VotePoll) -> dpp::voting::vote_polls::VotePoll { + let ffi_ref = &*ffi; + match ffi_ref { dpp_voting_vote_polls_VotePoll::ContestedDocumentResourceVotePoll(o_0) => dpp::voting::vote_polls::VotePoll::ContestedDocumentResourceVotePoll(>::ffi_from(*o_0)) } + } } - } - impl Drop for platform_value_error_Error { - fn drop(&mut self) { - unsafe { - match self { - platform_value_error_Error::Unsupported(o_0) => { ferment::unbox_string(*o_0); } - platform_value_error_Error::StructureError(o_0) => { ferment::unbox_string(*o_0); } - platform_value_error_Error::PathError(o_0) => { ferment::unbox_string(*o_0); } - platform_value_error_Error::IntegerSizeError => {} - platform_value_error_Error::IntegerParsingError => {} - platform_value_error_Error::StringDecodingError(o_0) => { ferment::unbox_string(*o_0); } - platform_value_error_Error::KeyMustBeAString => {} - platform_value_error_Error::ByteLengthNot20BytesError(o_0) => { ferment::unbox_string(*o_0); } - platform_value_error_Error::ByteLengthNot32BytesError(o_0) => { ferment::unbox_string(*o_0); } - platform_value_error_Error::ByteLengthNot36BytesError(o_0) => { ferment::unbox_string(*o_0); } - platform_value_error_Error::SerdeSerializationError(o_0) => { ferment::unbox_string(*o_0); } - platform_value_error_Error::SerdeDeserializationError(o_0) => { ferment::unbox_string(*o_0); } - platform_value_error_Error::CborSerializationError(o_0) => { ferment::unbox_string(*o_0); } + impl ferment::FFIConversionTo for dpp_voting_vote_polls_VotePoll { + unsafe fn ffi_to_const(obj: dpp::voting::vote_polls::VotePoll) -> *const dpp_voting_vote_polls_VotePoll { + ferment::boxed(match obj { + dpp::voting::vote_polls::VotePoll::ContestedDocumentResourceVotePoll(o_0) => dpp_voting_vote_polls_VotePoll::ContestedDocumentResourceVotePoll(>::ffi_to(o_0)), _ => unreachable!("This is unreachable") - }; + }) } } - } - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_Unsupported_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::Unsupported(o_o_0)) } + impl Drop for dpp_voting_vote_polls_VotePoll { + fn drop(&mut self) { + unsafe { + match self { + dpp_voting_vote_polls_VotePoll::ContestedDocumentResourceVotePoll(o_0) => { ferment::unbox_any(*o_0); } + _ => unreachable!("This is unreachable") + }; + } + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_StructureError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::StructureError(o_o_0)) } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_polls_VotePoll_ContestedDocumentResourceVotePoll_ctor(o_o_0: *mut crate::fermented::types::dpp::voting::vote_polls::contested_document_resource_vote_poll::dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut dpp_voting_vote_polls_VotePoll { ferment::boxed(dpp_voting_vote_polls_VotePoll::ContestedDocumentResourceVotePoll(o_o_0)) } - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_PathError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::PathError(o_o_0)) } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_polls_VotePoll_destroy<>(ffi: *mut dpp_voting_vote_polls_VotePoll) { ferment::unbox_any(ffi); } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_IntegerSizeError_ctor() -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::IntegerSizeError {}) } + pub mod vote_info_storage { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_IntegerParsingError_ctor() -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::IntegerParsingError {}) } + pub mod contested_document_vote_poll_stored_info { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_StringDecodingError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::StringDecodingError(o_o_0)) } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_KeyMustBeAString_ctor() -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::KeyMustBeAString {}) } + pub mod contested_document_vote_poll_winner_info { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_ByteLengthNot20BytesError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::ByteLengthNot20BytesError(o_o_0)) } + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`ContestedDocumentVotePollWinnerInfo`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { NoWinner, WonByIdentity(*mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier), Locked } - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_ByteLengthNot32BytesError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::ByteLengthNot32BytesError(o_o_0)) } + impl ferment::FFIConversionFrom for dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { + unsafe fn ffi_from_const(ffi: *const dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo) -> dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo { + let ffi_ref = &*ffi; + match ffi_ref { + dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::NoWinner => dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo::NoWinner, + dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::WonByIdentity(o_0) => dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo::WonByIdentity(>::ffi_from(*o_0)), + dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::Locked => dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo::Locked + } + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_ByteLengthNot36BytesError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::ByteLengthNot36BytesError(o_o_0)) } + impl ferment::FFIConversionTo for dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { + unsafe fn ffi_to_const(obj: dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo) -> *const dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { + ferment::boxed(match obj { + dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo::NoWinner => dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::NoWinner, + dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo::WonByIdentity(o_0) => dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::WonByIdentity(>::ffi_to(o_0)), + dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo::Locked => dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::Locked, + _ => unreachable!("This is unreachable") + }) + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_SerdeSerializationError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::SerdeSerializationError(o_o_0)) } + impl Drop for dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { + fn drop(&mut self) { + unsafe { + match self { + dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::NoWinner => {} + dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::WonByIdentity(o_0) => { ferment::unbox_any(*o_0); } + dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::Locked => {} + _ => unreachable!("This is unreachable") + }; + } + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_SerdeDeserializationError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::SerdeDeserializationError(o_o_0)) } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_NoWinner_ctor() -> *mut dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { ferment::boxed(dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::NoWinner {}) } - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_CborSerializationError_ctor(o_o_0: *mut std::os::raw::c_char) -> *mut platform_value_error_Error { ferment::boxed(platform_value_error_Error::CborSerializationError(o_o_0)) } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_WonByIdentity_ctor(o_o_0: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { ferment::boxed(dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::WonByIdentity(o_o_0)) } - #[no_mangle] - pub unsafe extern "C" fn platform_value_error_Error_destroy<>(ffi: *mut platform_value_error_Error) { ferment::unbox_any(ffi); } - } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_Locked_ctor() -> *mut dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo { ferment::boxed(dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo::Locked {}) } - pub mod types { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_destroy<>(ffi: *mut dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo) { ferment::unbox_any(ffi); } + } + } - pub mod identifier { + pub mod votes { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`IdentifierBytes32`]"] + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`Vote`]\"`]"] #[repr(C)] #[derive(Clone)] - pub struct platform_value_types_identifier_IdentifierBytes32(*mut crate::fermented::generics::Arr_u8_32); + #[non_exhaustive] + pub enum dpp_voting_votes_Vote { ResourceVote(*mut crate::fermented::types::dpp::voting::votes::resource_vote::dpp_voting_votes_resource_vote_ResourceVote) } - impl ferment::FFIConversionFrom for platform_value_types_identifier_IdentifierBytes32 { - unsafe fn ffi_from_const(ffi: *const platform_value_types_identifier_IdentifierBytes32) -> platform_value::types::identifier::IdentifierBytes32 { + impl ferment::FFIConversionFrom for dpp_voting_votes_Vote { + unsafe fn ffi_from_const(ffi: *const dpp_voting_votes_Vote) -> dpp::voting::votes::Vote { let ffi_ref = &*ffi; - platform_value::types::identifier::IdentifierBytes32(>::ffi_from(ffi_ref.0)) + match ffi_ref { dpp_voting_votes_Vote::ResourceVote(o_0) => dpp::voting::votes::Vote::ResourceVote(>::ffi_from(*o_0)) } } } - impl ferment::FFIConversionTo for platform_value_types_identifier_IdentifierBytes32 { unsafe fn ffi_to_const(obj: platform_value::types::identifier::IdentifierBytes32) -> *const platform_value_types_identifier_IdentifierBytes32 { ferment::boxed(platform_value_types_identifier_IdentifierBytes32(>::ffi_to(obj.0))) } } + impl ferment::FFIConversionTo for dpp_voting_votes_Vote { + unsafe fn ffi_to_const(obj: dpp::voting::votes::Vote) -> *const dpp_voting_votes_Vote { + ferment::boxed(match obj { + dpp::voting::votes::Vote::ResourceVote(o_0) => dpp_voting_votes_Vote::ResourceVote(>::ffi_to(o_0)), + _ => unreachable!("This is unreachable") + }) + } + } - impl Drop for platform_value_types_identifier_IdentifierBytes32 { + impl Drop for dpp_voting_votes_Vote { fn drop(&mut self) { unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.0); + match self { + dpp_voting_votes_Vote::ResourceVote(o_0) => { ferment::unbox_any(*o_0); } + _ => unreachable!("This is unreachable") + }; } } } #[no_mangle] - pub unsafe extern "C" fn platform_value_types_identifier_IdentifierBytes32_ctor<>(o_0: *mut crate::fermented::generics::Arr_u8_32) -> *mut platform_value_types_identifier_IdentifierBytes32 { ferment::boxed(platform_value_types_identifier_IdentifierBytes32(o_0)) } - - #[no_mangle] - pub unsafe extern "C" fn platform_value_types_identifier_IdentifierBytes32_destroy<>(ffi: *mut platform_value_types_identifier_IdentifierBytes32) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn dpp_voting_votes_Vote_ResourceVote_ctor(o_o_0: *mut crate::fermented::types::dpp::voting::votes::resource_vote::dpp_voting_votes_resource_vote_ResourceVote) -> *mut dpp_voting_votes_Vote { ferment::boxed(dpp_voting_votes_Vote::ResourceVote(o_o_0)) } #[no_mangle] - pub unsafe extern "C" fn platform_value_types_identifier_IdentifierBytes32_get_0<>(obj: *const platform_value_types_identifier_IdentifierBytes32) -> *mut crate::fermented::generics::Arr_u8_32 { (*obj).0 } + pub unsafe extern "C" fn dpp_voting_votes_Vote_destroy<>(ffi: *mut dpp_voting_votes_Vote) { ferment::unbox_any(ffi); } - #[no_mangle] - pub unsafe extern "C" fn platform_value_types_identifier_IdentifierBytes32_set_0<>(obj: *const platform_value_types_identifier_IdentifierBytes32) -> *mut crate::fermented::generics::Arr_u8_32 { (*obj).0 } + pub mod resource_vote { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`Identifier`]"] - #[repr(C)] - #[derive(Clone)] - pub struct platform_value_types_identifier_Identifier(*mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_IdentifierBytes32); + pub mod accessors { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionFrom for platform_value_types_identifier_Identifier { - unsafe fn ffi_from_const(ffi: *const platform_value_types_identifier_Identifier) -> platform_value::types::identifier::Identifier { - let ffi_ref = &*ffi; - platform_value::types::identifier::Identifier(>::ffi_from(ffi_ref.0)) - } - } + pub mod v0 { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionTo for platform_value_types_identifier_Identifier { unsafe fn ffi_to_const(obj: platform_value::types::identifier::Identifier) -> *const platform_value_types_identifier_Identifier { ferment::boxed(platform_value_types_identifier_Identifier(>::ffi_to(obj.0))) } } + #[doc = "FFI-representation of the [`ResourceVoteV0`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { + pub vote_poll: *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll, + pub resource_vote_choice: *mut crate::fermented::types::dpp::voting::vote_choices::resource_vote_choice::dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice, + } - impl Drop for platform_value_types_identifier_Identifier { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.0); + impl ferment::FFIConversionFrom for dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { + unsafe fn ffi_from_const(ffi: *const dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> dpp::voting::votes::resource_vote::v0::ResourceVoteV0 { + let ffi_ref = &*ffi; + dpp::voting::votes::resource_vote::v0::ResourceVoteV0 { vote_poll: >::ffi_from(ffi_ref.vote_poll), resource_vote_choice: >::ffi_from(ffi_ref.resource_vote_choice) } + } } - } - } - #[no_mangle] - pub unsafe extern "C" fn platform_value_types_identifier_Identifier_ctor<>(o_0: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_IdentifierBytes32) -> *mut platform_value_types_identifier_Identifier { ferment::boxed(platform_value_types_identifier_Identifier(o_0)) } + impl ferment::FFIConversionTo for dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { unsafe fn ffi_to_const(obj: dpp::voting::votes::resource_vote::v0::ResourceVoteV0) -> *const dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { ferment::boxed(dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { vote_poll: >::ffi_to(obj.vote_poll), resource_vote_choice: >::ffi_to(obj.resource_vote_choice) }) } } - #[no_mangle] - pub unsafe extern "C" fn platform_value_types_identifier_Identifier_destroy<>(ffi: *mut platform_value_types_identifier_Identifier) { ferment::unbox_any(ffi); } + impl Drop for dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.vote_poll); + ferment::unbox_any(ffi_ref.resource_vote_choice); + } + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_types_identifier_Identifier_get_0<>(obj: *const platform_value_types_identifier_Identifier) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_IdentifierBytes32 { (*obj).0 } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_votes_resource_vote_v0_ResourceVoteV0_ctor<>(vote_poll: *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll, resource_vote_choice: *mut crate::fermented::types::dpp::voting::vote_choices::resource_vote_choice::dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice) -> *mut dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { ferment::boxed(dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { vote_poll, resource_vote_choice }) } - #[no_mangle] - pub unsafe extern "C" fn platform_value_types_identifier_Identifier_set_0<>(obj: *const platform_value_types_identifier_Identifier) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_IdentifierBytes32 { (*obj).0 } - } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_votes_resource_vote_v0_ResourceVoteV0_destroy<>(ffi: *mut dpp_voting_votes_resource_vote_v0_ResourceVoteV0) { ferment::unbox_any(ffi); } - pub mod binary_data { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_votes_resource_vote_v0_ResourceVoteV0_get_vote_poll<>(obj: *const dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll { (*obj).vote_poll } - #[doc = "FFI-representation of the [`BinaryData`]"] - #[repr(C)] - #[derive(Clone)] - pub struct platform_value_types_binary_data_BinaryData(*mut crate::fermented::generics::Vec_u8); + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_votes_resource_vote_v0_ResourceVoteV0_get_resource_vote_choice<>(obj: *const dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> *mut crate::fermented::types::dpp::voting::vote_choices::resource_vote_choice::dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { (*obj).resource_vote_choice } - impl ferment::FFIConversionFrom for platform_value_types_binary_data_BinaryData { - unsafe fn ffi_from_const(ffi: *const platform_value_types_binary_data_BinaryData) -> platform_value::types::binary_data::BinaryData { - let ffi_ref = &*ffi; - platform_value::types::binary_data::BinaryData(>>::ffi_from(ffi_ref.0)) + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_votes_resource_vote_v0_ResourceVoteV0_set_vote_poll<>(obj: *const dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll { (*obj).vote_poll } + + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_votes_resource_vote_v0_ResourceVoteV0_set_resource_vote_choice<>(obj: *const dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> *mut crate::fermented::types::dpp::voting::vote_choices::resource_vote_choice::dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { (*obj).resource_vote_choice } } - } - impl ferment::FFIConversionTo for platform_value_types_binary_data_BinaryData { unsafe fn ffi_to_const(obj: platform_value::types::binary_data::BinaryData) -> *const platform_value_types_binary_data_BinaryData { ferment::boxed(platform_value_types_binary_data_BinaryData(>>::ffi_to(obj.0))) } } + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`ResourceVote`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum dpp_voting_votes_resource_vote_ResourceVote { V0(*mut crate::fermented::types::dpp::voting::votes::resource_vote::v0::dpp_voting_votes_resource_vote_v0_ResourceVoteV0) } - impl Drop for platform_value_types_binary_data_BinaryData { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.0); + impl ferment::FFIConversionFrom for dpp_voting_votes_resource_vote_ResourceVote { + unsafe fn ffi_from_const(ffi: *const dpp_voting_votes_resource_vote_ResourceVote) -> dpp::voting::votes::resource_vote::ResourceVote { + let ffi_ref = &*ffi; + match ffi_ref { dpp_voting_votes_resource_vote_ResourceVote::V0(o_0) => dpp::voting::votes::resource_vote::ResourceVote::V0(>::ffi_from(*o_0)) } } } - } - #[no_mangle] - pub unsafe extern "C" fn platform_value_types_binary_data_BinaryData_ctor<>(o_0: *mut crate::fermented::generics::Vec_u8) -> *mut platform_value_types_binary_data_BinaryData { ferment::boxed(platform_value_types_binary_data_BinaryData(o_0)) } + impl ferment::FFIConversionTo for dpp_voting_votes_resource_vote_ResourceVote { + unsafe fn ffi_to_const(obj: dpp::voting::votes::resource_vote::ResourceVote) -> *const dpp_voting_votes_resource_vote_ResourceVote { + ferment::boxed(match obj { + dpp::voting::votes::resource_vote::ResourceVote::V0(o_0) => dpp_voting_votes_resource_vote_ResourceVote::V0(>::ffi_to(o_0)), + _ => unreachable!("This is unreachable") + }) + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_types_binary_data_BinaryData_destroy<>(ffi: *mut platform_value_types_binary_data_BinaryData) { ferment::unbox_any(ffi); } + impl Drop for dpp_voting_votes_resource_vote_ResourceVote { + fn drop(&mut self) { + unsafe { + match self { + dpp_voting_votes_resource_vote_ResourceVote::V0(o_0) => { ferment::unbox_any(*o_0); } + _ => unreachable!("This is unreachable") + }; + } + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_value_types_binary_data_BinaryData_get_0<>(obj: *const platform_value_types_binary_data_BinaryData) -> *mut crate::fermented::generics::Vec_u8 { (*obj).0 } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_votes_resource_vote_ResourceVote_V0_ctor(o_o_0: *mut crate::fermented::types::dpp::voting::votes::resource_vote::v0::dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> *mut dpp_voting_votes_resource_vote_ResourceVote { ferment::boxed(dpp_voting_votes_resource_vote_ResourceVote::V0(o_o_0)) } - #[no_mangle] - pub unsafe extern "C" fn platform_value_types_binary_data_BinaryData_set_0<>(obj: *const platform_value_types_binary_data_BinaryData) -> *mut crate::fermented::generics::Vec_u8 { (*obj).0 } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_votes_resource_vote_ResourceVote_destroy<>(ffi: *mut dpp_voting_votes_resource_vote_ResourceVote) { ferment::unbox_any(ffi); } + } } - } - } - pub mod platform_mobile { - use crate as dash_sdk_bindings; + pub mod contender_structs { + use crate as dash_sdk_bindings; - pub mod core { - use crate as dash_sdk_bindings; + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } - #[doc = "FFI-representation of the [`platform_mobile::core::get_transaction_sdk`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_core_get_transaction_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, txid: *mut crate::fermented::generics::Arr_u8_32) -> *mut crate::fermented::generics::Result_ok_Vec_u8_err_String { - let obj = platform_mobile::core::get_transaction_sdk(rust_sdk, >::ffi_from(txid)); - , String>>>::ffi_to(obj) - } + pub mod contender { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::core::get_transaction`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_core_get_transaction(txid: *mut crate::fermented::generics::Arr_u8_32, quorum_public_key_callback: u64, data_contract_callback: u64) -> *mut crate::fermented::generics::Result_ok_Vec_u8_err_String { - let obj = platform_mobile::core::get_transaction(>::ffi_from(txid), quorum_public_key_callback, data_contract_callback); - , String>>>::ffi_to(obj) - } - } + #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`ContenderWithSerializedDocument`]\"`]"] + #[repr(C)] + #[derive(Clone)] + #[non_exhaustive] + pub enum dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { V0(*mut crate::fermented::types::dpp::voting::contender_structs::contender::v0::dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) } - pub mod data_contracts { - use crate as dash_sdk_bindings; + impl ferment::FFIConversionFrom for dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { + unsafe fn ffi_from_const(ffi: *const dpp_voting_contender_structs_contender_ContenderWithSerializedDocument) -> dpp::voting::contender_structs::contender::ContenderWithSerializedDocument { + let ffi_ref = &*ffi; + match ffi_ref { dpp_voting_contender_structs_contender_ContenderWithSerializedDocument::V0(o_0) => dpp::voting::contender_structs::contender::ContenderWithSerializedDocument::V0(>::ffi_from(*o_0)) } + } + } - #[doc = "FFI-representation of the [`platform_mobile::data_contracts::DataContractFFI_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_clone(value: *mut crate::fermented::types::platform_mobile::data_contracts::platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::types::platform_mobile::data_contracts::platform_mobile_data_contracts_DataContractFFI { - let obj = platform_mobile::data_contracts::DataContractFFI_clone(>::ffi_from(value)); - >::ffi_to(obj) - } + impl ferment::FFIConversionTo for dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { + unsafe fn ffi_to_const(obj: dpp::voting::contender_structs::contender::ContenderWithSerializedDocument) -> *const dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { + ferment::boxed(match obj { + dpp::voting::contender_structs::contender::ContenderWithSerializedDocument::V0(o_0) => dpp_voting_contender_structs_contender_ContenderWithSerializedDocument::V0(>::ffi_to(o_0)), + _ => unreachable!("This is unreachable") + }) + } + } - #[doc = "FFI-representation of the [`DataContractFFI`]"] - #[repr(C)] - #[derive(Clone)] - pub struct platform_mobile_data_contracts_DataContractFFI { - pub id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, - pub owner_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, - pub doc_types: *mut crate::fermented::generics::Vec_String, - pub version: u32, - } + impl Drop for dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { + fn drop(&mut self) { + unsafe { + match self { + dpp_voting_contender_structs_contender_ContenderWithSerializedDocument::V0(o_0) => { ferment::unbox_any(*o_0); } + _ => unreachable!("This is unreachable") + }; + } + } + } - impl ferment::FFIConversionFrom for platform_mobile_data_contracts_DataContractFFI { - unsafe fn ffi_from_const(ffi: *const platform_mobile_data_contracts_DataContractFFI) -> platform_mobile::data_contracts::DataContractFFI { - let ffi_ref = &*ffi; - platform_mobile::data_contracts::DataContractFFI { id: >::ffi_from(ffi_ref.id), owner_id: >::ffi_from(ffi_ref.owner_id), doc_types: >>::ffi_from(ffi_ref.doc_types), version: ffi_ref.version } - } - } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_contender_structs_contender_ContenderWithSerializedDocument_V0_ctor(o_o_0: *mut crate::fermented::types::dpp::voting::contender_structs::contender::v0::dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { ferment::boxed(dpp_voting_contender_structs_contender_ContenderWithSerializedDocument::V0(o_o_0)) } - impl ferment::FFIConversionTo for platform_mobile_data_contracts_DataContractFFI { unsafe fn ffi_to_const(obj: platform_mobile::data_contracts::DataContractFFI) -> *const platform_mobile_data_contracts_DataContractFFI { ferment::boxed(platform_mobile_data_contracts_DataContractFFI { id: >::ffi_to(obj.id), owner_id: >::ffi_to(obj.owner_id), doc_types: >>::ffi_to(obj.doc_types), version: obj.version }) } } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_contender_structs_contender_ContenderWithSerializedDocument_destroy<>(ffi: *mut dpp_voting_contender_structs_contender_ContenderWithSerializedDocument) { ferment::unbox_any(ffi); } + + pub mod v0 { + use crate as dash_sdk_bindings; + + #[doc = "FFI-representation of the [`ContenderWithSerializedDocumentV0`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { + pub identity_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, + pub serialized_document: *mut crate::fermented::generics::Vec_u8, + pub vote_tally: *mut u32, + } - impl Drop for platform_mobile_data_contracts_DataContractFFI { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.id); - ferment::unbox_any(ffi_ref.owner_id); - ferment::unbox_any(ffi_ref.doc_types); - ; - } - } - } + impl ferment::FFIConversionFrom for dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { + unsafe fn ffi_from_const(ffi: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> dpp::voting::contender_structs::contender::v0::ContenderWithSerializedDocumentV0 { + let ffi_ref = &*ffi; + dpp::voting::contender_structs::contender::v0::ContenderWithSerializedDocumentV0 { identity_id: >::ffi_from(ffi_ref.identity_id), serialized_document: >>::ffi_from_opt(ffi_ref.serialized_document), vote_tally: ferment::from_opt_primitive(ffi_ref.vote_tally) } + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_ctor<>(id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, owner_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, doc_types: *mut crate::fermented::generics::Vec_String, version: u32) -> *mut platform_mobile_data_contracts_DataContractFFI { ferment::boxed(platform_mobile_data_contracts_DataContractFFI { id, owner_id, doc_types, version }) } + impl ferment::FFIConversionTo for dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { unsafe fn ffi_to_const(obj: dpp::voting::contender_structs::contender::v0::ContenderWithSerializedDocumentV0) -> *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { ferment::boxed(dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { identity_id: >::ffi_to(obj.identity_id), serialized_document: >>::ffi_to_opt(obj.serialized_document), vote_tally: ferment::to_opt_primitive(obj.vote_tally) }) } } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_destroy<>(ffi: *mut platform_mobile_data_contracts_DataContractFFI) { ferment::unbox_any(ffi); } + impl Drop for dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.identity_id); + ferment::unbox_any_opt(ffi_ref.serialized_document); + ferment::destroy_opt_primitive(ffi_ref.vote_tally); + } + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_get_id<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).id } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_ctor<>(identity_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, serialized_document: *mut crate::fermented::generics::Vec_u8, vote_tally: *mut u32) -> *mut dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { ferment::boxed(dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { identity_id, serialized_document, vote_tally }) } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_get_owner_id<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).owner_id } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_destroy<>(ffi: *mut dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) { ferment::unbox_any(ffi); } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_get_doc_types<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::generics::Vec_String { (*obj).doc_types } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_get_identity_id<>(obj: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).identity_id } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_get_version<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> u32 { (*obj).version } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_get_serialized_document<>(obj: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut crate::fermented::generics::Vec_u8 { (*obj).serialized_document } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_set_id<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).id } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_get_vote_tally<>(obj: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut u32 { (*obj).vote_tally } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_set_owner_id<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).owner_id } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_set_identity_id<>(obj: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { (*obj).identity_id } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_set_doc_types<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> *mut crate::fermented::generics::Vec_String { (*obj).doc_types } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_set_serialized_document<>(obj: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut crate::fermented::generics::Vec_u8 { (*obj).serialized_document } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_data_contracts_DataContractFFI_set_version<>(obj: *const platform_mobile_data_contracts_DataContractFFI) -> u32 { (*obj).version } + #[no_mangle] + pub unsafe extern "C" fn dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0_set_vote_tally<>(obj: *const dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut u32 { (*obj).vote_tally } + } - #[doc = "FFI-representation of the [`platform_mobile::data_contracts::fetch_data_contract`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_data_contracts_fetch_data_contract(rust_sdk: *mut platform_mobile::sdk::DashSdk, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::generics::Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { - let obj = platform_mobile::data_contracts::fetch_data_contract(rust_sdk, >::ffi_from(data_contract_id)); - , String>>>::ffi_to(obj) + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } + } } } - pub mod clone { + pub mod shielded { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::clone::ContestedResources_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_ContestedResources_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResources) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResources { - let obj = platform_mobile::clone::ContestedResources_clone(>::ffi_from(o)); - >::ffi_to(obj) - } + pub mod compute_minimum_shielded_fee { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::clone::Vote_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Vote_clone(o: *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote) -> *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote { - let obj = platform_mobile::clone::Vote_clone(>::ffi_from(o)); - >::ffi_to(obj) + pub mod v0 { use crate as dash_sdk_bindings; } } - #[doc = "FFI-representation of the [`platform_mobile::clone::Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_clone(o: *mut crate::fermented::generics::Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) -> *mut crate::fermented::generics::Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { - let obj = platform_mobile::clone::Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_clone()>>::ffi_from(o)); - )>>::ffi_to(obj) - } + pub mod sighash { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::clone::Revision_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Revision_clone(revision: *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_Revision { - let obj = platform_mobile::clone::Revision_clone(>::ffi_from(revision)); - >::ffi_to(obj) + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } } - #[doc = "FFI-representation of the [`platform_mobile::clone::ResourceVotesByIdentity_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_ResourceVotesByIdentity_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ResourceVotesByIdentity) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ResourceVotesByIdentity { - let obj = platform_mobile::clone::ResourceVotesByIdentity_clone(>::ffi_from(o)); - >::ffi_to(obj) - } + pub mod memo { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`platform_mobile::clone::TimestampMillis_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_TimestampMillis_clone(time: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis { - let obj = platform_mobile::clone::TimestampMillis_clone(>::ffi_from(time)); - >::ffi_to(obj) - } + #[cfg(feature = "shielded-client")] + pub mod builder { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::clone::ResourceVoteChoice_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_ResourceVoteChoice_clone(o: *mut crate::fermented::types::dpp::voting::vote_choices::resource_vote_choice::dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice) -> *mut crate::fermented::types::dpp::voting::vote_choices::resource_vote_choice::dpp_voting_vote_choices_resource_vote_choice_ResourceVoteChoice { - let obj = platform_mobile::clone::ResourceVoteChoice_clone(>::ffi_from(o)); - >::ffi_to(obj) - } + pub mod shielded_transfer { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`platform_mobile::clone::Arr_u8_32_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Arr_u8_32_clone(slice: *mut crate::fermented::generics::Arr_u8_32) -> *mut crate::fermented::generics::Arr_u8_32 { - let obj = platform_mobile::clone::Arr_u8_32_clone(>::ffi_from(slice)); - >::ffi_to(obj) - } + pub mod identity_create_from_shielded_pool { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`platform_mobile::clone::Voters_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Voters_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Voters) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Voters { - let obj = platform_mobile::clone::Voters_clone(>::ffi_from(o)); - >::ffi_to(obj) - } + pub mod shielded_withdrawal { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`platform_mobile::clone::ContestedDocumentResourceVotePoll_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_ContestedDocumentResourceVotePoll_clone(o: *mut crate::fermented::types::dpp::voting::vote_polls::contested_document_resource_vote_poll::dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll) -> *mut crate::fermented::types::dpp::voting::vote_polls::contested_document_resource_vote_poll::dpp_voting_vote_polls_contested_document_resource_vote_poll_ContestedDocumentResourceVotePoll { - let obj = platform_mobile::clone::ContestedDocumentResourceVotePoll_clone(>::ffi_from(o)); - >::ffi_to(obj) - } + pub mod unshield { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`platform_mobile::clone::std_collections_Map_keys_String_values_platform_value_Value_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_std_collections_Map_keys_String_values_platform_value_Value_clone(map: *mut crate::fermented::generics::std_collections_Map_keys_String_values_platform_value_Value) -> *mut crate::fermented::generics::std_collections_Map_keys_String_values_platform_value_Value { - let obj = platform_mobile::clone::std_collections_Map_keys_String_values_platform_value_Value_clone(>>::ffi_from(map)); - >>::ffi_to(obj) - } + pub mod shield_from_asset_lock { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`platform_mobile::clone::Value_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Value_clone(value: *mut crate::fermented::types::platform_value::platform_value_Value) -> *mut crate::fermented::types::platform_value::platform_value_Value { - let obj = platform_mobile::clone::Value_clone(>::ffi_from(value)); - >::ffi_to(obj) + pub mod shield { use crate as dash_sdk_bindings; } } + } - #[doc = "FFI-representation of the [`platform_mobile::clone::ContenderWithSerializedDocument_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_ContenderWithSerializedDocument_clone(o: *mut crate::fermented::types::dpp::voting::contender_structs::contender::dpp_voting_contender_structs_contender_ContenderWithSerializedDocument) -> *mut crate::fermented::types::dpp::voting::contender_structs::contender::dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { - let obj = platform_mobile::clone::ContenderWithSerializedDocument_clone(>::ffi_from(o)); - >::ffi_to(obj) - } + pub mod asset_lock { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::clone::ResourceVote_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_ResourceVote_clone(o: *mut crate::fermented::types::dpp::voting::votes::resource_vote::dpp_voting_votes_resource_vote_ResourceVote) -> *mut crate::fermented::types::dpp::voting::votes::resource_vote::dpp_voting_votes_resource_vote_ResourceVote { - let obj = platform_mobile::clone::ResourceVote_clone(>::ffi_from(o)); - >::ffi_to(obj) - } + pub mod reduced_asset_lock_value { use crate as dash_sdk_bindings; } + } - #[doc = "FFI-representation of the [`platform_mobile::clone::prelude_TimestampMillis_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_prelude_TimestampMillis_clone(time: *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis { - let obj = platform_mobile::clone::prelude_TimestampMillis_clone(>::ffi_from(time)); - >::ffi_to(obj) + pub mod prelude { + use crate as dash_sdk_bindings; + + #[doc = "FFI-representation of the [`Revision`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_prelude_Revision(u64); + + impl ferment::FFIConversionFrom for dpp_prelude_Revision { + unsafe fn ffi_from_const(ffi: *const dpp_prelude_Revision) -> dpp::prelude::Revision { + let ffi_ref = &*ffi; + ffi_ref.0 + } } - #[doc = "FFI-representation of the [`platform_mobile::clone::WhereOperator_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_WhereOperator_clone(o: *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereOperator) -> *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereOperator { - let obj = platform_mobile::clone::WhereOperator_clone(>::ffi_from(o)); - >::ffi_to(obj) + impl ferment::FFIConversionTo for dpp_prelude_Revision { unsafe fn ffi_to_const(obj: dpp::prelude::Revision) -> *const dpp_prelude_Revision { ferment::boxed(dpp_prelude_Revision(obj)) } } + + impl Drop for dpp_prelude_Revision { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ; + } + } } - #[doc = "FFI-representation of the [`platform_mobile::clone::std_collections_BTreeSet_drive_proof_verifier_types_Voter_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_std_collections_BTreeSet_drive_proof_verifier_types_Voter_clone(o: *mut crate::fermented::generics::std_collections_BTreeSet_drive_proof_verifier_types_Voter) -> *mut crate::fermented::generics::std_collections_BTreeSet_drive_proof_verifier_types_Voter { - let obj = platform_mobile::clone::std_collections_BTreeSet_drive_proof_verifier_types_Voter_clone(>>::ffi_from(o)); - >>::ffi_to(obj) - } + pub unsafe extern "C" fn dpp_prelude_Revision_ctor<>(o_0: u64) -> *mut dpp_prelude_Revision { ferment::boxed(dpp_prelude_Revision(o_0)) } - #[doc = "FFI-representation of the [`platform_mobile::clone::VotePollsGroupedByTimestamp_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_VotePollsGroupedByTimestamp_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_VotePollsGroupedByTimestamp) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_VotePollsGroupedByTimestamp { - let obj = platform_mobile::clone::VotePollsGroupedByTimestamp_clone(>::ffi_from(o)); - >::ffi_to(obj) - } + pub unsafe extern "C" fn dpp_prelude_Revision_destroy<>(ffi: *mut dpp_prelude_Revision) { ferment::unbox_any(ffi); } - #[doc = "FFI-representation of the [`platform_mobile::clone::CoreBlockHeight_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_CoreBlockHeight_clone(height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { - let obj = platform_mobile::clone::CoreBlockHeight_clone(>::ffi_from(height)); - >::ffi_to(obj) - } + pub unsafe extern "C" fn dpp_prelude_Revision_get_0<>(obj: *const dpp_prelude_Revision) -> u64 { (*obj).0 } - #[doc = "FFI-representation of the [`platform_mobile::clone::Document_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Document_clone(document: *mut crate::fermented::types::dpp::document::dpp_document_Document) -> *mut crate::fermented::types::dpp::document::dpp_document_Document { - let obj = platform_mobile::clone::Document_clone(>::ffi_from(document)); - >::ffi_to(obj) + pub unsafe extern "C" fn dpp_prelude_Revision_set_0<>(obj: *const dpp_prelude_Revision) -> u64 { (*obj).0 } + + #[doc = "FFI-representation of the [`TimestampMillis`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_prelude_TimestampMillis(u64); + + impl ferment::FFIConversionFrom for dpp_prelude_TimestampMillis { + unsafe fn ffi_from_const(ffi: *const dpp_prelude_TimestampMillis) -> dpp::prelude::TimestampMillis { + let ffi_ref = &*ffi; + ffi_ref.0 + } } - #[doc = "FFI-representation of the [`platform_mobile::clone::ValueMap_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_ValueMap_clone(value_map: *mut crate::fermented::types::platform_value::value_map::platform_value_value_map_ValueMap) -> *mut crate::fermented::types::platform_value::value_map::platform_value_value_map_ValueMap { - let obj = platform_mobile::clone::ValueMap_clone(>::ffi_from(value_map)); - >::ffi_to(obj) + impl ferment::FFIConversionTo for dpp_prelude_TimestampMillis { unsafe fn ffi_to_const(obj: dpp::prelude::TimestampMillis) -> *const dpp_prelude_TimestampMillis { ferment::boxed(dpp_prelude_TimestampMillis(obj)) } } + + impl Drop for dpp_prelude_TimestampMillis { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ; + } + } } - #[doc = "FFI-representation of the [`platform_mobile::clone::DocumentV0_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_DocumentV0_clone(document: *mut crate::fermented::types::dpp::document::v0::dpp_document_v0_DocumentV0) -> *mut crate::fermented::types::dpp::document::v0::dpp_document_v0_DocumentV0 { - let obj = platform_mobile::clone::DocumentV0_clone(>::ffi_from(document)); - >::ffi_to(obj) - } + pub unsafe extern "C" fn dpp_prelude_TimestampMillis_ctor<>(o_0: u64) -> *mut dpp_prelude_TimestampMillis { ferment::boxed(dpp_prelude_TimestampMillis(o_0)) } - #[doc = "FFI-representation of the [`platform_mobile::clone::KeyID_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_KeyID_clone(id: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID { - let obj = platform_mobile::clone::KeyID_clone(>::ffi_from(id)); - >::ffi_to(obj) - } + pub unsafe extern "C" fn dpp_prelude_TimestampMillis_destroy<>(ffi: *mut dpp_prelude_TimestampMillis) { ferment::unbox_any(ffi); } - #[doc = "FFI-representation of the [`platform_mobile::clone::Arr_u8_36_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Arr_u8_36_clone(slice: *mut crate::fermented::generics::Arr_u8_36) -> *mut crate::fermented::generics::Arr_u8_36 { - let obj = platform_mobile::clone::Arr_u8_36_clone(>::ffi_from(slice)); - >::ffi_to(obj) - } + pub unsafe extern "C" fn dpp_prelude_TimestampMillis_get_0<>(obj: *const dpp_prelude_TimestampMillis) -> u64 { (*obj).0 } - #[doc = "FFI-representation of the [`platform_mobile::clone::Arr_u8_20_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Arr_u8_20_clone(slice: *mut crate::fermented::generics::Arr_u8_20) -> *mut crate::fermented::generics::Arr_u8_20 { - let obj = platform_mobile::clone::Arr_u8_20_clone(>::ffi_from(slice)); - >::ffi_to(obj) + pub unsafe extern "C" fn dpp_prelude_TimestampMillis_set_0<>(obj: *const dpp_prelude_TimestampMillis) -> u64 { (*obj).0 } + + #[doc = "FFI-representation of the [`CoreBlockHeight`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_prelude_CoreBlockHeight(u32); + + impl ferment::FFIConversionFrom for dpp_prelude_CoreBlockHeight { + unsafe fn ffi_from_const(ffi: *const dpp_prelude_CoreBlockHeight) -> dpp::prelude::CoreBlockHeight { + let ffi_ref = &*ffi; + ffi_ref.0 + } } - #[doc = "FFI-representation of the [`platform_mobile::clone::Contenders_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Contenders_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Contenders) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Contenders { - let obj = platform_mobile::clone::Contenders_clone(>::ffi_from(o)); - >::ffi_to(obj) + impl ferment::FFIConversionTo for dpp_prelude_CoreBlockHeight { unsafe fn ffi_to_const(obj: dpp::prelude::CoreBlockHeight) -> *const dpp_prelude_CoreBlockHeight { ferment::boxed(dpp_prelude_CoreBlockHeight(obj)) } } + + impl Drop for dpp_prelude_CoreBlockHeight { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ; + } + } } - #[doc = "FFI-representation of the [`platform_mobile::clone::Vec_u8_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Vec_u8_clone(vec: *mut crate::fermented::generics::Vec_u8) -> *mut crate::fermented::generics::Vec_u8 { - let obj = platform_mobile::clone::Vec_u8_clone(>>::ffi_from(vec)); - >>::ffi_to(obj) - } + pub unsafe extern "C" fn dpp_prelude_CoreBlockHeight_ctor<>(o_0: u32) -> *mut dpp_prelude_CoreBlockHeight { ferment::boxed(dpp_prelude_CoreBlockHeight(o_0)) } - #[doc = "FFI-representation of the [`platform_mobile::clone::BlockHeight_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_BlockHeight_clone(height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { - let obj = platform_mobile::clone::BlockHeight_clone(>::ffi_from(height)); - >::ffi_to(obj) - } + pub unsafe extern "C" fn dpp_prelude_CoreBlockHeight_destroy<>(ffi: *mut dpp_prelude_CoreBlockHeight) { ferment::unbox_any(ffi); } - #[doc = "FFI-representation of the [`platform_mobile::clone::ContenderWithSerializedDocumentV0_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_ContenderWithSerializedDocumentV0_clone(o: *mut crate::fermented::types::dpp::voting::contender_structs::contender::v0::dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0) -> *mut crate::fermented::types::dpp::voting::contender_structs::contender::v0::dpp_voting_contender_structs_contender_v0_ContenderWithSerializedDocumentV0 { - let obj = platform_mobile::clone::ContenderWithSerializedDocumentV0_clone(>::ffi_from(o)); - >::ffi_to(obj) - } + pub unsafe extern "C" fn dpp_prelude_CoreBlockHeight_get_0<>(obj: *const dpp_prelude_CoreBlockHeight) -> u32 { (*obj).0 } - #[doc = "FFI-representation of the [`platform_mobile::clone::ResourceVoteV0_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_ResourceVoteV0_clone(o: *mut crate::fermented::types::dpp::voting::votes::resource_vote::v0::dpp_voting_votes_resource_vote_v0_ResourceVoteV0) -> *mut crate::fermented::types::dpp::voting::votes::resource_vote::v0::dpp_voting_votes_resource_vote_v0_ResourceVoteV0 { - let obj = platform_mobile::clone::ResourceVoteV0_clone(>::ffi_from(o)); - >::ffi_to(obj) + pub unsafe extern "C" fn dpp_prelude_CoreBlockHeight_set_0<>(obj: *const dpp_prelude_CoreBlockHeight) -> u32 { (*obj).0 } + + #[doc = "FFI-representation of the [`BlockHeight`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_prelude_BlockHeight(u64); + + impl ferment::FFIConversionFrom for dpp_prelude_BlockHeight { + unsafe fn ffi_from_const(ffi: *const dpp_prelude_BlockHeight) -> dpp::prelude::BlockHeight { + let ffi_ref = &*ffi; + ffi_ref.0 + } } - #[doc = "FFI-representation of the [`platform_mobile::clone::Vec_Value_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Vec_Value_clone(value_vec: *mut crate::fermented::generics::Vec_platform_value_Value) -> *mut crate::fermented::generics::Vec_platform_value_Value { - let obj = platform_mobile::clone::Vec_Value_clone(>>::ffi_from(value_vec)); - >>::ffi_to(obj) + impl ferment::FFIConversionTo for dpp_prelude_BlockHeight { unsafe fn ffi_to_const(obj: dpp::prelude::BlockHeight) -> *const dpp_prelude_BlockHeight { ferment::boxed(dpp_prelude_BlockHeight(obj)) } } + + impl Drop for dpp_prelude_BlockHeight { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ; + } + } } - #[doc = "FFI-representation of the [`platform_mobile::clone::VotePoll_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_VotePoll_clone(o: *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll) -> *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll { - let obj = platform_mobile::clone::VotePoll_clone(>::ffi_from(o)); - >::ffi_to(obj) - } + pub unsafe extern "C" fn dpp_prelude_BlockHeight_ctor<>(o_0: u64) -> *mut dpp_prelude_BlockHeight { ferment::boxed(dpp_prelude_BlockHeight(o_0)) } - #[doc = "FFI-representation of the [`platform_mobile::clone::Voter_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Voter_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Voter) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Voter { - let obj = platform_mobile::clone::Voter_clone(>::ffi_from(o)); - >::ffi_to(obj) - } + pub unsafe extern "C" fn dpp_prelude_BlockHeight_destroy<>(ffi: *mut dpp_prelude_BlockHeight) { ferment::unbox_any(ffi); } - #[doc = "FFI-representation of the [`platform_mobile::clone::OrderClause_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_OrderClause_clone(o: *mut crate::fermented::types::drive::query::ordering::drive_query_ordering_OrderClause) -> *mut crate::fermented::types::drive::query::ordering::drive_query_ordering_OrderClause { - let obj = platform_mobile::clone::OrderClause_clone(>::ffi_from(o)); - >::ffi_to(obj) - } + pub unsafe extern "C" fn dpp_prelude_BlockHeight_get_0<>(obj: *const dpp_prelude_BlockHeight) -> u64 { (*obj).0 } - #[doc = "FFI-representation of the [`platform_mobile::clone::ContestedResource_clone`]"] #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_ContestedResource_clone(o: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResource) -> *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResource { - let obj = platform_mobile::clone::ContestedResource_clone(>::ffi_from(o)); - >::ffi_to(obj) + pub unsafe extern "C" fn dpp_prelude_BlockHeight_set_0<>(obj: *const dpp_prelude_BlockHeight) -> u64 { (*obj).0 } + } + + pub mod util { + use crate as dash_sdk_bindings; + + pub mod json_path { use crate as dash_sdk_bindings; } + + pub mod json_value { + use crate as dash_sdk_bindings; + + pub mod remove_path { use crate as dash_sdk_bindings; } + + pub mod insert_with_path { use crate as dash_sdk_bindings; } } - #[doc = "FFI-representation of the [`platform_mobile::clone::WhereClause_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_WhereClause_clone(o: *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereClause) -> *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereClause { - let obj = platform_mobile::clone::WhereClause_clone(>::ffi_from(o)); - >::ffi_to(obj) + #[cfg(feature = "cbor")] + pub mod cbor_value { + use crate as dash_sdk_bindings; + + pub mod convert { use crate as dash_sdk_bindings; } + + pub mod map { use crate as dash_sdk_bindings; } + + pub mod canonical { use crate as dash_sdk_bindings; } } - #[doc = "FFI-representation of the [`platform_mobile::clone::Hash256_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_clone_Hash256_clone(o: *mut crate::fermented::types::platform_value::platform_value_Hash256) -> *mut crate::fermented::types::platform_value::platform_value_Hash256 { - let obj = platform_mobile::clone::Hash256_clone(>::ffi_from(o)); - >::ffi_to(obj) + pub mod strings { + use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } } + + pub mod is_non_zero_fibonacci_number { use crate as dash_sdk_bindings; } + + pub mod vec { use crate as dash_sdk_bindings; } + + pub mod deserializer { use crate as dash_sdk_bindings; } + + pub mod json_schema { use crate as dash_sdk_bindings; } } - pub mod operators { + pub mod block { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::operators::Value_hash`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_operators_Value_hash(a: *mut crate::fermented::types::platform_value::platform_value_Value) -> i32 { - let obj = platform_mobile::operators::Value_hash(>::ffi_from(a)); - obj - } + pub mod epoch { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::operators::Value_eq`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_operators_Value_eq(a: *mut crate::fermented::types::platform_value::platform_value_Value, b: *mut crate::fermented::types::platform_value::platform_value_Value) -> bool { - let obj = platform_mobile::operators::Value_eq(>::ffi_from(a), >::ffi_from(b)); - obj + #[doc = "FFI-representation of the [`EpochIndex`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_block_epoch_EpochIndex(u16); + + impl ferment::FFIConversionFrom for dpp_block_epoch_EpochIndex { + unsafe fn ffi_from_const(ffi: *const dpp_block_epoch_EpochIndex) -> dpp::block::epoch::EpochIndex { + let ffi_ref = &*ffi; + ffi_ref.0 + } + } + + impl ferment::FFIConversionTo for dpp_block_epoch_EpochIndex { unsafe fn ffi_to_const(obj: dpp::block::epoch::EpochIndex) -> *const dpp_block_epoch_EpochIndex { ferment::boxed(dpp_block_epoch_EpochIndex(obj)) } } + + impl Drop for dpp_block_epoch_EpochIndex { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ; + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn dpp_block_epoch_EpochIndex_ctor<>(o_0: u16) -> *mut dpp_block_epoch_EpochIndex { ferment::boxed(dpp_block_epoch_EpochIndex(o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_block_epoch_EpochIndex_destroy<>(ffi: *mut dpp_block_epoch_EpochIndex) { ferment::unbox_any(ffi); } + + #[no_mangle] + pub unsafe extern "C" fn dpp_block_epoch_EpochIndex_get_0<>(obj: *const dpp_block_epoch_EpochIndex) -> u16 { (*obj).0 } + + #[no_mangle] + pub unsafe extern "C" fn dpp_block_epoch_EpochIndex_set_0<>(obj: *const dpp_block_epoch_EpochIndex) -> u16 { (*obj).0 } + + #[doc = "FFI-representation of the [`Epoch`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_block_epoch_Epoch { + pub index: *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_EpochIndex, + pub key: *mut crate::fermented::generics::Arr_u8_2, + } + + impl ferment::FFIConversionFrom for dpp_block_epoch_Epoch { + unsafe fn ffi_from_const(ffi: *const dpp_block_epoch_Epoch) -> dpp::block::epoch::Epoch { + let ffi_ref = &*ffi; + dpp::block::epoch::Epoch { index: >::ffi_from(ffi_ref.index), key: >::ffi_from(ffi_ref.key) } + } + } + + impl ferment::FFIConversionTo for dpp_block_epoch_Epoch { unsafe fn ffi_to_const(obj: dpp::block::epoch::Epoch) -> *const dpp_block_epoch_Epoch { ferment::boxed(dpp_block_epoch_Epoch { index: >::ffi_to(obj.index), key: >::ffi_to(obj.key) }) } } + + impl Drop for dpp_block_epoch_Epoch { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.index); + ferment::unbox_any(ffi_ref.key); + } + } + } + + #[no_mangle] + pub unsafe extern "C" fn dpp_block_epoch_Epoch_ctor<>(index: *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_EpochIndex, key: *mut crate::fermented::generics::Arr_u8_2) -> *mut dpp_block_epoch_Epoch { ferment::boxed(dpp_block_epoch_Epoch { index, key }) } + + #[no_mangle] + pub unsafe extern "C" fn dpp_block_epoch_Epoch_destroy<>(ffi: *mut dpp_block_epoch_Epoch) { ferment::unbox_any(ffi); } + + #[no_mangle] + pub unsafe extern "C" fn dpp_block_epoch_Epoch_get_index<>(obj: *const dpp_block_epoch_Epoch) -> *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_EpochIndex { (*obj).index } + + #[no_mangle] + pub unsafe extern "C" fn dpp_block_epoch_Epoch_get_key<>(obj: *const dpp_block_epoch_Epoch) -> *mut crate::fermented::generics::Arr_u8_2 { (*obj).key } + + #[no_mangle] + pub unsafe extern "C" fn dpp_block_epoch_Epoch_set_index<>(obj: *const dpp_block_epoch_Epoch) -> *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_EpochIndex { (*obj).index } + + #[no_mangle] + pub unsafe extern "C" fn dpp_block_epoch_Epoch_set_key<>(obj: *const dpp_block_epoch_Epoch) -> *mut crate::fermented::generics::Arr_u8_2 { (*obj).key } } - } - pub mod identity { - use crate as dash_sdk_bindings; + pub mod finalized_epoch_info { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::identity::IdentityPublicKey_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_identity_IdentityPublicKey_clone(identity_public_key: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey) -> *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey { - let obj = platform_mobile::identity::IdentityPublicKey_clone(>::ffi_from(identity_public_key)); - >::ffi_to(obj) + pub mod v0 { use crate as dash_sdk_bindings; } } - #[doc = "FFI-representation of the [`platform_mobile::identity::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_identity_std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey_clone(public_keys: *mut crate::fermented::generics::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey) -> *mut crate::fermented::generics::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { - let obj = platform_mobile::identity::std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey_clone(>>::ffi_from(public_keys)); - >>::ffi_to(obj) - } + pub mod block_info { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::identity::Identity_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_identity_Identity_clone(identity: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity) -> *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity { - let obj = platform_mobile::identity::Identity_clone(>::ffi_from(identity)); - >::ffi_to(obj) - } + #[doc = "FFI-representation of the [`BlockInfo`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dpp_block_block_info_BlockInfo { + pub time_ms: *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis, + pub height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, + pub core_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, + pub epoch: *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_Epoch, + } - #[doc = "FFI-representation of the [`platform_mobile::identity::create_basic_identity`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_identity_create_basic_identity(id: *mut crate::fermented::generics::Arr_u8_32) -> *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity { - let obj = platform_mobile::identity::create_basic_identity(>::ffi_from(id)); - >::ffi_to(obj) - } + impl ferment::FFIConversionFrom for dpp_block_block_info_BlockInfo { + unsafe fn ffi_from_const(ffi: *const dpp_block_block_info_BlockInfo) -> dpp::block::block_info::BlockInfo { + let ffi_ref = &*ffi; + dpp::block::block_info::BlockInfo { time_ms: >::ffi_from(ffi_ref.time_ms), height: >::ffi_from(ffi_ref.height), core_height: >::ffi_from(ffi_ref.core_height), epoch: >::ffi_from(ffi_ref.epoch) } + } + } - #[doc = "FFI-representation of the [`platform_mobile::identity::Identifier_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_identity_Identifier_clone(identifier: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier { - let obj = platform_mobile::identity::Identifier_clone(>::ffi_from(identifier)); - >::ffi_to(obj) - } + impl ferment::FFIConversionTo for dpp_block_block_info_BlockInfo { unsafe fn ffi_to_const(obj: dpp::block::block_info::BlockInfo) -> *const dpp_block_block_info_BlockInfo { ferment::boxed(dpp_block_block_info_BlockInfo { time_ms: >::ffi_to(obj.time_ms), height: >::ffi_to(obj.height), core_height: >::ffi_to(obj.core_height), epoch: >::ffi_to(obj.epoch) }) } } - #[doc = "FFI-representation of the [`platform_mobile::identity::IdentityV0_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_identity_IdentityV0_clone(identity: *mut crate::fermented::types::dpp::identity::v0::dpp_identity_v0_IdentityV0) -> *mut crate::fermented::types::dpp::identity::v0::dpp_identity_v0_IdentityV0 { - let obj = platform_mobile::identity::IdentityV0_clone(>::ffi_from(identity)); - >::ffi_to(obj) - } + impl Drop for dpp_block_block_info_BlockInfo { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.time_ms); + ferment::unbox_any(ffi_ref.height); + ferment::unbox_any(ffi_ref.core_height); + ferment::unbox_any(ffi_ref.epoch); + } + } + } - #[doc = "FFI-representation of the [`platform_mobile::identity::IdentityPublicKeyV0_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_identity_IdentityPublicKeyV0_clone(identity_public_key: *mut crate::fermented::types::dpp::identity::identity_public_key::v0::dpp_identity_identity_public_key_v0_IdentityPublicKeyV0) -> *mut crate::fermented::types::dpp::identity::identity_public_key::v0::dpp_identity_identity_public_key_v0_IdentityPublicKeyV0 { - let obj = platform_mobile::identity::IdentityPublicKeyV0_clone(>::ffi_from(identity_public_key)); - >::ffi_to(obj) - } + #[no_mangle] + pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_ctor<>(time_ms: *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis, height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, core_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, epoch: *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_Epoch) -> *mut dpp_block_block_info_BlockInfo { ferment::boxed(dpp_block_block_info_BlockInfo { time_ms, height, core_height, epoch }) } - #[doc = "FFI-representation of the [`platform_mobile::identity::get_identity_contract_bounds`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_identity_get_identity_contract_bounds(identifier: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, contract_identifier: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity { - let obj = platform_mobile::identity::get_identity_contract_bounds(>::ffi_from(identifier), >::ffi_from_opt(contract_identifier)); - >::ffi_to(obj) - } + #[no_mangle] + pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_destroy<>(ffi: *mut dpp_block_block_info_BlockInfo) { ferment::unbox_any(ffi); } - #[doc = "FFI-representation of the [`platform_mobile::identity::get_identity2`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_identity_get_identity2(identifier: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity { - let obj = platform_mobile::identity::get_identity2(>::ffi_from(identifier)); - >::ffi_to(obj) - } - } + #[no_mangle] + pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_get_time_ms<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis { (*obj).time_ms } - pub mod sdk { - use crate as dash_sdk_bindings; + #[no_mangle] + pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_get_height<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).height } - #[doc = "FFI-representation of the [`platform_mobile::sdk::destroy_dash_sdk`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_sdk_destroy_dash_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk) { - let obj = platform_mobile::sdk::destroy_dash_sdk(rust_sdk); - ; - } + #[no_mangle] + pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_get_core_height<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).core_height } - #[doc = "FFI-representation of the [`platform_mobile::sdk::create_dash_sdk_with_context`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_sdk_create_dash_sdk_with_context(context_provider_context: usize, quorum_public_key_callback: u64, data_contract_callback: u64, is_testnet: bool, connect_timeout: usize, timeout: usize, retries: usize) -> *mut platform_mobile::sdk::DashSdk { - let obj = platform_mobile::sdk::create_dash_sdk_with_context(context_provider_context, quorum_public_key_callback, data_contract_callback, is_testnet, connect_timeout, timeout, retries); - ferment::boxed(obj) - } + #[no_mangle] + pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_get_epoch<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_Epoch { (*obj).epoch } - #[doc = "FFI-representation of the [`platform_mobile::sdk::create_dash_sdk_using_single_evonode`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_sdk_create_dash_sdk_using_single_evonode(evonode: *mut std::os::raw::c_char, quorum_public_key_callback: u64, data_contract_callback: u64, is_testnet: bool) -> *mut platform_mobile::sdk::DashSdk { - let obj = platform_mobile::sdk::create_dash_sdk_using_single_evonode(>::ffi_from(evonode), quorum_public_key_callback, data_contract_callback, is_testnet); - ferment::boxed(obj) + #[no_mangle] + pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_set_time_ms<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis { (*obj).time_ms } + + #[no_mangle] + pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_set_height<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight { (*obj).height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_set_core_height<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight { (*obj).core_height } + + #[no_mangle] + pub unsafe extern "C" fn dpp_block_block_info_BlockInfo_set_epoch<>(obj: *const dpp_block_block_info_BlockInfo) -> *mut crate::fermented::types::dpp::block::epoch::dpp_block_epoch_Epoch { (*obj).epoch } } - #[doc = "FFI-representation of the [`platform_mobile::sdk::create_dash_sdk`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_sdk_create_dash_sdk(quorum_public_key_callback: u64, data_contract_callback: u64, is_testnet: bool) -> *mut platform_mobile::sdk::DashSdk { - let obj = platform_mobile::sdk::create_dash_sdk(quorum_public_key_callback, data_contract_callback, is_testnet); - ferment::boxed(obj) + pub mod extended_block_info { + use crate as dash_sdk_bindings; + + pub mod v0 { use crate as dash_sdk_bindings; } } + + pub mod extended_epoch_info { use crate as dash_sdk_bindings; } } - pub mod voting { + pub mod tokens { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::voting::get_vote_contenders`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_voting_get_vote_contenders(rust_sdk: *mut platform_mobile::sdk::DashSdk, index_name: *mut std::os::raw::c_char, index_values: *mut crate::fermented::generics::Vec_platform_value_Value, document_type_name: *mut std::os::raw::c_char, contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::generics::Result_ok_drive_proof_verifier_types_Contenders_err_String { - let obj = platform_mobile::voting::get_vote_contenders(rust_sdk, >::ffi_from(index_name), >>::ffi_from(index_values), >::ffi_from(document_type_name), >::ffi_from(contract_id)); - >>::ffi_to(obj) - } + pub mod info { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`platform_mobile::voting::put_vote_to_platform`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_voting_put_vote_to_platform(rust_sdk: *mut platform_mobile::sdk::DashSdk, vote: *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote, voter_pro_tx_hash: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, voting_public_key: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey, signer_context: usize, signer_callback: u64) -> *mut crate::fermented::generics::Result_ok_dpp_voting_votes_Vote_err_String { - let obj = platform_mobile::voting::put_vote_to_platform(rust_sdk, >::ffi_from(vote), >::ffi_from(voter_pro_tx_hash), >::ffi_from(voting_public_key), signer_context, signer_callback); - >>::ffi_to(obj) - } + pub mod contract_info { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`platform_mobile::voting::get_votes`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_voting_get_votes(rust_sdk: *mut platform_mobile::sdk::DashSdk, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::generics::Result_ok_Option_dpp_voting_votes_Vote_err_String { - let obj = platform_mobile::voting::get_votes(rust_sdk, >::ffi_from(data_contract_id)); - , String>>>::ffi_to(obj) - } + pub mod token_payment_info { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::voting::get_vote_polls`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_voting_get_vote_polls(rust_sdk: *mut platform_mobile::sdk::DashSdk, start_time: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, start_time_included: bool, end_time: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_TimestampMillis, end_time_included: bool, limit: u16, offset: u16, order_ascending: bool) -> *mut crate::fermented::generics::Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { - let obj = platform_mobile::voting::get_vote_polls(rust_sdk, >::ffi_from(start_time), start_time_included, >::ffi_from(end_time), end_time_included, limit, offset, order_ascending); - >>::ffi_to(obj) - } + pub mod methods { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`platform_mobile::voting::get_last_vote_from_masternode`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_voting_get_last_vote_from_masternode(rust_sdk: *mut platform_mobile::sdk::DashSdk, masternode_protxhash: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, index_name: *mut std::os::raw::c_char, index_values: *mut crate::fermented::generics::Vec_platform_value_Value, document_type_name: *mut std::os::raw::c_char, contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::generics::Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { - let obj = platform_mobile::voting::get_last_vote_from_masternode(rust_sdk, >::ffi_from(masternode_protxhash), >::ffi_from(index_name), >>::ffi_from(index_values), >::ffi_from(document_type_name), >::ffi_from(contract_id)); - >>::ffi_to(obj) + pub mod v0 { use crate as dash_sdk_bindings; } } - #[doc = "FFI-representation of the [`platform_mobile::voting::get_contested_resources`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_voting_get_contested_resources(rust_sdk: *mut platform_mobile::sdk::DashSdk, document_type_name: *mut std::os::raw::c_char, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, limit: u16, start_at: *mut crate::fermented::types::platform_value::platform_value_Value, start_at_include: bool) -> *mut crate::fermented::generics::Result_ok_drive_proof_verifier_types_ContestedResources_err_String { - let obj = platform_mobile::voting::get_contested_resources(rust_sdk, >::ffi_from(document_type_name), >::ffi_from(data_contract_id), limit, >::ffi_from_opt(start_at), start_at_include); - >>::ffi_to(obj) - } + pub mod status { use crate as dash_sdk_bindings; } + + pub mod token_pricing_schedule { use crate as dash_sdk_bindings; } + + pub mod token_event { use crate as dash_sdk_bindings; } } - pub mod put { + pub mod serialization { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`AssetLockProofFFI`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum platform_mobile_put_AssetLockProofFFI { Instant(*mut crate::fermented::types::platform_mobile::put::platform_mobile_put_InstantAssetLockProofFFI), Chain(*mut crate::fermented::types::platform_mobile::put::platform_mobile_put_ChainAssetLockProofFFI) } - - impl ferment::FFIConversionFrom for platform_mobile_put_AssetLockProofFFI { - unsafe fn ffi_from_const(ffi: *const platform_mobile_put_AssetLockProofFFI) -> platform_mobile::put::AssetLockProofFFI { - let ffi_ref = &*ffi; - match ffi_ref { - platform_mobile_put_AssetLockProofFFI::Instant(o_0) => platform_mobile::put::AssetLockProofFFI::Instant(>::ffi_from(*o_0)), - platform_mobile_put_AssetLockProofFFI::Chain(o_0) => platform_mobile::put::AssetLockProofFFI::Chain(>::ffi_from(*o_0)) - } - } + #[cfg(feature = "serde-conversion")] + pub mod serde_bytes { + use crate as dash_sdk_bindings; } - impl ferment::FFIConversionTo for platform_mobile_put_AssetLockProofFFI { - unsafe fn ffi_to_const(obj: platform_mobile::put::AssetLockProofFFI) -> *const platform_mobile_put_AssetLockProofFFI { - ferment::boxed(match obj { - platform_mobile::put::AssetLockProofFFI::Instant(o_0) => platform_mobile_put_AssetLockProofFFI::Instant(>::ffi_to(o_0)), - platform_mobile::put::AssetLockProofFFI::Chain(o_0) => platform_mobile_put_AssetLockProofFFI::Chain(>::ffi_to(o_0)), - _ => unreachable!("This is unreachable") - }) - } + #[cfg(feature = "serde-conversion")] + pub mod serde_bytes_var { + use crate as dash_sdk_bindings; } - impl Drop for platform_mobile_put_AssetLockProofFFI { - fn drop(&mut self) { - unsafe { - match self { - platform_mobile_put_AssetLockProofFFI::Instant(o_0) => { ferment::unbox_any(*o_0); } - platform_mobile_put_AssetLockProofFFI::Chain(o_0) => { ferment::unbox_any(*o_0); } - _ => unreachable!("This is unreachable") - }; - } - } + #[cfg(feature = "json-conversion")] + pub mod json { + use crate as dash_sdk_bindings; + + pub mod safe_integer { use crate as dash_sdk_bindings; } + + pub mod safe_integer_map { use crate as dash_sdk_bindings; } } + } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_AssetLockProofFFI_Instant_ctor(o_o_0: *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_InstantAssetLockProofFFI) -> *mut platform_mobile_put_AssetLockProofFFI { ferment::boxed(platform_mobile_put_AssetLockProofFFI::Instant(o_o_0)) } + pub mod group { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_AssetLockProofFFI_Chain_ctor(o_o_0: *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_ChainAssetLockProofFFI) -> *mut platform_mobile_put_AssetLockProofFFI { ferment::boxed(platform_mobile_put_AssetLockProofFFI::Chain(o_o_0)) } + pub mod group_action { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_AssetLockProofFFI_destroy<>(ffi: *mut platform_mobile_put_AssetLockProofFFI) { ferment::unbox_any(ffi); } + #[cfg(feature = "fixtures-and-mocks")] + pub mod tests { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::put::put_document_sdk`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_put_document_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, document: *mut crate::fermented::types::dpp::document::dpp_document_Document, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type_str: *mut std::os::raw::c_char, identity_public_key: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey, block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, signer_context: usize, signer_callback: u64) -> *mut crate::fermented::generics::Result_ok_dpp_document_Document_err_String { - let obj = platform_mobile::put::put_document_sdk(rust_sdk, >::ffi_from(document), >::ffi_from(data_contract_id), >::ffi_from(document_type_str), >::ffi_from(identity_public_key), >::ffi_from(block_height), >::ffi_from(core_block_height), signer_context, signer_callback); - >>::ffi_to(obj) - } + pub mod fixtures { use crate as dash_sdk_bindings; } + } - #[doc = "FFI-representation of the [`platform_mobile::put::replace_document_sdk`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_replace_document_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, document: *mut crate::fermented::types::dpp::document::dpp_document_Document, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type_str: *mut std::os::raw::c_char, identity_public_key: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey, block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_BlockHeight, core_block_height: *mut crate::fermented::types::dpp::prelude::dpp_prelude_CoreBlockHeight, signer_context: usize, signer_callback: u64) -> *mut crate::fermented::generics::Result_ok_dpp_document_Document_err_String { - let obj = platform_mobile::put::replace_document_sdk(rust_sdk, >::ffi_from(document), >::ffi_from(data_contract_id), >::ffi_from(document_type_str), >::ffi_from(identity_public_key), >::ffi_from(block_height), >::ffi_from(core_block_height), signer_context, signer_callback); - >>::ffi_to(obj) - } + pub mod validation { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::put::InstantAssetLockProofFFI_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_clone(a: *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_InstantAssetLockProofFFI) -> *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_InstantAssetLockProofFFI { - let obj = platform_mobile::put::InstantAssetLockProofFFI_clone(>::ffi_from(a)); - >::ffi_to(obj) - } + #[cfg(feature = "validation")] + pub mod json_schema_validator { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::put::topup_identity_sdk`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_topup_identity_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, identity: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, asset_lock_proof: *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_AssetLockProofFFI, asset_lock_proof_private_key: *mut crate::fermented::generics::Vec_u8, is_testnet: bool) -> *mut crate::fermented::generics::Result_ok_u64_err_String { - let obj = platform_mobile::put::topup_identity_sdk(rust_sdk, >::ffi_from(identity), >::ffi_from(asset_lock_proof), >>::ffi_from(asset_lock_proof_private_key), is_testnet); - >>::ffi_to(obj) - } + pub mod methods { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::put::put_identity_sdk`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_put_identity_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, identity: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, asset_lock_proof: *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_AssetLockProofFFI, asset_lock_proof_private_key: *mut crate::fermented::generics::Vec_u8, signer_context: usize, signer_callback: u64, is_testnet: bool) -> *mut crate::fermented::generics::Result_ok_dpp_identity_identity_Identity_err_String { - let obj = platform_mobile::put::put_identity_sdk(rust_sdk, >::ffi_from(identity), >::ffi_from(asset_lock_proof), >>::ffi_from(asset_lock_proof_private_key), signer_context, signer_callback, is_testnet); - >>::ffi_to(obj) - } + pub mod compile { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`ChainAssetLockProofFFI`]"] - #[repr(C)] - #[derive(Clone)] - pub struct platform_mobile_put_ChainAssetLockProofFFI { - pub core_chain_locked_height: u32, - pub out_point: *mut platform_mobile::custom::OutPoint, - } + pub mod new { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionFrom for platform_mobile_put_ChainAssetLockProofFFI { - unsafe fn ffi_from_const(ffi: *const platform_mobile_put_ChainAssetLockProofFFI) -> platform_mobile::put::ChainAssetLockProofFFI { - let ffi_ref = &*ffi; - platform_mobile::put::ChainAssetLockProofFFI { core_chain_locked_height: ffi_ref.core_chain_locked_height, out_point: >::ffi_from(ffi_ref.out_point) } + pub mod validate { use crate as dash_sdk_bindings; } } } - impl ferment::FFIConversionTo for platform_mobile_put_ChainAssetLockProofFFI { unsafe fn ffi_to_const(obj: platform_mobile::put::ChainAssetLockProofFFI) -> *const platform_mobile_put_ChainAssetLockProofFFI { ferment::boxed(platform_mobile_put_ChainAssetLockProofFFI { core_chain_locked_height: obj.core_chain_locked_height, out_point: >::ffi_to(obj.out_point) }) } } + #[cfg(feature = "validation")] + pub mod byte_array_keyword { + use crate as dash_sdk_bindings; - impl Drop for platform_mobile_put_ChainAssetLockProofFFI { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ; - ferment::unbox_any(ffi_ref.out_point); - } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; } } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_ctor<>(core_chain_locked_height: u32, out_point: *mut platform_mobile::custom::OutPoint) -> *mut platform_mobile_put_ChainAssetLockProofFFI { ferment::boxed(platform_mobile_put_ChainAssetLockProofFFI { core_chain_locked_height, out_point }) } - - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_destroy<>(ffi: *mut platform_mobile_put_ChainAssetLockProofFFI) { ferment::unbox_any(ffi); } + pub mod validation_result { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_get_core_chain_locked_height<>(obj: *const platform_mobile_put_ChainAssetLockProofFFI) -> u32 { (*obj).core_chain_locked_height } + pub mod flatten { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_get_out_point<>(obj: *const platform_mobile_put_ChainAssetLockProofFFI) -> *mut platform_mobile::custom::OutPoint { (*obj).out_point } + pub mod v1 { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_set_core_chain_locked_height<>(obj: *const platform_mobile_put_ChainAssetLockProofFFI) -> u32 { (*obj).core_chain_locked_height } + pub mod v0 { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_set_out_point<>(obj: *const platform_mobile_put_ChainAssetLockProofFFI) -> *mut platform_mobile::custom::OutPoint { (*obj).out_point } + pub mod merge_many { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::put::put_identity_update_sdk`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_put_identity_update_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, identity: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, master_public_key_id: *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID, add_public_keys: *mut crate::fermented::generics::Vec_dpp_identity_identity_public_key_IdentityPublicKey, disable_public_keys: *mut crate::fermented::generics::Vec_dpp_identity_identity_public_key_KeyID, signer_context: usize, signer_callback: u64) -> *mut crate::fermented::generics::Result_ok_dpp_identity_identity_Identity_err_String { - let obj = platform_mobile::put::put_identity_update_sdk(rust_sdk, >::ffi_from(identity), >::ffi_from(master_public_key_id), >>::ffi_from(add_public_keys), >>::ffi_from(disable_public_keys), signer_context, signer_callback); - >>::ffi_to(obj) - } + pub mod v1 { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`platform_mobile::put::ChainAssetLockProofFFI_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_ChainAssetLockProofFFI_clone(a: *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_ChainAssetLockProofFFI) -> *mut crate::fermented::types::platform_mobile::put::platform_mobile_put_ChainAssetLockProofFFI { - let obj = platform_mobile::put::ChainAssetLockProofFFI_clone(>::ffi_from(a)); - >::ffi_to(obj) + pub mod v0 { use crate as dash_sdk_bindings; } + } } + } - #[doc = "FFI-representation of the [`platform_mobile::put::OutPointFFI_clone`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_clone(a: *mut platform_mobile::custom::OutPoint) -> *mut platform_mobile::custom::OutPoint { - let obj = platform_mobile::put::OutPointFFI_clone(>::ffi_from(a)); - >::ffi_to(obj) - } + pub mod balances { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`OutPointFFI`]"] - #[repr(C)] - #[derive(Clone)] - pub struct platform_mobile_put_OutPointFFI { - pub txid: *mut crate::fermented::generics::Arr_u8_32, - pub vout: u32, - } + pub mod credits { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for platform_mobile_put_OutPointFFI { - unsafe fn ffi_from_const(ffi: *const platform_mobile_put_OutPointFFI) -> platform_mobile::put::OutPointFFI { - let ffi_ref = &*ffi; - platform_mobile::put::OutPointFFI { txid: >::ffi_from(ffi_ref.txid), vout: ffi_ref.vout } + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; } } + } + } - impl ferment::FFIConversionTo for platform_mobile_put_OutPointFFI { unsafe fn ffi_to_const(obj: platform_mobile::put::OutPointFFI) -> *const platform_mobile_put_OutPointFFI { ferment::boxed(platform_mobile_put_OutPointFFI { txid: >::ffi_to(obj.txid), vout: obj.vout }) } } + pub mod dapi_grpc { + use crate as dash_sdk_bindings; - impl Drop for platform_mobile_put_OutPointFFI { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.txid); - ; - } - } - } + #[cfg(feature = "drive")] + pub mod drive { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_ctor<>(txid: *mut crate::fermented::generics::Arr_u8_32, vout: u32) -> *mut platform_mobile_put_OutPointFFI { ferment::boxed(platform_mobile_put_OutPointFFI { txid, vout }) } + #[cfg(feature = "core")] + pub mod core { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_destroy<>(ffi: *mut platform_mobile_put_OutPointFFI) { ferment::unbox_any(ffi); } + #[cfg(feature = "serde")] + pub mod deserialization { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_get_txid<>(obj: *const platform_mobile_put_OutPointFFI) -> *mut crate::fermented::generics::Arr_u8_32 { (*obj).txid } + #[cfg(feature = "platform")] + pub mod platform { + use crate as dash_sdk_bindings; + } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_get_vout<>(obj: *const platform_mobile_put_OutPointFFI) -> u32 { (*obj).vout } + pub mod mock { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_set_txid<>(obj: *const platform_mobile_put_OutPointFFI) -> *mut crate::fermented::generics::Arr_u8_32 { (*obj).txid } + pub mod rs_dapi_client { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_OutPointFFI_set_vout<>(obj: *const platform_mobile_put_OutPointFFI) -> u32 { (*obj).vout } + pub mod address_list { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`InstantAssetLockProofFFI`]"] - #[repr(C)] - #[derive(Clone)] - pub struct platform_mobile_put_InstantAssetLockProofFFI { - pub instant_lock: *mut crate::fermented::generics::Vec_u8, - pub transaction: *mut crate::fermented::generics::Vec_u8, - pub output_index: u32, - } + pub mod request_settings { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionFrom for platform_mobile_put_InstantAssetLockProofFFI { - unsafe fn ffi_from_const(ffi: *const platform_mobile_put_InstantAssetLockProofFFI) -> platform_mobile::put::InstantAssetLockProofFFI { - let ffi_ref = &*ffi; - platform_mobile::put::InstantAssetLockProofFFI { instant_lock: >>::ffi_from(ffi_ref.instant_lock), transaction: >>::ffi_from(ffi_ref.transaction), output_index: ffi_ref.output_index } - } - } + pub mod transport { use crate as dash_sdk_bindings; } - impl ferment::FFIConversionTo for platform_mobile_put_InstantAssetLockProofFFI { unsafe fn ffi_to_const(obj: platform_mobile::put::InstantAssetLockProofFFI) -> *const platform_mobile_put_InstantAssetLockProofFFI { ferment::boxed(platform_mobile_put_InstantAssetLockProofFFI { instant_lock: >>::ffi_to(obj.instant_lock), transaction: >>::ffi_to(obj.transaction), output_index: obj.output_index }) } } + pub mod connection_pool { use crate as dash_sdk_bindings; } - impl Drop for platform_mobile_put_InstantAssetLockProofFFI { - fn drop(&mut self) { - unsafe { - let ffi_ref = self; - ferment::unbox_any(ffi_ref.instant_lock); - ferment::unbox_any(ffi_ref.transaction); - ; - } - } - } + pub mod dapi_client { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_ctor<>(instant_lock: *mut crate::fermented::generics::Vec_u8, transaction: *mut crate::fermented::generics::Vec_u8, output_index: u32) -> *mut platform_mobile_put_InstantAssetLockProofFFI { ferment::boxed(platform_mobile_put_InstantAssetLockProofFFI { instant_lock, transaction, output_index }) } + pub mod executor { use crate as dash_sdk_bindings; } + } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_destroy<>(ffi: *mut platform_mobile_put_InstantAssetLockProofFFI) { ferment::unbox_any(ffi); } + pub mod dash_sdk { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_get_instant_lock<>(obj: *const platform_mobile_put_InstantAssetLockProofFFI) -> *mut crate::fermented::generics::Vec_u8 { (*obj).instant_lock } + pub mod sdk { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_get_transaction<>(obj: *const platform_mobile_put_InstantAssetLockProofFFI) -> *mut crate::fermented::generics::Vec_u8 { (*obj).transaction } + pub mod mock { + use crate as dash_sdk_bindings; - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_get_output_index<>(obj: *const platform_mobile_put_InstantAssetLockProofFFI) -> u32 { (*obj).output_index } + #[cfg(feature = "mocks")] + pub mod sdk { + use crate as dash_sdk_bindings; + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_set_instant_lock<>(obj: *const platform_mobile_put_InstantAssetLockProofFFI) -> *mut crate::fermented::generics::Vec_u8 { (*obj).instant_lock } + pub mod internal_cache { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_set_transaction<>(obj: *const platform_mobile_put_InstantAssetLockProofFFI) -> *mut crate::fermented::generics::Vec_u8 { (*obj).transaction } + pub mod sync { use crate as dash_sdk_bindings; } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_put_InstantAssetLockProofFFI_set_output_index<>(obj: *const platform_mobile_put_InstantAssetLockProofFFI) -> u32 { (*obj).output_index } + pub mod error { + use crate as dash_sdk_bindings; + + #[cfg(test)] + pub mod tests { + use crate as dash_sdk_bindings; + } } - pub mod fetch_document { + pub mod core { use crate as dash_sdk_bindings; } + + pub mod platform { use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`# doc = \"FFI-representation of the [`StartPoint`]\"`]"] - #[repr(C)] - #[derive(Clone)] - #[non_exhaustive] - pub enum platform_mobile_fetch_document_StartPoint { StartAfter(*mut crate::fermented::generics::Vec_u8), StartAt(*mut crate::fermented::generics::Vec_u8) } + pub mod tokens { + use crate as dash_sdk_bindings; - impl ferment::FFIConversionFrom for platform_mobile_fetch_document_StartPoint { - unsafe fn ffi_from_const(ffi: *const platform_mobile_fetch_document_StartPoint) -> platform_mobile::fetch_document::StartPoint { - let ffi_ref = &*ffi; - match ffi_ref { - platform_mobile_fetch_document_StartPoint::StartAfter(o_0) => platform_mobile::fetch_document::StartPoint::StartAfter(>>::ffi_from(*o_0)), - platform_mobile_fetch_document_StartPoint::StartAt(o_0) => platform_mobile::fetch_document::StartPoint::StartAt(>>::ffi_from(*o_0)) - } - } + pub mod transitions { use crate as dash_sdk_bindings; } + + pub mod builders { use crate as dash_sdk_bindings; } } - impl ferment::FFIConversionTo for platform_mobile_fetch_document_StartPoint { - unsafe fn ffi_to_const(obj: platform_mobile::fetch_document::StartPoint) -> *const platform_mobile_fetch_document_StartPoint { - ferment::boxed(match obj { - platform_mobile::fetch_document::StartPoint::StartAfter(o_0) => platform_mobile_fetch_document_StartPoint::StartAfter(>>::ffi_to(o_0)), - platform_mobile::fetch_document::StartPoint::StartAt(o_0) => platform_mobile_fetch_document_StartPoint::StartAt(>>::ffi_to(o_0)), - _ => unreachable!("This is unreachable") - }) - } + pub mod trunk_branch_sync { + use crate as dash_sdk_bindings; + + pub mod tracker { use crate as dash_sdk_bindings; } } - impl Drop for platform_mobile_fetch_document_StartPoint { - fn drop(&mut self) { - unsafe { - match self { - platform_mobile_fetch_document_StartPoint::StartAfter(o_0) => { ferment::unbox_any(*o_0); } - platform_mobile_fetch_document_StartPoint::StartAt(o_0) => { ferment::unbox_any(*o_0); } - _ => unreachable!("This is unreachable") - }; + pub mod address_sync { use crate as dash_sdk_bindings; } + + pub mod types { + use crate as dash_sdk_bindings; + + pub mod identity { + use crate as dash_sdk_bindings; + + #[doc = "FFI-representation of the [`PublicKeyHash`]"] + #[repr(C)] + #[derive(Clone)] + pub struct dash_sdk_platform_types_identity_PublicKeyHash(*mut crate::fermented::generics::Arr_u8_20); + + impl ferment::FFIConversionFrom for dash_sdk_platform_types_identity_PublicKeyHash { + unsafe fn ffi_from_const(ffi: *const dash_sdk_platform_types_identity_PublicKeyHash) -> dash_sdk::platform::types::identity::PublicKeyHash { + let ffi_ref = &*ffi; + dash_sdk::platform::types::identity::PublicKeyHash(>::ffi_from(ffi_ref.0)) + } } - } - } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_fetch_document_StartPoint_StartAfter_ctor(o_o_0: *mut crate::fermented::generics::Vec_u8) -> *mut platform_mobile_fetch_document_StartPoint { ferment::boxed(platform_mobile_fetch_document_StartPoint::StartAfter(o_o_0)) } + impl ferment::FFIConversionTo for dash_sdk_platform_types_identity_PublicKeyHash { unsafe fn ffi_to_const(obj: dash_sdk::platform::types::identity::PublicKeyHash) -> *const dash_sdk_platform_types_identity_PublicKeyHash { ferment::boxed(dash_sdk_platform_types_identity_PublicKeyHash(>::ffi_to(obj.0))) } } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_fetch_document_StartPoint_StartAt_ctor(o_o_0: *mut crate::fermented::generics::Vec_u8) -> *mut platform_mobile_fetch_document_StartPoint { ferment::boxed(platform_mobile_fetch_document_StartPoint::StartAt(o_o_0)) } + impl Drop for dash_sdk_platform_types_identity_PublicKeyHash { + fn drop(&mut self) { + unsafe { + let ffi_ref = self; + ferment::unbox_any(ffi_ref.0); + } + } + } - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_fetch_document_StartPoint_destroy<>(ffi: *mut platform_mobile_fetch_document_StartPoint) { ferment::unbox_any(ffi); } + #[no_mangle] + pub unsafe extern "C" fn dash_sdk_platform_types_identity_PublicKeyHash_ctor<>(o_0: *mut crate::fermented::generics::Arr_u8_20) -> *mut dash_sdk_platform_types_identity_PublicKeyHash { ferment::boxed(dash_sdk_platform_types_identity_PublicKeyHash(o_0)) } - #[doc = "FFI-representation of the [`platform_mobile::fetch_document::document_to_string`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_fetch_document_document_to_string(document: *mut crate::fermented::types::dpp::document::dpp_document_Document) -> *mut std::os::raw::c_char { - let obj = platform_mobile::fetch_document::document_to_string(>::ffi_from(document)); - >::ffi_to(obj) - } + #[no_mangle] + pub unsafe extern "C" fn dash_sdk_platform_types_identity_PublicKeyHash_destroy<>(ffi: *mut dash_sdk_platform_types_identity_PublicKeyHash) { ferment::unbox_any(ffi); } - #[doc = "FFI-representation of the [`platform_mobile::fetch_document::fetch_documents_with_query_and_sdk`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_fetch_document_fetch_documents_with_query_and_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type: *mut std::os::raw::c_char, where_clauses: *mut crate::fermented::generics::Vec_drive_query_conditions_WhereClause, order_clauses: *mut crate::fermented::generics::Vec_drive_query_ordering_OrderClause, limit: u32, start: *mut crate::fermented::types::platform_mobile::fetch_document::platform_mobile_fetch_document_StartPoint) -> *mut crate::fermented::generics::Result_ok_Vec_dpp_document_Document_err_String { - let obj = platform_mobile::fetch_document::fetch_documents_with_query_and_sdk(rust_sdk, >::ffi_from(data_contract_id), >::ffi_from(document_type), >>::ffi_from(where_clauses), >>::ffi_from(order_clauses), limit, >::ffi_from_opt(start)); - , String>>>::ffi_to(obj) - } + #[no_mangle] + pub unsafe extern "C" fn dash_sdk_platform_types_identity_PublicKeyHash_get_0<>(obj: *const dash_sdk_platform_types_identity_PublicKeyHash) -> *mut crate::fermented::generics::Arr_u8_20 { (*obj).0 } - #[doc = "FFI-representation of the [`platform_mobile::fetch_document::deserialize_document_sdk`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_fetch_document_deserialize_document_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, bytes: *mut crate::fermented::generics::Vec_u8, data_contract_id: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, document_type: *mut std::os::raw::c_char) -> *mut crate::fermented::generics::Result_ok_dpp_document_Document_err_String { - let obj = platform_mobile::fetch_document::deserialize_document_sdk(rust_sdk, >>::ffi_from(bytes), >::ffi_from(data_contract_id), >::ffi_from(document_type)); - >>::ffi_to(obj) + #[no_mangle] + pub unsafe extern "C" fn dash_sdk_platform_types_identity_PublicKeyHash_set_0<>(obj: *const dash_sdk_platform_types_identity_PublicKeyHash) -> *mut crate::fermented::generics::Arr_u8_20 { (*obj).0 } + } } - } - pub mod config { - use crate as dash_sdk_bindings; + pub mod documents { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::config::testnet_address_list`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_config_testnet_address_list() -> *mut crate::fermented::generics::Vec_String { - let obj = platform_mobile::config::testnet_address_list(); - >>::ffi_to(obj) - } - } + pub mod document_sum { use crate as dash_sdk_bindings; } - pub mod fetch_identity { - use crate as dash_sdk_bindings; + pub mod document_average { use crate as dash_sdk_bindings; } - #[doc = "FFI-representation of the [`platform_mobile::fetch_identity::fetch_identity_with_sdk`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_fetch_identity_fetch_identity_with_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, identifier: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::generics::Result_ok_Option_dpp_identity_identity_Identity_err_String { - let obj = platform_mobile::fetch_identity::fetch_identity_with_sdk(rust_sdk, >::ffi_from(identifier)); - , String>>>::ffi_to(obj) + pub mod transitions { use crate as dash_sdk_bindings; } } - #[doc = "FFI-representation of the [`platform_mobile::fetch_identity::fetch_identity_with_keyhash_sdk`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_fetch_identity_fetch_identity_with_keyhash_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, key_hash: *mut crate::fermented::generics::Arr_u8_20) -> *mut crate::fermented::generics::Result_ok_dpp_identity_identity_Identity_err_String { - let obj = platform_mobile::fetch_identity::fetch_identity_with_keyhash_sdk(rust_sdk, >::ffi_from(key_hash)); - >>::ffi_to(obj) - } + pub mod dashpay { + use crate as dash_sdk_bindings; - #[doc = "FFI-representation of the [`platform_mobile::fetch_identity::fetch_identity_balance_with_sdk`]"] - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_fetch_identity_fetch_identity_balance_with_sdk(rust_sdk: *mut platform_mobile::sdk::DashSdk, identifier: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut crate::fermented::generics::Result_ok_u64_err_String { - let obj = platform_mobile::fetch_identity::fetch_identity_balance_with_sdk(rust_sdk, >::ffi_from(identifier)); - >>::ffi_to(obj) + pub mod contact_request { use crate as dash_sdk_bindings; } } - } - } - pub mod dapi_grpc { - use crate as dash_sdk_bindings; - - #[cfg(feature = "core")] - pub mod core { - use crate as dash_sdk_bindings; - } + #[cfg(feature = "shielded")] + pub mod shielded { + use crate as dash_sdk_bindings; - pub mod mock { use crate as dash_sdk_bindings; } + pub mod notes_sync { + use crate as dash_sdk_bindings; - #[cfg(feature = "serde")] - pub mod deserialization { - use crate as dash_sdk_bindings; - } + pub mod sync_shielded_notes { use crate as dash_sdk_bindings; } + } + } - #[cfg(feature = "drive")] - pub mod drive { - use crate as dash_sdk_bindings; - } + pub mod dpns_usernames { use crate as dash_sdk_bindings; } - #[cfg(feature = "platform")] - pub mod platform { - use crate as dash_sdk_bindings; + pub mod transition { use crate as dash_sdk_bindings; } } } } @@ -7004,28 +8913,28 @@ pub mod generics { #[repr(C)] #[derive(Clone)] - pub struct Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { - pub ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_VotePollsGroupedByTimestamp, + pub struct Result_ok_Option_dpp_voting_votes_Vote_err_String { + pub ok: *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote, pub error: *mut std::os::raw::c_char, } - impl ferment::FFIConversionFrom> for Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { - unsafe fn ffi_from_const(ffi: *const Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String) -> Result { + impl ferment::FFIConversionFrom, String>> for Result_ok_Option_dpp_voting_votes_Vote_err_String { + unsafe fn ffi_from_const(ffi: *const Result_ok_Option_dpp_voting_votes_Vote_err_String) -> Result, String> { let ffi_ref = &*ffi; - ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) + ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from_opt(o), ffi_ref.error, |o| >::ffi_from(o)) } } - impl ferment::FFIConversionTo> for Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { - unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { + impl ferment::FFIConversionTo, String>> for Result_ok_Option_dpp_voting_votes_Vote_err_String { + unsafe fn ffi_to_const(obj: Result, String>) -> *const Result_ok_Option_dpp_voting_votes_Vote_err_String { ferment::boxed({ - let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); + let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to_opt(o), |o| ferment::FFIConversionTo::ffi_to(o)); Self { ok, error } }) } } - impl Drop for Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { + impl Drop for Result_ok_Option_dpp_voting_votes_Vote_err_String { fn drop(&mut self) { unsafe { ferment::unbox_any_opt(self.ok); @@ -7035,27 +8944,27 @@ pub mod generics { } #[no_mangle] - pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String_ctor(ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_VotePollsGroupedByTimestamp, error: *mut std::os::raw::c_char) -> *mut Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { ferment::boxed(Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { ok, error }) } + pub unsafe extern "C" fn Result_ok_Option_dpp_voting_votes_Vote_err_String_ctor(ok: *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote, error: *mut std::os::raw::c_char) -> *mut Result_ok_Option_dpp_voting_votes_Vote_err_String { ferment::boxed(Result_ok_Option_dpp_voting_votes_Vote_err_String { ok, error }) } #[no_mangle] - pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String_destroy(ffi: *mut Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Result_ok_Option_dpp_voting_votes_Vote_err_String_destroy(ffi: *mut Result_ok_Option_dpp_voting_votes_Vote_err_String) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Result_ok_dpp_voting_votes_Vote_err_String { - pub ok: *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote, + pub struct Result_ok_dpp_identity_identity_Identity_err_String { + pub ok: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, pub error: *mut std::os::raw::c_char, } - impl ferment::FFIConversionFrom> for Result_ok_dpp_voting_votes_Vote_err_String { - unsafe fn ffi_from_const(ffi: *const Result_ok_dpp_voting_votes_Vote_err_String) -> Result { + impl ferment::FFIConversionFrom> for Result_ok_dpp_identity_identity_Identity_err_String { + unsafe fn ffi_from_const(ffi: *const Result_ok_dpp_identity_identity_Identity_err_String) -> Result { let ffi_ref = &*ffi; - ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) + ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) } } - impl ferment::FFIConversionTo> for Result_ok_dpp_voting_votes_Vote_err_String { - unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_dpp_voting_votes_Vote_err_String { + impl ferment::FFIConversionTo> for Result_ok_dpp_identity_identity_Identity_err_String { + unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_dpp_identity_identity_Identity_err_String { ferment::boxed({ let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); Self { ok, error } @@ -7063,7 +8972,7 @@ pub mod generics { } } - impl Drop for Result_ok_dpp_voting_votes_Vote_err_String { + impl Drop for Result_ok_dpp_identity_identity_Identity_err_String { fn drop(&mut self) { unsafe { ferment::unbox_any_opt(self.ok); @@ -7073,165 +8982,146 @@ pub mod generics { } #[no_mangle] - pub unsafe extern "C" fn Result_ok_dpp_voting_votes_Vote_err_String_ctor(ok: *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote, error: *mut std::os::raw::c_char) -> *mut Result_ok_dpp_voting_votes_Vote_err_String { ferment::boxed(Result_ok_dpp_voting_votes_Vote_err_String { ok, error }) } + pub unsafe extern "C" fn Result_ok_dpp_identity_identity_Identity_err_String_ctor(ok: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, error: *mut std::os::raw::c_char) -> *mut Result_ok_dpp_identity_identity_Identity_err_String { ferment::boxed(Result_ok_dpp_identity_identity_Identity_err_String { ok, error }) } #[no_mangle] - pub unsafe extern "C" fn Result_ok_dpp_voting_votes_Vote_err_String_destroy(ffi: *mut Result_ok_dpp_voting_votes_Vote_err_String) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Result_ok_dpp_identity_identity_Identity_err_String_destroy(ffi: *mut Result_ok_dpp_identity_identity_Identity_err_String) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Vec_Tuple_platform_value_Value_platform_value_Value { + pub struct std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { pub count: usize, - pub values: *mut *mut crate::fermented::generics::Tuple_platform_value_Value_platform_value_Value, + pub keys: *mut *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, + pub values: *mut *mut crate::fermented::types::dpp::voting::votes::resource_vote::dpp_voting_votes_resource_vote_ResourceVote, } - impl ferment::FFIConversionFrom> for Vec_Tuple_platform_value_Value_platform_value_Value { - unsafe fn ffi_from_const(ffi: *const Vec_Tuple_platform_value_Value_platform_value_Value) -> Vec<(platform_value::Value, platform_value::Value)> { + impl ferment::FFIConversionFrom>> for std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { + unsafe fn ffi_from_const(ffi: *const std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote) -> std::collections::BTreeMap> { let ffi_ref = &*ffi; - ferment::from_complex_group(ffi_ref.values, ffi_ref.count) + ferment::fold_to_map(ffi_ref.count, ffi_ref.keys, ffi_ref.values, |o| >::ffi_from(o), |o| >::ffi_from_opt(o)) } } - impl ferment::FFIConversionTo> for Vec_Tuple_platform_value_Value_platform_value_Value { unsafe fn ffi_to_const(obj: Vec<(platform_value::Value, platform_value::Value)>) -> *const Vec_Tuple_platform_value_Value_platform_value_Value { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } + impl ferment::FFIConversionTo>> for std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { unsafe fn ffi_to_const(obj: std::collections::BTreeMap>) -> *const std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { ferment::boxed(Self { count: obj.len(), keys: ferment::to_complex_group(obj.keys().cloned()), values: ferment::to_opt_complex_group(obj.values().cloned()) }) } } - impl Drop for Vec_Tuple_platform_value_Value_platform_value_Value { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } + impl Drop for std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { + fn drop(&mut self) { + unsafe { + ferment::unbox_any_vec_ptr(self.keys, self.count); + ferment::unbox_any_vec_ptr(self.values, self.count); + } + } + } #[no_mangle] - pub unsafe extern "C" fn Vec_Tuple_platform_value_Value_platform_value_Value_ctor(count: usize, values: *mut *mut crate::fermented::generics::Tuple_platform_value_Value_platform_value_Value) -> *mut Vec_Tuple_platform_value_Value_platform_value_Value { ferment::boxed(Vec_Tuple_platform_value_Value_platform_value_Value { count, values }) } + pub unsafe extern "C" fn std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote_ctor(count: usize, keys: *mut *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, values: *mut *mut crate::fermented::types::dpp::voting::votes::resource_vote::dpp_voting_votes_resource_vote_ResourceVote) -> *mut std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { ferment::boxed(std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { count, keys, values }) } #[no_mangle] - pub unsafe extern "C" fn Vec_Tuple_platform_value_Value_platform_value_Value_destroy(ffi: *mut Vec_Tuple_platform_value_Value_platform_value_Value) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote_destroy(ffi: *mut std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Result_ok_dpp_document_Document_err_String { - pub ok: *mut crate::fermented::types::dpp::document::dpp_document_Document, - pub error: *mut std::os::raw::c_char, + pub struct Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { + pub o_0: *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis, + pub o_1: *mut crate::fermented::generics::Vec_dpp_voting_vote_polls_VotePoll, } - impl ferment::FFIConversionFrom> for Result_ok_dpp_document_Document_err_String { - unsafe fn ffi_from_const(ffi: *const Result_ok_dpp_document_Document_err_String) -> Result { + impl ferment::FFIConversionFrom<(dpp::prelude::TimestampMillis, Vec)> for Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { + unsafe fn ffi_from_const(ffi: *const Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) -> (dpp::prelude::TimestampMillis, Vec) { let ffi_ref = &*ffi; - ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) + (ferment::FFIConversionFrom::ffi_from(ffi_ref.o_0), ferment::FFIConversionFrom::ffi_from(ffi_ref.o_1)) } } - impl ferment::FFIConversionTo> for Result_ok_dpp_document_Document_err_String { - unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_dpp_document_Document_err_String { - ferment::boxed({ - let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); - Self { ok, error } - }) - } - } + impl ferment::FFIConversionTo<(dpp::prelude::TimestampMillis, Vec)> for Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { unsafe fn ffi_to_const(obj: (dpp::prelude::TimestampMillis, Vec)) -> *const Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { ferment::boxed(Self { o_0: ferment::FFIConversionTo::ffi_to(obj.0), o_1: ferment::FFIConversionTo::ffi_to(obj.1) }) } } - impl Drop for Result_ok_dpp_document_Document_err_String { + impl Drop for Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { fn drop(&mut self) { unsafe { - ferment::unbox_any_opt(self.ok); - ferment::unbox_any_opt(self.error); + ferment::unbox_any(self.o_0); + ferment::unbox_any(self.o_1); } } } #[no_mangle] - pub unsafe extern "C" fn Result_ok_dpp_document_Document_err_String_ctor(ok: *mut crate::fermented::types::dpp::document::dpp_document_Document, error: *mut std::os::raw::c_char) -> *mut Result_ok_dpp_document_Document_err_String { ferment::boxed(Result_ok_dpp_document_Document_err_String { ok, error }) } + pub unsafe extern "C" fn Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_ctor(o_0: *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis, o_1: *mut crate::fermented::generics::Vec_dpp_voting_vote_polls_VotePoll) -> *mut Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { ferment::boxed(Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { o_0, o_1 }) } #[no_mangle] - pub unsafe extern "C" fn Result_ok_dpp_document_Document_err_String_destroy(ffi: *mut Result_ok_dpp_document_Document_err_String) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_destroy(ffi: *mut Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { - pub o_0: *mut crate::fermented::types::dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo, - pub o_1: *mut crate::fermented::types::dpp::block::block_info::dpp_block_block_info_BlockInfo, + pub struct Vec_drive_proof_verifier_types_ContestedResource { + pub count: usize, + pub values: *mut *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResource, } - impl ferment::FFIConversionFrom<(dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo, dpp::block::block_info::BlockInfo)> for Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { - unsafe fn ffi_from_const(ffi: *const Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo) -> (dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo, dpp::block::block_info::BlockInfo) { + impl ferment::FFIConversionFrom> for Vec_drive_proof_verifier_types_ContestedResource { + unsafe fn ffi_from_const(ffi: *const Vec_drive_proof_verifier_types_ContestedResource) -> Vec { let ffi_ref = &*ffi; - (ferment::FFIConversionFrom::ffi_from(ffi_ref.o_0), ferment::FFIConversionFrom::ffi_from(ffi_ref.o_1)) + ferment::from_complex_group(ffi_ref.values, ffi_ref.count) } } - impl ferment::FFIConversionTo<(dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo, dpp::block::block_info::BlockInfo)> for Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { unsafe fn ffi_to_const(obj: (dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo, dpp::block::block_info::BlockInfo)) -> *const Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { ferment::boxed(Self { o_0: ferment::FFIConversionTo::ffi_to(obj.0), o_1: ferment::FFIConversionTo::ffi_to(obj.1) }) } } + impl ferment::FFIConversionTo> for Vec_drive_proof_verifier_types_ContestedResource { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_drive_proof_verifier_types_ContestedResource { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } - impl Drop for Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { - fn drop(&mut self) { - unsafe { - ferment::unbox_any(self.o_0); - ferment::unbox_any(self.o_1); - } - } - } + impl Drop for Vec_drive_proof_verifier_types_ContestedResource { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo_ctor(o_0: *mut crate::fermented::types::dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo, o_1: *mut crate::fermented::types::dpp::block::block_info::dpp_block_block_info_BlockInfo) -> *mut Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { ferment::boxed(Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { o_0, o_1 }) } + pub unsafe extern "C" fn Vec_drive_proof_verifier_types_ContestedResource_ctor(count: usize, values: *mut *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResource) -> *mut Vec_drive_proof_verifier_types_ContestedResource { ferment::boxed(Vec_drive_proof_verifier_types_ContestedResource { count, values }) } #[no_mangle] - pub unsafe extern "C" fn Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo_destroy(ffi: *mut Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Vec_drive_proof_verifier_types_ContestedResource_destroy(ffi: *mut Vec_drive_proof_verifier_types_ContestedResource) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Vec_dpp_document_Document { + pub struct Arr_u8_36 { pub count: usize, - pub values: *mut *mut crate::fermented::types::dpp::document::dpp_document_Document, + pub values: *mut u8, } - impl ferment::FFIConversionFrom> for Vec_dpp_document_Document { - unsafe fn ffi_from_const(ffi: *const Vec_dpp_document_Document) -> Vec { + impl ferment::FFIConversionFrom<[u8; 36]> for Arr_u8_36 { + unsafe fn ffi_from_const(ffi: *const Arr_u8_36) -> [u8; 36] { let ffi_ref = &*ffi; - ferment::from_complex_group(ffi_ref.values, ffi_ref.count) + let vec: Vec = ferment::from_primitive_group(ffi_ref.values, ffi_ref.count); + vec.try_into().unwrap() } } - impl ferment::FFIConversionTo> for Vec_dpp_document_Document { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_dpp_document_Document { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } + impl ferment::FFIConversionTo<[u8; 36]> for Arr_u8_36 { unsafe fn ffi_to_const(obj: [u8; 36]) -> *const Arr_u8_36 { ferment::boxed(Self { count: obj.len(), values: ferment::to_primitive_group(obj.into_iter()) }) } } - impl Drop for Vec_dpp_document_Document { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } + impl Drop for Arr_u8_36 { fn drop(&mut self) { unsafe { ferment::unbox_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Vec_dpp_document_Document_ctor(count: usize, values: *mut *mut crate::fermented::types::dpp::document::dpp_document_Document) -> *mut Vec_dpp_document_Document { ferment::boxed(Vec_dpp_document_Document { count, values }) } + pub unsafe extern "C" fn Arr_u8_36_ctor(count: usize, values: *mut u8) -> *mut Arr_u8_36 { ferment::boxed(Arr_u8_36 { count, values }) } #[no_mangle] - pub unsafe extern "C" fn Vec_dpp_document_Document_destroy(ffi: *mut Vec_dpp_document_Document) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Arr_u8_36_destroy(ffi: *mut Arr_u8_36) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Result_ok_Option_dpp_identity_identity_Identity_err_String { - pub ok: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, - pub error: *mut std::os::raw::c_char, + pub struct Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { + pub count: usize, + pub values: *mut *mut crate::fermented::generics::Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll, } - impl ferment::FFIConversionFrom, String>> for Result_ok_Option_dpp_identity_identity_Identity_err_String { - unsafe fn ffi_from_const(ffi: *const Result_ok_Option_dpp_identity_identity_Identity_err_String) -> Result, String> { + impl ferment::FFIConversionFrom)>> for Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { + unsafe fn ffi_from_const(ffi: *const Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) -> Vec<(dpp::prelude::TimestampMillis, Vec)> { let ffi_ref = &*ffi; - ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from_opt(o), ffi_ref.error, |o| >::ffi_from(o)) + ferment::from_complex_group(ffi_ref.values, ffi_ref.count) } } - impl ferment::FFIConversionTo, String>> for Result_ok_Option_dpp_identity_identity_Identity_err_String { - unsafe fn ffi_to_const(obj: Result, String>) -> *const Result_ok_Option_dpp_identity_identity_Identity_err_String { - ferment::boxed({ - let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to_opt(o), |o| ferment::FFIConversionTo::ffi_to(o)); - Self { ok, error } - }) - } - } + impl ferment::FFIConversionTo)>> for Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { unsafe fn ffi_to_const(obj: Vec<(dpp::prelude::TimestampMillis, Vec)>) -> *const Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } - impl Drop for Result_ok_Option_dpp_identity_identity_Identity_err_String { - fn drop(&mut self) { - unsafe { - ferment::unbox_any_opt(self.ok); - ferment::unbox_any_opt(self.error); - } - } - } + impl Drop for Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Result_ok_Option_dpp_identity_identity_Identity_err_String_ctor(ok: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, error: *mut std::os::raw::c_char) -> *mut Result_ok_Option_dpp_identity_identity_Identity_err_String { ferment::boxed(Result_ok_Option_dpp_identity_identity_Identity_err_String { ok, error }) } + pub unsafe extern "C" fn Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_ctor(count: usize, values: *mut *mut crate::fermented::generics::Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) -> *mut Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { ferment::boxed(Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { count, values }) } #[no_mangle] - pub unsafe extern "C" fn Result_ok_Option_dpp_identity_identity_Identity_err_String_destroy(ffi: *mut Result_ok_Option_dpp_identity_identity_Identity_err_String) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_destroy(ffi: *mut Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] @@ -7267,75 +9157,83 @@ pub mod generics { #[repr(C)] #[derive(Clone)] - pub struct Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { + pub struct Arr_u8_32 { pub count: usize, - pub values: *mut *mut crate::fermented::generics::Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll, + pub values: *mut u8, } - impl ferment::FFIConversionFrom)>> for Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { - unsafe fn ffi_from_const(ffi: *const Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) -> Vec<(dpp::prelude::TimestampMillis, Vec)> { + impl ferment::FFIConversionFrom<[u8; 32]> for Arr_u8_32 { + unsafe fn ffi_from_const(ffi: *const Arr_u8_32) -> [u8; 32] { let ffi_ref = &*ffi; - ferment::from_complex_group(ffi_ref.values, ffi_ref.count) + let vec: Vec = ferment::from_primitive_group(ffi_ref.values, ffi_ref.count); + vec.try_into().unwrap() } } - impl ferment::FFIConversionTo)>> for Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { unsafe fn ffi_to_const(obj: Vec<(dpp::prelude::TimestampMillis, Vec)>) -> *const Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } + impl ferment::FFIConversionTo<[u8; 32]> for Arr_u8_32 { unsafe fn ffi_to_const(obj: [u8; 32]) -> *const Arr_u8_32 { ferment::boxed(Self { count: obj.len(), values: ferment::to_primitive_group(obj.into_iter()) }) } } - impl Drop for Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } + impl Drop for Arr_u8_32 { fn drop(&mut self) { unsafe { ferment::unbox_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_ctor(count: usize, values: *mut *mut crate::fermented::generics::Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) -> *mut Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { ferment::boxed(Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { count, values }) } + pub unsafe extern "C" fn Arr_u8_32_ctor(count: usize, values: *mut u8) -> *mut Arr_u8_32 { ferment::boxed(Arr_u8_32 { count, values }) } #[no_mangle] - pub unsafe extern "C" fn Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_destroy(ffi: *mut Vec_Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Arr_u8_32_destroy(ffi: *mut Arr_u8_32) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { - pub o_0: *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis, - pub o_1: *mut crate::fermented::generics::Vec_dpp_voting_vote_polls_VotePoll, + pub struct platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract { + pub obj: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, } - impl ferment::FFIConversionFrom<(dpp::prelude::TimestampMillis, Vec)> for Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { - unsafe fn ffi_from_const(ffi: *const Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) -> (dpp::prelude::TimestampMillis, Vec) { + impl Drop for platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract { fn drop(&mut self) { unsafe { ferment::unbox_any(self.obj); } } } + + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract_ctor(obj: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract { ferment::boxed(platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract { obj }) } + + #[no_mangle] + pub unsafe extern "C" fn platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract_destroy(ffi: *mut platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract) { ferment::unbox_any(ffi); } + + #[repr(C)] + #[derive(Clone)] + pub struct Vec_dpp_document_Document { + pub count: usize, + pub values: *mut *mut crate::fermented::types::dpp::document::dpp_document_Document, + } + + impl ferment::FFIConversionFrom> for Vec_dpp_document_Document { + unsafe fn ffi_from_const(ffi: *const Vec_dpp_document_Document) -> Vec { let ffi_ref = &*ffi; - (ferment::FFIConversionFrom::ffi_from(ffi_ref.o_0), ferment::FFIConversionFrom::ffi_from(ffi_ref.o_1)) + ferment::from_complex_group(ffi_ref.values, ffi_ref.count) } } - impl ferment::FFIConversionTo<(dpp::prelude::TimestampMillis, Vec)> for Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { unsafe fn ffi_to_const(obj: (dpp::prelude::TimestampMillis, Vec)) -> *const Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { ferment::boxed(Self { o_0: ferment::FFIConversionTo::ffi_to(obj.0), o_1: ferment::FFIConversionTo::ffi_to(obj.1) }) } } + impl ferment::FFIConversionTo> for Vec_dpp_document_Document { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_dpp_document_Document { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } - impl Drop for Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { - fn drop(&mut self) { - unsafe { - ferment::unbox_any(self.o_0); - ferment::unbox_any(self.o_1); - } - } - } + impl Drop for Vec_dpp_document_Document { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_ctor(o_0: *mut crate::fermented::types::dpp::prelude::dpp_prelude_TimestampMillis, o_1: *mut crate::fermented::generics::Vec_dpp_voting_vote_polls_VotePoll) -> *mut Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { ferment::boxed(Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll { o_0, o_1 }) } + pub unsafe extern "C" fn Vec_dpp_document_Document_ctor(count: usize, values: *mut *mut crate::fermented::types::dpp::document::dpp_document_Document) -> *mut Vec_dpp_document_Document { ferment::boxed(Vec_dpp_document_Document { count, values }) } #[no_mangle] - pub unsafe extern "C" fn Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll_destroy(ffi: *mut Tuple_dpp_prelude_TimestampMillis_Vec_dpp_voting_vote_polls_VotePoll) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Vec_dpp_document_Document_destroy(ffi: *mut Vec_dpp_document_Document) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Result_ok_Vec_u8_err_String { - pub ok: *mut crate::fermented::generics::Vec_u8, + pub struct Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { + pub ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ResourceVotesByIdentity, pub error: *mut std::os::raw::c_char, } - impl ferment::FFIConversionFrom, String>> for Result_ok_Vec_u8_err_String { - unsafe fn ffi_from_const(ffi: *const Result_ok_Vec_u8_err_String) -> Result, String> { + impl ferment::FFIConversionFrom> for Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { + unsafe fn ffi_from_const(ffi: *const Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String) -> Result { let ffi_ref = &*ffi; - ferment::fold_to_result(ffi_ref.ok, |o| >>::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) + ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) } } - impl ferment::FFIConversionTo, String>> for Result_ok_Vec_u8_err_String { - unsafe fn ffi_to_const(obj: Result, String>) -> *const Result_ok_Vec_u8_err_String { + impl ferment::FFIConversionTo> for Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { + unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { ferment::boxed({ let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); Self { ok, error } @@ -7343,7 +9241,7 @@ pub mod generics { } } - impl Drop for Result_ok_Vec_u8_err_String { + impl Drop for Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { fn drop(&mut self) { unsafe { ferment::unbox_any_opt(self.ok); @@ -7353,35 +9251,35 @@ pub mod generics { } #[no_mangle] - pub unsafe extern "C" fn Result_ok_Vec_u8_err_String_ctor(ok: *mut crate::fermented::generics::Vec_u8, error: *mut std::os::raw::c_char) -> *mut Result_ok_Vec_u8_err_String { ferment::boxed(Result_ok_Vec_u8_err_String { ok, error }) } + pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String_ctor(ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ResourceVotesByIdentity, error: *mut std::os::raw::c_char) -> *mut Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { ferment::boxed(Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { ok, error }) } #[no_mangle] - pub unsafe extern "C" fn Result_ok_Vec_u8_err_String_destroy(ffi: *mut Result_ok_Vec_u8_err_String) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String_destroy(ffi: *mut Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Result_ok_Option_dpp_voting_votes_Vote_err_String { - pub ok: *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote, + pub struct Result_ok_drive_proof_verifier_types_ContestedResources_err_String { + pub ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResources, pub error: *mut std::os::raw::c_char, } - impl ferment::FFIConversionFrom, String>> for Result_ok_Option_dpp_voting_votes_Vote_err_String { - unsafe fn ffi_from_const(ffi: *const Result_ok_Option_dpp_voting_votes_Vote_err_String) -> Result, String> { + impl ferment::FFIConversionFrom> for Result_ok_drive_proof_verifier_types_ContestedResources_err_String { + unsafe fn ffi_from_const(ffi: *const Result_ok_drive_proof_verifier_types_ContestedResources_err_String) -> Result { let ffi_ref = &*ffi; - ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from_opt(o), ffi_ref.error, |o| >::ffi_from(o)) + ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) } } - impl ferment::FFIConversionTo, String>> for Result_ok_Option_dpp_voting_votes_Vote_err_String { - unsafe fn ffi_to_const(obj: Result, String>) -> *const Result_ok_Option_dpp_voting_votes_Vote_err_String { + impl ferment::FFIConversionTo> for Result_ok_drive_proof_verifier_types_ContestedResources_err_String { + unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_drive_proof_verifier_types_ContestedResources_err_String { ferment::boxed({ - let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to_opt(o), |o| ferment::FFIConversionTo::ffi_to(o)); + let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); Self { ok, error } }) } } - impl Drop for Result_ok_Option_dpp_voting_votes_Vote_err_String { + impl Drop for Result_ok_drive_proof_verifier_types_ContestedResources_err_String { fn drop(&mut self) { unsafe { ferment::unbox_any_opt(self.ok); @@ -7391,113 +9289,114 @@ pub mod generics { } #[no_mangle] - pub unsafe extern "C" fn Result_ok_Option_dpp_voting_votes_Vote_err_String_ctor(ok: *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote, error: *mut std::os::raw::c_char) -> *mut Result_ok_Option_dpp_voting_votes_Vote_err_String { ferment::boxed(Result_ok_Option_dpp_voting_votes_Vote_err_String { ok, error }) } + pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_ContestedResources_err_String_ctor(ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResources, error: *mut std::os::raw::c_char) -> *mut Result_ok_drive_proof_verifier_types_ContestedResources_err_String { ferment::boxed(Result_ok_drive_proof_verifier_types_ContestedResources_err_String { ok, error }) } #[no_mangle] - pub unsafe extern "C" fn Result_ok_Option_dpp_voting_votes_Vote_err_String_destroy(ffi: *mut Result_ok_Option_dpp_voting_votes_Vote_err_String) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_ContestedResources_err_String_destroy(ffi: *mut Result_ok_drive_proof_verifier_types_ContestedResources_err_String) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Result_ok_Vec_dpp_document_Document_err_String { - pub ok: *mut crate::fermented::generics::Vec_dpp_document_Document, - pub error: *mut std::os::raw::c_char, + pub struct Arr_u8_2 { + pub count: usize, + pub values: *mut u8, } - impl ferment::FFIConversionFrom, String>> for Result_ok_Vec_dpp_document_Document_err_String { - unsafe fn ffi_from_const(ffi: *const Result_ok_Vec_dpp_document_Document_err_String) -> Result, String> { + impl ferment::FFIConversionFrom<[u8; 2]> for Arr_u8_2 { + unsafe fn ffi_from_const(ffi: *const Arr_u8_2) -> [u8; 2] { let ffi_ref = &*ffi; - ferment::fold_to_result(ffi_ref.ok, |o| >>::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) + let vec: Vec = ferment::from_primitive_group(ffi_ref.values, ffi_ref.count); + vec.try_into().unwrap() } } - impl ferment::FFIConversionTo, String>> for Result_ok_Vec_dpp_document_Document_err_String { - unsafe fn ffi_to_const(obj: Result, String>) -> *const Result_ok_Vec_dpp_document_Document_err_String { - ferment::boxed({ - let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); - Self { ok, error } - }) - } - } + impl ferment::FFIConversionTo<[u8; 2]> for Arr_u8_2 { unsafe fn ffi_to_const(obj: [u8; 2]) -> *const Arr_u8_2 { ferment::boxed(Self { count: obj.len(), values: ferment::to_primitive_group(obj.into_iter()) }) } } - impl Drop for Result_ok_Vec_dpp_document_Document_err_String { - fn drop(&mut self) { - unsafe { - ferment::unbox_any_opt(self.ok); - ferment::unbox_any_opt(self.error); - } - } - } + impl Drop for Arr_u8_2 { fn drop(&mut self) { unsafe { ferment::unbox_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Result_ok_Vec_dpp_document_Document_err_String_ctor(ok: *mut crate::fermented::generics::Vec_dpp_document_Document, error: *mut std::os::raw::c_char) -> *mut Result_ok_Vec_dpp_document_Document_err_String { ferment::boxed(Result_ok_Vec_dpp_document_Document_err_String { ok, error }) } + pub unsafe extern "C" fn Arr_u8_2_ctor(count: usize, values: *mut u8) -> *mut Arr_u8_2 { ferment::boxed(Arr_u8_2 { count, values }) } #[no_mangle] - pub unsafe extern "C" fn Result_ok_Vec_dpp_document_Document_err_String_destroy(ffi: *mut Result_ok_Vec_dpp_document_Document_err_String) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Arr_u8_2_destroy(ffi: *mut Arr_u8_2) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Vec_u8 { + pub struct Vec_drive_query_conditions_WhereClause { pub count: usize, - pub values: *mut u8, + pub values: *mut *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereClause, } - impl ferment::FFIConversionFrom> for Vec_u8 { - unsafe fn ffi_from_const(ffi: *const Vec_u8) -> Vec { + impl ferment::FFIConversionFrom> for Vec_drive_query_conditions_WhereClause { + unsafe fn ffi_from_const(ffi: *const Vec_drive_query_conditions_WhereClause) -> Vec { let ffi_ref = &*ffi; - ferment::from_primitive_group(ffi_ref.values, ffi_ref.count) + ferment::from_complex_group(ffi_ref.values, ffi_ref.count) } } - impl ferment::FFIConversionTo> for Vec_u8 { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_u8 { ferment::boxed(Self { count: obj.len(), values: ferment::to_primitive_group(obj.into_iter()) }) } } + impl ferment::FFIConversionTo> for Vec_drive_query_conditions_WhereClause { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_drive_query_conditions_WhereClause { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } - impl Drop for Vec_u8 { fn drop(&mut self) { unsafe { ferment::unbox_vec_ptr(self.values, self.count); } } } + impl Drop for Vec_drive_query_conditions_WhereClause { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Vec_u8_ctor(count: usize, values: *mut u8) -> *mut Vec_u8 { ferment::boxed(Vec_u8 { count, values }) } + pub unsafe extern "C" fn Vec_drive_query_conditions_WhereClause_ctor(count: usize, values: *mut *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereClause) -> *mut Vec_drive_query_conditions_WhereClause { ferment::boxed(Vec_drive_query_conditions_WhereClause { count, values }) } #[no_mangle] - pub unsafe extern "C" fn Vec_u8_destroy(ffi: *mut Vec_u8) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Vec_drive_query_conditions_WhereClause_destroy(ffi: *mut Vec_drive_query_conditions_WhereClause) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Vec_platform_value_Value { - pub count: usize, - pub values: *mut *mut crate::fermented::types::platform_value::platform_value_Value, + pub struct Result_ok_dpp_voting_votes_Vote_err_String { + pub ok: *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote, + pub error: *mut std::os::raw::c_char, } - impl ferment::FFIConversionFrom> for Vec_platform_value_Value { - unsafe fn ffi_from_const(ffi: *const Vec_platform_value_Value) -> Vec { + impl ferment::FFIConversionFrom> for Result_ok_dpp_voting_votes_Vote_err_String { + unsafe fn ffi_from_const(ffi: *const Result_ok_dpp_voting_votes_Vote_err_String) -> Result { let ffi_ref = &*ffi; - ferment::from_complex_group(ffi_ref.values, ffi_ref.count) + ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) } } - impl ferment::FFIConversionTo> for Vec_platform_value_Value { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_platform_value_Value { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } + impl ferment::FFIConversionTo> for Result_ok_dpp_voting_votes_Vote_err_String { + unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_dpp_voting_votes_Vote_err_String { + ferment::boxed({ + let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); + Self { ok, error } + }) + } + } - impl Drop for Vec_platform_value_Value { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } + impl Drop for Result_ok_dpp_voting_votes_Vote_err_String { + fn drop(&mut self) { + unsafe { + ferment::unbox_any_opt(self.ok); + ferment::unbox_any_opt(self.error); + } + } + } #[no_mangle] - pub unsafe extern "C" fn Vec_platform_value_Value_ctor(count: usize, values: *mut *mut crate::fermented::types::platform_value::platform_value_Value) -> *mut Vec_platform_value_Value { ferment::boxed(Vec_platform_value_Value { count, values }) } + pub unsafe extern "C" fn Result_ok_dpp_voting_votes_Vote_err_String_ctor(ok: *mut crate::fermented::types::dpp::voting::votes::dpp_voting_votes_Vote, error: *mut std::os::raw::c_char) -> *mut Result_ok_dpp_voting_votes_Vote_err_String { ferment::boxed(Result_ok_dpp_voting_votes_Vote_err_String { ok, error }) } #[no_mangle] - pub unsafe extern "C" fn Vec_platform_value_Value_destroy(ffi: *mut Vec_platform_value_Value) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Result_ok_dpp_voting_votes_Vote_err_String_destroy(ffi: *mut Result_ok_dpp_voting_votes_Vote_err_String) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Result_ok_dpp_identity_identity_Identity_err_String { - pub ok: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, + pub struct Result_ok_dpp_document_Document_err_String { + pub ok: *mut crate::fermented::types::dpp::document::dpp_document_Document, pub error: *mut std::os::raw::c_char, } - impl ferment::FFIConversionFrom> for Result_ok_dpp_identity_identity_Identity_err_String { - unsafe fn ffi_from_const(ffi: *const Result_ok_dpp_identity_identity_Identity_err_String) -> Result { + impl ferment::FFIConversionFrom> for Result_ok_dpp_document_Document_err_String { + unsafe fn ffi_from_const(ffi: *const Result_ok_dpp_document_Document_err_String) -> Result { let ffi_ref = &*ffi; - ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) + ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) } } - impl ferment::FFIConversionTo> for Result_ok_dpp_identity_identity_Identity_err_String { - unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_dpp_identity_identity_Identity_err_String { + impl ferment::FFIConversionTo> for Result_ok_dpp_document_Document_err_String { + unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_dpp_document_Document_err_String { ferment::boxed({ let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); Self { ok, error } @@ -7505,7 +9404,7 @@ pub mod generics { } } - impl Drop for Result_ok_dpp_identity_identity_Identity_err_String { + impl Drop for Result_ok_dpp_document_Document_err_String { fn drop(&mut self) { unsafe { ferment::unbox_any_opt(self.ok); @@ -7515,34 +9414,42 @@ pub mod generics { } #[no_mangle] - pub unsafe extern "C" fn Result_ok_dpp_identity_identity_Identity_err_String_ctor(ok: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, error: *mut std::os::raw::c_char) -> *mut Result_ok_dpp_identity_identity_Identity_err_String { ferment::boxed(Result_ok_dpp_identity_identity_Identity_err_String { ok, error }) } + pub unsafe extern "C" fn Result_ok_dpp_document_Document_err_String_ctor(ok: *mut crate::fermented::types::dpp::document::dpp_document_Document, error: *mut std::os::raw::c_char) -> *mut Result_ok_dpp_document_Document_err_String { ferment::boxed(Result_ok_dpp_document_Document_err_String { ok, error }) } #[no_mangle] - pub unsafe extern "C" fn Result_ok_dpp_identity_identity_Identity_err_String_destroy(ffi: *mut Result_ok_dpp_identity_identity_Identity_err_String) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Result_ok_dpp_document_Document_err_String_destroy(ffi: *mut Result_ok_dpp_document_Document_err_String) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Vec_dpp_identity_identity_public_key_IdentityPublicKey { + pub struct std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { pub count: usize, - pub values: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey, + pub keys: *mut *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, + pub values: *mut *mut crate::fermented::types::dpp::voting::contender_structs::contender::dpp_voting_contender_structs_contender_ContenderWithSerializedDocument, } - impl ferment::FFIConversionFrom> for Vec_dpp_identity_identity_public_key_IdentityPublicKey { - unsafe fn ffi_from_const(ffi: *const Vec_dpp_identity_identity_public_key_IdentityPublicKey) -> Vec { + impl ferment::FFIConversionFrom> for std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { + unsafe fn ffi_from_const(ffi: *const std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument) -> std::collections::BTreeMap { let ffi_ref = &*ffi; - ferment::from_complex_group(ffi_ref.values, ffi_ref.count) + ferment::fold_to_map(ffi_ref.count, ffi_ref.keys, ffi_ref.values, |o| >::ffi_from(o), |o| >::ffi_from(o)) } } - impl ferment::FFIConversionTo> for Vec_dpp_identity_identity_public_key_IdentityPublicKey { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_dpp_identity_identity_public_key_IdentityPublicKey { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } + impl ferment::FFIConversionTo> for std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { unsafe fn ffi_to_const(obj: std::collections::BTreeMap) -> *const std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { ferment::boxed(Self { count: obj.len(), keys: ferment::to_complex_group(obj.keys().cloned()), values: ferment::to_complex_group(obj.values().cloned()) }) } } - impl Drop for Vec_dpp_identity_identity_public_key_IdentityPublicKey { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } + impl Drop for std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { + fn drop(&mut self) { + unsafe { + ferment::unbox_any_vec_ptr(self.keys, self.count); + ferment::unbox_any_vec_ptr(self.values, self.count); + } + } + } #[no_mangle] - pub unsafe extern "C" fn Vec_dpp_identity_identity_public_key_IdentityPublicKey_ctor(count: usize, values: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey) -> *mut Vec_dpp_identity_identity_public_key_IdentityPublicKey { ferment::boxed(Vec_dpp_identity_identity_public_key_IdentityPublicKey { count, values }) } + pub unsafe extern "C" fn std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument_ctor(count: usize, keys: *mut *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, values: *mut *mut crate::fermented::types::dpp::voting::contender_structs::contender::dpp_voting_contender_structs_contender_ContenderWithSerializedDocument) -> *mut std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { ferment::boxed(std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { count, keys, values }) } #[no_mangle] - pub unsafe extern "C" fn Vec_dpp_identity_identity_public_key_IdentityPublicKey_destroy(ffi: *mut Vec_dpp_identity_identity_public_key_IdentityPublicKey) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument_destroy(ffi: *mut std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] @@ -7570,111 +9477,96 @@ pub mod generics { #[repr(C)] #[derive(Clone)] - pub struct Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { - pub ok: *mut crate::fermented::types::platform_mobile::data_contracts::platform_mobile_data_contracts_DataContractFFI, - pub error: *mut std::os::raw::c_char, + pub struct Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { + pub o_0: *mut crate::fermented::types::dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo, + pub o_1: *mut crate::fermented::types::dpp::block::block_info::dpp_block_block_info_BlockInfo, } - impl ferment::FFIConversionFrom, String>> for Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { - unsafe fn ffi_from_const(ffi: *const Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String) -> Result, String> { + impl ferment::FFIConversionFrom<(dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo, dpp::block::block_info::BlockInfo)> for Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { + unsafe fn ffi_from_const(ffi: *const Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo) -> (dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo, dpp::block::block_info::BlockInfo) { let ffi_ref = &*ffi; - ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from_opt(o), ffi_ref.error, |o| >::ffi_from(o)) + (ferment::FFIConversionFrom::ffi_from(ffi_ref.o_0), ferment::FFIConversionFrom::ffi_from(ffi_ref.o_1)) } } - impl ferment::FFIConversionTo, String>> for Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { - unsafe fn ffi_to_const(obj: Result, String>) -> *const Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { - ferment::boxed({ - let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to_opt(o), |o| ferment::FFIConversionTo::ffi_to(o)); - Self { ok, error } - }) - } - } + impl ferment::FFIConversionTo<(dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo, dpp::block::block_info::BlockInfo)> for Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { unsafe fn ffi_to_const(obj: (dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::ContestedDocumentVotePollWinnerInfo, dpp::block::block_info::BlockInfo)) -> *const Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { ferment::boxed(Self { o_0: ferment::FFIConversionTo::ffi_to(obj.0), o_1: ferment::FFIConversionTo::ffi_to(obj.1) }) } } - impl Drop for Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { + impl Drop for Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { fn drop(&mut self) { unsafe { - ferment::unbox_any_opt(self.ok); - ferment::unbox_any_opt(self.error); + ferment::unbox_any(self.o_0); + ferment::unbox_any(self.o_1); } } } #[no_mangle] - pub unsafe extern "C" fn Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String_ctor(ok: *mut crate::fermented::types::platform_mobile::data_contracts::platform_mobile_data_contracts_DataContractFFI, error: *mut std::os::raw::c_char) -> *mut Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { ferment::boxed(Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { ok, error }) } + pub unsafe extern "C" fn Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo_ctor(o_0: *mut crate::fermented::types::dpp::voting::vote_info_storage::contested_document_vote_poll_winner_info::dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo, o_1: *mut crate::fermented::types::dpp::block::block_info::dpp_block_block_info_BlockInfo) -> *mut Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { ferment::boxed(Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo { o_0, o_1 }) } #[no_mangle] - pub unsafe extern "C" fn Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String_destroy(ffi: *mut Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo_destroy(ffi: *mut Tuple_dpp_voting_vote_info_storage_contested_document_vote_poll_winner_info_ContestedDocumentVotePollWinnerInfo_dpp_block_block_info_BlockInfo) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { - pub count: usize, - pub keys: *mut *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, - pub values: *mut *mut crate::fermented::types::dpp::voting::contender_structs::contender::dpp_voting_contender_structs_contender_ContenderWithSerializedDocument, + pub struct Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { + pub ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_VotePollsGroupedByTimestamp, + pub error: *mut std::os::raw::c_char, } - impl ferment::FFIConversionFrom> for std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { - unsafe fn ffi_from_const(ffi: *const std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument) -> std::collections::BTreeMap { + impl ferment::FFIConversionFrom> for Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { + unsafe fn ffi_from_const(ffi: *const Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String) -> Result { let ffi_ref = &*ffi; - ferment::fold_to_map(ffi_ref.count, ffi_ref.keys, ffi_ref.values, |o| >::ffi_from(o), |o| >::ffi_from(o)) + ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) } } - impl ferment::FFIConversionTo> for std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { unsafe fn ffi_to_const(obj: std::collections::BTreeMap) -> *const std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { ferment::boxed(Self { count: obj.len(), keys: ferment::to_complex_group(obj.keys().cloned()), values: ferment::to_complex_group(obj.values().cloned()) }) } } + impl ferment::FFIConversionTo> for Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { + unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { + ferment::boxed({ + let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); + Self { ok, error } + }) + } + } - impl Drop for std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { + impl Drop for Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { fn drop(&mut self) { unsafe { - ferment::unbox_any_vec_ptr(self.keys, self.count); - ferment::unbox_any_vec_ptr(self.values, self.count); + ferment::unbox_any_opt(self.ok); + ferment::unbox_any_opt(self.error); } } } #[no_mangle] - pub unsafe extern "C" fn std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument_ctor(count: usize, keys: *mut *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, values: *mut *mut crate::fermented::types::dpp::voting::contender_structs::contender::dpp_voting_contender_structs_contender_ContenderWithSerializedDocument) -> *mut std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { ferment::boxed(std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument { count, keys, values }) } + pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String_ctor(ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_VotePollsGroupedByTimestamp, error: *mut std::os::raw::c_char) -> *mut Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { ferment::boxed(Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String { ok, error }) } #[no_mangle] - pub unsafe extern "C" fn std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument_destroy(ffi: *mut std_collections_Map_keys_platform_value_types_identifier_Identifier_values_dpp_voting_contender_structs_contender_ContenderWithSerializedDocument) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String_destroy(ffi: *mut Result_ok_drive_proof_verifier_types_VotePollsGroupedByTimestamp_err_String) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { - pub ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ResourceVotesByIdentity, - pub error: *mut std::os::raw::c_char, + pub struct Vec_dpp_identity_identity_public_key_IdentityPublicKey { + pub count: usize, + pub values: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey, } - impl ferment::FFIConversionFrom> for Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { - unsafe fn ffi_from_const(ffi: *const Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String) -> Result { + impl ferment::FFIConversionFrom> for Vec_dpp_identity_identity_public_key_IdentityPublicKey { + unsafe fn ffi_from_const(ffi: *const Vec_dpp_identity_identity_public_key_IdentityPublicKey) -> Vec { let ffi_ref = &*ffi; - ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) + ferment::from_complex_group(ffi_ref.values, ffi_ref.count) } } - impl ferment::FFIConversionTo> for Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { - unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { - ferment::boxed({ - let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); - Self { ok, error } - }) - } - } + impl ferment::FFIConversionTo> for Vec_dpp_identity_identity_public_key_IdentityPublicKey { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_dpp_identity_identity_public_key_IdentityPublicKey { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } - impl Drop for Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { - fn drop(&mut self) { - unsafe { - ferment::unbox_any_opt(self.ok); - ferment::unbox_any_opt(self.error); - } - } - } + impl Drop for Vec_dpp_identity_identity_public_key_IdentityPublicKey { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String_ctor(ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ResourceVotesByIdentity, error: *mut std::os::raw::c_char) -> *mut Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { ferment::boxed(Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String { ok, error }) } + pub unsafe extern "C" fn Vec_dpp_identity_identity_public_key_IdentityPublicKey_ctor(count: usize, values: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey) -> *mut Vec_dpp_identity_identity_public_key_IdentityPublicKey { ferment::boxed(Vec_dpp_identity_identity_public_key_IdentityPublicKey { count, values }) } #[no_mangle] - pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String_destroy(ffi: *mut Result_ok_drive_proof_verifier_types_ResourceVotesByIdentity_err_String) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Vec_dpp_identity_identity_public_key_IdentityPublicKey_destroy(ffi: *mut Vec_dpp_identity_identity_public_key_IdentityPublicKey) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] @@ -7702,306 +9594,331 @@ pub mod generics { #[repr(C)] #[derive(Clone)] - pub struct Arr_u8_2 { + pub struct Vec_platform_value_Value { pub count: usize, - pub values: *mut u8, + pub values: *mut *mut crate::fermented::types::platform_value::platform_value_Value, } - impl ferment::FFIConversionFrom<[u8; 2]> for Arr_u8_2 { - unsafe fn ffi_from_const(ffi: *const Arr_u8_2) -> [u8; 2] { + impl ferment::FFIConversionFrom> for Vec_platform_value_Value { + unsafe fn ffi_from_const(ffi: *const Vec_platform_value_Value) -> Vec { let ffi_ref = &*ffi; - let vec: Vec = ferment::from_primitive_group(ffi_ref.values, ffi_ref.count); - vec.try_into().unwrap() + ferment::from_complex_group(ffi_ref.values, ffi_ref.count) } } - impl ferment::FFIConversionTo<[u8; 2]> for Arr_u8_2 { unsafe fn ffi_to_const(obj: [u8; 2]) -> *const Arr_u8_2 { ferment::boxed(Self { count: obj.len(), values: ferment::to_primitive_group(obj.into_iter()) }) } } + impl ferment::FFIConversionTo> for Vec_platform_value_Value { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_platform_value_Value { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } - impl Drop for Arr_u8_2 { fn drop(&mut self) { unsafe { ferment::unbox_vec_ptr(self.values, self.count); } } } + impl Drop for Vec_platform_value_Value { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Arr_u8_2_ctor(count: usize, values: *mut u8) -> *mut Arr_u8_2 { ferment::boxed(Arr_u8_2 { count, values }) } + pub unsafe extern "C" fn Vec_platform_value_Value_ctor(count: usize, values: *mut *mut crate::fermented::types::platform_value::platform_value_Value) -> *mut Vec_platform_value_Value { ferment::boxed(Vec_platform_value_Value { count, values }) } #[no_mangle] - pub unsafe extern "C" fn Arr_u8_2_destroy(ffi: *mut Arr_u8_2) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Vec_platform_value_Value_destroy(ffi: *mut Vec_platform_value_Value) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Result_ok_drive_proof_verifier_types_ContestedResources_err_String { - pub ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResources, - pub error: *mut std::os::raw::c_char, + pub struct Vec_dpp_voting_vote_polls_VotePoll { + pub count: usize, + pub values: *mut *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll, } - impl ferment::FFIConversionFrom> for Result_ok_drive_proof_verifier_types_ContestedResources_err_String { - unsafe fn ffi_from_const(ffi: *const Result_ok_drive_proof_verifier_types_ContestedResources_err_String) -> Result { + impl ferment::FFIConversionFrom> for Vec_dpp_voting_vote_polls_VotePoll { + unsafe fn ffi_from_const(ffi: *const Vec_dpp_voting_vote_polls_VotePoll) -> Vec { let ffi_ref = &*ffi; - ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) + ferment::from_complex_group(ffi_ref.values, ffi_ref.count) } } - impl ferment::FFIConversionTo> for Result_ok_drive_proof_verifier_types_ContestedResources_err_String { - unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_drive_proof_verifier_types_ContestedResources_err_String { - ferment::boxed({ - let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); - Self { ok, error } - }) + impl ferment::FFIConversionTo> for Vec_dpp_voting_vote_polls_VotePoll { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_dpp_voting_vote_polls_VotePoll { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } + + impl Drop for Vec_dpp_voting_vote_polls_VotePoll { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } + + #[no_mangle] + pub unsafe extern "C" fn Vec_dpp_voting_vote_polls_VotePoll_ctor(count: usize, values: *mut *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll) -> *mut Vec_dpp_voting_vote_polls_VotePoll { ferment::boxed(Vec_dpp_voting_vote_polls_VotePoll { count, values }) } + + #[no_mangle] + pub unsafe extern "C" fn Vec_dpp_voting_vote_polls_VotePoll_destroy(ffi: *mut Vec_dpp_voting_vote_polls_VotePoll) { ferment::unbox_any(ffi); } + + #[repr(C)] + #[derive(Clone)] + pub struct std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { + pub count: usize, + pub keys: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID, + pub values: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey, + } + + impl ferment::FFIConversionFrom> for std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { + unsafe fn ffi_from_const(ffi: *const std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey) -> std::collections::BTreeMap { + let ffi_ref = &*ffi; + ferment::fold_to_map(ffi_ref.count, ffi_ref.keys, ffi_ref.values, |o| >::ffi_from(o), |o| >::ffi_from(o)) } } - impl Drop for Result_ok_drive_proof_verifier_types_ContestedResources_err_String { + impl ferment::FFIConversionTo> for std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { unsafe fn ffi_to_const(obj: std::collections::BTreeMap) -> *const std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { ferment::boxed(Self { count: obj.len(), keys: ferment::to_complex_group(obj.keys().cloned()), values: ferment::to_complex_group(obj.values().cloned()) }) } } + + impl Drop for std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { fn drop(&mut self) { unsafe { - ferment::unbox_any_opt(self.ok); - ferment::unbox_any_opt(self.error); + ferment::unbox_any_vec_ptr(self.keys, self.count); + ferment::unbox_any_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_ContestedResources_err_String_ctor(ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResources, error: *mut std::os::raw::c_char) -> *mut Result_ok_drive_proof_verifier_types_ContestedResources_err_String { ferment::boxed(Result_ok_drive_proof_verifier_types_ContestedResources_err_String { ok, error }) } + pub unsafe extern "C" fn std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey_ctor(count: usize, keys: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID, values: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey) -> *mut std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { ferment::boxed(std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { count, keys, values }) } #[no_mangle] - pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_ContestedResources_err_String_destroy(ffi: *mut Result_ok_drive_proof_verifier_types_ContestedResources_err_String) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey_destroy(ffi: *mut std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Arr_u8_20 { - pub count: usize, - pub values: *mut u8, + pub struct Result_ok_drive_proof_verifier_types_Contenders_err_String { + pub ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Contenders, + pub error: *mut std::os::raw::c_char, } - impl ferment::FFIConversionFrom<[u8; 20]> for Arr_u8_20 { - unsafe fn ffi_from_const(ffi: *const Arr_u8_20) -> [u8; 20] { + impl ferment::FFIConversionFrom> for Result_ok_drive_proof_verifier_types_Contenders_err_String { + unsafe fn ffi_from_const(ffi: *const Result_ok_drive_proof_verifier_types_Contenders_err_String) -> Result { let ffi_ref = &*ffi; - let vec: Vec = ferment::from_primitive_group(ffi_ref.values, ffi_ref.count); - vec.try_into().unwrap() + ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) } } - impl ferment::FFIConversionTo<[u8; 20]> for Arr_u8_20 { unsafe fn ffi_to_const(obj: [u8; 20]) -> *const Arr_u8_20 { ferment::boxed(Self { count: obj.len(), values: ferment::to_primitive_group(obj.into_iter()) }) } } + impl ferment::FFIConversionTo> for Result_ok_drive_proof_verifier_types_Contenders_err_String { + unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_drive_proof_verifier_types_Contenders_err_String { + ferment::boxed({ + let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); + Self { ok, error } + }) + } + } - impl Drop for Arr_u8_20 { fn drop(&mut self) { unsafe { ferment::unbox_vec_ptr(self.values, self.count); } } } + impl Drop for Result_ok_drive_proof_verifier_types_Contenders_err_String { + fn drop(&mut self) { + unsafe { + ferment::unbox_any_opt(self.ok); + ferment::unbox_any_opt(self.error); + } + } + } #[no_mangle] - pub unsafe extern "C" fn Arr_u8_20_ctor(count: usize, values: *mut u8) -> *mut Arr_u8_20 { ferment::boxed(Arr_u8_20 { count, values }) } + pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_Contenders_err_String_ctor(ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Contenders, error: *mut std::os::raw::c_char) -> *mut Result_ok_drive_proof_verifier_types_Contenders_err_String { ferment::boxed(Result_ok_drive_proof_verifier_types_Contenders_err_String { ok, error }) } #[no_mangle] - pub unsafe extern "C" fn Arr_u8_20_destroy(ffi: *mut Arr_u8_20) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_Contenders_err_String_destroy(ffi: *mut Result_ok_drive_proof_verifier_types_Contenders_err_String) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Vec_dpp_voting_vote_polls_VotePoll { + pub struct std_collections_BTreeSet_drive_proof_verifier_types_Voter { pub count: usize, - pub values: *mut *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll, + pub values: *mut *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Voter, } - impl ferment::FFIConversionFrom> for Vec_dpp_voting_vote_polls_VotePoll { - unsafe fn ffi_from_const(ffi: *const Vec_dpp_voting_vote_polls_VotePoll) -> Vec { + impl ferment::FFIConversionFrom> for std_collections_BTreeSet_drive_proof_verifier_types_Voter { + unsafe fn ffi_from_const(ffi: *const std_collections_BTreeSet_drive_proof_verifier_types_Voter) -> std::collections::BTreeSet { let ffi_ref = &*ffi; ferment::from_complex_group(ffi_ref.values, ffi_ref.count) } } - impl ferment::FFIConversionTo> for Vec_dpp_voting_vote_polls_VotePoll { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_dpp_voting_vote_polls_VotePoll { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } + impl ferment::FFIConversionTo> for std_collections_BTreeSet_drive_proof_verifier_types_Voter { unsafe fn ffi_to_const(obj: std::collections::BTreeSet) -> *const std_collections_BTreeSet_drive_proof_verifier_types_Voter { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } - impl Drop for Vec_dpp_voting_vote_polls_VotePoll { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } + impl Drop for std_collections_BTreeSet_drive_proof_verifier_types_Voter { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Vec_dpp_voting_vote_polls_VotePoll_ctor(count: usize, values: *mut *mut crate::fermented::types::dpp::voting::vote_polls::dpp_voting_vote_polls_VotePoll) -> *mut Vec_dpp_voting_vote_polls_VotePoll { ferment::boxed(Vec_dpp_voting_vote_polls_VotePoll { count, values }) } + pub unsafe extern "C" fn std_collections_BTreeSet_drive_proof_verifier_types_Voter_ctor(count: usize, values: *mut *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Voter) -> *mut std_collections_BTreeSet_drive_proof_verifier_types_Voter { ferment::boxed(std_collections_BTreeSet_drive_proof_verifier_types_Voter { count, values }) } #[no_mangle] - pub unsafe extern "C" fn Vec_dpp_voting_vote_polls_VotePoll_destroy(ffi: *mut Vec_dpp_voting_vote_polls_VotePoll) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn std_collections_BTreeSet_drive_proof_verifier_types_Voter_destroy(ffi: *mut std_collections_BTreeSet_drive_proof_verifier_types_Voter) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Tuple_platform_value_Value_platform_value_Value { - pub o_0: *mut crate::fermented::types::platform_value::platform_value_Value, - pub o_1: *mut crate::fermented::types::platform_value::platform_value_Value, + pub struct Result_ok_u64_err_String { + pub ok: *mut u64, + pub error: *mut std::os::raw::c_char, } - impl ferment::FFIConversionFrom<(platform_value::Value, platform_value::Value)> for Tuple_platform_value_Value_platform_value_Value { - unsafe fn ffi_from_const(ffi: *const Tuple_platform_value_Value_platform_value_Value) -> (platform_value::Value, platform_value::Value) { + impl ferment::FFIConversionFrom> for Result_ok_u64_err_String { + unsafe fn ffi_from_const(ffi: *const Result_ok_u64_err_String) -> Result { let ffi_ref = &*ffi; - (ferment::FFIConversionFrom::ffi_from(ffi_ref.o_0), ferment::FFIConversionFrom::ffi_from(ffi_ref.o_1)) + ferment::fold_to_result(ffi_ref.ok, |o| *o, ffi_ref.error, |o| >::ffi_from(o)) + } + } + + impl ferment::FFIConversionTo> for Result_ok_u64_err_String { + unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_u64_err_String { + ferment::boxed({ + let (ok, error) = ferment::to_result(obj, |o| ferment::boxed(o), |o| ferment::FFIConversionTo::ffi_to(o)); + Self { ok, error } + }) } } - impl ferment::FFIConversionTo<(platform_value::Value, platform_value::Value)> for Tuple_platform_value_Value_platform_value_Value { unsafe fn ffi_to_const(obj: (platform_value::Value, platform_value::Value)) -> *const Tuple_platform_value_Value_platform_value_Value { ferment::boxed(Self { o_0: ferment::FFIConversionTo::ffi_to(obj.0), o_1: ferment::FFIConversionTo::ffi_to(obj.1) }) } } - - impl Drop for Tuple_platform_value_Value_platform_value_Value { + impl Drop for Result_ok_u64_err_String { fn drop(&mut self) { unsafe { - ferment::unbox_any(self.o_0); - ferment::unbox_any(self.o_1); + ferment::destroy_opt_primitive(self.ok); + ferment::unbox_any_opt(self.error); } } } #[no_mangle] - pub unsafe extern "C" fn Tuple_platform_value_Value_platform_value_Value_ctor(o_0: *mut crate::fermented::types::platform_value::platform_value_Value, o_1: *mut crate::fermented::types::platform_value::platform_value_Value) -> *mut Tuple_platform_value_Value_platform_value_Value { ferment::boxed(Tuple_platform_value_Value_platform_value_Value { o_0, o_1 }) } + pub unsafe extern "C" fn Result_ok_u64_err_String_ctor(ok: *mut u64, error: *mut std::os::raw::c_char) -> *mut Result_ok_u64_err_String { ferment::boxed(Result_ok_u64_err_String { ok, error }) } #[no_mangle] - pub unsafe extern "C" fn Tuple_platform_value_Value_platform_value_Value_destroy(ffi: *mut Tuple_platform_value_Value_platform_value_Value) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Result_ok_u64_err_String_destroy(ffi: *mut Result_ok_u64_err_String) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { - pub count: usize, - pub keys: *mut *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, - pub values: *mut *mut crate::fermented::types::dpp::voting::votes::resource_vote::dpp_voting_votes_resource_vote_ResourceVote, + pub struct Result_ok_Vec_u8_err_String { + pub ok: *mut crate::fermented::generics::Vec_u8, + pub error: *mut std::os::raw::c_char, } - impl ferment::FFIConversionFrom>> for std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { - unsafe fn ffi_from_const(ffi: *const std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote) -> std::collections::BTreeMap> { + impl ferment::FFIConversionFrom, String>> for Result_ok_Vec_u8_err_String { + unsafe fn ffi_from_const(ffi: *const Result_ok_Vec_u8_err_String) -> Result, String> { let ffi_ref = &*ffi; - ferment::fold_to_map(ffi_ref.count, ffi_ref.keys, ffi_ref.values, |o| >::ffi_from(o), |o| >::ffi_from_opt(o)) + ferment::fold_to_result(ffi_ref.ok, |o| >>::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) } } - impl ferment::FFIConversionTo>> for std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { unsafe fn ffi_to_const(obj: std::collections::BTreeMap>) -> *const std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { ferment::boxed(Self { count: obj.len(), keys: ferment::to_complex_group(obj.keys().cloned()), values: ferment::to_opt_complex_group(obj.values().cloned()) }) } } + impl ferment::FFIConversionTo, String>> for Result_ok_Vec_u8_err_String { + unsafe fn ffi_to_const(obj: Result, String>) -> *const Result_ok_Vec_u8_err_String { + ferment::boxed({ + let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); + Self { ok, error } + }) + } + } - impl Drop for std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { + impl Drop for Result_ok_Vec_u8_err_String { fn drop(&mut self) { unsafe { - ferment::unbox_any_vec_ptr(self.keys, self.count); - ferment::unbox_any_vec_ptr(self.values, self.count); + ferment::unbox_any_opt(self.ok); + ferment::unbox_any_opt(self.error); } } } #[no_mangle] - pub unsafe extern "C" fn std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote_ctor(count: usize, keys: *mut *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, values: *mut *mut crate::fermented::types::dpp::voting::votes::resource_vote::dpp_voting_votes_resource_vote_ResourceVote) -> *mut std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { ferment::boxed(std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote { count, keys, values }) } + pub unsafe extern "C" fn Result_ok_Vec_u8_err_String_ctor(ok: *mut crate::fermented::generics::Vec_u8, error: *mut std::os::raw::c_char) -> *mut Result_ok_Vec_u8_err_String { ferment::boxed(Result_ok_Vec_u8_err_String { ok, error }) } #[no_mangle] - pub unsafe extern "C" fn std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote_destroy(ffi: *mut std_collections_Map_keys_platform_value_types_identifier_Identifier_values_Option_dpp_voting_votes_resource_vote_ResourceVote) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Result_ok_Vec_u8_err_String_destroy(ffi: *mut Result_ok_Vec_u8_err_String) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Vec_drive_query_conditions_WhereClause { - pub count: usize, - pub values: *mut *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereClause, + pub struct Tuple_platform_value_Value_platform_value_Value { + pub o_0: *mut crate::fermented::types::platform_value::platform_value_Value, + pub o_1: *mut crate::fermented::types::platform_value::platform_value_Value, } - impl ferment::FFIConversionFrom> for Vec_drive_query_conditions_WhereClause { - unsafe fn ffi_from_const(ffi: *const Vec_drive_query_conditions_WhereClause) -> Vec { + impl ferment::FFIConversionFrom<(platform_value::Value, platform_value::Value)> for Tuple_platform_value_Value_platform_value_Value { + unsafe fn ffi_from_const(ffi: *const Tuple_platform_value_Value_platform_value_Value) -> (platform_value::Value, platform_value::Value) { let ffi_ref = &*ffi; - ferment::from_complex_group(ffi_ref.values, ffi_ref.count) + (ferment::FFIConversionFrom::ffi_from(ffi_ref.o_0), ferment::FFIConversionFrom::ffi_from(ffi_ref.o_1)) } } - impl ferment::FFIConversionTo> for Vec_drive_query_conditions_WhereClause { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_drive_query_conditions_WhereClause { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } + impl ferment::FFIConversionTo<(platform_value::Value, platform_value::Value)> for Tuple_platform_value_Value_platform_value_Value { unsafe fn ffi_to_const(obj: (platform_value::Value, platform_value::Value)) -> *const Tuple_platform_value_Value_platform_value_Value { ferment::boxed(Self { o_0: ferment::FFIConversionTo::ffi_to(obj.0), o_1: ferment::FFIConversionTo::ffi_to(obj.1) }) } } - impl Drop for Vec_drive_query_conditions_WhereClause { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } + impl Drop for Tuple_platform_value_Value_platform_value_Value { + fn drop(&mut self) { + unsafe { + ferment::unbox_any(self.o_0); + ferment::unbox_any(self.o_1); + } + } + } #[no_mangle] - pub unsafe extern "C" fn Vec_drive_query_conditions_WhereClause_ctor(count: usize, values: *mut *mut crate::fermented::types::drive::query::conditions::drive_query_conditions_WhereClause) -> *mut Vec_drive_query_conditions_WhereClause { ferment::boxed(Vec_drive_query_conditions_WhereClause { count, values }) } + pub unsafe extern "C" fn Tuple_platform_value_Value_platform_value_Value_ctor(o_0: *mut crate::fermented::types::platform_value::platform_value_Value, o_1: *mut crate::fermented::types::platform_value::platform_value_Value) -> *mut Tuple_platform_value_Value_platform_value_Value { ferment::boxed(Tuple_platform_value_Value_platform_value_Value { o_0, o_1 }) } #[no_mangle] - pub unsafe extern "C" fn Vec_drive_query_conditions_WhereClause_destroy(ffi: *mut Vec_drive_query_conditions_WhereClause) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Tuple_platform_value_Value_platform_value_Value_destroy(ffi: *mut Tuple_platform_value_Value_platform_value_Value) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Arr_u8_32 { + pub struct Vec_u8 { pub count: usize, pub values: *mut u8, } - impl ferment::FFIConversionFrom<[u8; 32]> for Arr_u8_32 { - unsafe fn ffi_from_const(ffi: *const Arr_u8_32) -> [u8; 32] { + impl ferment::FFIConversionFrom> for Vec_u8 { + unsafe fn ffi_from_const(ffi: *const Vec_u8) -> Vec { let ffi_ref = &*ffi; - let vec: Vec = ferment::from_primitive_group(ffi_ref.values, ffi_ref.count); - vec.try_into().unwrap() + ferment::from_primitive_group(ffi_ref.values, ffi_ref.count) } } - impl ferment::FFIConversionTo<[u8; 32]> for Arr_u8_32 { unsafe fn ffi_to_const(obj: [u8; 32]) -> *const Arr_u8_32 { ferment::boxed(Self { count: obj.len(), values: ferment::to_primitive_group(obj.into_iter()) }) } } + impl ferment::FFIConversionTo> for Vec_u8 { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_u8 { ferment::boxed(Self { count: obj.len(), values: ferment::to_primitive_group(obj.into_iter()) }) } } - impl Drop for Arr_u8_32 { fn drop(&mut self) { unsafe { ferment::unbox_vec_ptr(self.values, self.count); } } } + impl Drop for Vec_u8 { fn drop(&mut self) { unsafe { ferment::unbox_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Arr_u8_32_ctor(count: usize, values: *mut u8) -> *mut Arr_u8_32 { ferment::boxed(Arr_u8_32 { count, values }) } + pub unsafe extern "C" fn Vec_u8_ctor(count: usize, values: *mut u8) -> *mut Vec_u8 { ferment::boxed(Vec_u8 { count, values }) } #[no_mangle] - pub unsafe extern "C" fn Arr_u8_32_destroy(ffi: *mut Arr_u8_32) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Vec_u8_destroy(ffi: *mut Vec_u8) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Vec_drive_proof_verifier_types_ContestedResource { - pub count: usize, - pub values: *mut *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResource, + pub struct Result_ok_Option_dpp_identity_identity_Identity_err_String { + pub ok: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, + pub error: *mut std::os::raw::c_char, } - impl ferment::FFIConversionFrom> for Vec_drive_proof_verifier_types_ContestedResource { - unsafe fn ffi_from_const(ffi: *const Vec_drive_proof_verifier_types_ContestedResource) -> Vec { + impl ferment::FFIConversionFrom, String>> for Result_ok_Option_dpp_identity_identity_Identity_err_String { + unsafe fn ffi_from_const(ffi: *const Result_ok_Option_dpp_identity_identity_Identity_err_String) -> Result, String> { let ffi_ref = &*ffi; - ferment::from_complex_group(ffi_ref.values, ffi_ref.count) + ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from_opt(o), ffi_ref.error, |o| >::ffi_from(o)) } } - impl ferment::FFIConversionTo> for Vec_drive_proof_verifier_types_ContestedResource { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_drive_proof_verifier_types_ContestedResource { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } - - impl Drop for Vec_drive_proof_verifier_types_ContestedResource { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } - - #[no_mangle] - pub unsafe extern "C" fn Vec_drive_proof_verifier_types_ContestedResource_ctor(count: usize, values: *mut *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_ContestedResource) -> *mut Vec_drive_proof_verifier_types_ContestedResource { ferment::boxed(Vec_drive_proof_verifier_types_ContestedResource { count, values }) } - - #[no_mangle] - pub unsafe extern "C" fn Vec_drive_proof_verifier_types_ContestedResource_destroy(ffi: *mut Vec_drive_proof_verifier_types_ContestedResource) { ferment::unbox_any(ffi); } - - #[repr(C)] - #[derive(Clone)] - pub struct platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract { - pub obj: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier, - } - - impl Drop for platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract { fn drop(&mut self) { unsafe { ferment::unbox_any(self.obj); } } } - - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract_ctor(obj: *mut crate::fermented::types::platform_value::types::identifier::platform_value_types_identifier_Identifier) -> *mut platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract { ferment::boxed(platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract { obj }) } - - #[no_mangle] - pub unsafe extern "C" fn platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract_destroy(ffi: *mut platform_mobile_provider_Cache_platform_value_types_identifier_Identifier_dpp_data_contract_DataContract) { ferment::unbox_any(ffi); } - - #[repr(C)] - #[derive(Clone)] - pub struct std_collections_BTreeSet_drive_proof_verifier_types_Voter { - pub count: usize, - pub values: *mut *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Voter, + impl ferment::FFIConversionTo, String>> for Result_ok_Option_dpp_identity_identity_Identity_err_String { + unsafe fn ffi_to_const(obj: Result, String>) -> *const Result_ok_Option_dpp_identity_identity_Identity_err_String { + ferment::boxed({ + let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to_opt(o), |o| ferment::FFIConversionTo::ffi_to(o)); + Self { ok, error } + }) + } } - impl ferment::FFIConversionFrom> for std_collections_BTreeSet_drive_proof_verifier_types_Voter { - unsafe fn ffi_from_const(ffi: *const std_collections_BTreeSet_drive_proof_verifier_types_Voter) -> std::collections::BTreeSet { - let ffi_ref = &*ffi; - ferment::from_complex_group(ffi_ref.values, ffi_ref.count) + impl Drop for Result_ok_Option_dpp_identity_identity_Identity_err_String { + fn drop(&mut self) { + unsafe { + ferment::unbox_any_opt(self.ok); + ferment::unbox_any_opt(self.error); + } } } - impl ferment::FFIConversionTo> for std_collections_BTreeSet_drive_proof_verifier_types_Voter { unsafe fn ffi_to_const(obj: std::collections::BTreeSet) -> *const std_collections_BTreeSet_drive_proof_verifier_types_Voter { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } - - impl Drop for std_collections_BTreeSet_drive_proof_verifier_types_Voter { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } - #[no_mangle] - pub unsafe extern "C" fn std_collections_BTreeSet_drive_proof_verifier_types_Voter_ctor(count: usize, values: *mut *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Voter) -> *mut std_collections_BTreeSet_drive_proof_verifier_types_Voter { ferment::boxed(std_collections_BTreeSet_drive_proof_verifier_types_Voter { count, values }) } + pub unsafe extern "C" fn Result_ok_Option_dpp_identity_identity_Identity_err_String_ctor(ok: *mut crate::fermented::types::dpp::identity::identity::dpp_identity_identity_Identity, error: *mut std::os::raw::c_char) -> *mut Result_ok_Option_dpp_identity_identity_Identity_err_String { ferment::boxed(Result_ok_Option_dpp_identity_identity_Identity_err_String { ok, error }) } #[no_mangle] - pub unsafe extern "C" fn std_collections_BTreeSet_drive_proof_verifier_types_Voter_destroy(ffi: *mut std_collections_BTreeSet_drive_proof_verifier_types_Voter) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Result_ok_Option_dpp_identity_identity_Identity_err_String_destroy(ffi: *mut Result_ok_Option_dpp_identity_identity_Identity_err_String) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Result_ok_drive_proof_verifier_types_Contenders_err_String { - pub ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Contenders, + pub struct Result_ok_Vec_dpp_document_Document_err_String { + pub ok: *mut crate::fermented::generics::Vec_dpp_document_Document, pub error: *mut std::os::raw::c_char, } - impl ferment::FFIConversionFrom> for Result_ok_drive_proof_verifier_types_Contenders_err_String { - unsafe fn ffi_from_const(ffi: *const Result_ok_drive_proof_verifier_types_Contenders_err_String) -> Result { + impl ferment::FFIConversionFrom, String>> for Result_ok_Vec_dpp_document_Document_err_String { + unsafe fn ffi_from_const(ffi: *const Result_ok_Vec_dpp_document_Document_err_String) -> Result, String> { let ffi_ref = &*ffi; - ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) + ferment::fold_to_result(ffi_ref.ok, |o| >>::ffi_from(o), ffi_ref.error, |o| >::ffi_from(o)) } } - impl ferment::FFIConversionTo> for Result_ok_drive_proof_verifier_types_Contenders_err_String { - unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_drive_proof_verifier_types_Contenders_err_String { + impl ferment::FFIConversionTo, String>> for Result_ok_Vec_dpp_document_Document_err_String { + unsafe fn ffi_to_const(obj: Result, String>) -> *const Result_ok_Vec_dpp_document_Document_err_String { ferment::boxed({ let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to(o), |o| ferment::FFIConversionTo::ffi_to(o)); Self { ok, error } @@ -8009,7 +9926,7 @@ pub mod generics { } } - impl Drop for Result_ok_drive_proof_verifier_types_Contenders_err_String { + impl Drop for Result_ok_Vec_dpp_document_Document_err_String { fn drop(&mut self) { unsafe { ferment::unbox_any_opt(self.ok); @@ -8019,127 +9936,119 @@ pub mod generics { } #[no_mangle] - pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_Contenders_err_String_ctor(ok: *mut crate::fermented::types::drive_proof_verifier::types::drive_proof_verifier_types_Contenders, error: *mut std::os::raw::c_char) -> *mut Result_ok_drive_proof_verifier_types_Contenders_err_String { ferment::boxed(Result_ok_drive_proof_verifier_types_Contenders_err_String { ok, error }) } + pub unsafe extern "C" fn Result_ok_Vec_dpp_document_Document_err_String_ctor(ok: *mut crate::fermented::generics::Vec_dpp_document_Document, error: *mut std::os::raw::c_char) -> *mut Result_ok_Vec_dpp_document_Document_err_String { ferment::boxed(Result_ok_Vec_dpp_document_Document_err_String { ok, error }) } #[no_mangle] - pub unsafe extern "C" fn Result_ok_drive_proof_verifier_types_Contenders_err_String_destroy(ffi: *mut Result_ok_drive_proof_verifier_types_Contenders_err_String) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Result_ok_Vec_dpp_document_Document_err_String_destroy(ffi: *mut Result_ok_Vec_dpp_document_Document_err_String) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { + pub struct Vec_dpp_identity_identity_public_key_KeyID { pub count: usize, - pub keys: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID, - pub values: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey, + pub values: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID, } - impl ferment::FFIConversionFrom> for std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { - unsafe fn ffi_from_const(ffi: *const std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey) -> std::collections::BTreeMap { + impl ferment::FFIConversionFrom> for Vec_dpp_identity_identity_public_key_KeyID { + unsafe fn ffi_from_const(ffi: *const Vec_dpp_identity_identity_public_key_KeyID) -> Vec { let ffi_ref = &*ffi; - ferment::fold_to_map(ffi_ref.count, ffi_ref.keys, ffi_ref.values, |o| >::ffi_from(o), |o| >::ffi_from(o)) + ferment::from_complex_group(ffi_ref.values, ffi_ref.count) } } - impl ferment::FFIConversionTo> for std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { unsafe fn ffi_to_const(obj: std::collections::BTreeMap) -> *const std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { ferment::boxed(Self { count: obj.len(), keys: ferment::to_complex_group(obj.keys().cloned()), values: ferment::to_complex_group(obj.values().cloned()) }) } } + impl ferment::FFIConversionTo> for Vec_dpp_identity_identity_public_key_KeyID { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_dpp_identity_identity_public_key_KeyID { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } - impl Drop for std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { - fn drop(&mut self) { - unsafe { - ferment::unbox_any_vec_ptr(self.keys, self.count); - ferment::unbox_any_vec_ptr(self.values, self.count); - } - } - } + impl Drop for Vec_dpp_identity_identity_public_key_KeyID { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey_ctor(count: usize, keys: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID, values: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_IdentityPublicKey) -> *mut std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { ferment::boxed(std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey { count, keys, values }) } + pub unsafe extern "C" fn Vec_dpp_identity_identity_public_key_KeyID_ctor(count: usize, values: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID) -> *mut Vec_dpp_identity_identity_public_key_KeyID { ferment::boxed(Vec_dpp_identity_identity_public_key_KeyID { count, values }) } #[no_mangle] - pub unsafe extern "C" fn std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey_destroy(ffi: *mut std_collections_Map_keys_dpp_identity_identity_public_key_KeyID_values_dpp_identity_identity_public_key_IdentityPublicKey) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Vec_dpp_identity_identity_public_key_KeyID_destroy(ffi: *mut Vec_dpp_identity_identity_public_key_KeyID) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Arr_u8_36 { + pub struct Arr_u8_20 { pub count: usize, pub values: *mut u8, } - impl ferment::FFIConversionFrom<[u8; 36]> for Arr_u8_36 { - unsafe fn ffi_from_const(ffi: *const Arr_u8_36) -> [u8; 36] { + impl ferment::FFIConversionFrom<[u8; 20]> for Arr_u8_20 { + unsafe fn ffi_from_const(ffi: *const Arr_u8_20) -> [u8; 20] { let ffi_ref = &*ffi; let vec: Vec = ferment::from_primitive_group(ffi_ref.values, ffi_ref.count); vec.try_into().unwrap() } } - impl ferment::FFIConversionTo<[u8; 36]> for Arr_u8_36 { unsafe fn ffi_to_const(obj: [u8; 36]) -> *const Arr_u8_36 { ferment::boxed(Self { count: obj.len(), values: ferment::to_primitive_group(obj.into_iter()) }) } } + impl ferment::FFIConversionTo<[u8; 20]> for Arr_u8_20 { unsafe fn ffi_to_const(obj: [u8; 20]) -> *const Arr_u8_20 { ferment::boxed(Self { count: obj.len(), values: ferment::to_primitive_group(obj.into_iter()) }) } } - impl Drop for Arr_u8_36 { fn drop(&mut self) { unsafe { ferment::unbox_vec_ptr(self.values, self.count); } } } + impl Drop for Arr_u8_20 { fn drop(&mut self) { unsafe { ferment::unbox_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Arr_u8_36_ctor(count: usize, values: *mut u8) -> *mut Arr_u8_36 { ferment::boxed(Arr_u8_36 { count, values }) } + pub unsafe extern "C" fn Arr_u8_20_ctor(count: usize, values: *mut u8) -> *mut Arr_u8_20 { ferment::boxed(Arr_u8_20 { count, values }) } #[no_mangle] - pub unsafe extern "C" fn Arr_u8_36_destroy(ffi: *mut Arr_u8_36) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Arr_u8_20_destroy(ffi: *mut Arr_u8_20) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Result_ok_u64_err_String { - pub ok: *mut u64, + pub struct Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { + pub ok: *mut crate::fermented::types::platform_mobile::data_contracts::platform_mobile_data_contracts_DataContractFFI, pub error: *mut std::os::raw::c_char, } - impl ferment::FFIConversionFrom> for Result_ok_u64_err_String { - unsafe fn ffi_from_const(ffi: *const Result_ok_u64_err_String) -> Result { + impl ferment::FFIConversionFrom, String>> for Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { + unsafe fn ffi_from_const(ffi: *const Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String) -> Result, String> { let ffi_ref = &*ffi; - ferment::fold_to_result(ffi_ref.ok, |o| *o, ffi_ref.error, |o| >::ffi_from(o)) + ferment::fold_to_result(ffi_ref.ok, |o| >::ffi_from_opt(o), ffi_ref.error, |o| >::ffi_from(o)) } } - impl ferment::FFIConversionTo> for Result_ok_u64_err_String { - unsafe fn ffi_to_const(obj: Result) -> *const Result_ok_u64_err_String { + impl ferment::FFIConversionTo, String>> for Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { + unsafe fn ffi_to_const(obj: Result, String>) -> *const Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { ferment::boxed({ - let (ok, error) = ferment::to_result(obj, |o| ferment::boxed(o), |o| ferment::FFIConversionTo::ffi_to(o)); + let (ok, error) = ferment::to_result(obj, |o| ferment::FFIConversionTo::ffi_to_opt(o), |o| ferment::FFIConversionTo::ffi_to(o)); Self { ok, error } }) } } - impl Drop for Result_ok_u64_err_String { + impl Drop for Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { fn drop(&mut self) { unsafe { - ferment::destroy_opt_primitive(self.ok); + ferment::unbox_any_opt(self.ok); ferment::unbox_any_opt(self.error); } } } #[no_mangle] - pub unsafe extern "C" fn Result_ok_u64_err_String_ctor(ok: *mut u64, error: *mut std::os::raw::c_char) -> *mut Result_ok_u64_err_String { ferment::boxed(Result_ok_u64_err_String { ok, error }) } + pub unsafe extern "C" fn Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String_ctor(ok: *mut crate::fermented::types::platform_mobile::data_contracts::platform_mobile_data_contracts_DataContractFFI, error: *mut std::os::raw::c_char) -> *mut Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { ferment::boxed(Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String { ok, error }) } #[no_mangle] - pub unsafe extern "C" fn Result_ok_u64_err_String_destroy(ffi: *mut Result_ok_u64_err_String) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String_destroy(ffi: *mut Result_ok_Option_platform_mobile_data_contracts_DataContractFFI_err_String) { ferment::unbox_any(ffi); } #[repr(C)] #[derive(Clone)] - pub struct Vec_dpp_identity_identity_public_key_KeyID { + pub struct Vec_Tuple_platform_value_Value_platform_value_Value { pub count: usize, - pub values: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID, + pub values: *mut *mut crate::fermented::generics::Tuple_platform_value_Value_platform_value_Value, } - impl ferment::FFIConversionFrom> for Vec_dpp_identity_identity_public_key_KeyID { - unsafe fn ffi_from_const(ffi: *const Vec_dpp_identity_identity_public_key_KeyID) -> Vec { + impl ferment::FFIConversionFrom> for Vec_Tuple_platform_value_Value_platform_value_Value { + unsafe fn ffi_from_const(ffi: *const Vec_Tuple_platform_value_Value_platform_value_Value) -> Vec<(platform_value::Value, platform_value::Value)> { let ffi_ref = &*ffi; ferment::from_complex_group(ffi_ref.values, ffi_ref.count) } } - impl ferment::FFIConversionTo> for Vec_dpp_identity_identity_public_key_KeyID { unsafe fn ffi_to_const(obj: Vec) -> *const Vec_dpp_identity_identity_public_key_KeyID { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } + impl ferment::FFIConversionTo> for Vec_Tuple_platform_value_Value_platform_value_Value { unsafe fn ffi_to_const(obj: Vec<(platform_value::Value, platform_value::Value)>) -> *const Vec_Tuple_platform_value_Value_platform_value_Value { ferment::boxed(Self { count: obj.len(), values: ferment::to_complex_group(obj.into_iter()) }) } } - impl Drop for Vec_dpp_identity_identity_public_key_KeyID { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } + impl Drop for Vec_Tuple_platform_value_Value_platform_value_Value { fn drop(&mut self) { unsafe { ferment::unbox_any_vec_ptr(self.values, self.count); } } } #[no_mangle] - pub unsafe extern "C" fn Vec_dpp_identity_identity_public_key_KeyID_ctor(count: usize, values: *mut *mut crate::fermented::types::dpp::identity::identity_public_key::dpp_identity_identity_public_key_KeyID) -> *mut Vec_dpp_identity_identity_public_key_KeyID { ferment::boxed(Vec_dpp_identity_identity_public_key_KeyID { count, values }) } + pub unsafe extern "C" fn Vec_Tuple_platform_value_Value_platform_value_Value_ctor(count: usize, values: *mut *mut crate::fermented::generics::Tuple_platform_value_Value_platform_value_Value) -> *mut Vec_Tuple_platform_value_Value_platform_value_Value { ferment::boxed(Vec_Tuple_platform_value_Value_platform_value_Value { count, values }) } #[no_mangle] - pub unsafe extern "C" fn Vec_dpp_identity_identity_public_key_KeyID_destroy(ffi: *mut Vec_dpp_identity_identity_public_key_KeyID) { ferment::unbox_any(ffi); } + pub unsafe extern "C" fn Vec_Tuple_platform_value_Value_platform_value_Value_destroy(ffi: *mut Vec_Tuple_platform_value_Value_platform_value_Value) { ferment::unbox_any(ffi); } } \ No newline at end of file diff --git a/dash-sdk-java/src/main/swig/document.i b/dash-sdk-java/src/main/swig/document.i index d91482c..c7dc78c 100644 --- a/dash-sdk-java/src/main/swig/document.i +++ b/dash-sdk-java/src/main/swig/document.i @@ -52,7 +52,8 @@ START_CLASS(DocumentV0, dpp_document_v0_DocumentV0); clone(transferred_at_block_height), clone(created_at_core_block_height), clone(updated_at_core_block_height), - clone(transferred_at_core_block_height) + clone(transferred_at_core_block_height), + nullptr ); } dpp_document_v0_DocumentV0( @@ -74,6 +75,7 @@ START_CLASS(DocumentV0, dpp_document_v0_DocumentV0); nullptr, nullptr, nullptr, + nullptr, nullptr ); } diff --git a/examples/src/main/kotlin/dashj/org/platform/PlatformExplorer.kt b/examples/src/main/kotlin/dashj/org/platform/PlatformExplorer.kt index be52047..c28b1e3 100644 --- a/examples/src/main/kotlin/dashj/org/platform/PlatformExplorer.kt +++ b/examples/src/main/kotlin/dashj/org/platform/PlatformExplorer.kt @@ -101,7 +101,7 @@ object PlatformExplorer { @JvmStatic fun main(args: Array) { // This line makes the log output more compact and easily read, especially when using the JDK log adapter. - BriefLogFormatter.initWithSilentBitcoinJ() + BriefLogFormatter.initVerbose() if (args.isEmpty()) { System.err.println("Usage: [regtest|testnet|333|devnet]") return diff --git a/platform-mobile/Cargo.lock b/platform-mobile/Cargo.lock index e6a12f3..2cc4456 100644 --- a/platform-mobile/Cargo.lock +++ b/platform-mobile/Cargo.lock @@ -17,6 +17,17 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + [[package]] name = "ahash" version = "0.8.11" @@ -24,9 +35,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", - "getrandom", "once_cell", - "serde", "version_check", "zerocopy", ] @@ -116,15 +125,6 @@ version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" -[[package]] -name = "arbitrary" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" -dependencies = [ - "derive_arbitrary", -] - [[package]] name = "arc-swap" version = "1.7.1" @@ -177,6 +177,28 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +[[package]] +name = "aws-lc-rs" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ec2f1fc3ec205783a5da9a7e6c1509cc69dedf09a1949e412c1e18469326d00" +dependencies = [ + "aws-lc-sys", + "zeroize", +] + +[[package]] +name = "aws-lc-sys" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a2f9779ce85b93ab6170dd940ad0169b5766ff848247aff13bb788b832fe3f4" +dependencies = [ + "cc", + "cmake", + "dunce", + "fs_extra", +] + [[package]] name = "backon" version = "1.5.1" @@ -208,6 +230,15 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" +[[package]] +name = "base58ck" +version = "0.1.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec5dc7e09f7bb15f0062da7c03086d6b71a2c84e0af4fccbbc7d8c6559847816" +dependencies = [ + "bitcoin_hashes", +] + [[package]] name = "base64" version = "0.13.1" @@ -247,23 +278,30 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" +[[package]] +name = "bech32" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32637268377fc7b10a8c6d51de3e7fba1ce5dd371a96e342b34e6078db558e7f" + [[package]] name = "bincode" -version = "2.0.0-rc.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f11ea1a0346b94ef188834a65c068a03aec181c94896d481d7a0a40d85b0ce95" +checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740" dependencies = [ "bincode_derive", "serde", + "unty", ] [[package]] name = "bincode_derive" -version = "2.0.0-rc.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e30759b3b99a1b802a7a3aa21c85c3ded5c28e1c83170d82d70f08bbf7f3e4c" +checksum = "bf95709a440f45e986983918d0e8a1f30a9b1df04918fc828670606804ac3c09" dependencies = [ - "virtue 0.0.13", + "virtue 0.0.18", ] [[package]] @@ -277,20 +315,17 @@ dependencies = [ ] [[package]] -name = "bit-set" -version = "0.5.3" +name = "bip39" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +checksum = "90dbd31c98227229239363921e60fcf5e558e43ec69094d46fc4996f08d1d5bc" dependencies = [ - "bit-vec", + "bitcoin_hashes", + "serde", + "unicode-normalization", + "zeroize", ] -[[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - [[package]] name = "bitcoin-io" version = "0.1.3" @@ -315,9 +350,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.1" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" +checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8" [[package]] name = "bitvec" @@ -354,10 +389,18 @@ dependencies = [ ] [[package]] -name = "blsful" -version = "3.0.0-pre8" +name = "block-padding" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "384e5e9866cb7f830f06a6633ba998697d5a826e99e8c78376deaadd33cda7be" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +dependencies = [ + "generic-array 0.14.7", +] + +[[package]] +name = "blsful" +version = "3.0.0" +source = "git+https://github.com/dashpay/agora-blsful?rev=0c34a7a488a0bd1c9a9a2196e793b303ad35c900#0c34a7a488a0bd1c9a9a2196e793b303ad35c900" dependencies = [ "anyhow", "blstrs_plus", @@ -365,15 +408,15 @@ dependencies = [ "hkdf", "merlin", "pairing", - "rand", - "rand_chacha", - "rand_core", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rand_core 0.6.4", "serde", "serde_bare", "sha2", "sha3", "subtle", - "thiserror 2.0.12", + "thiserror 2.0.18", "uint-zigzag", "vsss-rs", "zeroize", @@ -403,7 +446,7 @@ dependencies = [ "ff", "group", "pairing", - "rand_core", + "rand_core 0.6.4", "serde", "subtle", "zeroize", @@ -420,15 +463,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "bytecount" -version = "0.6.8" +version = "3.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" [[package]] name = "byteorder" @@ -445,13 +482,22 @@ dependencies = [ "serde", ] +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + [[package]] name = "cbindgen" version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da6bc11b07529f16944307272d5bd9b22530bc7d05751717c9d416586cedab49" dependencies = [ - "clap", + "clap 3.2.25", "heck 0.4.1", "indexmap 1.9.3", "log", @@ -461,15 +507,37 @@ dependencies = [ "serde_json", "syn 1.0.109", "tempfile", - "toml", + "toml 0.5.11", +] + +[[package]] +name = "cbindgen" +version = "0.29.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ecb53484c9c167ba674026b656d8a27d7657a58e6066aa902bfb1a4aa00ae20" +dependencies = [ + "clap 4.5.60", + "heck 0.5.0", + "indexmap 2.14.0", + "log", + "proc-macro2", + "quote", + "serde", + "serde_json", + "syn 2.0.95", + "tempfile", + "toml 0.9.12+spec-1.1.0", ] [[package]] name = "cc" -version = "1.1.28" +version = "1.2.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e80e3b6a3ab07840e1cae9b0666a63970dc28e8ed5ffbcdacbfc760c281bfc1" +checksum = "dad887fd958be91b5098c0248def011f4523ab786cd411be668777e55063501f" dependencies = [ + "find-msvc-tools", + "jobserver", + "libc", "shlex", ] @@ -479,6 +547,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + [[package]] name = "chrono" version = "0.4.38" @@ -543,6 +617,16 @@ dependencies = [ "half", ] +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + [[package]] name = "clap" version = "3.2.25" @@ -551,13 +635,34 @@ checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" dependencies = [ "atty", "bitflags 1.3.2", - "clap_lex", + "clap_lex 0.2.4", "indexmap 1.9.3", "strsim 0.10.0", "termcolor", "textwrap", ] +[[package]] +name = "clap" +version = "4.5.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2797f34da339ce31042b27d23607e051786132987f595b02ba4f6a6dffb7030a" +dependencies = [ + "clap_builder", +] + +[[package]] +name = "clap_builder" +version = "4.5.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24a241312cea5059b13574bb9b3861cabf758b879c15190b37b6d6fd63ab6876" +dependencies = [ + "anstream", + "anstyle", + "clap_lex 1.1.0", + "strsim 0.11.1", +] + [[package]] name = "clap_lex" version = "0.2.4" @@ -567,12 +672,37 @@ dependencies = [ "os_str_bytes", ] +[[package]] +name = "clap_lex" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" + +[[package]] +name = "cmake" +version = "0.1.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" +dependencies = [ + "cc", +] + [[package]] name = "colorchoice" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + [[package]] name = "const-oid" version = "0.9.6" @@ -631,19 +761,13 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.4.2" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" dependencies = [ "cfg-if", ] -[[package]] -name = "crossbeam-utils" -version = "0.8.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" - [[package]] name = "crunchy" version = "0.2.3" @@ -657,7 +781,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array 0.14.7", - "rand_core", + "rand_core 0.6.4", "serdect", "subtle", "zeroize", @@ -702,28 +826,20 @@ dependencies = [ [[package]] name = "dapi-grpc" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ - "dapi-grpc-macros", + "dash-platform-macros", "futures-core", - "getrandom", + "getrandom 0.2.15", "platform-version", - "prost 0.13.3", + "prost 0.14.4", "serde", "serde_bytes", "serde_json", "tenderdash-proto", - "tonic 0.13.1", - "tonic-build", -] - -[[package]] -name = "dapi-grpc-macros" -version = "2.0.0-rc.17" -dependencies = [ - "heck 0.5.0", - "quote", - "syn 2.0.95", + "tonic 0.14.6", + "tonic-prost", + "tonic-prost-build", ] [[package]] @@ -761,19 +877,69 @@ dependencies = [ "syn 2.0.95", ] +[[package]] +name = "dash-async" +version = "4.0.0-rc.2" +dependencies = [ + "thiserror 2.0.18", + "tokio", + "tracing", +] + +[[package]] +name = "dash-context-provider" +version = "4.0.0-rc.2" +dependencies = [ + "dash-async", + "dpp", + "drive", + "hex", + "serde_json", + "thiserror 1.0.64", +] + +[[package]] +name = "dash-network" +version = "0.43.0" +source = "git+https://github.com/dashpay/rust-dashcore?rev=981e97f1015960ae5d277afdabcba1cbbc0b3a63#981e97f1015960ae5d277afdabcba1cbbc0b3a63" +dependencies = [ + "bincode", + "bincode_derive", + "cbindgen 0.29.4", + "serde", +] + +[[package]] +name = "dash-network-seeds" +version = "0.43.0" +source = "git+https://github.com/dashpay/rust-dashcore?rev=981e97f1015960ae5d277afdabcba1cbbc0b3a63#981e97f1015960ae5d277afdabcba1cbbc0b3a63" +dependencies = [ + "dash-network", +] + +[[package]] +name = "dash-platform-macros" +version = "4.0.0-rc.2" +dependencies = [ + "heck 0.5.0", + "quote", + "syn 2.0.95", +] + [[package]] name = "dash-sdk" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "arc-swap", "async-trait", - "backon", "bip37-bloom-filter", "chrono", "ciborium", "dapi-grpc", - "dapi-grpc-macros", - "dashcore-rpc", + "dash-async", + "dash-context-provider", + "dash-network-seeds", + "dash-platform-macros", "derive_more 1.0.0", "dotenvy", "dpp", @@ -785,13 +951,14 @@ dependencies = [ "futures", "hex", "http 1.1.0", - "lru", + "js-sys", + "lru 0.16.4", + "platform-encryption", "pollster", "rs-dapi-client", - "rustls-pemfile", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tokio-util", "tracing", @@ -800,57 +967,57 @@ dependencies = [ [[package]] name = "dashcore" -version = "0.39.6" -source = "git+https://github.com/dashpay/rust-dashcore?tag=v0.39.6#51df58f5d5d499f5ee80ab17076ff70b5347c7db" +version = "0.43.0" +source = "git+https://github.com/dashpay/rust-dashcore?rev=981e97f1015960ae5d277afdabcba1cbbc0b3a63#981e97f1015960ae5d277afdabcba1cbbc0b3a63" dependencies = [ "anyhow", "base64-compat", - "bech32", - "bitflags 2.9.1", + "bech32 0.9.1", + "bincode", + "bincode_derive", + "bitvec", "blake3", "blsful", - "dashcore-private 0.39.6", - "dashcore_hashes 0.39.6", + "dash-network", + "dashcore-private", + "dashcore_hashes", "ed25519-dalek", "hex", "hex_lit", "rustversion", "secp256k1", "serde", - "thiserror 2.0.12", + "thiserror 2.0.18", + "tracing", ] [[package]] name = "dashcore-private" -version = "0.1.0" -source = "git+https://github.com/dashpay/rust-dashcore#db9ad0df2baded4ca478663013f823491bddcd7c" - -[[package]] -name = "dashcore-private" -version = "0.39.6" -source = "git+https://github.com/dashpay/rust-dashcore?tag=v0.39.6#51df58f5d5d499f5ee80ab17076ff70b5347c7db" +version = "0.43.0" +source = "git+https://github.com/dashpay/rust-dashcore?rev=981e97f1015960ae5d277afdabcba1cbbc0b3a63#981e97f1015960ae5d277afdabcba1cbbc0b3a63" [[package]] name = "dashcore-rpc" -version = "0.39.6" -source = "git+https://github.com/dashpay/rust-dashcore?tag=v0.39.6#51df58f5d5d499f5ee80ab17076ff70b5347c7db" +version = "0.43.0" +source = "git+https://github.com/dashpay/rust-dashcore?rev=981e97f1015960ae5d277afdabcba1cbbc0b3a63#981e97f1015960ae5d277afdabcba1cbbc0b3a63" dependencies = [ "dashcore-rpc-json", "hex", "jsonrpc", - "log", "serde", "serde_json", + "tracing", ] [[package]] name = "dashcore-rpc-json" -version = "0.39.6" -source = "git+https://github.com/dashpay/rust-dashcore?tag=v0.39.6#51df58f5d5d499f5ee80ab17076ff70b5347c7db" +version = "0.43.0" +source = "git+https://github.com/dashpay/rust-dashcore?rev=981e97f1015960ae5d277afdabcba1cbbc0b3a63#981e97f1015960ae5d277afdabcba1cbbc0b3a63" dependencies = [ "bincode", "dashcore", "hex", + "key-wallet", "serde", "serde_json", "serde_repr", @@ -859,46 +1026,36 @@ dependencies = [ [[package]] name = "dashcore_hashes" -version = "0.14.0" -source = "git+https://github.com/dashpay/rust-dashcore#db9ad0df2baded4ca478663013f823491bddcd7c" -dependencies = [ - "dashcore-private 0.1.0", - "secp256k1", -] - -[[package]] -name = "dashcore_hashes" -version = "0.39.6" -source = "git+https://github.com/dashpay/rust-dashcore?tag=v0.39.6#51df58f5d5d499f5ee80ab17076ff70b5347c7db" +version = "0.43.0" +source = "git+https://github.com/dashpay/rust-dashcore?rev=981e97f1015960ae5d277afdabcba1cbbc0b3a63#981e97f1015960ae5d277afdabcba1cbbc0b3a63" dependencies = [ - "dashcore-private 0.39.6", - "secp256k1", + "bincode", + "dashcore-private", "serde", ] [[package]] name = "dashpay-contract" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "platform-value", "platform-version", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "data-contracts" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "dashpay-contract", "dpns-contract", - "feature-flags-contract", "keyword-search-contract", "masternode-reward-shares-contract", "platform-value", "platform-version", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", "token-history-contract", "wallet-utils-contract", "withdrawals-contract", @@ -924,17 +1081,6 @@ dependencies = [ "serde", ] -[[package]] -name = "derive_arbitrary" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - [[package]] name = "derive_more" version = "1.0.0" @@ -987,17 +1133,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - [[package]] name = "dotenvy" version = "0.15.7" @@ -1006,40 +1141,41 @@ checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" [[package]] name = "dpns-contract" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "platform-value", "platform-version", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "dpp" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "anyhow", "async-trait", "base64 0.22.1", + "bech32 0.11.1", "bincode", - "bincode_derive", "bs58", "byteorder", "chrono", "chrono-tz", "ciborium", "dashcore", + "dashcore-rpc", "data-contracts", "derive_more 1.0.0", + "dpp-json-convertible-derive", "env_logger", "ferment-macro", - "getrandom", + "getrandom 0.2.15", "hex", - "indexmap 2.7.0", + "indexmap 2.14.0", "integer-encoding", "itertools 0.13.0", - "json-schema-compatibility-validator", - "jsonschema", + "key-wallet", "lazy_static", "nohash-hasher", "num_enum 0.7.3", @@ -1049,19 +1185,29 @@ dependencies = [ "platform-value", "platform-version", "platform-versioning", - "rand", + "rand 0.8.5", "regex", "serde", "serde_json", "serde_repr", "sha2", "strum", - "thiserror 2.0.12", + "thiserror 2.0.18", + "tracing", +] + +[[package]] +name = "dpp-json-convertible-derive" +version = "4.0.0-rc.2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.95", ] [[package]] name = "drive" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "bincode", "byteorder", @@ -1074,38 +1220,44 @@ dependencies = [ "grovedb-path", "grovedb-version", "hex", - "indexmap 2.7.0", + "indexmap 2.14.0", "integer-encoding", "nohash-hasher", "platform-value", "platform-version", "serde", "sqlparser", - "thiserror 2.0.12", + "thiserror 2.0.18", "tracing", ] [[package]] name = "drive-proof-verifier" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "bincode", "dapi-grpc", + "dash-context-provider", "derive_more 1.0.0", "dpp", "drive", "ferment-macro", "hex", - "indexmap 2.7.0", + "indexmap 2.14.0", "platform-serialization", "platform-serialization-derive", "serde", - "serde_json", "tenderdash-abci", - "thiserror 2.0.12", + "thiserror 2.0.18", "tracing", ] +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + [[package]] name = "ed" version = "0.2.2" @@ -1145,7 +1297,7 @@ checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" dependencies = [ "curve25519-dalek", "ed25519", - "rand_core", + "rand_core 0.6.4", "serde", "sha2", "subtle", @@ -1172,7 +1324,7 @@ dependencies = [ "group", "hkdf", "pkcs8", - "rand_core", + "rand_core 0.6.4", "sec1", "subtle", "tap", @@ -1181,9 +1333,9 @@ dependencies = [ [[package]] name = "elliptic-curve-tools" -version = "0.1.2" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48843edfbd0a370b3dd14cdbb4e446e9a8855311e6b2b57bf9a1fd1367bc317" +checksum = "1de2b6fae800f08032a6ea32995b52925b1d451bff9d445c8ab2932323277faf" dependencies = [ "elliptic-curve", "heapless", @@ -1250,39 +1402,18 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "fancy-regex" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "531e46835a22af56d1e3b66f04844bed63158bc094a628bec1d321d9b4c44bf2" -dependencies = [ - "bit-set", - "regex-automata 0.4.8", - "regex-syntax 0.8.5", -] - [[package]] name = "fastrand" version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" -[[package]] -name = "feature-flags-contract" -version = "2.0.0-rc.17" -dependencies = [ - "platform-value", - "platform-version", - "serde_json", - "thiserror 2.0.12", -] - [[package]] name = "ferment" version = "0.2.3" source = "git+https://github.com/dashpay/ferment?tag=v0.2.3#867aba9a03b86c8552d3526952af80f566ab0174" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.14.0", "serde_json", ] @@ -1302,7 +1433,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ "bitvec", - "rand_core", + "rand_core 0.6.4", "subtle", ] @@ -1312,29 +1443,27 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + [[package]] name = "fixedbitset" -version = "0.4.2" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" [[package]] name = "flate2" -version = "1.0.34" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" dependencies = [ "crc32fast", "miniz_oxide", -] - -[[package]] -name = "flex-error" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c606d892c9de11507fa0dcffc116434f94e105d0bbdc4e405b61519464c49d7b" -dependencies = [ - "paste", + "zlib-rs", ] [[package]] @@ -1350,19 +1479,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" [[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" +name = "foldhash" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" [[package]] name = "form_urlencoded" @@ -1373,16 +1493,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "fraction" -version = "0.15.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f158e3ff0a1b334408dc9fb811cd99b446986f4d8b741bb08f9df1604085ae7" -dependencies = [ - "lazy_static", - "num", -] - [[package]] name = "fs_extra" version = "1.3.0" @@ -1518,6 +1628,20 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "r-efi", + "wasip2", + "wasm-bindgen", +] + [[package]] name = "gimli" version = "0.31.1" @@ -1549,63 +1673,105 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", - "rand", - "rand_core", + "rand 0.8.5", + "rand_core 0.6.4", "rand_xorshift", "subtle", ] [[package]] name = "grovedb" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611077565b279965fa34897787ae52f79471f0476db785116cceb92077f237ad" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" dependencies = [ "bincode", "bincode_derive", "blake3", + "grovedb-bulk-append-tree", "grovedb-costs", + "grovedb-dense-fixed-sized-merkle-tree", + "grovedb-element", "grovedb-merk", + "grovedb-merkle-mountain-range", "grovedb-path", + "grovedb-query", "grovedb-version", "hex", "hex-literal", - "indexmap 2.7.0", + "indexmap 2.14.0", "integer-encoding", "reqwest", "sha2", - "thiserror 2.0.12", + "thiserror 2.0.18", +] + +[[package]] +name = "grovedb-bulk-append-tree" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" +dependencies = [ + "bincode", + "blake3", + "grovedb-costs", + "grovedb-dense-fixed-sized-merkle-tree", + "grovedb-merkle-mountain-range", + "grovedb-query", + "hex", + "thiserror 2.0.18", ] [[package]] name = "grovedb-costs" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ab159c3f82b0387f6a27a54930b18aa594b507013de947c8e909cf61abb75fe" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" dependencies = [ "integer-encoding", "intmap", - "thiserror 2.0.12", + "thiserror 2.0.18", +] + +[[package]] +name = "grovedb-dense-fixed-sized-merkle-tree" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" +dependencies = [ + "bincode", + "blake3", + "grovedb-costs", + "grovedb-query", + "thiserror 2.0.18", +] + +[[package]] +name = "grovedb-element" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" +dependencies = [ + "bincode", + "bincode_derive", + "grovedb-path", + "grovedb-version", + "hex", + "integer-encoding", + "thiserror 2.0.18", ] [[package]] name = "grovedb-epoch-based-storage-flags" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dce2f34c6bfddb3a26696b42e6169f986330513e0e9f4c5d7ba290d09867a5e" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" dependencies = [ "grovedb-costs", "hex", "integer-encoding", "intmap", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] name = "grovedb-merk" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4580e54da0031d2f36e50312f3361005099bceeb8adb0f6ccbf87a0880cd1b08" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" dependencies = [ "bincode", "bincode_derive", @@ -1613,39 +1779,62 @@ dependencies = [ "byteorder", "ed", "grovedb-costs", + "grovedb-element", "grovedb-path", + "grovedb-query", "grovedb-version", "grovedb-visualize", "hex", - "indexmap 2.7.0", + "indexmap 2.14.0", "integer-encoding", - "thiserror 2.0.12", + "thiserror 2.0.18", +] + +[[package]] +name = "grovedb-merkle-mountain-range" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" +dependencies = [ + "bincode", + "blake3", + "grovedb-costs", ] [[package]] name = "grovedb-path" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d61e09bb3055358974ceb65b91752064979450092014d91a6bc4a52d77887ea" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" +dependencies = [ + "hex", +] + +[[package]] +name = "grovedb-query" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" dependencies = [ + "bincode", + "byteorder", + "ed", "hex", + "indexmap 2.14.0", + "integer-encoding", + "thiserror 2.0.18", ] [[package]] name = "grovedb-version" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d61d27c76d49758b365a9e4a9da7f995f976b9525626bf645aef258024defd2" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" dependencies = [ - "thiserror 2.0.12", + "thiserror 2.0.18", "versioned-feature-core 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "grovedb-visualize" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaebfe3c1e5f263f14fd25ab060543b31eb4b9d6bdc44fe220e88df6be7ddf59" +version = "4.0.0" +source = "git+https://github.com/dashpay/grovedb?rev=fc814983d4d36c6ea049642556b9a31ab8d4dfaa#fc814983d4d36c6ea049642556b9a31ab8d4dfaa" dependencies = [ "hex", "itertools 0.14.0", @@ -1653,9 +1842,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.6" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +checksum = "171fefbc92fe4a4de27e0698d6a5b392d6a0e333506bc49133760b3bcf948733" dependencies = [ "atomic-waker", "bytes", @@ -1663,7 +1852,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.1.0", - "indexmap 2.7.0", + "indexmap 2.14.0", "slab", "tokio", "tokio-util", @@ -1713,9 +1902,26 @@ checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" dependencies = [ "allocator-api2", "equivalent", - "foldhash", + "foldhash 0.1.3", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash 0.2.0", ] +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + [[package]] name = "heapless" version = "0.8.0" @@ -1773,9 +1979,9 @@ dependencies = [ [[package]] name = "hex-literal" -version = "0.4.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" +checksum = "e712f64ec3850b98572bffac52e2c6f282b29fe6c5fa6d42334b30be438d95c1" [[package]] name = "hex_lit" @@ -1887,13 +2093,14 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "1.4.1" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +checksum = "55281c53a1894c864990125767da440a4e630446785086f52523b20033b74498" dependencies = [ + "atomic-waker", "bytes", "futures-channel", - "futures-util", + "futures-core", "h2", "http 1.1.0", "http-body 1.0.1", @@ -1936,39 +2143,29 @@ dependencies = [ "tower-service", ] -[[package]] -name = "hyper-tls" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" -dependencies = [ - "bytes", - "http-body-util", - "hyper", - "hyper-util", - "native-tls", - "tokio", - "tokio-native-tls", - "tower-service", -] - [[package]] name = "hyper-util" -version = "0.1.10" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" dependencies = [ + "base64 0.22.1", "bytes", "futures-channel", "futures-util", "http 1.1.0", "http-body 1.0.1", "hyper", + "ipnet", + "libc", + "percent-encoding", "pin-project-lite", - "socket2", + "socket2 0.6.4", + "system-configuration", "tokio", "tower-service", "tracing", + "windows-registry", ] [[package]] @@ -2023,13 +2220,24 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.7.0" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown 0.15.0", + "hashbrown 0.17.1", "serde", + "serde_core", +] + +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "block-padding", + "generic-array 0.14.7", ] [[package]] @@ -2043,15 +2251,15 @@ dependencies = [ [[package]] name = "integer-encoding" -version = "4.0.2" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d762194228a2f1c11063e46e32e5acb96e66e906382b9eb5441f2e0504bbd5a" +checksum = "14c00403deb17c3221a1fe4fb571b9ed0370b3dcd116553c77fa294a3d918699" [[package]] name = "intmap" -version = "3.1.0" +version = "3.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "210870d5399600055a955c020cc97e462203c234dc2b103b5da5d80fdbd5eed5" +checksum = "a2e611826a1868311677fdcdfbec9e8621d104c732d080f546a854530232f0ee" dependencies = [ "serde", ] @@ -2068,15 +2276,6 @@ version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" -[[package]] -name = "iso8601" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "924e5d73ea28f59011fec52a0d12185d496a9b075d360657aed2a5707f701153" -dependencies = [ - "nom", -] - [[package]] name = "itertools" version = "0.13.0" @@ -2102,72 +2301,84 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] -name = "js-sys" -version = "0.3.77" +name = "jni" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "5efd9a482cf3a427f00d6b35f14332adc7902ce91efb778580e180ff90fa3498" dependencies = [ - "once_cell", - "wasm-bindgen", + "cfg-if", + "combine", + "jni-macros", + "jni-sys", + "log", + "simd_cesu8", + "thiserror 2.0.18", + "walkdir", + "windows-link", ] [[package]] -name = "json-patch" -version = "1.4.0" +name = "jni-macros" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec9ad60d674508f3ca8f380a928cfe7b096bc729c4e2dbfe3852bc45da3ab30b" +checksum = "a00109accc170f0bdb141fed3e393c565b6f5e072365c3bd58f5b062591560a3" dependencies = [ - "serde", - "serde_json", - "thiserror 1.0.64", + "proc-macro2", + "quote", + "rustc_version", + "simd_cesu8", + "syn 2.0.95", ] [[package]] -name = "json-schema-compatibility-validator" -version = "2.0.0-rc.17" +name = "jni-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" dependencies = [ - "json-patch", - "once_cell", - "serde_json", - "thiserror 2.0.12", + "jni-sys-macros", ] [[package]] -name = "jsonrpc" -version = "0.18.0" +name = "jni-sys-macros" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3662a38d341d77efecb73caf01420cfa5aa63c0253fd7bc05289ef9f6616e1bf" +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" dependencies = [ - "base64 0.13.1", - "serde", - "serde_json", + "quote", + "syn 2.0.95", +] + +[[package]] +name = "jobserver" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" +dependencies = [ + "getrandom 0.3.4", + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2025f20d7a4fa7785846e7b63d10a76d3f1cee98ee5cb79ea59703f95e42162" +dependencies = [ + "cfg-if", + "futures-util", + "wasm-bindgen", ] [[package]] -name = "jsonschema" +name = "jsonrpc" version = "0.18.0" -source = "git+https://github.com/dashpay/jsonschema-rs?branch=configure_regexp#7b00a2442ce44772e278b468bc4c2adc5e252226" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3662a38d341d77efecb73caf01420cfa5aa63c0253fd7bc05289ef9f6616e1bf" dependencies = [ - "ahash", - "anyhow", - "base64 0.22.1", - "bytecount", - "fancy-regex", - "fraction", - "getrandom", - "iso8601", - "itoa", - "memchr", - "num-cmp", - "once_cell", - "parking_lot 0.12.3", - "percent-encoding", - "regex", + "base64 0.13.1", "serde", "serde_json", - "time", - "url", - "uuid", ] [[package]] @@ -2179,14 +2390,37 @@ dependencies = [ "cpufeatures", ] +[[package]] +name = "key-wallet" +version = "0.43.0" +source = "git+https://github.com/dashpay/rust-dashcore?rev=981e97f1015960ae5d277afdabcba1cbbc0b3a63#981e97f1015960ae5d277afdabcba1cbbc0b3a63" +dependencies = [ + "async-trait", + "base58ck", + "bip39", + "bitflags 2.13.0", + "dashcore", + "dashcore-private", + "dashcore_hashes", + "getrandom 0.2.15", + "hex", + "secp256k1", + "serde", + "serde_json", + "sha2", + "tracing", + "unicode-normalization", + "zeroize", +] + [[package]] name = "keyword-search-contract" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "platform-value", "platform-version", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -2203,9 +2437,9 @@ checksum = "744a4c881f502e98c2241d2e5f50040ac73b30194d64452bb6260393b53f0dc9" [[package]] name = "libc" -version = "0.2.159" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "linux-raw-sys" @@ -2223,17 +2457,11 @@ dependencies = [ "scopeguard", ] -[[package]] -name = "lockfree-object-pool" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e" - [[package]] name = "log" -version = "0.4.27" +version = "0.4.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +checksum = "953f07c43838f8e6f9758cab68bf5bed85465e7587ebe0b823f1bcd81978ad3a" [[package]] name = "lru" @@ -2244,14 +2472,29 @@ dependencies = [ "hashbrown 0.15.0", ] +[[package]] +name = "lru" +version = "0.16.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f66e8d5d03f609abc3a39e6f08e4164ebf1447a732906d39eb9b99b7919ef39" +dependencies = [ + "hashbrown 0.16.1", +] + +[[package]] +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + [[package]] name = "masternode-reward-shares-contract" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "platform-value", "platform-version", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -2277,7 +2520,7 @@ checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" dependencies = [ "byteorder", "keccak", - "rand_core", + "rand_core 0.6.4", "zeroize", ] @@ -2287,19 +2530,14 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - [[package]] name = "miniz_oxide" -version = "0.8.0" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", + "simd-adler32", ] [[package]] @@ -2339,39 +2577,12 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9252111cf132ba0929b6f8e030cac2a24b507f3a4d6db6fb2896f27b354c714b" -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework 2.11.1", - "security-framework-sys", - "tempfile", -] - [[package]] name = "nohash-hasher" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - [[package]] name = "nu-ansi-term" version = "0.46.0" @@ -2404,16 +2615,10 @@ checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ "num-integer", "num-traits", - "rand", + "rand 0.8.5", "serde", ] -[[package]] -name = "num-cmp" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63335b2e2c34fae2fb0aa2cecfd9f0832a1e24b3b32ecec612c3426d46dc8aaa" - [[package]] name = "num-complex" version = "0.4.6" @@ -2421,7 +2626,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" dependencies = [ "num-traits", - "rand", + "rand 0.8.5", "serde", ] @@ -2550,50 +2755,12 @@ version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" -[[package]] -name = "openssl" -version = "0.10.66" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" -dependencies = [ - "bitflags 2.9.1", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.95", -] - [[package]] name = "openssl-probe" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" -[[package]] -name = "openssl-sys" -version = "0.9.103" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - [[package]] name = "os_str_bytes" version = "6.6.1" @@ -2623,17 +2790,7 @@ checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" dependencies = [ "instant", "lock_api", - "parking_lot_core 0.8.6", -] - -[[package]] -name = "parking_lot" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" -dependencies = [ - "lock_api", - "parking_lot_core 0.9.10", + "parking_lot_core", ] [[package]] @@ -2645,24 +2802,11 @@ dependencies = [ "cfg-if", "instant", "libc", - "redox_syscall 0.2.16", + "redox_syscall", "smallvec", "winapi", ] -[[package]] -name = "parking_lot_core" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.5.7", - "smallvec", - "windows-targets", -] - [[package]] name = "parse-zoneinfo" version = "0.3.1" @@ -2672,12 +2816,6 @@ dependencies = [ "regex", ] -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - [[package]] name = "percent-encoding" version = "2.3.1" @@ -2686,12 +2824,13 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "petgraph" -version = "0.6.5" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" dependencies = [ "fixedbitset", - "indexmap 2.7.0", + "hashbrown 0.15.0", + "indexmap 2.14.0", ] [[package]] @@ -2720,7 +2859,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" dependencies = [ "phf_shared", - "rand", + "rand 0.8.5", ] [[package]] @@ -2775,14 +2914,18 @@ dependencies = [ ] [[package]] -name = "pkg-config" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" +name = "platform-encryption" +version = "4.0.0-rc.2" +dependencies = [ + "aes", + "cbc", + "dashcore", + "thiserror 1.0.64", +] [[package]] name = "platform-mobile" -version = "2.0.5" +version = "4.0.0" dependencies = [ "async-trait", "base64 0.13.1", @@ -2790,7 +2933,7 @@ dependencies = [ "dash-sdk", "dashcore", "dashcore-rpc", - "dashcore_hashes 0.14.0", + "dashcore_hashes", "dashpay-contract", "data-contracts", "dotenvy", @@ -2805,12 +2948,12 @@ dependencies = [ "http 0.2.12", "lazy_static", "libc", - "lru", - "parking_lot 0.11.2", + "lru 0.12.5", + "parking_lot", "platform-value", "platform-version", "quote", - "rand", + "rand 0.8.5", "rs-dapi-client", "serde", "serde_json", @@ -2827,7 +2970,7 @@ dependencies = [ [[package]] name = "platform-serialization" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "bincode", "platform-version", @@ -2835,7 +2978,7 @@ dependencies = [ [[package]] name = "platform-serialization-derive" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "proc-macro2", "quote", @@ -2845,40 +2988,40 @@ dependencies = [ [[package]] name = "platform-value" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "base64 0.22.1", "bincode", "bs58", - "cbindgen", + "cbindgen 0.26.0", "ciborium", "ferment-macro", "hex", - "indexmap 2.7.0", + "indexmap 2.14.0", "platform-serialization", "platform-version", - "rand", + "rand 0.8.5", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", "treediff", ] [[package]] name = "platform-version" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "bincode", "ferment-macro", "grovedb-version", "once_cell", - "thiserror 2.0.12", + "thiserror 2.0.18", "versioned-feature-core 1.0.0 (git+https://github.com/dashpay/versioned-feature-core)", ] [[package]] name = "platform-versioning" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "proc-macro2", "quote", @@ -2955,9 +3098,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.13.3" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0487d90e047de87f984913713b85c601c05609aad5b0df4b4573fbf69aa13f" +checksum = "528ac67416ff8646872a3c02cad9cc4ee5dc9f9540c9b10771855c95cb2e5ae1" dependencies = [ "bytes", "prost-derive", @@ -2965,20 +3108,20 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.13.3" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c1318b19085f08681016926435853bbf7858f9c082d0999b80550ff5d9abe15" +checksum = "03da047801ff44bb6a4d407d4860c05fd70bb81714e6b2f3812603d5b145b042" dependencies = [ - "bytes", "heck 0.5.0", - "itertools 0.13.0", + "itertools 0.14.0", "log", "multimap", - "once_cell", "petgraph", "prettyplease", - "prost 0.13.3", + "prost 0.14.4", "prost-types", + "pulldown-cmark", + "pulldown-cmark-to-cmark", "regex", "syn 2.0.95", "tempfile", @@ -2986,12 +3129,12 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.13.3" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9552f850d5f0964a4e4d0bf306459ac29323ddfbae05e35a7c0d35cb0803cc5" +checksum = "b570b25f7617e43d59005d0990ccb79e950a423952cea19671b7a876da390adf" dependencies = [ "anyhow", - "itertools 0.13.0", + "itertools 0.14.0", "proc-macro2", "quote", "syn 2.0.95", @@ -2999,11 +3142,87 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.13.3" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f94967dc7688f3054c7fac87473ffae4cc4c3904800e2d9f5b857246d8963b0a" +dependencies = [ + "prost 0.14.4", +] + +[[package]] +name = "pulldown-cmark" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9f068eba8e7071c5f9511831b44f32c740d5adf574e990f946ddb53db2f314e" +dependencies = [ + "bitflags 2.13.0", + "memchr", + "unicase", +] + +[[package]] +name = "pulldown-cmark-to-cmark" +version = "22.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50793def1b900256624a709439404384204a5dc3a6ec580281bfaac35e882e90" +dependencies = [ + "pulldown-cmark", +] + +[[package]] +name = "quinn" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" +dependencies = [ + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2 0.5.7", + "thiserror 2.0.18", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-proto" +version = "0.11.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4759aa0d3a6232fb8dbdb97b61de2c20047c68aca932c7ed76da9d788508d670" +checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" dependencies = [ - "prost 0.13.3", + "aws-lc-rs", + "bytes", + "getrandom 0.3.4", + "lru-slab", + "rand 0.9.4", + "ring", + "rustc-hash", + "rustls", + "rustls-pki-types", + "slab", + "thiserror 2.0.18", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2 0.5.7", + "tracing", + "windows-sys 0.59.0", ] [[package]] @@ -3015,6 +3234,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + [[package]] name = "radium" version = "0.7.0" @@ -3028,8 +3253,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha", - "rand_core", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.5", ] [[package]] @@ -3039,7 +3274,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.5", ] [[package]] @@ -3048,7 +3293,16 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom", + "getrandom 0.2.15", +] + +[[package]] +name = "rand_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", ] [[package]] @@ -3057,7 +3311,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" dependencies = [ - "rand_core", + "rand_core 0.6.4", ] [[package]] @@ -3069,15 +3323,6 @@ dependencies = [ "bitflags 1.3.2", ] -[[package]] -name = "redox_syscall" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" -dependencies = [ - "bitflags 2.9.1", -] - [[package]] name = "regex" version = "1.11.0" @@ -3124,9 +3369,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwest" -version = "0.12.8" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b" +checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3" dependencies = [ "base64 0.22.1", "bytes", @@ -3140,30 +3385,26 @@ dependencies = [ "http-body-util", "hyper", "hyper-rustls", - "hyper-tls", "hyper-util", - "ipnet", "js-sys", "log", "mime", - "native-tls", - "once_cell", "percent-encoding", "pin-project-lite", - "rustls-pemfile", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 1.0.1", - "system-configuration", + "quinn", + "rustls", + "rustls-pki-types", + "rustls-platform-verifier", + "sync_wrapper", "tokio", - "tokio-native-tls", + "tokio-rustls", + "tower", + "tower-http", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "windows-registry", ] [[package]] @@ -3174,7 +3415,7 @@ checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", "cfg-if", - "getrandom", + "getrandom 0.2.15", "libc", "spin", "untrusted", @@ -3183,24 +3424,24 @@ dependencies = [ [[package]] name = "rs-dapi-client" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "backon", "chrono", "dapi-grpc", "ferment-macro", "futures", - "getrandom", + "getrandom 0.2.15", "gloo-timers", "hex", "http 1.1.0", "http-serde", - "lru", - "rand", + "lru 0.16.4", + "rand 0.8.5", "serde", "serde_json", "sha2", - "thiserror 2.0.12", + "thiserror 2.0.18", "tokio", "tonic-web-wasm-client", "tracing", @@ -3213,6 +3454,12 @@ version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +[[package]] +name = "rustc-hash" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" + [[package]] name = "rustc_version" version = "0.4.1" @@ -3228,7 +3475,7 @@ version = "0.38.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.13.0", "errno", "libc", "linux-raw-sys", @@ -3237,10 +3484,11 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.23" +version = "0.23.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47796c98c480fce5406ef69d1c76378375492c3b0a0de587be0c1d9feb12f395" +checksum = "ef86cd5876211988985292b91c96a8f2d298df24e75989a43a3c73f2d4d8168b" dependencies = [ + "aws-lc-rs", "log", "once_cell", "ring", @@ -3259,30 +3507,53 @@ dependencies = [ "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.0.1", + "security-framework", ] [[package]] -name = "rustls-pemfile" -version = "2.2.0" +name = "rustls-pki-types" +version = "1.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" +checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9" dependencies = [ - "rustls-pki-types", + "web-time", + "zeroize", ] [[package]] -name = "rustls-pki-types" -version = "1.10.0" +name = "rustls-platform-verifier" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d1e2536ce4f35f4846aa13bff16bd0ff40157cdb14cc056c7b14ba41233ba0" +dependencies = [ + "core-foundation 0.10.0", + "core-foundation-sys", + "jni", + "log", + "once_cell", + "rustls", + "rustls-native-certs", + "rustls-platform-verifier-android", + "rustls-webpki", + "security-framework", + "security-framework-sys", + "webpki-root-certs", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustls-platform-verifier-android" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" +checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" [[package]] name = "rustls-webpki" -version = "0.102.8" +version = "0.103.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" dependencies = [ + "aws-lc-rs", "ring", "rustls-pki-types", "untrusted", @@ -3345,7 +3616,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" dependencies = [ "bitcoin_hashes", - "rand", + "rand 0.8.5", "secp256k1-sys", "serde", ] @@ -3361,24 +3632,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags 2.9.1", - "core-foundation 0.9.4", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework" -version = "3.0.1" +version = "3.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1415a607e92bec364ea2cf9264646dcce0f91e6d65281bd6f2819cca3bf39c8" +checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.13.0", "core-foundation 0.10.0", "core-foundation-sys", "libc", @@ -3387,9 +3645,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.12.0" +version = "2.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" +checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" dependencies = [ "core-foundation-sys", "libc", @@ -3403,10 +3661,11 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" dependencies = [ + "serde_core", "serde_derive", ] @@ -3428,11 +3687,20 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", @@ -3445,7 +3713,7 @@ version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.14.0", "itoa", "memchr", "ryu", @@ -3464,15 +3732,12 @@ dependencies = [ ] [[package]] -name = "serde_urlencoded" -version = "0.7.1" +name = "serde_spanned" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", + "serde_core", ] [[package]] @@ -3545,9 +3810,9 @@ dependencies = [ [[package]] name = "shlex" -version = "1.3.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" [[package]] name = "signature" @@ -3555,7 +3820,7 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ - "rand_core", + "rand_core 0.6.4", ] [[package]] @@ -3564,14 +3829,32 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" +[[package]] +name = "simd_cesu8" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94f90157bb87cddf702797c5dadfa0be7d266cdf49e22da2fcaa32eff75b2c33" +dependencies = [ + "rustc_version", + "simdutf8", +] + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + [[package]] name = "simple-signer" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ + "async-trait", "base64 0.22.1", "bincode", - "dashcore-rpc", "dpp", + "hex", + "tracing", ] [[package]] @@ -3605,6 +3888,16 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "socket2" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + [[package]] name = "spin" version = "0.9.8" @@ -3722,26 +4015,20 @@ dependencies = [ [[package]] name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - -[[package]] -name = "sync_wrapper" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" dependencies = [ "futures-core", ] [[package]] name = "system-configuration" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.13.0", "core-foundation 0.9.4", "system-configuration-sys", ] @@ -3777,41 +4064,41 @@ dependencies = [ [[package]] name = "tenderdash-abci" -version = "1.4.0" -source = "git+https://github.com/dashpay/rs-tenderdash-abci?tag=v1.4.0#e2dd15f39246081e7d569e585ab78ff5340116ac" +version = "1.5.1" +source = "git+https://github.com/dashpay/rs-tenderdash-abci?tag=v1.5.1#fae47294618125fa9d69150e8a7a5b607af6867c" dependencies = [ "bytes", "hex", "lhash", "semver", "tenderdash-proto", - "thiserror 2.0.12", + "thiserror 2.0.18", "tracing", "url", ] [[package]] name = "tenderdash-proto" -version = "1.4.0" -source = "git+https://github.com/dashpay/rs-tenderdash-abci?tag=v1.4.0#e2dd15f39246081e7d569e585ab78ff5340116ac" +version = "1.5.1" +source = "git+https://github.com/dashpay/rs-tenderdash-abci?tag=v1.5.1#fae47294618125fa9d69150e8a7a5b607af6867c" dependencies = [ "bytes", "chrono", "derive_more 2.0.1", - "flex-error", "num-derive", "num-traits", - "prost 0.13.3", + "prost 0.14.4", "serde", "subtle-encoding", "tenderdash-proto-compiler", + "thiserror 2.0.18", "time", ] [[package]] name = "tenderdash-proto-compiler" -version = "1.4.0" -source = "git+https://github.com/dashpay/rs-tenderdash-abci?tag=v1.4.0#e2dd15f39246081e7d569e585ab78ff5340116ac" +version = "1.5.1" +source = "git+https://github.com/dashpay/rs-tenderdash-abci?tag=v1.5.1#fae47294618125fa9d69150e8a7a5b607af6867c" dependencies = [ "fs_extra", "prost-build", @@ -3848,11 +4135,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.12" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ - "thiserror-impl 2.0.12", + "thiserror-impl 2.0.18", ] [[package]] @@ -3868,9 +4155,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", @@ -3944,12 +4231,12 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "token-history-contract" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "platform-value", "platform-version", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -3963,7 +4250,7 @@ dependencies = [ "libc", "mio", "pin-project-lite", - "socket2", + "socket2 0.5.7", "tokio-macros", "windows-sys 0.52.0", ] @@ -3979,16 +4266,6 @@ dependencies = [ "syn 2.0.95", ] -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.26.2" @@ -4032,20 +4309,44 @@ dependencies = [ "serde", ] +[[package]] +name = "toml" +version = "0.9.12+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf92845e79fc2e2def6a5d828f0801e29a2f8acc037becc5ab08595c7d5e9863" +dependencies = [ + "indexmap 2.14.0", + "serde_core", + "serde_spanned", + "toml_datetime 0.7.5+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 0.7.15", +] + [[package]] name = "toml_datetime" version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +[[package]] +name = "toml_datetime" +version = "0.7.5+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +dependencies = [ + "serde_core", +] + [[package]] name = "toml_edit" version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.7.0", - "toml_datetime", + "indexmap 2.14.0", + "toml_datetime 0.6.8", "winnow 0.5.40", ] @@ -4055,11 +4356,26 @@ version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.7.0", - "toml_datetime", + "indexmap 2.14.0", + "toml_datetime 0.6.8", "winnow 0.6.20", ] +[[package]] +name = "toml_parser" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" +dependencies = [ + "winnow 1.0.3", +] + +[[package]] +name = "toml_writer" +version = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db" + [[package]] name = "tonic" version = "0.11.0" @@ -4083,9 +4399,9 @@ dependencies = [ [[package]] name = "tonic" -version = "0.13.1" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e581ba15a835f4d9ea06c55ab1bd4dce26fc53752c69a04aac00703bfb49ba9" +checksum = "ac2a5518c70fa84342385732db33fb3f44bc4cc748936eb5833d2df34d6445ef" dependencies = [ "async-trait", "base64 0.22.1", @@ -4099,9 +4415,9 @@ dependencies = [ "hyper-util", "percent-encoding", "pin-project", - "prost 0.13.3", "rustls-native-certs", - "socket2", + "socket2 0.6.4", + "sync_wrapper", "tokio", "tokio-rustls", "tokio-stream", @@ -4114,9 +4430,32 @@ dependencies = [ [[package]] name = "tonic-build" -version = "0.13.1" +version = "0.14.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c68f61875ac5293cf72e6c8cf0158086428c82c37229e98c840878f1706b0322" +dependencies = [ + "prettyplease", + "proc-macro2", + "quote", + "syn 2.0.95", +] + +[[package]] +name = "tonic-prost" +version = "0.14.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50849f68853be452acf590cde0b146665b8d507b3b8af17261df47e02c209ea0" +dependencies = [ + "bytes", + "prost 0.14.4", + "tonic 0.14.6", +] + +[[package]] +name = "tonic-prost-build" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac6f67be712d12f0b41328db3137e0d0757645d8904b4cb7d51cd9c2279e847" +checksum = "654e5643eff75d7f8c99197ce1440ed19a3474eada74c12bbac488b2cafdae27" dependencies = [ "prettyplease", "proc-macro2", @@ -4124,13 +4463,15 @@ dependencies = [ "prost-types", "quote", "syn 2.0.95", + "tempfile", + "tonic-build", ] [[package]] name = "tonic-web-wasm-client" -version = "0.7.1" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66e3bb7acca55e6790354be650f4042d418fcf8e2bc42ac382348f2b6bf057e5" +checksum = "3c0469c353de5f665c95f898074b5b004b500c6722214c3249f1dc79c0a2a3f6" dependencies = [ "base64 0.22.1", "byteorder", @@ -4142,8 +4483,8 @@ dependencies = [ "httparse", "js-sys", "pin-project", - "thiserror 2.0.12", - "tonic 0.13.1", + "thiserror 2.0.18", + "tonic 0.14.6", "tower-service", "wasm-bindgen", "wasm-bindgen-futures", @@ -4153,16 +4494,16 @@ dependencies = [ [[package]] name = "tower" -version = "0.5.1" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2873938d487c3cfb9aed7546dc9f2711d867c9f90c46b889989a2cb84eba6b4f" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" dependencies = [ "futures-core", "futures-util", - "indexmap 2.7.0", + "indexmap 2.14.0", "pin-project-lite", "slab", - "sync_wrapper 0.1.2", + "sync_wrapper", "tokio", "tokio-util", "tower-layer", @@ -4170,6 +4511,24 @@ dependencies = [ "tracing", ] +[[package]] +name = "tower-http" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" +dependencies = [ + "bitflags 2.13.0", + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", + "url", +] + [[package]] name = "tower-layer" version = "0.3.3" @@ -4184,9 +4543,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -4195,9 +4554,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", @@ -4206,9 +4565,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" dependencies = [ "once_cell", "valuable", @@ -4266,6 +4625,12 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +[[package]] +name = "typed-path" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e" + [[package]] name = "typenum" version = "1.17.0" @@ -4281,6 +4646,12 @@ dependencies = [ "core2", ] +[[package]] +name = "unicase" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" + [[package]] name = "unicode-bidi" version = "0.3.17" @@ -4314,30 +4685,34 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" +[[package]] +name = "unty" +version = "0.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" + [[package]] name = "ureq" -version = "3.0.3" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "217751151c53226090391713e533d9a5e904ba2570dabaaace29032687589c3e" +checksum = "dea7109cdcd5864d4eeb1b58a1648dc9bf520360d7af16ec26d0a9354bafcfc0" dependencies = [ "base64 0.22.1", - "cc", "flate2", "log", "percent-encoding", "rustls", - "rustls-pemfile", "rustls-pki-types", "ureq-proto", - "utf-8", + "utf8-zero", "webpki-roots", ] [[package]] name = "ureq-proto" -version = "0.3.5" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae239d0a3341aebc94259414d1dc67cfce87d41cbebc816772c91b77902fafa4" +checksum = "e994ba84b0bd1b1b0cf92878b7ef898a5c1760108fe7b6010327e274917a808c" dependencies = [ "base64 0.22.1", "http 1.1.0", @@ -4357,10 +4732,10 @@ dependencies = [ ] [[package]] -name = "utf-8" -version = "0.7.6" +name = "utf8-zero" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +checksum = "b8c0a043c9540bae7c578c88f91dda8bd82e59ae27c21baca69c8b191aaf5a6e" [[package]] name = "utf8parse" @@ -4368,24 +4743,12 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" -[[package]] -name = "uuid" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" - [[package]] name = "valuable" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - [[package]] name = "version_check" version = "0.9.5" @@ -4405,21 +4768,20 @@ source = "git+https://github.com/dashpay/versioned-feature-core#560157096c8405a4 [[package]] name = "virtue" -version = "0.0.13" +version = "0.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dcc60c0624df774c82a0ef104151231d37da4962957d691c011c852b2473314" +checksum = "7302ac74a033bf17b6e609ceec0f891ca9200d502d31f02dc7908d3d98767c9d" [[package]] name = "virtue" -version = "0.0.17" +version = "0.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7302ac74a033bf17b6e609ceec0f891ca9200d502d31f02dc7908d3d98767c9d" +checksum = "051eb1abcf10076295e815102942cc58f9d5e3b4560e46e53c21e8ff6f3af7b1" [[package]] name = "vsss-rs" -version = "5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d100efd4ff7ccba787b1b1bb0045c2fe1df5ad75f74e3a63f738635d87d50da4" +version = "5.1.0" +source = "git+https://github.com/dashpay/vsss-rs?branch=main#668f1406bf25a4b9a95cd97c9069f7a1632897c3" dependencies = [ "crypto-bigint", "elliptic-curve", @@ -4427,7 +4789,7 @@ dependencies = [ "generic-array 1.1.1", "hex", "num", - "rand_core", + "rand_core 0.6.4", "serde", "sha3", "subtle", @@ -4446,12 +4808,12 @@ dependencies = [ [[package]] name = "wallet-utils-contract" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "platform-value", "platform-version", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -4470,49 +4832,42 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] -name = "wasm-bindgen" -version = "0.2.100" +name = "wasip2" +version = "1.0.3+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" dependencies = [ - "cfg-if", - "once_cell", - "rustversion", - "wasm-bindgen-macro", + "wit-bindgen", ] [[package]] -name = "wasm-bindgen-backend" -version = "0.2.100" +name = "wasm-bindgen" +version = "0.2.123" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +checksum = "a254a4b10c19a76f09a27640e7ffbf9bc30bf67e16a3bf28aaefa4920fe81563" dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn 2.0.95", + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.50" +version = "0.4.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +checksum = "54568702fabf5d4849ce2b90fadfa64168a097eaf4b351ce9df8b687a0086aaf" dependencies = [ - "cfg-if", "js-sys", - "once_cell", "wasm-bindgen", - "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.123" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "24a40fc75b0ec6f3746ceb10d36f53a93dcd68a93b11b6445983945d79eba0dc" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -4520,31 +4875,31 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.123" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "908f34bd9b9ce3d4caf07b72dfab63d61504d156856c6bd3cd87fa350cf3985b" dependencies = [ + "bumpalo", "proc-macro2", "quote", "syn 2.0.95", - "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.123" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "7acbf7616c27b194bbb550bf77ed0c2c3e5b7fd1260a93082b95fb7f47959b92" dependencies = [ "unicode-ident", ] [[package]] name = "wasm-streams" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" +checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb" dependencies = [ "futures-util", "js-sys", @@ -4555,19 +4910,38 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.77" +version = "0.3.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e0871acf327f283dc6da28a1696cdc64fb355ba9f935d052021fa77f35cce69" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ "js-sys", "wasm-bindgen", ] +[[package]] +name = "webpki-root-certs" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31141ce3fc3e300ae89b78c0dd67f9708061d1d2eda54b8209346fd6be9a92c" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "webpki-roots" -version = "0.26.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" +checksum = "52f5ee44c96cf55f1b349600768e3ece3a8f26010c05265ab73f945bb1a2eb9d" dependencies = [ "rustls-pki-types", ] @@ -4612,34 +4986,39 @@ dependencies = [ "windows-targets", ] +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + [[package]] name = "windows-registry" -version = "0.2.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" +checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" dependencies = [ + "windows-link", "windows-result", "windows-strings", - "windows-targets", ] [[package]] name = "windows-result" -version = "0.2.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" dependencies = [ - "windows-targets", + "windows-link", ] [[package]] name = "windows-strings" -version = "0.1.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" dependencies = [ - "windows-result", - "windows-targets", + "windows-link", ] [[package]] @@ -4660,6 +5039,15 @@ dependencies = [ "windows-targets", ] +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + [[package]] name = "windows-targets" version = "0.52.6" @@ -4742,9 +5130,27 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "0.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" + +[[package]] +name = "winnow" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0592e1c9d151f854e6fd382574c3a0855250e1d9b2f99d9281c6e6391af352f1" + +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + [[package]] name = "withdrawals-contract" -version = "2.0.0-rc.17" +version = "4.0.0-rc.2" dependencies = [ "num_enum 0.5.11", "platform-value", @@ -4752,7 +5158,7 @@ dependencies = [ "serde", "serde_json", "serde_repr", - "thiserror 2.0.12", + "thiserror 2.0.18", ] [[package]] @@ -4808,31 +5214,32 @@ dependencies = [ [[package]] name = "zip" -version = "2.2.0" +version = "8.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc5e4288ea4057ae23afc69a4472434a87a2495cafce6632fd1c4ec9f5cf3494" +checksum = "2d04a6b5381502aa6087c94c669499eb1602eb9c5e8198e534de571f7154809b" dependencies = [ - "arbitrary", "crc32fast", - "crossbeam-utils", - "displaydoc", "flate2", - "indexmap 2.7.0", + "indexmap 2.14.0", "memchr", - "thiserror 1.0.64", + "typed-path", "zopfli", ] +[[package]] +name = "zlib-rs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be3d40e40a133f9c916ee3f9f4fa2d9d63435b5fbe1bfc6d9dae0aa0ada1513" + [[package]] name = "zopfli" -version = "0.8.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5019f391bac5cf252e93bbcc53d039ffd62c7bfb7c150414d61369afe57e946" +checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" dependencies = [ "bumpalo", "crc32fast", - "lockfree-object-pool", "log", - "once_cell", "simd-adler32", ] diff --git a/platform-mobile/Cargo.toml b/platform-mobile/Cargo.toml index f0c46ff..7818afa 100644 --- a/platform-mobile/Cargo.toml +++ b/platform-mobile/Cargo.toml @@ -22,7 +22,9 @@ drive = { path = "../../platform/packages/rs-drive", default-features = false, f "verify", "serde", ] } -simple-signer = { path = "../../platform/packages/simple-signer" } +simple-signer = { path = "../../platform/packages/simple-signer", features = [ + "state-transitions", +] } dotenvy = { version = "0.15.7", optional = false } envy = { version = "0.4.2", optional = false } lazy_static = "1.4.0" @@ -40,15 +42,14 @@ syn = "2.0.53" serde_json = "1.0.115" sha2 = "0.10.8" dashcore = { git = "https://github.com/dashpay/rust-dashcore", features = [ - "std", "secp-recovery", "rand", "signer", "serde", -], default-features = false, tag = "v0.39.6" } -dashcore_hashes = { git = "https://github.com/dashpay/rust-dashcore" } +], default-features = false, rev = "981e97f1015960ae5d277afdabcba1cbbc0b3a63" } +dashcore_hashes = { git = "https://github.com/dashpay/rust-dashcore", rev = "981e97f1015960ae5d277afdabcba1cbbc0b3a63" } # dashcore-rpc is only needed for core rpc; TODO remove once we have correct core rpc impl -dashcore-rpc = { git = "https://github.com/dashpay/rust-dashcore", tag = "v0.39.6" } +dashcore-rpc = { git = "https://github.com/dashpay/rust-dashcore", rev = "981e97f1015960ae5d277afdabcba1cbbc0b3a63" } rand = "0.8.5" base64 = "0.13" tonic = { version = "0.11", features = [ diff --git a/platform-mobile/rust-toolchain.toml b/platform-mobile/rust-toolchain.toml new file mode 100644 index 0000000..99fc58b --- /dev/null +++ b/platform-mobile/rust-toolchain.toml @@ -0,0 +1,3 @@ +[toolchain] +# Keep in sync with ../../platform/rust-toolchain.toml +channel = "1.92" diff --git a/platform-mobile/src/config.rs b/platform-mobile/src/config.rs index deaffd4..bc00187 100644 --- a/platform-mobile/src/config.rs +++ b/platform-mobile/src/config.rs @@ -7,7 +7,7 @@ use std::sync::Arc; use std::str::FromStr; use dpp::data_contract::DataContract; use drive_proof_verifier::ContextProvider; -use drive_proof_verifier::error::ContextProviderError; +use drive_proof_verifier::error::Error::ContextProviderError; use serde::Deserialize; use std::collections::BTreeMap; use std::time::Duration; @@ -275,10 +275,10 @@ impl Config { let builder = dash_sdk::SdkBuilder::new(self.address_list()) .with_version(version) .with_core( - &self.core_ip, + &self.core_ip.as_str(), self.core_port, - &self.core_user, - &self.core_password, + &self.core_user.as_str(), + &self.core_password.as_str(), ); builder @@ -294,10 +294,10 @@ impl Config { let sdk = { // Dump all traffic to disk let builder = dash_sdk::SdkBuilder::new(self.new_address_list(address_list)).with_core( - &self.core_ip, + &self.core_ip.as_str(), self.core_port, - &self.core_user, - &self.core_password, + &self.core_user.as_str(), + &self.core_password.as_str(), ); builder @@ -366,6 +366,7 @@ impl Config { timeout: Some(Duration::from_secs(timeout as u64)), retries: Some(retries), ban_failed_address: Some(true), + max_decoding_message_size: Some(16 * 1024 * 1024) } ) .with_version(&version) diff --git a/platform-mobile/src/fetch_document.rs b/platform-mobile/src/fetch_document.rs index 4a42d51..8884b63 100644 --- a/platform-mobile/src/fetch_document.rs +++ b/platform-mobile/src/fetch_document.rs @@ -362,7 +362,7 @@ fn docs_get_all_query_sdk_test() { #[test] fn docs_startswith_query_sdk_using_single_node_test() { - let mut sdk = create_dash_sdk_using_single_evonode("35.163.144.230".into(), 0, 0, true); + let mut sdk = create_dash_sdk_using_single_evonode("68.67.122.29".into(), 0, 0, true); let contract_id = Identifier::from(dpns_contract::ID_BYTES); let docs_result = unsafe { fetch_documents_with_query_and_sdk( diff --git a/platform-mobile/src/provider.rs b/platform-mobile/src/provider.rs index 3a74811..b9a25ef 100644 --- a/platform-mobile/src/provider.rs +++ b/platform-mobile/src/provider.rs @@ -10,13 +10,13 @@ use dapi_grpc::tonic::codegen::Body; use dpp::data_contract::{DataContract, TokenConfiguration}; use platform_value::types::identifier::Identifier; -use drive_proof_verifier::error::ContextProviderError; +use drive_proof_verifier::ContextProviderError; use drive_proof_verifier::ContextProvider; use platform_value::converter::serde_json; use dash_sdk::platform::Fetch; use dash_sdk::{Sdk, Error}; +use dashcore::prelude::CoreBlockHeight; use dpp::identity::IdentityPublicKey; -use dpp::prelude::CoreBlockHeight; use platform_value::types::binary_data::BinaryData; use platform_version::version::PlatformVersion; use tokio::runtime::{Handle, Runtime}; diff --git a/platform-mobile/src/put.rs b/platform-mobile/src/put.rs index 9f2031a..2ff0859 100644 --- a/platform-mobile/src/put.rs +++ b/platform-mobile/src/put.rs @@ -45,7 +45,7 @@ use platform_value::{Identifier, IdentifierBytes32, Value}; use platform_value::string_encoding::Encoding; use platform_value::types::binary_data::BinaryData; use platform_version::version::PlatformVersion; -use simple_signer::signer::SimpleSigner; +use simple_signer::single_key_signer::SingleKeySigner; use serde::{Deserialize, Serialize}; use tokio::runtime::Builder; use tracing::trace; @@ -216,9 +216,10 @@ impl CallbackSigner { -impl Signer for CallbackSigner { +#[async_trait::async_trait] +impl Signer for CallbackSigner { /// the public key bytes are only used to look up the private key - fn sign( + async fn sign( &self, identity_public_key: &IdentityPublicKey, data: &[u8], @@ -240,6 +241,10 @@ impl Signer for CallbackSigner { } } + async fn sign_create_witness(&self, key: &IdentityPublicKey, data: &[u8]) -> Result { + todo!() + } + // todo: add a new call back to the client? fn can_sign_with(&self, identity_public_key: &IdentityPublicKey) -> bool { true @@ -303,6 +308,8 @@ pub fn ChainAssetLockProofFFI_clone(a: ChainAssetLockProofFFI) -> ChainAssetLock } use dashcore_hashes::Hash as dashcore_hashes_hash; +use dpp::address_funds::AddressWitness; + impl From for ChainAssetLockProof { fn from(value: ChainAssetLockProofFFI) -> Self { let outpoint = dpp::dashcore::OutPoint { @@ -385,7 +392,7 @@ pub fn put_identity_sdk( let network = if is_testnet { Network::Testnet } else { - Network::Dash + Network::Mainnet }; let private_key = match PrivateKey::from_slice(asset_lock_proof_private_key.as_slice(), network) { Ok(pk) => pk, @@ -412,8 +419,7 @@ pub fn put_identity_sdk( state_transition_creation_options: None }; - let state_transition_result = Identity::put_to_platform( - &identity, + let state_transition_result = identity.put_to_platform_with_private_key( &sdk, asset_lock_proof.into(), &private_key, @@ -528,7 +534,7 @@ pub fn topup_identity_sdk( let network = if is_testnet { Network::Testnet } else { - Network::Dash + Network::Mainnet }; let private_key = match PrivateKey::from_slice(asset_lock_proof_private_key.as_slice(), network) { Ok(pk) => pk, @@ -546,11 +552,10 @@ pub fn topup_identity_sdk( wait_timeout: None, state_transition_creation_options: None }; - let identity_result = identity.top_up_identity( + let identity_result = identity.top_up_identity_with_private_key( &sdk, asset_lock_proof.into(), &private_key, - Some(user_fee_increase), Some(put_settings) ).await; diff --git a/platform-mobile/src/put_test.rs b/platform-mobile/src/put_test.rs index 1a62a05..d896088 100644 --- a/platform-mobile/src/put_test.rs +++ b/platform-mobile/src/put_test.rs @@ -28,6 +28,7 @@ use platform_value::{BinaryData, Identifier, Value}; use platform_value::string_encoding::Encoding; use platform_version::version::{LATEST_PLATFORM_VERSION, PlatformVersion}; use rand::random; +use simple_signer::single_key_signer::SingleKeySigner; use simple_signer::signer::SimpleSigner; use tokio::runtime::Builder; use tracing::trace; @@ -99,6 +100,7 @@ fn test_put_documents_for_username() { created_at_core_block_height: None, updated_at_core_block_height: None, transferred_at_core_block_height: None, + creator_id: None, } ); // data = {HashMap@3953} size = 7 @@ -145,6 +147,7 @@ fn test_put_documents_for_username() { created_at_core_block_height: None, updated_at_core_block_height: None, transferred_at_core_block_height: None, + creator_id: None, } ); @@ -171,7 +174,7 @@ fn test_put_documents_for_username() { let hex_private_key = "a7285a6108fcd2a7b64060cbec68dddaf70c2d0514d8e0a447c8c933aef11b81"; let private_key = hex::decode(hex_private_key).expect("Decoding failed"); let mut signer = SimpleSigner::default(); - signer.add_key(identity_public_key.clone(), vec_to_array(private_key).expect("reason")); + signer.add_identity_public_key(identity_public_key.clone(), vec_to_array(private_key).expect("reason")); let entropy = entropy_generator.generate().unwrap(); trace!("document_entropy: {:?}", entropy); @@ -191,6 +194,7 @@ fn test_put_documents_for_username() { timeout: None, retries: Some(2), ban_failed_address: Some(true), + max_decoding_message_size: None, }, identity_nonce_stale_time_s: None, user_fee_increase: None, @@ -309,7 +313,7 @@ fn test_put_txmetadata_contract() { let hex_private_key = if testnet { testnet_private_key } else { mainnet_private_key }; let private_key = hex::decode(hex_private_key).expect("Decoding failed"); let mut signer = SimpleSigner::default(); - signer.add_key(identity_public_key.clone(), vec_to_array(private_key).expect("reason")); + signer.add_identity_public_key(identity_public_key.clone(), vec_to_array(private_key).expect("reason")); let entropy = entropy_generator.generate().unwrap(); trace!("document_entropy: {:?}", entropy); @@ -319,6 +323,7 @@ fn test_put_txmetadata_contract() { timeout: None, retries: Some(2), ban_failed_address: Some(true), + max_decoding_message_size: None, }, identity_nonce_stale_time_s: None, user_fee_increase: None, diff --git a/platform-mobile/src/sdk.rs b/platform-mobile/src/sdk.rs index 9c8711f..ef39533 100644 --- a/platform-mobile/src/sdk.rs +++ b/platform-mobile/src/sdk.rs @@ -8,7 +8,7 @@ use dpp::data_contract::DataContract; use ferment::{boxed, unbox_any}; use platform_value::Identifier; use platform_version::version::PlatformVersion; -use platform_version::version::v7::PLATFORM_V7; +use platform_version::version::v12::PLATFORM_V12; use platform_version::version::v9::PLATFORM_V9; use tokio::runtime::{Builder, Runtime}; use crate::config::{Config, EntryPoint}; @@ -147,9 +147,9 @@ pub fn create_dash_sdk_with_context( Config::new_mainnet() }; let version: &'static PlatformVersion = if is_testnet { - &PLATFORM_V9 + &PLATFORM_V12 } else { - &PLATFORM_V9 + &PLATFORM_V12 }; tracing::info!("configuring for testnet={} using platform port={}", cfg.is_testnet, cfg.platform_port); tracing::info!("configuring platform version {:?}", version); @@ -182,6 +182,7 @@ pub fn create_dash_sdk_with_context( timeout: Some(Duration::from_secs(timeout as u64)), retries: Some(retries), ban_failed_address: Some(true), + max_decoding_message_size: None, } } }) @@ -210,9 +211,9 @@ pub fn create_dash_sdk_using_single_evonode( Config::new_mainnet() }; let version: &'static PlatformVersion = if is_testnet { - &PLATFORM_V9 + &PLATFORM_V12 } else { - &PLATFORM_V7 + &PLATFORM_V12 }; let data_contract_cache = Arc::new(Cache::new(NonZeroUsize::new(100).expect("Non Zero"))); let sdk = if quorum_public_key_callback != 0 { @@ -234,6 +235,7 @@ pub fn create_dash_sdk_using_single_evonode( timeout: Some(Duration::from_secs(10)), retries: Some(0), ban_failed_address: Some(false), + max_decoding_message_size: None, } } }) diff --git a/platform-mobile/src/voting.rs b/platform-mobile/src/voting.rs index cc155f3..f6e32c3 100644 --- a/platform-mobile/src/voting.rs +++ b/platform-mobile/src/voting.rs @@ -32,7 +32,7 @@ use platform_value::types::identifier::Identifier; use platform_value::{IdentifierBytes32, Value}; use platform_value::string_encoding::Encoding; use platform_version::version::PlatformVersion; -use simple_signer::signer::SimpleSigner; +use simple_signer::single_key_signer::SingleKeySigner; use tracing::trace; use crate::config::{Config, EntryPoint}; use crate::fetch_document::fetch_documents_with_query_and_sdk; From bc05640a960ef879d53b489fd7ba2a811c24773b Mon Sep 17 00:00:00 2001 From: HashEngineering Date: Thu, 18 Jun 2026 21:17:01 -0700 Subject: [PATCH 3/5] fix: improve txmetadata for giftcards --- .../contested-resource-value-fqn.patch | 56 +++++++++++++++++++ dash-sdk-java/src/main/cpp/config.h | 2 + .../dashj/platform/wallet/TxMetadataItem.kt | 54 ++++++++++++++++-- dpp/src/main/proto/wallet-utils.proto | 3 + platform-mobile/src/sdk.rs | 6 +- 5 files changed, 112 insertions(+), 9 deletions(-) create mode 100644 dash-sdk-bindings/contested-resource-value-fqn.patch diff --git a/dash-sdk-bindings/contested-resource-value-fqn.patch b/dash-sdk-bindings/contested-resource-value-fqn.patch new file mode 100644 index 0000000..f84fc72 --- /dev/null +++ b/dash-sdk-bindings/contested-resource-value-fqn.patch @@ -0,0 +1,56 @@ +Subject: [PATCH] fix(fermented): use FFI type platform_value_Value for ContestedResource + +Ferment 0.2.3 resolves `platform_value::Value` (imported in +rs-drive-proof-verifier's ContestedResource) through the re-export path +`dpp::platform_value::Value`, which does not match its FFI-type registry +(keyed on `platform_value::Value`). It therefore emits the raw Rust type plus +a clone-based conversion. cbindgen then renders the raw enum as a bare +`Value *` in the generated .h, not matching the actual `platform_value_Value` +FFI struct. + +This rewrites the ContestedResource block to use the FFI type and proper +FFIConversionFrom/To indirection, mirroring WhereClause.value. Re-apply after +any full (non-cbindgen_only) ferment regeneration of src/fermented.rs. + +--- a/dash-sdk-bindings/src/fermented.rs ++++ b/dash-sdk-bindings/src/fermented.rs +@@ -4778,16 +4778,16 @@ + #[doc = "FFI-representation of the [`ContestedResource`]"] + #[repr(C)] + #[derive(Clone)] +- pub struct drive_proof_verifier_types_ContestedResource(*mut dpp::platform_value::Value); ++ pub struct drive_proof_verifier_types_ContestedResource(*mut crate::fermented::types::platform_value::platform_value_Value); + + impl ferment::FFIConversionFrom for drive_proof_verifier_types_ContestedResource { + unsafe fn ffi_from_const(ffi: *const drive_proof_verifier_types_ContestedResource) -> drive_proof_verifier::types::ContestedResource { + let ffi_ref = &*ffi; +- drive_proof_verifier::types::ContestedResource((&*ffi_ref.0).clone()) ++ drive_proof_verifier::types::ContestedResource(>::ffi_from(ffi_ref.0)) + } + } + +- impl ferment::FFIConversionTo for drive_proof_verifier_types_ContestedResource { unsafe fn ffi_to_const(obj: drive_proof_verifier::types::ContestedResource) -> *const drive_proof_verifier_types_ContestedResource { ferment::boxed(drive_proof_verifier_types_ContestedResource(ferment::boxed(obj.0))) } } ++ impl ferment::FFIConversionTo for drive_proof_verifier_types_ContestedResource { unsafe fn ffi_to_const(obj: drive_proof_verifier::types::ContestedResource) -> *const drive_proof_verifier_types_ContestedResource { ferment::boxed(drive_proof_verifier_types_ContestedResource(>::ffi_to(obj.0))) } } + + impl Drop for drive_proof_verifier_types_ContestedResource { + fn drop(&mut self) { +@@ -4799,16 +4799,16 @@ + } + + #[no_mangle] +- pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResource_ctor<>(o_0: *mut dpp::platform_value::Value) -> *mut drive_proof_verifier_types_ContestedResource { ferment::boxed(drive_proof_verifier_types_ContestedResource(o_0)) } ++ pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResource_ctor<>(o_0: *mut crate::fermented::types::platform_value::platform_value_Value) -> *mut drive_proof_verifier_types_ContestedResource { ferment::boxed(drive_proof_verifier_types_ContestedResource(o_0)) } + + #[no_mangle] + pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResource_destroy<>(ffi: *mut drive_proof_verifier_types_ContestedResource) { ferment::unbox_any(ffi); } + + #[no_mangle] +- pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResource_get_0<>(obj: *const drive_proof_verifier_types_ContestedResource) -> *mut dpp::platform_value::Value { (*obj).0 } ++ pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResource_get_0<>(obj: *const drive_proof_verifier_types_ContestedResource) -> *mut crate::fermented::types::platform_value::platform_value_Value { (*obj).0 } + + #[no_mangle] +- pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResource_set_0<>(obj: *const drive_proof_verifier_types_ContestedResource) -> *mut dpp::platform_value::Value { (*obj).0 } ++ pub unsafe extern "C" fn drive_proof_verifier_types_ContestedResource_set_0<>(obj: *const drive_proof_verifier_types_ContestedResource) -> *mut crate::fermented::types::platform_value::platform_value_Value { (*obj).0 } + } + + pub mod verify { use crate as dash_sdk_bindings; } diff --git a/dash-sdk-java/src/main/cpp/config.h b/dash-sdk-java/src/main/cpp/config.h index e747e45..bff8bee 100644 --- a/dash-sdk-java/src/main/cpp/config.h +++ b/dash-sdk-java/src/main/cpp/config.h @@ -39,4 +39,6 @@ struct InstantLock { struct platform_mobile_config_EntryPoint; +#define Value platform_value_Value + #endif \ No newline at end of file diff --git a/dpp/src/main/java/org/dashj/platform/wallet/TxMetadataItem.kt b/dpp/src/main/java/org/dashj/platform/wallet/TxMetadataItem.kt index 214751a..55a43a7 100644 --- a/dpp/src/main/java/org/dashj/platform/wallet/TxMetadataItem.kt +++ b/dpp/src/main/java/org/dashj/platform/wallet/TxMetadataItem.kt @@ -31,6 +31,9 @@ import java.text.DecimalFormat * @property barcodeFormat * @property merchantUrl * @property otherData Additional key-value string data + * @property order order number related to this tx + * @property giftCardChallenge + * @property index * @constructor Create empty Tx metadata item */ @@ -51,6 +54,9 @@ class TxMetadataItem( val barcodeFormat: String? = null, val merchantUrl: String? = null, val otherData: Map? = null, + val order: String? = null, + val giftCardChallenge: String? = null, + val index: Int? = null ) { val data = hashMapOf() @@ -72,7 +78,10 @@ class TxMetadataItem( rawObject["barcodeValue"] as? String, rawObject["barcodeFormat"] as? String, rawObject["merchantUrl"] as? String, - rawObject["otherData"] as? Map + rawObject["otherData"] as? Map, + rawObject["note"] as? String, + rawObject["giftCardChallenge"] as? String, + index = rawObject["index"] as? Int ) { data.putAll(rawObject) } @@ -93,7 +102,10 @@ class TxMetadataItem( if (protoTxMetadata.barcodeValue != "") protoTxMetadata.barcodeValue else null, if (protoTxMetadata.barcodeFormat != "") protoTxMetadata.barcodeFormat else null, if (protoTxMetadata.merchantUrl != "") protoTxMetadata.merchantUrl else null, - protoTxMetadata.otherDataMap.ifEmpty { null } + protoTxMetadata.otherDataMap.ifEmpty { null }, + if (protoTxMetadata.order != "") protoTxMetadata.order else null, + if (protoTxMetadata.giftCardChallenge != "") protoTxMetadata.giftCardChallenge else null, + if (protoTxMetadata.index != 0) protoTxMetadata.index else null ) fun toObject(): Map { @@ -160,11 +172,23 @@ class TxMetadataItem( map["otherData"] = it } + order?.let { + map["note"] = it + } + + giftCardChallenge?.let { + map["giftCardChallenge"] = it + } + + index?.let { + map["index"] = it + } + return map } fun toJson(): Map { - val map = hashMapOf( + val map = hashMapOf( "txId" to Sha256Hash.wrap(txId).toString() ) timestamp?.let { @@ -229,6 +253,18 @@ class TxMetadataItem( map.putAll(it) } + order?.let { + map["note"] = it + } + + giftCardChallenge?.let { + map["giftCardChallenge"] = it + } + + index?.let { + map["index"] = it + } + return map } @@ -255,7 +291,10 @@ class TxMetadataItem( barcodeValue == other.barcodeValue && barcodeFormat == other.barcodeFormat && merchantUrl == other.merchantUrl && - otherData == other.otherData + otherData == other.otherData && + order == other.order && + giftCardChallenge == other.giftCardChallenge && + index == other.index } return false } @@ -288,6 +327,9 @@ class TxMetadataItem( barcodeFormat?.let { builder.barcodeFormat = it } merchantUrl?.let { builder.merchantUrl = it } otherData?.let { builder.putAllOtherData(it) } + order?.let { builder.order = it } + giftCardChallenge?.let { builder.giftCardChallenge = it } + index?.let { builder.index = it } return builder.build() } @@ -299,7 +341,7 @@ class TxMetadataItem( return (timestamp != null && timestamp != 0L) || taxCategory != null || memo != null || currencyCode != null || exchangeRate != null || service != null || customIconUrl != null || giftCardNumber != null || giftCardPin != null || merchantName != null || originalPrice != null || - barcodeValue != null || barcodeFormat != null || merchantUrl != null || - (otherData != null && otherData.isNotEmpty()) + barcodeValue != null || barcodeFormat != null || merchantUrl != null || order != null || + giftCardChallenge != null || index != null || (otherData != null && otherData.isNotEmpty()) } } diff --git a/dpp/src/main/proto/wallet-utils.proto b/dpp/src/main/proto/wallet-utils.proto index b0fe6f5..137dc64 100644 --- a/dpp/src/main/proto/wallet-utils.proto +++ b/dpp/src/main/proto/wallet-utils.proto @@ -19,6 +19,9 @@ message TxMetadataItem { optional string barcodeFormat = 14; optional string merchantUrl = 15; map otherData = 16; + optional string order = 17; + optional string giftCardChallenge = 18; + optional uint32 index = 19; } message TxMetadataBatch { diff --git a/platform-mobile/src/sdk.rs b/platform-mobile/src/sdk.rs index ef39533..1ff8f6a 100644 --- a/platform-mobile/src/sdk.rs +++ b/platform-mobile/src/sdk.rs @@ -9,7 +9,7 @@ use ferment::{boxed, unbox_any}; use platform_value::Identifier; use platform_version::version::PlatformVersion; use platform_version::version::v12::PLATFORM_V12; -use platform_version::version::v9::PLATFORM_V9; +use platform_version::version::v11::PLATFORM_V11; use tokio::runtime::{Builder, Runtime}; use crate::config::{Config, EntryPoint}; use crate::logs::setup_logs; @@ -149,7 +149,7 @@ pub fn create_dash_sdk_with_context( let version: &'static PlatformVersion = if is_testnet { &PLATFORM_V12 } else { - &PLATFORM_V12 + &PLATFORM_V11 }; tracing::info!("configuring for testnet={} using platform port={}", cfg.is_testnet, cfg.platform_port); tracing::info!("configuring platform version {:?}", version); @@ -213,7 +213,7 @@ pub fn create_dash_sdk_using_single_evonode( let version: &'static PlatformVersion = if is_testnet { &PLATFORM_V12 } else { - &PLATFORM_V12 + &PLATFORM_V11 }; let data_contract_cache = Arc::new(Cache::new(NonZeroUsize::new(100).expect("Non Zero"))); let sdk = if quorum_public_key_callback != 0 { From 81a49dce7258122994973990d6582cc558553db5 Mon Sep 17 00:00:00 2001 From: HashEngineering Date: Fri, 19 Jun 2026 08:56:24 -0700 Subject: [PATCH 4/5] fix: rename note to order --- .../main/java/org/dashj/platform/wallet/TxMetadataItem.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dpp/src/main/java/org/dashj/platform/wallet/TxMetadataItem.kt b/dpp/src/main/java/org/dashj/platform/wallet/TxMetadataItem.kt index 55a43a7..c3b2096 100644 --- a/dpp/src/main/java/org/dashj/platform/wallet/TxMetadataItem.kt +++ b/dpp/src/main/java/org/dashj/platform/wallet/TxMetadataItem.kt @@ -79,7 +79,7 @@ class TxMetadataItem( rawObject["barcodeFormat"] as? String, rawObject["merchantUrl"] as? String, rawObject["otherData"] as? Map, - rawObject["note"] as? String, + rawObject["order"] as? String, rawObject["giftCardChallenge"] as? String, index = rawObject["index"] as? Int ) { @@ -173,7 +173,7 @@ class TxMetadataItem( } order?.let { - map["note"] = it + map["order"] = it } giftCardChallenge?.let { @@ -254,7 +254,7 @@ class TxMetadataItem( } order?.let { - map["note"] = it + map["order"] = it } giftCardChallenge?.let { From ca59469f7d917f25a10c70f03bbc255ec3381fb5 Mon Sep 17 00:00:00 2001 From: HashEngineering Date: Fri, 19 Jun 2026 09:01:28 -0700 Subject: [PATCH 5/5] fix: TxMetadataItem.getSize takes a version number --- .../org/dashj/platform/dashpay/BlockchainIdentity.kt | 2 +- .../java/org/dashj/platform/wallet/TxMetadataItem.kt | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/dpp/src/main/java/org/dashj/platform/dashpay/BlockchainIdentity.kt b/dpp/src/main/java/org/dashj/platform/dashpay/BlockchainIdentity.kt index a2a004c..c8c735f 100644 --- a/dpp/src/main/java/org/dashj/platform/dashpay/BlockchainIdentity.kt +++ b/dpp/src/main/java/org/dashj/platform/dashpay/BlockchainIdentity.kt @@ -2491,7 +2491,7 @@ class BlockchainIdentity { log.info("publish: determine how items can go in the next txmetadata document: $currentIndex") while (currentIndex < txMetadataItems.size) { lastItem = txMetadataItems[currentIndex] - val estimatedItemSize = lastItem.getSize() + 4 + val estimatedItemSize = lastItem.getSize(TxMetadataDocument.VERSION_PROTOBUF) + 4 if ((estimatedDocSize + estimatedItemSize) < TxMetadataDocument.MAX_ENCRYPTED_SIZE) { estimatedDocSize += estimatedItemSize currentMetadataItems.add(lastItem) diff --git a/dpp/src/main/java/org/dashj/platform/wallet/TxMetadataItem.kt b/dpp/src/main/java/org/dashj/platform/wallet/TxMetadataItem.kt index c3b2096..0aac3be 100644 --- a/dpp/src/main/java/org/dashj/platform/wallet/TxMetadataItem.kt +++ b/dpp/src/main/java/org/dashj/platform/wallet/TxMetadataItem.kt @@ -10,6 +10,7 @@ package org.dashj.platform.wallet import com.google.common.primitives.Ints import com.google.protobuf.ByteString import org.bitcoinj.core.Sha256Hash +import org.dashj.platform.contracts.wallet.TxMetadataDocument import org.dashj.platform.dpp.util.Cbor import java.text.DecimalFormat @@ -268,8 +269,14 @@ class TxMetadataItem( return map } - fun getSize(): Int { - return Cbor.encode(toObject()).size + fun getSize(version: Int): Int { + return if (version == TxMetadataDocument.VERSION_CBOR) { + Cbor.encode(toObject()).size + } else if (version == TxMetadataDocument.VERSION_PROTOBUF) { + toProtobuf().serializedSize + } else { + error("unknown version $version") + } } // does not compare timestamp