/tuxedo

Solidity smart contracts for ZTX.

Primary LanguageSolidityMIT LicenseMIT

Tuxedo

Solidity smart contracts for ZTX.

Dependencies

Documentation

For further details, see the docs.

Setup

npm install

The system also requires the following environment variables to be set:

Variable Description
TOKEN_NAME The name of the token (e.g. ZTX Token).
TOKEN_SYMBOL The symbol of the primay token (e.g. ZTX).
DOMAIN The domain of where the metadata is hosted.
ENVIRONMENT The environment of the deployment (devnet, testnet or mainnet).
DEPLOYER_PRIVATE_KEY The private key of the deployer.
MAINNET_RPC_URL Arbitrum mainnet RPC host.
TESTNET_RPC_URL Arbitrum testnet RPC host.
ARBITRUM_TESTNET_SEPOLIA_RPC_URL Arbitrum Sepolia Testnet RPC host

See the included .env.example for an example.

Build

To build, run:

forge build

Tests

To run the unit tests:

npm run test:unit

and the integration tests:

npm run test:integration

Linter

To run the linter:

npm run lint:check

ABI

To generate the ABI files, simply run:

npm run clean && npm run build

Static Analysis

We use Slither to analyse our contracts.

Install

npm run slither:install

Run

npm run slither

Contracts

Arbitrum Sepolia (devnet)

Address Contract ABI
0x68D6B4af6668A62Fc1B21ABF3DbfA366DD1d8eC7 CORE Core.abi.json
0x87D7b991540747522404c86b281E4880Cd6dE7f2 GLOBAL_REENTRANCY_LOCK GlobalReentrancyLock.abi.json
0x27564B8cf86aba79b398A39B75898fe8AFf30627 ERC1155_MAX_SUPPLY_MINTABLE_WEARABLES ERC1155MaxSupplyMintable.abi.json
0x898C5e72Cb4121A8ae579faEAe2C5879196493fc ERC1155_MAX_SUPPLY_MINTABLE_CONSUMABLES ERC1155MaxSupplyMintable.abi.json
0xa7654c44f0A4Da52a10469dC380f02F75d6E0631 ERC1155_MAX_SUPPLY_MINTABLE_PLACEABLES ERC1155MaxSupplyMintable.abi.json
0x8ccE22Fe7Bd3F4998E158De3c3a77ee85A6F6bBB SEASONS_TOKEN_ID_REGISTRY SeasonsTokenIdRegistry.abi.json
0x3006b30E32dEA503503Bf9e3f909163834085A5C ERC1155_SEASON_ONE ERC1155SeasonOne.abi.json
0x34c775910e5CbB1511eF00Ea51cd0f6bd1E3E4Db ERC1155_MAX_SUPPLY_ADMIN_MINTER ERC1155AdminMinter.abi.json
0x2a7093311D65550285AcA9650C9F9165f74337f3 ERC1155_AUTO_GRAPH_MINTER ERC1155AutoGraphMinter.abi.json
0x5422a3De80BA3891d663fa4EC7506A7f263c1Fd9 TOKEN Token.abi.json
0xf052f3F94f6E71DfBA39544b8DF02c873De4469F GAME_CONSUMABLE GameConsumer.abi.json

Arbitrum Sepolia (qa)

Address Contract ABI
0xeCd8CF66C8F44D8Ab0f257C2aC5220A943D8d8eE CORE Core.abi.json
0x4FCAaCfed2E0F5A4fdbfE01EBe50748Cdc06CBB6 GLOBAL_REENTRANCY_LOCK GlobalReentrancyLock.abi.json
0x350aCe500A712D944Fb6De1D54C63340a5085b6f ERC1155_MAX_SUPPLY_MINTABLE_WEARABLES ERC1155MaxSupplyMintable.abi.json
0x95C68D9E3c0353a0CDd40000Cd1A06A87ED14744 ERC1155_MAX_SUPPLY_MINTABLE_CONSUMABLES ERC1155MaxSupplyMintable.abi.json
0x425Cdf97Cc3833B6C47c2EE708aE65dC19e7494f ERC1155_MAX_SUPPLY_MINTABLE_PLACEABLES ERC1155MaxSupplyMintable.abi.json
0x11af076f2a418B7627b5Fb3eE2e17ebC4543f94d SEASONS_TOKEN_ID_REGISTRY SeasonsTokenIdRegistry.abi.json
0x14d9548b384dfd5612c5E421584645aE9a3eef38 ERC1155_SEASON_ONE ERC1155SeasonOne.abi.json
0xb0Cb1448b40789302D371CdAC2881D2570DE1CAc ERC1155_MAX_SUPPLY_ADMIN_MINTER ERC1155AdminMinter.abi.json
0xd22040ACd20623c6ee507e8985a3FfdE7a270A63 ERC1155_AUTO_GRAPH_MINTER ERC1155AutoGraphMinter.abi.json
0xfD1B439A292C3690FF5f052Df907Ae7817696537 TOKEN Token.abi.json
0xede3f2c44a7cfF1292eAA72Fe828862B0a334317 GAME_CONSUMABLE GameConsumer.abi.json
0xB6DE3d51297124030371B5ff6009f5A117EFd8b5 CONSUMABLE_SPLITTER ERC20Splitter.abi.json
0x8e5961897d0E1Db128a972c0937Eb08fa9a16C2C ADMIN_TIMELOCK_CONTROLLER TimelockController.abi.json

Arbitrum (mainnet)

Address Contract ABI
0xb2F009749260ddbEFe5E1687895f0A0E411613EA CORE Core.abi.json
0x90eAa68fAe4703ff5328f2E86982e77EBc10539a GLOBAL_REENTRANCY_LOCK GlobalReentrancyLock.abi.json
0x792E36c772f6dA6280fa43159792F89e7444CF18 ERC1155_MAX_SUPPLY_MINTABLE_WEARABLES ERC1155MaxSupplyMintable.abi.json
0x163b2E7696F661F86DBB39Ce4b03e38Bfe22a1C9 ERC1155_MAX_SUPPLY_MINTABLE_CONSUMABLES ERC1155MaxSupplyMintable.abi.json
0x2C154Ae907652A1a9939DBe0622915111816942C ERC1155_MAX_SUPPLY_MINTABLE_PLACEABLES ERC1155MaxSupplyMintable.abi.json
0x5cb7431a545523F25AbD3948c648329636a4b1E5 SEASONS_TOKEN_ID_REGISTRY SeasonsTokenIdRegistry.abi.json
0x59AFA38214C9CCCFB56f72DE7f9a2B47fA17C270 ERC1155_SEASON_ONE ERC1155SeasonOne.abi.json
0xd778a415A3AB81eF27da61218c71a5F31A4D10BE ERC1155_MAX_SUPPLY_ADMIN_MINTER ERC1155AdminMinter.abi.json
0xD031aD02aD4bADFc06b64ec64eBA32cFc781FB9b ERC1155_AUTO_GRAPH_MINTER ERC1155AutoGraphMinter.abi.json
0x1C43D05be7E5b54D506e3DdB6f0305e8A66CD04e TOKEN Token.abi.json
0xeD3ed10Bd8FD4093528B38B6fD7c5a5C616EB28f GAME_CONSUMABLE GameConsumer.abi.json
0x85454964Db79620e239C5425F047eAAe027d0E08 CONSUMABLE_SPLITTER ERC20Splitter.abi.json
0xf16A0E806A4CF6e9031A0dA028c80eF8A771aE48 ADMIN_TIMELOCK_CONTROLLER TimelockController.abi.json