2

Currently when we call the const safeSdk: Safe = await safeFactory.deploySafe({ safeAccountConfig }) then we have to wait for the transaction success and mainly for the newly deployed safe address. The problem with this is that let's say the user calls this function in the frontend with Metamask and then immediately closes the web app then we have no way of knowing the newly deployed safe address and therefore not able to store it in our backend. So, I think one solution would be if call the safe proxy contract directly instead of calling via SDK but not sure will it be a correct way or not as it might not update the gnosis' safe service client.

What should be the possible solution to handle this?

1 Answer 1

2

Thank you for reporting this! We are facing the same issue when integrating the Safe Core SDK into the Safe web interface.

We will implement a solution for this in the following days.

EDIT: This is now available for >=v2.1.0. See https://github.com/gnosis/safe-core-sdk/tree/main/packages/safe-core-sdk#deploysafe for more details.

const callback = (txHash: string): void => {
  console.log({ txHash })
}
const safeSdk = await safeFactory.deploySafe({ safeAccountConfig, callback })
3
  • 1
    Thank you for the info. Just would like to share one more possible approach - I think maybe if we have something similar to 'proposeTransaction' function like creating some sort of ID and proposing a safe deployment request to safe service client and then fetching the newly deployed safe address later using that ID :) Mar 3, 2022 at 15:31
  • 1
    Hi @chakshujain, this is now available in the last version. Check the last paragraph in this section to get the details: github.com/gnosis/safe-core-sdk/tree/main/packages/…
    – Germán
    Apr 5, 2022 at 8:18
  • Hi @German, thanks for the update. This would really be helpful. Apr 5, 2022 at 9:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.