mirror of
https://github.com/alexgo-io/stacks-subnets.git
synced 2026-01-12 22:43:44 +08:00
Merge branch 'master' into develop
This commit is contained in:
33
Cargo.lock
generated
33
Cargo.lock
generated
@@ -255,6 +255,7 @@ dependencies = [
|
||||
"serde",
|
||||
"serde_derive",
|
||||
"serde_json",
|
||||
"serde_stacker",
|
||||
"sha2 0.8.2",
|
||||
"sha2-asm",
|
||||
"sha3",
|
||||
@@ -1661,6 +1662,15 @@ version = "2.16.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d883f78645c21b7281d21305181aa1f4dd9e9363e7cf2566c93121552cff003e"
|
||||
|
||||
[[package]]
|
||||
name = "psm"
|
||||
version = "0.1.12"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3abf49e5417290756acfd26501536358560c4a5cc4a0934d390939acb3e7083a"
|
||||
dependencies = [
|
||||
"cc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "puppet-chain"
|
||||
version = "0.1.0"
|
||||
@@ -2201,6 +2211,16 @@ dependencies = [
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_stacker"
|
||||
version = "0.1.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f4c92391a63e3b83f77334d8beaaf11bac4c900f3769483e543bf76a81bf8ee2"
|
||||
dependencies = [
|
||||
"serde",
|
||||
"stacker",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_urlencoded"
|
||||
version = "0.6.1"
|
||||
@@ -2351,6 +2371,19 @@ version = "1.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
|
||||
|
||||
[[package]]
|
||||
name = "stacker"
|
||||
version = "0.1.13"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c3f47e840d001df3b785fbc3b84c7228519bdf63d4fb61b9e9f50f7fa153ce10"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"cfg-if 1.0.0",
|
||||
"libc",
|
||||
"psm",
|
||||
"winapi 0.3.9",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "stacks-node"
|
||||
version = "0.1.0"
|
||||
|
||||
@@ -48,6 +48,7 @@ rand = "=0.7.2"
|
||||
rand_chacha = "=0.2.2"
|
||||
serde = "1"
|
||||
serde_derive = "1"
|
||||
serde_stacker = "0.1"
|
||||
sha3 = "0.8.2"
|
||||
ripemd160 = "0.8.0"
|
||||
regex = "1"
|
||||
@@ -66,7 +67,7 @@ libc = "0.2.82"
|
||||
|
||||
[dependencies.serde_json]
|
||||
version = "1.0"
|
||||
features = ["arbitrary_precision"]
|
||||
features = ["arbitrary_precision", "unbounded_depth"]
|
||||
|
||||
[dependencies.secp256k1]
|
||||
version = "0.19.0"
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
use serde::Deserialize;
|
||||
use std::convert::TryInto;
|
||||
use std::io::Write;
|
||||
use util::hash::{hex_bytes, to_hex};
|
||||
@@ -51,7 +52,14 @@ macro_rules! clarity_serializable {
|
||||
}
|
||||
impl ClarityDeserializable<$Name> for $Name {
|
||||
fn deserialize(json: &str) -> Self {
|
||||
serde_json::from_str(json).expect("Failed to serialize vm.Value")
|
||||
let mut deserializer = serde_json::Deserializer::from_str(&json);
|
||||
// serde's default 128 depth limit can be exhausted
|
||||
// by a 64-stack-depth AST, so disable the recursion limit
|
||||
deserializer.disable_recursion_limit();
|
||||
// use stacker to prevent the deserializer from overflowing.
|
||||
// this will instead spill to the heap
|
||||
let deserializer = serde_stacker::Deserializer::new(&mut deserializer);
|
||||
Deserialize::deserialize(deserializer).expect("Failed to deserialize vm.Value")
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user