rust-ethereum / ethabi

Encode and decode smart contract invocations
Apache License 2.0
517 stars 186 forks source link

Non-Standardized Supporting #236

Closed AurevoirXavier closed 3 years ago

AurevoirXavier commented 3 years ago

I revamp my old implementation #211.

@sorpaas

sorpaas commented 3 years ago

I'd appreciate if you can add CI build run for no_std as well!

vkgnosis commented 3 years ago

Could you explain a bit on the motivation for no std support? What part of the crate is still useful without std? Why does HashMap have to change to BTreeMap?

AurevoirXavier commented 3 years ago

Could you explain a bit on the motivation for no std support? What part of the crate is still useful without std? Why does HashMap have to change to BTreeMap?

  1. I found many people use this in substrate runtime, so do I. Some of them used it in EVM. And my team used it for the ethereum cross-chain bridge.
  2. Reader/Tokenizer/serde/serde_json not available in no-std.
  3. There is no HashMap under alloc. And we use BTreeMap to replace in general.
AurevoirXavier commented 3 years ago

I'd appreciate if you can add CI build run for no_std as well!

Okay.

Interesting, why the CI failed?

cargo test --no-default-features passed locally.

sorpaas commented 3 years ago

Please remove check and test command in CI, and add build.

AurevoirXavier commented 3 years ago

Please remove check and test command in CI, and add build.

Please review.

sorpaas commented 3 years ago

CI is failing!

AurevoirXavier commented 3 years ago

CI is failing!

I see. cargo-hack is pretty strict.