@glideco/safe-encoder
v0.1.0
Published
Pure encoders for Safe v1.4.1 transactions — canonical 10-field tx shape, MultiSendCallOnly bundle encoder, EIP-712 SafeTxHash digest, and the canonical contract-address registry.
Maintainers
Readme
@glideco/safe-encoder
Pure encoders for Safe v1.4.1 multisig transactions.
What's in here
- Canonical 10-field tx shape (
SafeCanonicalTx) — load-bearing for cross-SDK-version safety. Different versions of@safe-global/protocol-kitdefaultbaseGas/gasPrice/refundReceiverdifferently; persisting the canonical shape and rebuildingexecTransactionfrom it (instead of SDK defaults) prevents silent "user clicked execute, nothing happened" signature mismatches. - MultiSendCallOnly bundle encoder for atomic multi-call signing (recovery-module enable, batch transfers, etc.).
- Canonical Safe v1.4.1 contract-address registry — same address on
every EVM chain, vendored from
safe-deploymentsto avoid dragging the full protocol-kit dependency graph into a tiny constant lookup.
Usage
import {
assembleSafeCanonicalTx,
encodeMultiSendCallOnly,
safeSingletonFor,
SAFE_PROXY_FACTORY_ADDRESS,
SAFE_VERSION,
} from '@glideco/safe-encoder';
const tx = assembleSafeCanonicalTx({
to: '0x…',
value: '0',
data: '0xa9059cbb…',
nonce: 5,
});
// Multi-send: bundle 2 calls into one execTransaction
const bundle = encodeMultiSendCallOnly([
{ to: factory, value: 0n, data: deployModuleCalldata },
{ to: safeAddress, value: 0n, data: enableModuleCalldata },
]);License
MIT
