Skip to content

Connect Custom Contracts

Adding Extra Contract Registrar Role on sChain

Section titled “Adding Extra Contract Registrar Role on sChain”
  1. Encode the function call via multisigwallet-cli
Terminal window
npx msig encodeData [schain-name] MessageProxyForSchain grantRole 0x6155b5aac15ce9aa193c0527a6f43be0a36a7e2e7496c2b615c0e5f922842773 [0x_ACCOUNT_TO_GRANT_EXTRA_CONTRACT_REGISTRAR_ROLE_TO]
  1. Execute via SAFE by following the steps here
  • via SAFE — would be if you give Marionette EXTRA_CONTRACT_REGISTRAR_ROLE on MessageProxyForSchain
  • via Ethers v6 — would be if you gave an EOA the role and use Ethers
  1. Encode the function call via multisigwallet-cli
Terminal window
npx msig encodeData juicy-low-small-testnet MessageProxyForSchain registerExtraContract destination-skale-chain-name local-contract-address
  1. Execute via SAFE by following the steps here
  1. Go to SAFE App or your preferred frontend for SAFE.
  2. Press New Transaction and then Transaction Builder

Click on Transaction Builder

  1. Input the MessageProxy address for your correct environment into the Contract Address field and select Use Implementation ABI

MessageProxy Contract Addresses

NetworkContract Address
Ethereum Mainnet0x8629703a9903515818C2FeB45a6f6fA5df8Da404
Ethereum Holesky Testnet0x682ef859e1cE314ceD13A6FA32cE77AaeCE98e28
  1. Select registerExtraContract from the dropdown list in Contract Method Selector, set the schainName (string) field (e.g elated-tan-skat), and set the extraContract (address) field which is the smart contract on Ethereum

Input transaction details

  1. Click Add transaction, scroll down, and click Create Batch, then click Send Batch. Tenderly simulation is generally available, even on testnet, and is encouraged to be used to see all the changes occuring on the Ethereum side before they occur.