Skip to content

FoxDev12/dixel-contract

 
 

Repository files navigation

Dixel

A single NFT canvas where users overwrite the previous edition with price-compounded pixels.

  1. There is an universal art canvas with 16x16 pixels that anyone can overwrite
  2. Whenever a user overwrites a pixel, the price of the pixel increases by 5% (Initial pixel price: 1 DIXEL)
  3. A new NFT edition with the current canvas state will be minted to the updater (image data is encoded as SVG, 100% on-chain)
  4. Total cost that user paid to overwrite pixels goes to:
    • 10% -> all contributors proportional to their contribution count (total pixel count a user has updated so far)
    • 90% -> reserve for refund when the NFT gets burned
  5. If a user burn a NFT they own, reserve amount (DIXEL tokens) gets refunded to the user (90% of total minting cost)

Run Tests

npx hardhat test

Contracts

BSC Testnet

  • Test token: 0x57960c075b08A4Ba01B9D53E97ce3440f12F544f
  • DixelAirdrop: 0x5c1a49360b07dA6Fa37297A1F30E177FBFA7dfF1
  • DixelArt NFT: 0x5A56Efb75Ad37B8532D39b9329374bA10beA5f50
  • Dixel contract: 0x9E705dA2C9a3a7E14851272D8ba79620AB9dAd86

Deploy

npx hardhat compile

HARDHAT_NETWORK=bscmain node scripts/deploy.js

# Verify source code on Etherscan
npx hardhat verify --network bscmain {contract address} "parameter 1" "parameter 2"

Gas Consumption

·----------------------------------------------------|---------------------------|--------------|-----------------------------·
|                Solc version: 0.8.10                ·  Optimizer enabled: true  ·  Runs: 1500  ·  Block limit: 60000000 gas  │
·····················································|···························|··············|······························
|  Methods                                           ·                1 gwei/gas                ·       3342.03 usd/eth       │
····························|························|·············|·············|··············|···············|··············
|  Contract                 ·  Method                ·  Min        ·  Max        ·  Avg         ·  # calls      ·  usd (avg)  │
····························|························|·············|·············|··············|···············|··············
|  DixelAirdrop             ·  addTokens             ·      69103  ·      90972  ·       80038  ·           46  ·       0.27  │
····························|························|·············|·············|··············|···············|··············
|  DixelAirdrop             ·  claim                 ·          -  ·          -  ·       77230  ·            9  ·       0.26  │
····························|························|·············|·············|··············|···············|··············
|  DixelAirdrop             ·  closeAirdrop          ·          -  ·          -  ·       59767  ·            3  ·       0.20  │
····························|························|·············|·············|··············|···············|··············
|  DixelAirdrop             ·  startAirdrop          ·          -  ·          -  ·       28419  ·            9  ·       0.09  │
····························|························|·············|·············|··············|···············|··············
|  DixelAirdrop             ·  whitelist             ·          -  ·          -  ·      199568  ·           23  ·       0.67  │
····························|························|·············|·············|··············|···············|··············
|  DixelArt                 ·  burn                  ·          -  ·          -  ·       67688  ·            6  ·       0.23  │
····························|························|·············|·············|··············|···············|··············
|  DixelArt                 ·  transferOwnership     ·      28596  ·      28620  ·       28618  ·           65  ·       0.10  │
····························|························|·············|·············|··············|···············|··············
|  DixelMock                ·  claimReward           ·      55825  ·      72925  ·       67225  ·            6  ·       0.22  │
····························|························|·············|·············|··············|···············|··············
|  DixelMock                ·  updatePixels          ·    1232210  ·    1257992  ·     1251977  ·          105  ·       4.18  │
····························|························|·············|·············|··············|···············|··············
|  DixelMock                ·  updatePixelsNoChecks  ·          -  ·          -  ·     3008100  ·            1  ·      10.05  │
····························|························|·············|·············|··············|···············|··············
|  DixelMock                ·  updatePixelsOriginal  ·          -  ·          -  ·     3258315  ·            1  ·      10.89  │
····························|························|·············|·············|··············|···············|··············
|  ERC20PresetMinterPauser  ·  approve               ·      46596  ·      46620  ·       46618  ·          130  ·       0.16  │
····························|························|·············|·············|··············|···············|··············
|  ERC20PresetMinterPauser  ·  mint                  ·      55830  ·      72954  ·       63523  ·          196  ·       0.21  │
····························|························|·············|·············|··············|···············|··············
|  Deployments                                       ·                                          ·  % of limit   ·             │
·····················································|·············|·············|··············|···············|··············
|  ColorUtilsMock                                    ·          -  ·          -  ·      298677  ·        0.5 %  ·       1.00  │
·····················································|·············|·············|··············|···············|··············
|  DixelAirdrop                                      ·    1186871  ·    1186883  ·     1186882  ·          2 %  ·       3.97  │
·····················································|·············|·············|··············|···············|··············
|  DixelArt                                          ·    2813231  ·    2813243  ·     2813242  ·        4.7 %  ·       9.40  │
·····················································|·············|·············|··············|···············|··············
|  DixelMock                                         ·    8203827  ·    8203839  ·     8203837  ·       13.7 %  ·      27.42  │
·····················································|·············|·············|··············|···············|··············
|  ERC20PresetMinterPauser                           ·          -  ·          -  ·     1951544  ·        3.3 %  ·       6.52  │
·----------------------------------------------------|-------------|-------------|--------------|---------------|-------------·

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 57.7%
  • Solidity 42.1%
  • Shell 0.2%