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 ERC721ABI and fix other abis #761

Merged
merged 23 commits into from Nov 27, 2023
Merged

Conversation

andrew-fleming
Copy link
Collaborator

Supersedes #741 and fixes #739.

This PR proposes to normalize the interface/impl function order. Furthermore, this PR also proposes to reorder the internal functions to better match the order of their external counterparts

Copy link
Member

@ericnordelo ericnordelo left a comment

Choose a reason for hiding this comment

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

Small comment, but besides I think it looks good!

//
// Internal
//

#[generate_trait]
impl InternalImpl of InternalTrait {
fn initializer(ref self: ContractState, _public_key: felt252) {
let mut unsafe_state = src5_state();
let mut unsafe_state = SRC5::unsafe_new_contract_state();
Copy link
Member

Choose a reason for hiding this comment

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

Should we keep this? It should be removed when migrating to component anyway, buy I think src5_state looks better.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Agreed! I think this got mixed up in the merge/release. Good catch

@andrew-fleming
Copy link
Collaborator Author

@ericnordelo I included the camelCase methods in the Accounts api (as mentioned here). There's a few camel impls in the Account mod. Listing each camel impl seems a bit noisy IMO. I propose we group them as CAMELCASE-SUPPORT in the api. Wdyt?
Screen Shot 2023-10-03 at 12 50 39 PM

@ericnordelo
Copy link
Member

It looks way better to me than adding each impl. I agree.

Copy link
Member

@ericnordelo ericnordelo left a comment

Choose a reason for hiding this comment

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

LGTM! Left a really small suggestion, and we need to add the camelCase support to other modules as well, but we can leave that for another PR.

docs/modules/ROOT/pages/api/account.adoc Outdated Show resolved Hide resolved
Co-authored-by: Eric Nordelo <eric.nordelo39@gmail.com>
@andrew-fleming
Copy link
Collaborator Author

@ericnordelo I updated the Account module so it's exposing external impls (not non-standard fns). I didn't update the ERC20 Non-Standard name because I think this is enough for this PR and we'll have to change some things around anyway with the component migration. We could also just apply these changes in the migration PRs instead. Let me know what you think

@andrew-fleming andrew-fleming mentioned this pull request Oct 17, 2023
3 tasks
Copy link
Contributor

@martriay martriay left a comment

Choose a reason for hiding this comment

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

need to fix conflicts and update to latest, other than that it looks good to me!

fn symbol(self: @TState) -> felt252;
fn decimals(self: @TState) -> u8;
// Camel case compatibility
// See https://docs.openzeppelin.com/contracts-cairo/0.7.0/interfaces#dual_interfaces
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
// See https://docs.openzeppelin.com/contracts-cairo/0.7.0/interfaces#dual_interfaces
// See https://docs.openzeppelin.com/contracts-cairo/0.8.0-beta.0/interfaces#dual_interfaces

fn token_uri(self: @TState, token_id: u256) -> felt252;

// Camel case compatibility
// See https://docs.openzeppelin.com/contracts-cairo/0.7.0/interfaces#dual_interfaces
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
// See https://docs.openzeppelin.com/contracts-cairo/0.7.0/interfaces#dual_interfaces
// See https://docs.openzeppelin.com/contracts-cairo/0.8.0-beta.0/interfaces#dual_interfaces

@martriay martriay merged commit cd0ce89 into OpenZeppelin:main Nov 27, 2023
5 checks passed
martriay added a commit that referenced this pull request Dec 13, 2023
* bump to 0.8.0 (#834)

* Update PULL_REQUEST_TEMPLATE.md (#827)

* Update PULL_REQUEST_TEMPLATE.md

* Update PULL_REQUEST_TEMPLATE.md

* Update PULL_REQUEST_TEMPLATE.md

* Update RELEASING and CONTRIBUTING (#828)

* update RELEASING

* fix linting

* update CONTRIBUTING

* fix emphasis

* add changelog to releasing.md

* improve live testing guidelines

* Update CONTRIBUTING.md

Co-authored-by: Andrew Fleming <fleming-andrew@protonmail.com>

---------

Co-authored-by: Andrew Fleming <fleming-andrew@protonmail.com>

* Add `ERC721ABI` and fix other abis (#761)

* fix account abi

* fix erc20 abi

* fix erc721 abi

* reorder internal fns

* reorder internal fns

* fix comment

* reorder fns

* fix casing

* fix casing

* reorder api fns

* add dual interfaces link

* add camel methods to api

* remove imports

* re-add src5_state

* Apply suggestions from code review

Co-authored-by: Eric Nordelo <eric.nordelo39@gmail.com>

* add deployer trait/impl

* change non-standard to impls in fn list

* fix in-code doc style

* fix comments

* fix interface order

* remove unused impl

---------

Co-authored-by: Eric Nordelo <eric.nordelo39@gmail.com>

* Update utility docs  (#825)

* fix: link (#545)

* feat: add utility docs

* Update docs/modules/ROOT/pages/utilities.adoc

Co-authored-by: Andrew Fleming <fleming.andrew@protonmail.com>

* Update docs/modules/ROOT/pages/utilities.adoc

Co-authored-by: Andrew Fleming <fleming.andrew@protonmail.com>

* Update docs/modules/ROOT/pages/utilities.adoc

Co-authored-by: Andrew Fleming <fleming.andrew@protonmail.com>

* feat: apply review updates

* Update docs/modules/ROOT/pages/utilities.adoc

Co-authored-by: Andrew Fleming <fleming.andrew@protonmail.com>

* feat: apply review updates

* fix: remove drop events

* feat: update CHANGELOG

* feat: apply review udpates

---------

Co-authored-by: Andrew Fleming <fleming.andrew@protonmail.com>

* Add in-code docs (#822)

* add in-code comment

* normalize in-code comments

* fix comment

* fix comments

* fix comments

* add double back ticks for comment possessives

* add missing reqs

* add missing reqs, fix _burn description

* fix __execute__ reqs

* remove double backticks

* remove unused imports

* fix: implementation name (#840)

* Improve component tests with ComponentState (#836)

* refactor: component state in tests

* feat: update CHANGELOG

* Update CHANGELOG.md

Co-authored-by: Martín Triay <martriay@gmail.com>

* feat: apply review updates

* fix: CHANGELOG

---------

Co-authored-by: Martín Triay <martriay@gmail.com>

* Document SRC5 migration (#821)

* start migration guide

* add links, add register_interfaces example

* add supports_interfaces

* add supports_interfaces to docs

* fix formatting

* revert change

* Apply suggestions from code review

Co-authored-by: Martín Triay <martriay@gmail.com>

* remove upgrade fn from code block

* remove supports_interfaces

* add deregister_erc165_interface

* change src5 migration title

* fix src5 migration doc

* fix how-to section

* fix formatting

* add deregister_erc165_interface

* update interface registration section

* add link to register_interface

* update CHANGELOG

* Apply suggestions from code review

Co-authored-by: Martín Triay <martriay@gmail.com>

* remove register_erc165_interface

* remove deregister_erc165_interface from utilities

* remove deregister from guide

* fix import

* remove register_interfaces fn from API

* remove unused var

* add initializable warning

---------

Co-authored-by: Martín Triay <martriay@gmail.com>

* Document Class Hashes (#832)

* fix: link (#545)

* feat: add page

* feat: finish UI

* Update docs/modules/ROOT/pages/api/erc721.adoc

Co-authored-by: Andrew Fleming <fleming.andrew@protonmail.com>

* feat: apply review updates

* fix: remove trailing space

* feat: update CHANGELOG

* Update CHANGELOG.md

Co-authored-by: Martín Triay <martriay@gmail.com>

* feat: apply review updates

* feat: apply review updates

---------

Co-authored-by: Andrew Fleming <fleming.andrew@protonmail.com>
Co-authored-by: Martín Triay <martriay@gmail.com>

* Update extensibility docs (#823)

* add extensibility docs

* start setup guide

* change file name

* Apply suggestions from code review

Co-authored-by: Eric Nordelo <eric.nordelo39@gmail.com>

* fix name

* change title

* change title to component impl

* update changelog

* add comp storage section

* finish new structure

* finish edits, add customization section

* simplify titles

* finish custom impl section

* Apply suggestions from code review

Co-authored-by: Martín Triay <martriay@gmail.com>

* fix comp storage section

* change section title  to setup, minor edits

* add cmp storage link, clean up impl section

* add cairo book link

* add api design tip

* Apply suggestions from code review

---------

Co-authored-by: Eric Nordelo <eric.nordelo39@gmail.com>
Co-authored-by: Martín Triay <martriay@gmail.com>

* Update docs navbar (#838)

* update docs navbar

* complete navbar

* fix navbar

* fix navbar

* update changelog

* update changelog

* fix changelog

* update wizard and rename usage -> components

* fix broken links

* reordered changelog

* fix default collapsed sections

---------

Co-authored-by: Andrew Fleming <fleming-andrew@protonmail.com>
Co-authored-by: Eric Nordelo <eric.nordelo39@gmail.com>
Co-authored-by: Andrew Fleming <fleming.andrew@protonmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add missing ERC721ABI trait
3 participants