This is the full process for deploying a new version of the Su Squares smart contract. It costs money, it is painful. Measure twice, cut once!
-
⚠️ Warn the public at https://tenthousandsu.com -
Edit code in the contracts folder
- Recompile
ALLINONE.sol
file, make sure it matches (automated build test) - Merge latest code to
master
- Run
git checkout master
,git pull
andgit push
everywhere — no outdated code anywhere!
- Recompile
-
Use Remix IDE to compile code
-
Delete all storage, add ALLINONE.sol, select
SuMain
, enable optimization, compile -
Save code to Gist (workaround for Etherscan bug)
-
Save the bytecode to
bytecode.json
, this is a release artifact -
Save the ABI to
abi.json
, this is a release artifact -
Record the compiler version number
-
-
Use Remix IDE with CEO account to deploy contract
- Record the deployed address
setFinancialOfficer
"0x7Ca2Cf38e9dbB925e584398E5D63F1A8F0B731f9"
setOperatingOfficer
"0x7B91c5453eABd33E69083b55Ce0dD450D6E2c8F4"
-
Use Remix IDE with COO account to use contract
- For old contract, find all squares that were granted or purchased
- Use
ownerOf
andsuSquares[squareNumber]
for each square to migrate - For each square:
grantToken
to COO accountpersonalize
using old personalization (if any)- transferFrom` to the correct owner
-
Login on etherscan.io and load this contract
- "Add To Watch List", add description, enable email notifications
- Code tab, "Verify and Publish"
- Create ticket for "Update Token Information" for ERC-721
-
Update cron job
- Edit query-blockchain.js
- Run a complete job
-
Update tenthousandsu.com
- Update address in the Javascript, update JS file version (in hyper links)
- Update address in the white paper (NOTE OLD ADDRESS)
- Remove any (WE ARE UPGRADING) note on index.html
-
Tell the world
- Make a release on smart contract GitHub project / add release artifacts / update the project URL to new etherscan contract https://github.com/su-squares/ethereum-contract
- Update address at https://github.com/MyEtherWallet/ethereum-lists/blob/master/contracts/contract-abi-eth.json
- Relist opensea
- Relist coingecko
- Email anybody that bought squares, if I know them somehow
-
Take money from old contract as CFO