Hello, community!
Attached is the new proposal to add ckOCT, which we are preparing to resubmit.
Please review and provide your comments.
Compared to the rejected proposal, the following modifications have been made:
- The
git_commit_hash
parameter in the upgrade args has been modified to be consistent with the ckLINK proposal. - Added some explanations from Manu about verifying the ledger and index wasm in the verification section.
We hope to receive feedback from the CodeGov team and the community. If there are no objections to this draft, I plan to formally submit it on Friday evening.
— Proposal to be submitted —
Proposal to upgrade the ckERC20 ledger suite orchestrator canister to add ckOCT
Git hash: 7fbb84aad7188d1d5b3e17b170997c29d1598cb8
New compressed Wasm hash: 9bd512661aba6bd7895d09685f625beca014304b7c1e073e029794d601a86709
Target canister: vxkom-oyaaa-aaaar-qafda-cai
Previous ledger suite orchestrator proposal: https://dashboard.internetcomputer.org/proposal/130395
Motivation
This proposal upgrades the ckERC20 ledger suite orchestrator to support the OCT token. OCT, an ERC20 token, serves as the utility and governance token for the Octopus Network, now rebranded as Omnity Network. Since Omnity Network is an ICP ecosystem project, migrating the trading liquidity of OCT to ICP from other blockchains makes sense. Moreover, the Omnity core team plans to launch the Omnity SNS token later this year. After that, ckOCT tokens are eligible to be swapped into Omnity tokens.
Upgrade args
git fetch
git checkout 7fbb84aad7188d1d5b3e17b170997c29d1598cb8
cd rs/ethereum/ledger-suite-orchestrator
didc encode -d ledger_suite_orchestrator.did -t '(OrchestratorArg)' '(variant { AddErc20Arg = record { contract = record { chain_id = 1; address = "0xF5cFBC74057C610c8EF151A439252680AC68c6DC" }; ledger_init_arg = record { minting_account = record { owner = principal "sv3dd-oaaaa-aaaar-qacoa-cai" }; fee_collector_account = opt record { owner = principal "sv3dd-oaaaa-aaaar-qacoa-cai"; subaccount = opt blob "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0f\ee"; }; feature_flags = opt record { icrc2 = true }; decimals = opt 18; max_memo_length = opt 80; transfer_fee = 10_000_000_000_000_000; token_symbol = "ckOCT"; token_name = "ckOCT"; token_logo = "data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPScxLjEnIGlkPSdPJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB4PScwcHgnIHk9JzBweCcgdmlld0JveD0nMCAwIDExMy4zOSAxMTMuMzknIHN0eWxlPSdlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDExMy4zOSAxMTMuMzk7JyB4bWw6c3BhY2U9J3ByZXNlcnZlJz48c3R5bGUgdHlwZT0ndGV4dC9jc3MnPiAuc3Qwe2ZpbGw6IzAxNDI5OTt9IC5zdDF7ZmlsbDojRkZGRkZGO30gPC9zdHlsZT48Y2lyY2xlIGNsYXNzPSdzdDAnIGN4PSc1Ni42OScgY3k9JzU2LjY5JyByPSc1Ni42OScvPjxnPjxwYXRoIGNsYXNzPSdzdDEnIGQ9J000NC4yNSw1OS40MWMtMS40MywwLTIuNTksMS4xNi0yLjU5LDIuNTl2MjAuMjhjMCwxLjQzLDEuMTYsMi41OSwyLjU5LDIuNTljMS40MywwLDIuNTktMS4xNiwyLjU5LTIuNTlWNjIgQzQ2Ljg0LDYwLjU3LDQ1LjY4LDU5LjQxLDQ0LjI1LDU5LjQxeicvPjxwYXRoIGNsYXNzPSdzdDEnIGQ9J001Ni42OSw1OS40MWMtMS40NSwwLTIuNjIsMS4xNy0yLjYyLDIuNjJ2MjYuNDdjMCwxLjQ1LDEuMTcsMi42MiwyLjYyLDIuNjJzMi42Mi0xLjE3LDIuNjItMi42MlY2Mi4wMiBDNTkuMzEsNjAuNTgsNTguMTQsNTkuNDEsNTYuNjksNTkuNDF6Jy8+PHBhdGggY2xhc3M9J3N0MScgZD0nTTc5LjI2LDc4Ljg3Yy0wLjMzLDAuMTUtMC42NCwwLjI4LTAuOTUsMC4zOGMwLDAtMC4wMSwwLTAuMDEsMGMtMC41OSwwLjE5LTEuMTMsMC4yOS0xLjYzLDAuMzFoLTAuMDYgYy0xLDAuMDMtMS44NC0wLjI3LTIuNTktMC43NWMtMC40OS0wLjMyLTAuOTEtMC43My0xLjI1LTEuMjNjLTAuMy0wLjQzLTAuNTMtMC45My0wLjcxLTEuNTFjMC0wLjAxLTAuMDEtMC4wMi0wLjAxLTAuMDMgYy0wLjIyLTAuNzQtMC4zNC0xLjYxLTAuMzQtMi41OVY2Mi4wMmMwLTEuNDUtMS4xNy0yLjYyLTIuNjItMi42MmMtMS40NSwwLTIuNjIsMS4xNy0yLjYyLDIuNjJ2MTEuNDNjMCw0LjUsMS42NCw4LjAzLDQuNjMsOS45NiBjMS41LDAuOTcsMy4yMSwxLjQ1LDUuMDQsMS40NWMxLjY4LDAsMy40NS0wLjQxLDUuMjUtMS4yMmMxLjMyLTAuNTksMS45LTIuMTQsMS4zMS0zLjQ2QzgyLjEzLDc4Ljg2LDgwLjU3LDc4LjI3LDc5LjI2LDc4Ljg3eicvPjxwYXRoIGNsYXNzPSdzdDEnIGQ9J002OC4zMyw0NS45YzAtMi4xNS0xLjc1LTMuOS0zLjktMy45Yy0yLjE1LDAtMy45LDEuNzUtMy45LDMuOXMxLjc1LDMuOSwzLjksMy45IEM2Ni41OCw0OS44LDY4LjMzLDQ4LjA1LDY4LjMzLDQ1Ljl6Jy8+PHBhdGggY2xhc3M9J3N0MScgZD0nTTQ4Ljk2LDQxLjk5Yy0yLjE1LDAtMy45LDEuNzUtMy45LDMuOXMxLjc1LDMuOSwzLjksMy45czMuOS0xLjc1LDMuOS0zLjlTNTEuMTEsNDEuOTksNDguOTYsNDEuOTl6Jy8+PHBhdGggY2xhc3M9J3N0MScgZD0nTTU2LjY5LDIyLjI4Yy0xNS4xNywwLTI3LjUyLDEyLjM0LTI3LjUyLDI3LjUydjE1LjA5YzAsMS40NiwxLjE4LDIuNjQsMi42NCwyLjY0czIuNjQtMS4xOCwyLjY0LTIuNjRWNDkuOCBjMC0xMi4yNiw5Ljk4LTIyLjI0LDIyLjI0LTIyLjI0YzEyLjI2LDAsMjIuMjQsOS45OCwyMi4yNCwyMi4yNHYxNS4wOWMwLDEuNDYsMS4xOCwyLjY0LDIuNjQsMi42NHMyLjY0LTEuMTgsMi42NC0yLjY0VjQ5LjggQzg0LjIxLDM0LjYyLDcxLjg3LDIyLjI4LDU2LjY5LDIyLjI4eicvPjwvZz48L3N2Zz4K"; initial_balances = vec {}; maximum_number_of_accounts = null; accounts_overflow_trim_quantity = null }; git_commit_hash = "7fbb84aad7188d1d5b3e17b170997c29d1598cb8"; ledger_compressed_wasm_hash = "4ca82938d223c77909dcf594a49ea72c07fd513726cfa7a367dd0be0d6abc679"; index_compressed_wasm_hash = "55dd5ea22b65adf877cea893765561ae290b52e7fdfdc043b5c18ffbaaa78f33"; }})'
-
0xF5cFBC74057C610c8EF151A439252680AC68c6DC is the address of the OCT smart contract on Ethereum Mainnet which can be verified on Etherscan.
-
sv3dd-oaaaa-aaaar-qacoa-cai is the ckETH minter canister.
-
The fee collector is the 0000000000000000000000000000000000000000000000000000000000000fee subaccount of the minter canister.
-
The transfer fee is 10_000_000_000_000_000, which is equivalent to 0.01 OCT. Based on the moving average over the past year, this amounts to approximately 0.003 USD.
-
The ledger compressed wasm hash 4ca82938d223c77909dcf594a49ea72c07fd513726cfa7a367dd0be0d6abc679 and the index compressed wasm hash 55dd5ea22b65adf877cea893765561ae290b52e7fdfdc043b5c18ffbaaa78f33 are the version that will be used by the orchestrator to spawn off the ckOCT ledger and index, respectively.
Wasm Verification
Verify that the hash of the gzipped WASM matches the proposed hash.
git fetch
git checkout 7fbb84aad7188d1d5b3e17b170997c29d1598cb8
./gitlab-ci/container/build-ic.sh -c
sha256sum ./artifacts/canisters/ic-ledger-suite-orchestrator-canister.wasm.gz
Verify that the hash of the gzipped WASM for the ledger and index matches the proposed hash. Note that the git commit hash is different because it reuses the same version for the ledger and the index as for ckUSDC, which were recorded by the ledger suite orchestrator with the proposal 129750 at commit 4472b0064d347a88649beb526214fde204f906fb when ckUSDC was added.
git fetch
git checkout 4472b0064d347a88649beb526214fde204f906fb
./gitlab-ci/container/build-ic.sh -c
sha256sum ./artifacts/canisters/ic-icrc1-ledger-u256.wasm.gz
sha256sum ./artifacts/canisters/ic-icrc1-index-ng-u256.wasm.gz