간단하게 구현하기 위해 자체 collection 기능 제거
hash를 keep하는 이유는 같은 hash로 민팅을 방지하기 위해서 = 동일한 ipfs hash로 민팅을 하면 안되므로
back을 거치지 않고 마음대로 거래를 하면 안되므로 랜덤값과 모든 거래에 대한 정보를 담은 hash를 keep 해놓고 중복시 revert한다.
기본적으로 lazyminting을 지원
백에서 모든 거래에 대해서 event listening을 하고 있을 수 없으니 서명은 무조건 백이 하는걸로 해서 불필요한 리소스 낭비를 방지한다.
admin, market, back 의 각 role을 관리하기 위한 contarct
buyLazyNFT buyer가 signer buyer한테 바로 민팅을 해주는 방식으로 트랜잭션 최소화 = seller(creator)는 자신이 소유한 적이 없게됨
buyNFT buyer가 signer
거래 수수료 : 2퍼
create할때 creator가 signer, 추후에 민팅/거래시 검증
모든 error 케이스에 대한 엄격한 test를 함
npm install
npx hardhat compile
npm run test
npm run test:gas
- Make sure to write down the address separately
- After checking in etherscan, proceed with the next deployment
- network setting in hardhat.config.ts
- add ADMIN_ADDRESS to .env
- npm run deploy scripts/TattoRole.deploy.ts
- add ROLE_ADDRESS to .env
- npm run deploy scripts/TattoCurrency.deploy.ts
- add CURRENCY_ADDRESS to .env
- npm run deploy scripts/TattoMarket.deploy.ts
- npm run deploy scripts/TattoCollection.deploy.ts
admin address : "0xE976893Bf88F6CC81ae942cE9531fBebd8530D81" TattoRole address : "0x87974cb4E05f102A9527F2f185Cc8641D548bEA5" TattoCurrency address : "0xd701c4C2d29660b8Dd91ca1254A988Ac1316F2c3" TattoMarket address : 0x0DcC01a5d496A6c5F58b3CDe335cE861795913C3 TattoCollection address : "0x48501804b332d642c4b14580574e26A949A3D2c1"