Skip to content
Thiendekaco edited this page Apr 4, 2024 · 2 revisions

@subwallet-connect/gnosis

Wallet module for connecting Safe to SubConnect

Install

npm i @subwallet-connect/gnosis @safe-global/safe-apps-provider @safe-global/safe-apps-sdk

Options

type GnosisOptions = {
  whitelistedDomains: RegExp[]
}

Usage

import Onboard from '@subwallet-connect/core'
import safeModule from '@subwallet-connect/gnosis'

const safe = safeModule()

const onboard = Onboard({
  // ... other Onboard options
  wallets: [
    safe
    //... other wallets
  ]
})

const connectedWallets = await onboard.connectWallet()
console.log(connectedWallets)

Customizing Safe Transaction Gas

If you are looking to set the gasLimit of a transaction within Safe, the gas properties within the transaction WILL BE IGNORED. Instead you will need to use the safeTxGas prop AND the SubConnect Safe instance that is exposed through the provider to send along the transaction. The Safe sdk instance exposed by the SubConnect must be used to set the safeTxGas prop and send the transaction. Check Safe docs for full detail as it can be a bit confusing. An example of accessing the Safe SDK instance and sending a transaction can be found below.

const tx = {
  to: toAddress,
  value: 1000000000000000,
  data: '0x',
}
const params = {
  safeTxGas: 5000000,
};

// wallet is the provider exposed by SubConnect after the Safe wallet is connected
let trans = await wallet.instance.txs.send({txs:[tx], params})

Note: With the safeTxGas you will see additional value on the gasLimit displayed in the Safe. Check Safe docs for full details on that computation.

Clone this wiki locally