UNPKG

0xweb

Version:

Contract package manager and other web3 tools

21 lines (18 loc) 838 B
import { EoAccount, SafeAccount, TAccount } from '@dequanto/models/TAccount'; import { ITxWriterAccountAgent } from './TxWriterAccountAgents'; import { $account } from '@dequanto/utils/$account'; import { GnosisSafeHandler } from '@dequanto/safe/GnosisSafeHandler'; import { TxWriter } from '../TxWriter'; export class SafeAgent implements ITxWriterAccountAgent { supports (account: TAccount) { return $account.isSafe(account); } async process (senderMix: string | EoAccount, safeAccount: SafeAccount, outerWriter: TxWriter) { let { client, options } = outerWriter; let safe = await GnosisSafeHandler.getInstance(senderMix, safeAccount, client, { transport: options?.safeTransport }); let innerWriter = await safe.execute(outerWriter); return innerWriter; } }