feat: change abi_str to abi from contract in for hardhat abi (#740)
This commit is contained in:
parent
86044bc0c3
commit
8e0eddbb57
|
@ -152,7 +152,7 @@ impl Context {
|
||||||
/// Create a context from the code generation arguments.
|
/// Create a context from the code generation arguments.
|
||||||
pub fn from_abigen(args: Abigen) -> Result<Self> {
|
pub fn from_abigen(args: Abigen) -> Result<Self> {
|
||||||
// get the actual ABI string
|
// get the actual ABI string
|
||||||
let abi_str =
|
let mut abi_str =
|
||||||
args.abi_source.get().map_err(|e| anyhow!("failed to get ABI JSON: {}", e))?;
|
args.abi_source.get().map_err(|e| anyhow!("failed to get ABI JSON: {}", e))?;
|
||||||
|
|
||||||
let (abi, human_readable, abi_parser) = parse_abi(&abi_str)?;
|
let (abi, human_readable, abi_parser) = parse_abi(&abi_str)?;
|
||||||
|
@ -172,6 +172,13 @@ impl Context {
|
||||||
internal_structs.outputs = abi_parser.outputs.clone();
|
internal_structs.outputs = abi_parser.outputs.clone();
|
||||||
|
|
||||||
internal_structs
|
internal_structs
|
||||||
|
} else if abi_str.starts_with('{') {
|
||||||
|
abi_str = serde_json::to_string(&abi).context("fail to serialize abi to json")?;
|
||||||
|
|
||||||
|
serde_json::from_str::<RawAbi>(&abi_str)
|
||||||
|
.ok()
|
||||||
|
.map(InternalStructs::new)
|
||||||
|
.unwrap_or_default()
|
||||||
} else {
|
} else {
|
||||||
serde_json::from_str::<RawAbi>(&abi_str)
|
serde_json::from_str::<RawAbi>(&abi_str)
|
||||||
.ok()
|
.ok()
|
||||||
|
|
|
@ -25,6 +25,11 @@ fn can_gen_human_readable() {
|
||||||
assert_eq!("ValueChanged(address,string,string)", ValueChangedFilter::abi_signature());
|
assert_eq!("ValueChanged(address,string,string)", ValueChangedFilter::abi_signature());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn can_gen_not_human_readable() {
|
||||||
|
abigen!(VerifierAbiHardhatContract, "./tests/solidity-contracts/verifier_abi_hardhat.json");
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn can_gen_human_readable_multiple() {
|
fn can_gen_human_readable_multiple() {
|
||||||
abigen!(
|
abigen!(
|
||||||
|
|
Loading…
Reference in New Issue