Skip to main content
Share Your Experience: Take the 2024 Developer Survey
6 votes
Accepted

How to deploy gnosis safe proxy contracts on Mumbai testnet(Polygon) using Safe Core SDK?

The Safe Core SDK takes all the safe contracts and network configuration from safe-deployments. Specifically on this case, from here, meaning that if the Mumbai chainId (80001) is not present below ...
Germán's user avatar
  • 688
6 votes
Accepted

How to send ERC20 & ERC721 tokens using Safe Core SDK?

To create a token transfer you need to execute the following code: import { SafeTransactionDataPartial } from '@gnosis.pm/safe-core-sdk-types' const transaction: SafeTransactionDataPartial = { to: '...
Germán's user avatar
  • 688
4 votes
Accepted

Move transaction to Different Nonce, Keep signatures

"Moving" the signatures to another tx with different nonce it's impossible, and it would be a really critical security issue. You need to sign everything again or create a dummy tx with ...
Uxío's user avatar
  • 431
3 votes
Accepted

GS025 error when executing Gnosis Safe multisig transaction

I would say this is a shortcoming in the Safe core sdk (maybe worth opening an issues). You create a transaction with nonce 17 and also approve this transaction. But the executeTransaction function ...
Richard's user avatar
  • 4,994
2 votes
Accepted

Gnosis safe-core-sdk : EthersAdapter is giving empty object

Can you see the methods inside EthersAdapter class if you expand it?
Germán's user avatar
  • 688
2 votes
Accepted

How can you identify if a transaction has been rejected on the gnosis safe transaction service using the core-sdk

It's actually impossible to reject a transaction in the Ethereum network. What happens under the hood when rejecting is that you create a transaction that uses the same nonce as the transaction you ...
mikheevm's user avatar
  • 1,075
2 votes
Accepted

Is there a limit to the amount of transfers in a multi-send transcation

The limit is the block gas limit, which is currently 30 million gas. you would have to estimate the transfers and check that the total gas consumption is lower than this limit. You could also make an ...
Richard's user avatar
  • 4,994
2 votes

How to use eip-712 to sign with safe-core-sdk

This is in the backlog for the safe-core-sdk. If you need this feature right now you would have to add a helper for this yourself. Basically you would need to call eth_signTypedData with the ...
Richard's user avatar
  • 4,994
2 votes

Proposed transaction doesnt appear in queue, and can't be confirmed

The interface only shows transactions with at least one owner signature. Otherwise, it would be possible to spam/propose malicious transactions by anyone. Your transaction has 0 signatures.
mikheevm's user avatar
  • 1,075
2 votes
Accepted

deploySafe function not returns transaction hash?

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 ...
Germán's user avatar
  • 688
2 votes
Accepted

Proposed Safe transaction from delegate address is not trusted

Managed to make it work by using the safe transaction sdk const proposeTxPayload = { safeAddress: utils.getAddress(safe.address), safeTransactionData: safeTx.data, safeTxHash: hash, ...
Iulian Rotaru's user avatar
2 votes
Accepted

How to deploy a Safe on Hardhat

We run some Safe tests using Hardhat Network in our project. Here is the example: safe.spec.ts#L212 You have to deploy 3 contracts: GnosisSafeProxyFactory.sol GnosisSafe.sol MultiSend.sol Then you ...
tenbits's user avatar
  • 2,428
1 vote
Accepted

differences between createTransaction and createTransactionBatch (@safe-global/protocol-kit)

Using createTransaction is recommended as createTransactionBatch will probably be moved to a utils file
Germán's user avatar
  • 688
1 vote
Accepted

How non owner can execute signed transaction hash in safe?

That is correct and it also applies to the Safe{Core} SDK. The params are the ones you defined, just the safeTransaction, but make sure that the object contains all the signatures from the owners ...
Germán's user avatar
  • 688
1 vote
Accepted

Can a SAFE be deployed using a paymaster / gasless transaction?

Yes you can use gelato to deploy safe. Just add the SafeProxyFactory Contract on the dashboard of gelato to make it gasless and you will be able to deploy safe without paying any gas fees.
Jaskaran Singh's user avatar
1 vote
Accepted

Track Gnosis Safes Created from Specific Source

You might have to create your own Gnosis Safes factory contract that stores new safes info that creates on-chain. Example like this. import "contracts/GnosisSafes.sol"; contract ...
Suraneti's user avatar
1 vote

Call Revert Exception on safeSdk for getOwners on Polygon only [intermittent]

Chainstack developer advocate here This means during the transaction execution, one of the calls have failed and the whole transaction is reverted. It can be an error with your Polygon server, the ...
Wuzhong - Chainstack DevEx's user avatar
1 vote
Accepted

Creating multi-send transactions for native chain tokens (MATIC/ETH)

value property is the value of the native token. So for the native token transfer, you need to specify the to property to the recipient's address, and value is the amount of native token you want to ...
mikheevm's user avatar
  • 1,075
1 vote

Cannot read properties of undefined (reading 'getChainId')

There was an error in the way the initialization statement was written.This worked. const safeSdk = await Safe.create({ ethAdapter:ethAdapterOwner1,safeAddress:item.safeAddress});
Manuj's user avatar
  • 111
1 vote

"Invalid Multi Send contract address" on Harmony

The code snippet is correct. The message Error: Invalid Multi Send contract address is expected when using the SDK connected to Harmony Mainnet. Currently the Safe Core SDK v2.0.0 uses the package ...
Germán's user avatar
  • 688
1 vote

Is there a way to get safe addresses associated with an owner address?

The transaction service indexes Safe <> owner relationships. You could use an endpoint there to fetch the Safes an address is owner of: https://safe-transaction.gnosis.io/api/v1/owners/...
tschubotz's user avatar
1 vote
Accepted

Getting "error: cannot estimate gas" on Ethereum mainnet but not on Rinkeby?

The transaction 0xd3773e40ff1078e5b836447006099e239967c21bde51b2c948002089b9a9e277 has nonce 2 but the Safe 0xb76Bed0B12062F3668AfD7d300B2A193a297cee3 nonce is 1. You need to execute a transaction ...
mikheevm's user avatar
  • 1,075
1 vote
Accepted

Proposed transaction doesnt appear in queue, and can't be confirmed

As another answer points out, the transaction will only appear in the Queue if has at least 1 signature. To provide that signature with the latest version of Gnosis core-safe-sdk (1.1.1) I run the ...
BarefootDev's user avatar
1 vote

Gnosis-Chain_ID error

const { ethAdapter } = require('@gnosis.pm/safe-core-sdk') is not a valid import. You should use import EthersAdapter from '@gnosis.pm/safe-ethers-lib' For more information see https://github.com/...
Richard's user avatar
  • 4,994
1 vote

'origin' field not exist in SafeTransactionData

The origin field is not included in the method proposeTransaction() from the safe-service-client (package inside the safe-core-sdk monorepo). I'll create a GitHub issue to include it. Thanks for ...
Germán's user avatar
  • 688
1 vote

Getting 'TypeError: Cannot read properties of undefined (reading 'arrayify')' while signing safeTransaction with ethAdapter

The error is thrown in the method signMessage from the EthersAdapter class: signMessage(message: string): Promise<string> { const messageArray = this.#ethers.utils.arrayify(message) return ...
Germán's user avatar
  • 688
1 vote
Accepted

Does a safe-core-sdk multi-send transaction revert if one of the actions fails?

The MultiSend.sol library requires transactions to be successful, so yeah, if one of the underlying transactions fails, it should revert: https://github.com/gnosis/safe-contracts/blob/main/contracts/...
mikheevm's user avatar
  • 1,075
1 vote

safeTxGas always ends up being 0 which causes revert inside multisend contract

In the Rinkeby transaction that you linked, you set a gasPrice for the SafeTransaction. In this case the gas specified by safeTxGas is sent along to avoid that the relayer can use more gas than ...
Richard's user avatar
  • 4,994
1 vote
Accepted

Getting an error while calling 'safeSdk.executeTransaction()'

This is a current shortcoming of the sdk/service combination (see https://github.com/gnosis/safe-core-sdk/issues/125). The best is to add a fallback when converting the tx: data: transaction.data || &...
Richard's user avatar
  • 4,994
1 vote

How do I reimburse the gas fee (in ether) to the signer using the safe-core-sdk?

It is important here what type your multiSendTx is. If it is a single transaction the options will be ignored, only if it is an array the options are applied. For a single transaction you would have ...
Richard's user avatar
  • 4,994

Only top scored, non community-wiki answers of a minimum length are eligible