@etherspot/modular-sdk
Version:
Etherspot Modular SDK - build with ERC-7579 smart accounts modules
67 lines • 1.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.HookMultiplexer = void 0;
exports.getHookMultiPlexerInitData = getHookMultiPlexerInitData;
const viem_1 = require("viem");
exports.HookMultiplexer = [
{
type: 'function',
name: 'onInstall',
inputs: [
{
name: 'data',
type: 'bytes',
internalType: 'bytes',
},
],
outputs: [],
stateMutability: 'nonpayable',
},
{
type: 'function',
name: 'addHook',
inputs: [
{
name: 'hook',
type: 'address',
internalType: 'address',
},
{
name: 'hookType',
type: 'bytes1',
internalType: 'enum HookType',
},
],
outputs: [],
stateMutability: 'nonpayable',
},
];
function getHookMultiPlexerInitData(globalHooks = [], valueHooks = [], delegatecallHooks = [], sigHooks = [], targetSigHooks = []) {
const abiType = [
{ type: 'address[]' },
{ type: 'address[]' },
{ type: 'address[]' },
{
type: 'tuple[]',
components: [{ type: 'bytes4' }, { type: 'address[]' }],
},
{
type: 'tuple[]',
components: [{ type: 'bytes4' }, { type: 'address[]' }],
},
];
const encodedData = (0, viem_1.encodeAbiParameters)(abiType, [
globalHooks,
valueHooks,
delegatecallHooks,
sigHooks,
targetSigHooks,
]);
const hookMultiplexerInitData = (0, viem_1.encodeFunctionData)({
abi: exports.HookMultiplexer,
args: [encodedData],
functionName: 'onInstall',
});
return hookMultiplexerInitData;
}
//# sourceMappingURL=utils.js.map