Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add function attributes to JSON ABI #447

Merged
merged 7 commits into from
Dec 19, 2022
Merged

Conversation

anton-trunov
Copy link
Contributor

@anton-trunov anton-trunov commented Dec 14, 2022

close #446

I went for one of the simplest solutions here. I'd propose to switch to a more complex attribute representation when the need arises -- the current format does not support attributes with parameters. But I'm happy to take suggestions on this as well and switch to a more general schema if someone has potential use cases in mind.

TODOs based on an internal discussion

  • Document possible function attributes
  • Add doc comment attributes
  • Add storage attributes

@anton-trunov anton-trunov self-assigned this Dec 14, 2022
@anton-trunov anton-trunov added the ABI Contract ABI label Dec 14, 2022
mohammadfawaz
mohammadfawaz previously approved these changes Dec 15, 2022
Copy link
Contributor

@mohammadfawaz mohammadfawaz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Thanks.

to handle doc comments and storage annotations
This makes the fuels-rs Rust types more sensible as we can use
`Vec<Attribute>` instead of `Option<Vec<Attribute>>`
This reverts commit 2b83464.

Turns out it's too hard to introduce an obligatory field like this
because of the sway and fuels-rs repos are too interconnected.
Also makes attribute arguments a non-optional array (makes more sense in the implementation)
Copy link
Contributor

@mohammadfawaz mohammadfawaz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice.

@anton-trunov anton-trunov merged commit d4066cb into master Dec 19, 2022
@anton-trunov anton-trunov deleted the function-attributes branch December 19, 2022 19:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ABI Contract ABI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add function attributes to JSON ABI
2 participants