Commit Graph

72 Commits

Author SHA1 Message Date
Felipe Mendes 197a7a28c5
test: add and change tests to fuzz test (#128) 2023-02-20 11:46:46 -03:00
Felipe Mendes 70e9c14b05
feature: expose last token id function in the contract (#124)
* feat: add function to get the last token id

* test: add getLastTokenId tests
2023-02-20 11:44:59 -03:00
Felipe Mendes a86c30a8da
refactor: make a single event for token metadata changes (#111)
* refactor: add new unified events and remove old multiple ones

* fix: remove indexed from string params on events

* test: add hardhat tests for metadata update changes

* refactor: change event name

* test: add foundry tests for event emits in metadata changes

* refactor: undo changes on accespoint events

* chore: remove subgraph ci tests on prs for develop

* refactor: overload MetadataUpdate event to have multiple type of parameters

---------

Co-authored-by: Shredder <110225819+EmperorOrokuSaki@users.noreply.github.com>
2023-02-17 09:59:55 -03:00
Shredder 60af583479
feat: expose a function that returns all non-nested values of an App (#119)
* feat: expose a getToken function that returns all non-nested values of an app. Remove the access point mapping in the App struct.

* test: add test for getToken to hardhat

* test: add test cases for getToken (forge tests).

* docs: update header comments for getToken

* fix: apply Zoruka's suggestion

* fix: apply Zoruka's suggestion for expectingRevert

* fix: revert expectRevert
2023-02-11 00:59:25 +03:30
Shredder 7f1aca15dd
test: init subgraph unit tests (#117)
* test: add unit tests for the subgraph for events transfer, NewTokenName, NewTokenDescription, NewTokenExternalURL, NewTokenENS, NewTokenBuild

* fix: import errors

* fix: remove keyword "indexed" for strings in events.

* fix: update subgraph.yaml, schema.graphql, and all generated files with the test files to match the new interface of the contract events.

* fix: expose a makeEventId function to avoid repeating code for id generation and also change logIndex before handling events. Update tests to match the new  changes.

* chore: remove Holder.

* fix: wrong import for newLogoEvent
2023-02-10 21:13:43 +03:30
Felipe Mendes 18d3319fd7
chore: refactor hardhat tests (#103)
* chore: rearrange hardhat tests folder structure

* chore: add FleekERC721 hardhat test helpers

* test: split out deployment tests

* test: split out minting tests

* test: split out token uri tests

* test: split out token roles tests

* test: split out collection roles tests

* test: split out access points tests

* test: split out update properties tests

* test: improve test setup for aps and deployment

* test: move test resultant base64 logos to constants file
2023-02-09 17:44:57 -03:00
Felipe Mendes 3e1373682f
test: improve foundry test with best practices (#102)
* test: add FleekERC721 test base mint and uri

* chore: update forge-std version

* test: add FleekERC721 burn tests

* test: fix role getter

* test: add access tests for random address

* test: add access tests for owner address

* test: add test revert assertions

* test: apply revert assertions

* test: remove already split tests

* fix: wrong renamed file

* test: move access point tests

* test: refactor access control tests

* test: add deploy test cases

* test: add balance before and after mint test

* test: remove old testsuit

* chore: update foundry test folder strcture

* test: add assertion to verify added role for random address

* test: fix test functions names

* test: remove test_addAccessPoint

* test: add assertion for appAccessPoints length

* test: remove unnecessary assertions on test_tokenURI

* test: rename test files

* test: refactor testFail to test
2023-02-08 17:27:39 -03:00
Janison Sivarajah 6a827263b7
chore: change top level folder structure (#105)
* folder restructure init - WIP

* Update husky for folder change

* Properly ignore local zeppelin file

* change folder strucutre: update readme and contribution files

* remove chakra from readme list of key dependencies

* run contract workflow steps in contract dir

* Cleanup readmes, split contract into it's own

* Apply some suggestions from code review

Co-authored-by: Shredder <110225819+EmperorOrokuSaki@users.noreply.github.com>
Co-authored-by: Felipe Mendes <zo.fmendes@gmail.com>

* Move .env.example to contracts folder, and use consistent format for directory references in docs

* More readme dir ref fixes

* Update poc note in readme, and removed deploy folder from readme

* Prettier refactor

* Revert "Prettier refactor"

This reverts commit 82249e32aaf6a6e9a4d432c4f89ca365c18972f8.

* Clean up package.json and add prettier ignore

---------

Co-authored-by: Shredder <110225819+EmperorOrokuSaki@users.noreply.github.com>
Co-authored-by: Felipe Mendes <zo.fmendes@gmail.com>
2023-02-06 15:15:44 -05:00
Felipe Mendes 94e8ba3856
refactor: change svg generation to match design and update how it is write/read in contract (#95)
* refactor: update contract with logo and color, add new svg styling

* refactor: fix color storaging

* test: fix tests for new app metadata

* test: fix solidity tests

* chore: update latest deployment files

* feat: update mint script and add assets files

* refactor: move assets files

* refactor: update svg generation styling

* feat: add library deployment storage

* test: fix contract tests

* feat: add setTokenLogo and setTokenColor contract functions

* test: add hardhat tests for new set functions

* test: add foundry tests for new set functions, split out constant strings to constants library

* chore: remove leftover comment

* feat: add setTokenLogoAndColor function

* test: add test for setTokenLogoAndColor function

* test: add test for setTokenLogoAndColor function on foundry
2023-01-31 14:12:48 -03:00
Felipe Mendes 91aeb47aef
chore: prepare the contracts to be upgradable using openzeppelin proxy plugin (#76)
* feat: add proxy upgradable base setting

* refactor: upgrade contracts to fit upgradable pattern

* fix: hardhat test default fixture

* test: trying to fix foundry tests

* fix: remove wrong modifier from FleekAccessControl initializer

* refactor: change __FleekAccessControl_init function from public to internal

* refactor: add __FleekAccessControl_init modifier

* feat: proxy store script

* chore: add .openzeppelin development files in gitignore

* refactor: update local deploy script to use proxy

* refactor: mumbai deployment with proxy and fix interaction scripts

* test: fix proxy storing values

* refactor: proxy storage deploy order

* test: move proxy test to deploy folder

* refactor: deployment scripts

* docs: fix local deploy command

* refactor: add more logs in deploy scripts

* feat: write deployment files script

* refactor: use file scripts in proxy-deploy

* refactor: deployment files for mumbai
2023-01-31 12:09:12 -03:00
Shredder e81132a9b8
test: foundry tests for access points (#79)
* feat: add mirror mapping and management

* test: add mirrors tests

* chore: add new functions header comments

* feat: add isMirrorVerified function

* feat: add a list of mirrors to token

* feat: add require minted to appMirrors function

* chore: update solidity compiler on hardhat config

* refactor: add token id to other mirror events

* refactor: change from mirror to access point and update its metadata

* test: updates tests due to contract changes

* refactor: clean up string parser from main contract

* refactor: remove wronge requirement comments

* refactor: strings library (#71)

* refactor: move string parse functions to a library

* refactor: remove not used modifier

* refactor: move svg generation to library

* refactor: remove source from aps

* refactor: rename accessPoint function

* test: fix two foundry test cases

* test: fix tests that were not working.

* fix: apply requested changes.

---------

Co-authored-by: zoruka <zo.fmendes@gmail.com>
2023-01-27 22:00:50 +03:30
Felipe Mendes fc20f02b7f
feat: add app access points and libraries clean up (#69)
* feat: add mirror mapping and management

* test: add mirrors tests

* chore: add new functions header comments

* feat: add isMirrorVerified function

* feat: add list of mirrors to token

* feat: add require minted to appMirrors function

* chore: update solidity compiler on hardhat config

* refactor: add token id to other mirror events

* refactor: change from mirror to access point and update its metadata

* test: updates tests due to contract changes

* refactor: clean up string parser from main contract

* refactor: remove wronge requirement comments

* refactor: strings library (#71)

* refactor: move string parse functions to a library

* refactor: remove not used modifier

* refactor: move svg generation to library

* refactor: remove source from aps

* refactor: rename accessPoint function
2023-01-18 11:39:44 -03:00
EmperorOrokuSaki 69de99467f Fix the HardHat decoding bug by adding base URI to _generateSVG() and updating foundry tests 2023-01-11 18:55:51 +03:30
EmperorOrokuSaki 9013bd9faf Change _generateSVG() mutability to pure from view 2023-01-11 17:46:33 +03:30
EmperorOrokuSaki 75ae5fa440 Move calling _genenrateSVG() to tokenURI() from mint() 2023-01-11 17:36:50 +03:30
EmperorOrokuSaki 810739c740 Add optimization to hardhat config & comment the tokenURI hardhat test 2023-01-09 19:48:17 +03:30
EmperorOrokuSaki 090c1e1477 Add SVG generation test and function. 2023-01-09 18:52:04 +03:30
Felipe Mendes 6c901a6001
Release/0.0.1 fixes (#60)
* Update LICENSE

* Update README.md

* Update local_deploy.js

* Update FleekERC721.sol

* fix: mumbai deploy args

* fix: fix comments release (#61)

Co-authored-by: Janison Sivarajah <jsonsivar@gmail.com>
Co-authored-by: Camila Sosa Morales <camisosa@fleek.co>
2022-12-22 14:21:00 -03:00
EmperorOrokuSaki 90dc8c3bfc add header docs for modifiers and constructors. 2022-12-22 17:38:24 +03:30
EmperorOrokuSaki 3ec0827ac1 add function headers for accesscontrole.sol 2022-12-20 18:17:43 +03:30
zoruka 5956cb7be9 chore: merge develop 2022-12-20 08:34:40 -03:00
Felipe Mendes 22198e76e3
refactor: remove extension AccessControl from FleekAccessControl (#28)
* refactor: remove extension AccessControl from FleekAccessControl

* refactor: add version for roles

* test: add collection roles tests

* test: add more token role hardhat tests

* refactor: remove lib/forge-std

* feat: add role grant and revoke events

* test: add access control role event emit tests

* refactor: remove abstract keyword from FleekAccessControl

* Merge conflicts for #28 (#49)

* Add msg.sender to the triggered_by field in events

* Document methods and make everything camelCase

* Make event params all camelCase

* fix: forge-std submodule

* make vars camelCase, remove baseURI header, remove addTokenController and removeTokenController, update tests

Co-authored-by: EmperorOrokuSaki <artie.eth@gmail.com>
Co-authored-by: Shredder <110225819+EmperorOrokuSaki@users.noreply.github.com>
Co-authored-by: zoruka <zo.fmendes@gmail.com>

Co-authored-by: Janison Sivarajah <jsonsivar@gmail.com>
Co-authored-by: EmperorOrokuSaki <artie.eth@gmail.com>
Co-authored-by: Shredder <110225819+EmperorOrokuSaki@users.noreply.github.com>
2022-12-19 15:45:15 -03:00
zoruka 4dd1442e9d chore: merge develop 2022-12-17 09:03:08 -03:00
Felipe Mendes 4836dd0436
chore: precommit hooks (#18)
* chore: add husky and lint-staged

* chore: add postinstall script

* chore: add prepush test hook

* chore: add skip tests flag

* chore: remove skip tests flag

* chore: fix format command to verify json files
2022-12-16 14:57:49 -03:00
EmperorOrokuSaki d151b80319 fix tokenURI return json 2022-12-15 21:46:29 +03:30
EmperorOrokuSaki 54f665b572 fix 2022-12-15 21:40:57 +03:30
zoruka 5900488532 chore: add clear token function comment 2022-12-15 21:32:03 +03:30
zoruka f6510106cd test: add more token role hardhat tests 2022-12-15 21:32:03 +03:30
zoruka f6f48ba206 refactor: add version for roles 2022-12-15 21:32:03 +03:30
EmperorOrokuSaki ee520dcc73 fix erc721 2022-12-15 21:31:59 +03:30
EmperorOrokuSaki 5411e03675 fixing merge conflicts from rebasing 2022-12-15 21:19:42 +03:30
EmperorOrokuSaki a4679036b2 fix rebase conflict 2022-12-15 21:12:25 +03:30
Shredder 8b40a0a140
Make event params all camelCase 2022-12-14 20:39:58 +03:30
EmperorOrokuSaki d1621cea50 fix merge conflicts. 2022-12-12 23:56:10 +03:30
EmperorOrokuSaki 7ac1502885 Document methods and make everything camelCase 2022-12-12 23:43:41 +03:30
Felipe Mendes 94c364836e
feat: fleek erc721 (#5)
* wip: refactor on current nft contract

* wip: FleekERC721 contract

* refactor: FleekERC721

* feat: add token controller control functions

* fix: sintax wise issues for compilation

* Fix errors and make the contract environment ready for compiling.

* Remove fleekbuilds.sol & update erc721 with a fix

* Update config files.

* fix: working deploy

* Make set methods public, add comments and notes to clarify issues.

* Update package.json to add the deploy script & remove package-lock.json from the repository

* Add two deploy scripts for local and mumbai deployments, update hardhat config to match two types and package.json

* Update TokenURI and the metadata struct

* Update deploy script and package.json to match the mumbai deploy script

* Add setTokenName, setTokenDescription, setTokenImage

* Add events to all set functions

* Foundry init configs

* Add foundry tests init (name, symbol, placeholder functions)

* test: hardhat (#21)

* chore: update hardhat config

* test: add FleekERC721 tests and remove not used SitesNFTs suit

* test: verify ERC721 compatibility

* Content type on second abi.encodePacked call in tokenURI

* Fix abi encoding on tokenURI

* chore: update hardhat config

* test: add FleekERC721 tests and remove not used SitesNFTs suit

* test: verify ERC721 compatibility

* Content type on second abi.encodePacked call in tokenURI

* test: improve assertion using deep equality

* chore: remove 0.4.24 version from hardhat compilers

* refactor: clear empty bytes from bytes32

* refactor: change properties from bytes32 to string

Co-authored-by: janison <jsonsivar@gmail.com>

* feat: add interaction scripts

* feat: add function signature to remove token controllers on transfer functions

* Update test commands & add forge-cache and out to .gitignore

* refactor: change token controller role validation to _beforeTokenTransfer function

* refactor: remove upgradeTokenBuild and fix burn requirement

* refactor: add isTokenController and move _clearTokenControllers to FleekAccessControl contract

* refactor: remove localhost and wrong mumbai deployments

* refactor: rename polygonMumbai to mumbai

* refactor: remove twiced name on gitignore

* chore: mumbai deployments

* refactor: util script to get contract using hardhat defined network

* chore: move forge-std as a submodule

* chore: move forge-std as a submodule

Co-authored-by: EmperorOrokuSaki <artie.eth@gmail.com>
Co-authored-by: daltoncoder <71679972+daltoncoder@users.noreply.github.com>
Co-authored-by: janison <jsonsivar@gmail.com>
2022-12-12 16:56:17 -03:00
EmperorOrokuSaki 3cf9be4528 Add msg.sender to the triggered_by field in events 2022-12-12 18:42:00 +03:30
zoruka 45118cb930 refactor: add isTokenController and move _clearTokenControllers to FleekAccessControl contract 2022-12-08 10:22:08 -03:00
zoruka 12a7a2cdf9 refactor: remove upgradeTokenBuild and fix burn requirement 2022-12-08 10:10:57 -03:00
zoruka 752bbb896a refactor: change token controller role validation to _beforeTokenTransfer function 2022-12-08 10:00:49 -03:00
EmperorOrokuSaki 8437fe4e6e Make Burn TokenOwnerOnly & Add test suites 2022-12-08 02:05:32 +03:30
Shredder 47c0b8d1bb
Merge branch 'feat/fleek-erc721' into test/foundry 2022-12-08 01:32:29 +03:30
EmperorOrokuSaki a0adff1702 Remove cache files, add/fix tests, update contract to remove/change methods 2022-12-08 00:59:51 +03:30
zoruka 9cf5a5ad9e feat: add function signature to remove token controllers on transfer functions 2022-12-07 15:44:02 -03:00
EmperorOrokuSaki afb1f1e73b Fix token owner error 2022-12-07 18:38:08 +03:30
EmperorOrokuSaki 63820f7a87 update erc 2022-12-07 18:23:21 +03:30
Felipe Mendes ef8baad617
test: hardhat (#21)
* chore: update hardhat config

* test: add FleekERC721 tests and remove not used SitesNFTs suit

* test: verify ERC721 compatibility

* Content type on second abi.encodePacked call in tokenURI

* Fix abi encoding on tokenURI

* chore: update hardhat config

* test: add FleekERC721 tests and remove not used SitesNFTs suit

* test: verify ERC721 compatibility

* Content type on second abi.encodePacked call in tokenURI

* test: improve assertion using deep equality

* chore: remove 0.4.24 version from hardhat compilers

* refactor: clear empty bytes from bytes32

* refactor: change properties from bytes32 to string

Co-authored-by: janison <jsonsivar@gmail.com>
2022-12-06 17:39:08 -03:00
EmperorOrokuSaki 17da15ae97 Add events to all set functions 2022-12-05 21:29:46 +03:30
EmperorOrokuSaki f450a3e8b7 Add setTokenName, setTokenDescription, setTokenImage 2022-12-05 20:59:27 +03:30
EmperorOrokuSaki afff3f6f7a Update TokenURI and the metadata struct 2022-12-05 20:53:23 +03:30