safe-core-sdk icon indicating copy to clipboard operation
safe-core-sdk copied to clipboard

`Hoodi` support

Open jbrower95 opened this issue 9 months ago • 2 comments

Context / issue

  • SDK version ├── @safe-global/[email protected]

  • Platform: OSX / Node.js via webpack

  • When trying to initialize the SDK with Hoodi, I'm receiving:

Full error:
Error: Invalid multiSend contract address
    at new BaseContract (/Users/jbrower/projects/zeus/dist/webpack:/@layr-labs/zeus/node_modules/@safe-global/protocol-kit/dist/src/contracts/BaseContract.js:74:1)
    at new MultiSendBaseContract (/Users/jbrower/projects/zeus/dist/webpack:/@layr-labs/zeus/node_modules/@safe-global/protocol-kit/dist/src/contracts/MultiSend/MultiSendBaseContract.js:35:1)
    at new MultiSendContract_v1_4_1 (/Users/jbrower/projects/zeus/dist/webpack:/@layr-labs/zeus/node_modules/@safe-global/protocol-kit/dist/src/contracts/MultiSend/v1.4.1/MultiSendContract_v1_4_1.js:29:1)
    at getMultiSendContractInstance (/Users/jbrower/projects/zeus/dist/webpack:/@layr-labs/zeus/node_modules/@safe-global/protocol-kit/dist/src/contracts/contractInstances.js:81:1)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
    at getMultiSendContract (/Users/jbrower/projects/zeus/dist/webpack:/@layr-labs/zeus/node_modules/@safe-global/protocol-kit/dist/src/contracts/safeDeploymentContracts.js:33:1)
    at ContractManager._ContractManager_initializeContractManager (/Users/jbrower/projects/zeus/dist/webpack:/@layr-labs/zeus/node_modules/@safe-global/protocol-kit/dist/src/managers/contractManager.js:76:1)
    at Function.init (/Users/jbrower/projects/zeus/dist/webpack:/@layr-labs/zeus/node_modules/@safe-global/protocol-kit/dist/src/managers/contractManager.js:30:1)
    at Safe._Safe_initializeProtocolKit (/Users/jbrower/projects/zeus/dist/webpack:/@layr-labs/zeus/node_modules/@safe-global/protocol-kit/dist/src/Safe.js:1312:1)
    at Function.init (/Users/jbrower/projects/zeus/dist/webpack:/@layr-labs/zeus/node_modules/@safe-global/protocol-kit/dist/src/Safe.js:144:1)

The relevant code looks like;

 const protocolKitOwner1 = await Safe.init({
          provider: rpcUrl,
          signer,
          safeAddress: safeAddr
      });

It seems to be trying to initialize, but can't find the multisend contract.

  1. Does @safe-global/protocol-kit not support the Hoodi testnet?
  2. If it does, am I missing something?

Proposed solution

If Safe.Init() ends up referencing hardcoded addresses, please deploy these contracts to the Hoodi network or default to present ones for this chainId.

Additional context

Hoodi is replacing Holesky as the canonical open-validator-set testnet for ethereum. Support here is important!

jbrower95 avatar Mar 31 '25 20:03 jbrower95

The Safe smart contracts are not deployed on Hoodi yet. They will be soon, but there is no exact ETA for this to happen.

Currently finishing step 1 here: https://docs.safe.global/core-api/safe-contracts-deployment

We will keep this issue open and notify here when the protocol-kit is compatible with it. Also Safe doesn't provide any services for Holesky and this will be the same for Hoodi, for the api-kit to work you will need to run your own service.

dasanra avatar Apr 01 '25 09:04 dasanra

Also Safe doesn't provide any services for Holesky and this will be the same for Hoodi, for the api-kit to work you will need to run your own service.

Protofire does

Please let us know when the contracts are deployed. We want to deploy EigenLayer to Hoodi, and EL's infra relies on the safe contracts for operation. Thanks!

jbrower95 avatar Apr 01 '25 15:04 jbrower95

Hi! checking in for an update. Is there a timeline on when this will be available?

Thanks,

jbrower95 avatar Apr 07 '25 14:04 jbrower95

Hoodi support available in protocol-kit v5.2.6 and v6.0.3

dasanra avatar Apr 10 '25 16:04 dasanra