Insrt-Finance / insrt-v2-contracts

0 stars 3 forks source link

insrt-v2-contracts

Insrt V2 Solidity Smart Contracts

Prerequisites

Local development

Install dependencies

make install

Update dependencies

make update

Compilation

make build

Testing

make test

anvil process control

Start anvil (in background)

make start-anvil

Stop anvil

make stop-anvil

Deployment

Note: All deployments must have the following environment variables set:

Arbitrum

Requires the following additional environment variables set:

make deploy-arb

Arbitrum Sepolia

Requires the following additional environment variables set:

make deploy-arb-sepolia

Arbitrum Sepolia w/ the Insrt VRF Coordinator

Requires the following additional environment variables set:

make deploy-arb-sepolia-custom

Localhost (Arbitrum Fork)

Requires the following additional environment variables set:

make deploy-local-arb

Base

Requires the following additional environment variables set:

make deploy-base

Base Sepolia

Requires the following additional environment variables set:

make deploy-base-sepolia

Localhost (Base Fork)

Requires the following additional environment variables set:

make deploy-local-base

Blast

Requires the following additional environment variables set:

make deploy-blast

Blast Sepolia

Requires the following additional environment variables set:

make deploy-blast-sepolia

Blast Sepolia w/ the Insrt VRF Coordinator

Requires the following additional environment variables set:

make deploy-blast-sepolia-custom

Post-deployment configuration

Arbitrum

  1. Token configuration

Note: The following environment variables are modifiable in ./script/Arbitrum/post-deployment/configure-token-arb.sh:

make configure-token-arb
  1. VRF configuration

Note: The following environment variables are modifiable in ./script/Arbitrum/post-deployment/configure-vrf-arb.sh:

make configure-vrf-arb
  1. PerpetualMint configuration

Note: The following environment variables are modifiable in ./script/Arbitrum/post-deployment/configure-perp-mint-arb.sh:

make configure-perp-mint-arb

Arbitrum Sepolia

  1. Token configuration

Note: The following environment variables are modifiable in ./script/Arbitrum/post-deployment/configure-token-arb-sepolia.sh:

make configure-token-arb-sepolia
  1. VRF configuration

Note: The following environment variables are modifiable in ./script/Arbitrum/post-deployment/configure-vrf-arb-sepolia.sh:

make configure-vrf-arb-sepolia

Note: The following environment variables are modifiable in ./script/Arbitrum/post-deployment/configure-vrf-arb-sepolia-custom.sh:

make configure-vrf-arb-sepolia-custom
  1. PerpetualMint configuration

Note: The following environment variables are modifiable in ./script/Arbitrum/post-deployment/configure-perp-mint-arb-sepolia.sh:

make configure-perp-mint-arb-sepolia

Localhost (Arbitrum Fork)

  1. Token configuration

Note: The following environment variables are modifiable in ./script/common/post-deployment/configure-token-local.sh:

make configure-token-local-arb
  1. VRF configuration

Note: The following environment variables are modifiable in ./script/Arbitrum/post-deployment/configure-vrf-local.sh:

make configure-vrf-local-arb
  1. PerpetualMint configuration

Note: The following environment variables are modifiable in ./script/Arbitrum/post-deployment/configure-perp-mint-local.sh:

make configure-perp-mint-local-arb

Base

  1. Token configuration

Note: The following environment variables are modifiable in ./script/Base/post-deployment/configure-token-base.sh:

make configure-token-base
  1. VRF configuration

Note: The following environment variables are modifiable in ./script/Base/post-deployment/configure-vrf-base.sh:

make configure-vrf-base
  1. PerpetualMint configuration

Note: The following environment variables are modifiable in ./script/Base/post-deployment/configure-perp-mint-base.sh:

make configure-perp-mint-base

Base Sepolia

  1. Token configuration

Note: The following environment variables are modifiable in ./script/Base/post-deployment/configure-token-base-sepolia.sh:

make configure-token-base-sepolia
  1. VRF configuration

Note: The following environment variables are modifiable in ./script/Base/post-deployment/configure-vrf-base-sepolia.sh:

make configure-vrf-base-sepolia
  1. PerpetualMint configuration

Note: The following environment variables are modifiable in ./script/Base/post-deployment/configure-perp-mint-base-sepolia.sh:

make configure-perp-mint-base-sepolia

Localhost (Base Fork)

  1. Token configuration

Note: The following environment variables are modifiable in ./script/common/post-deployment/configure-token-local.sh:

make configure-token-local-base
  1. VRF configuration

Note: The following environment variables are modifiable in ./script/Base/post-deployment/configure-vrf-local.sh:

make configure-vrf-local-base
  1. PerpetualMint configuration

Note: The following environment variables are modifiable in ./script/Base/post-deployment/configure-perp-mint-local.sh:

make configure-perp-mint-local-base

Blast

  1. Token configuration

Note: The following environment variables are modifiable in ./script/Blast/post-deployment/configure-token-blast.sh:

make configure-token-blast
  1. VRF configuration

Note: The following environment variables are modifiable in ./script/Blast/post-deployment/configure-vrf-blast.sh:

make configure-vrf-blast
  1. PerpetualMint configuration

Note: The following environment variables are modifiable in ./script/Blast/post-deployment/configure-perp-mint-blast.sh:

make configure-perp-mint-blast

Blast Sepolia

  1. Token configuration

Note: The following environment variables are modifiable in ./script/Blast/post-deployment/configure-token-blast-sepolia.sh:

make configure-token-blast-sepolia
  1. VRF configuration

Note: The following environment variables are modifiable in ./script/Blast/post-deployment/configure-vrf-blast-sepolia.sh:

make configure-vrf-blast-sepolia

Note: The following environment variables are modifiable in ./script/Blast/post-deployment/configure-vrf-blast-sepolia-custom.sh:

make configure-vrf-blast-sepolia-custom
  1. PerpetualMint configuration

Note: The following environment variables are modifiable in ./script/Blast/post-deployment/configure-perp-mint-blast-sepolia.sh:

make configure-perp-mint-blast-sepolia

Upgrading contracts

Note: All upgrades must have the following environment variables set:

Arbitrum

Requires the following additional environment variables set:

Upgrade & Remove PerpetualMint facet
make upgrade-remove-perp-mint-arb
Upgrade & Remove PerpetualMintView facet
make upgrade-remove-perp-mint-view-arb
Upgrade & Split PerpetualMint facet
make upgrade-split-perp-mint-arb

Upgrade PerpetualMint facet

make upgrade-perp-mint-arb

Upgrade PerpetualMintAdmin facet

make upgrade-perp-mint-admin-arb

Upgrade PerpetualMintView facet

make upgrade-perp-mint-view-arb

Upgrade Token facet

make upgrade-token-arb

Arbitrum Sepolia

Requires the following additional environment variables set:

Upgrade & Remove PerpetualMint facet
make upgrade-remove-perp-mint-arb-sepolia
Upgrade & Remove PerpetualMintView facet
make upgrade-remove-perp-mint-view-arb-sepolia
Upgrade & Split PerpetualMint facet
make upgrade-split-perp-mint-arb-sepolia
Upgrade PerpetualMint facet
make upgrade-perp-mint-arb-sepolia

Upgrade PerpetualMintAdmin facet

make upgrade-perp-mint-admin-arb-sepolia
Upgrade PerpetualMintView facet
make upgrade-perp-mint-view-arb-sepolia

Upgrade Token facet

make upgrade-token-arb-sepolia

Blast

Requires the following additional environment variables set:

Upgrade & Remove PerpetualMint & PerpetualMintSupraBlast facet
make upgrade-remove-perp-mint-blast
Upgrade & Remove PerpetualMintView & PerpetualMintViewSupraBlast facet
make upgrade-remove-perp-mint-view-blast
Upgrade & Split PerpetualMintSupraBlast facet
make upgrade-split-perp-mint-blast

Upgrade PerpetualMintAdmin & PerpetualMintAdminBlast facet

make upgrade-perp-mint-admin-blast

Upgrade PerpetualMint & PerpetualMintSupraBlast facet

make upgrade-perp-mint-blast

Upgrade PerpetualMintView & PerpetualMintViewSupraBlast facet

make upgrade-perp-mint-view-blast

Blast Sepolia

Requires the following additional environment variables set:

Upgrade & Remove PerpetualMint & PerpetualMintSupraBlast facet
make upgrade-remove-perp-mint-blast-sepolia
Upgrade & Remove PerpetualMintView & PerpetualMintViewSupraBlast facet
make upgrade-remove-perp-mint-view-blast-sepolia
Upgrade & Split PerpetualMintSupraBlast facet
make upgrade-split-perp-mint-blast-sepolia

Upgrade PerpetualMintAdmin & PerpetualMintAdminBlast facet

make upgrade-perp-mint-admin-blast-sepolia

Upgrade PerpetualMintView & PerpetualMintViewSupraBlast facet

make upgrade-perp-mint-view-blast-sepolia

On-chain calculations

Arbitrum

Requires the following additional environment variables set:

Calculating mint results

make calculate-mint-result-arb <mint-collection-address> <number-of-mint-attempts> <randomness> <price-per-mint> <prize-value>

Base

Requires the following additional environment variables set:

Calculating mint results

make calculate-mint-result-base <mint-collection-address> <number-of-mint-attempts> <randomness_signature-index-1> <randomness-signature-index-2> <price-per-mint> <prize-value>

Blast

Requires the following additional environment variables set:

Calculating mint results

make calculate-mint-result-blast <mint-collection-address> <number-of-mint-attempts> <randomness-signature-index-1> <randomness-signature-index-2> <price-per-mint> <prize-value> <referral-mint> <risk-reward_ratio>