Hot answers tagged

6 votes

Signing messages as a Gnosis Safe (eip1271 support)

This functionality is provided via the CompatibilityFallbackHandler. This should be enabled by default on all Safes created via the Gnosis Safe web interface. In general the Safe currently has 2 ways ...
Richard's user avatar
  • 4,814
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

Deploying a contract that inherits GnosisSafe from another smart contract

If the goal is to deploy a Safe with custom modules and guards, you don't necessarily need a separate contract to do that. When deploying a Safe, there's a distinct initializer parameter to setup ...
mikheevm's user avatar
  • 1,046
4 votes

Transfer GNO tokens using geth

start geth console $ geth --fast console in console : var tokenContractABI = [{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"...
0x8000's user avatar
  • 609
4 votes
Accepted

How can I add/remove an owner to gnosis-safe wallet from solidity smart contract?

addOwnerThreshold is a protected function. Check authorized modifier in the function definition. It can be called only by the Safe itself. If any contract could simply call this function, it would be ...
mikheevm's user avatar
  • 1,046
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
  • 421
4 votes

GnosisSafe: Signing and verifying a signature

tl;dr Just use 0x as signature. The signature is valid if Gnosis Safe returns the EIP-1271 magic value (0x1626ba7e). if (signature == '0x') { let msgHash = ethers.utils.hashMessage(message); ...
Michael's user avatar
  • 235
3 votes

How to encode initializer in gnosis-safe proxy contract?

As proxies canot use the conventional constructor approach, the common way to compensate for this is to provide an initialization function (see OpenZepplin). To avoid that this can be front-run in a ...
Richard's user avatar
  • 4,814
3 votes
Accepted

Getting ''Error: Unprocessable Entity" while calling 'safeService.proposeTransaction()'

Ok the issue is resolved. The reason was that the to field in the transaction is not checksumed: const transaction = { to: '0xb0968a944aF335f0f73900821a52d0066593aC5a', data: '0x', value: '...
chakshu jain's user avatar
2 votes
Accepted

Gnosis wallet app distribution

There is a standalone version you can download here.
mKoeppelmann's user avatar
  • 7,586
2 votes

Difference between the Gnosis multisig and Gnosis safe?

Gnosis Safe is the latest release of the Gnosis Multisig Wallets. The Gnosis Safe Multisig wallet can be deployed either as a standalone contract, or (preferably) as a cheaper proxy contract that ...
Gokul Alex's user avatar
2 votes

Gnosis Safe - Connect to site that needs to connect using MetaMask and not WalletConnect

Maker vaults (https://oasis.app/) now supports Walletconnect and is also a dedicated Gnosis Safe App. You should be able to connect your Gnosis Safe to the app by accessing the 'Apps' tab in https://...
John David's user avatar
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

Gnosis Service Transaction Creation

The services are a layer on top of the contracts that make it easier to use these and they power the official web interface. The web interface hosted by the Safe team use the services hosted by the ...
Richard's user avatar
  • 4,814
2 votes

Adding new network

It's indeed fetching the network configs from the backend. Contracts is just one part of the infra. The app also relies on the said backend for indexing transactions on a given chain and for many ...
katspaugh's user avatar
  • 171
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,814
2 votes

How gnosis safe's pending transactions execution works?

You ran into a special case of the Safe when you have Safe woth threshold 1 and use the msg.sender to confirm the signature (see https://github.com/gnosis/safe-contracts/issues/187). To avoid this you ...
Richard's user avatar
  • 4,814
2 votes

remove an owner fron gnosis-safe What parameter should I paste as prevOwner when I'm calling removeOwner from .sol smart contract?

The Safe contracts store the owners in a linked list (see https://github.com/gnosis/safe-contracts/blob/main/contracts/base/OwnerManager.sol#L15). With linked lists it is very is to check if an ...
Richard's user avatar
  • 4,814
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,046
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

GS013 error when executing Gnosis Safe transaction for function of MultiSig Wallet

gs013 means that the transaction reverted in the contract you interacted with. you can use tenderly for debugging
mikheevm's user avatar
  • 1,046
2 votes

Can an upgradeable token appear in the asset list?

Gnosis Safe works with any ERC-20 token, including proxy tokens. There must be some other problem that is not obvious from your question as it lacks Method how you test with your token with Gnosis ...
Mikko Ohtamaa's user avatar
2 votes

Integration of Gnosis safe with external contracts

If you want to extend Safe features best way to do it would be writing a custom module
Uxío's user avatar
  • 421
2 votes
Accepted

Gnosis safe transfer function `Approve Hash` but does not transfer erc20 token

approveTransactionHash only approves the transaction without executing it. Please refer to the core SDK documentation to learn how to execute a transaction https://github.com/safe-global/safe-core-sdk/...
mikheevm's user avatar
  • 1,046
2 votes

Issue executing transaction from Gnosis Safe (compensation to you if you resolve)

Your first example tx - is just the OnChain Rejection. The #57 is still pending. The tx calls withdrawFunds() of the contract 0x1D8769b57aaf4E3C0A64fC2f035F1EfA134FE24c. The tx looks good - all ...
tenbits's user avatar
  • 1,979
1 vote

Nested multisig - how to sign tx with child multisig?

You can use the WalletConnect Safe App via the owner Safe to confirm transactions. If you open the WalletConnect Safe App in the parent Safe, you can then connect the child Safe via WalletConnect to ...
Aaron's user avatar
  • 41
1 vote

Zodiac and Gnosis Safe SDK interactions and project structure questions

The 3 main pieces of functionality can be done using the Safe Core SDK and the Safe Service Client, following this guide. The Safe Core SDK allows to get some data of a Safe directly from the ...
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

Replayed transaction on Gnosis safe 1.1.1 to enable Polygon network. Not working

The Safe web interface on Polygon does only support Safe that have been created with the 1.3.0-L2 version (0x3E5c63644E683549055b9Be8653de26E0B4CD36E). If you use another version you will have to rely ...
Richard's user avatar
  • 4,814

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