diff --git a/packages/delegator-e2e/test/delegateAndRedeem.test.ts b/packages/delegator-e2e/test/delegateAndRedeem.test.ts index 3b1b776a..e8b3a94f 100644 --- a/packages/delegator-e2e/test/delegateAndRedeem.test.ts +++ b/packages/delegator-e2e/test/delegateAndRedeem.test.ts @@ -22,7 +22,7 @@ import { type PartialSignature, } from '@metamask/smart-accounts-kit'; import { - encodePermissionContexts, + encodeDelegations, encodeExecutionCalldatas, } from '@metamask/smart-accounts-kit/utils'; import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts'; @@ -123,7 +123,7 @@ test('maincase: Bob increments the counter with a delegation from Alice', async abi: bobSmartAccount.abi, functionName: 'redeemDelegations', args: [ - encodePermissionContexts([[signedDelegation]]), + [encodeDelegations([signedDelegation])], [ExecutionMode.SingleDefault], encodeExecutionCalldatas([[execution]]), ], @@ -232,7 +232,7 @@ test("Bob attempts to increment the counter with a delegation from Alice that do abi: bobSmartAccount.abi, functionName: 'redeemDelegations', args: [ - encodePermissionContexts([[signedDelegation]]), + [encodeDelegations([signedDelegation])], [ExecutionMode.SingleDefault], encodeExecutionCalldatas([[execution]]), ], @@ -335,7 +335,7 @@ test('Bob increments the counter with a delegation from a multisig account', asy abi: bobSmartAccount.abi, functionName: 'redeemDelegations', args: [ - encodePermissionContexts([[signedDelegation]]), + [encodeDelegations([signedDelegation])], [ExecutionMode.SingleDefault], encodeExecutionCalldatas([[execution]]), ], @@ -366,4 +366,4 @@ test('Bob increments the counter with a delegation from a multisig account', asy const countAfter = await counterContract.read.count(); expect(countAfter, 'Expected final count to have incremented').toEqual(1n); -}); +}); \ No newline at end of file diff --git a/packages/smart-accounts-kit/src/DelegationFramework/DelegationManager/methods/redeemDelegations.ts b/packages/smart-accounts-kit/src/DelegationFramework/DelegationManager/methods/redeemDelegations.ts index bbc94e1a..ed878295 100644 --- a/packages/smart-accounts-kit/src/DelegationFramework/DelegationManager/methods/redeemDelegations.ts +++ b/packages/smart-accounts-kit/src/DelegationFramework/DelegationManager/methods/redeemDelegations.ts @@ -3,7 +3,7 @@ import type { Address, Client } from 'viem'; import { encodeFunctionData } from 'viem'; import { simulateContract, writeContract } from 'viem/actions'; -import { encodePermissionContexts } from '../../../delegation'; +import { encodeDelegations } from '../../../delegation'; import { encodeExecutionCalldatas } from '../../../executions'; import type { ExecutionMode, ExecutionStruct } from '../../../executions'; import type { Delegation } from '../../../types'; @@ -37,7 +37,7 @@ export const simulate = async ({ abi: DelegationManager, functionName: 'redeemDelegations', args: [ - encodePermissionContexts(delegations), + delegations.map((delegationChain) => encodeDelegations(delegationChain)), modes, encodeExecutionCalldatas(executions), ], @@ -71,7 +71,7 @@ export const encode = ({ abi: DelegationManager, functionName: 'redeemDelegations', args: [ - encodePermissionContexts(delegations), + delegations.map((delegationChain) => encodeDelegations(delegationChain)), modes, encodeExecutionCalldatas(executions), ], diff --git a/packages/smart-accounts-kit/src/utils/index.ts b/packages/smart-accounts-kit/src/utils/index.ts index ba56f9f6..f2f72f13 100644 --- a/packages/smart-accounts-kit/src/utils/index.ts +++ b/packages/smart-accounts-kit/src/utils/index.ts @@ -5,8 +5,6 @@ export { decodeDelegation, toDelegationStruct, toDelegation, - encodePermissionContexts, - decodePermissionContexts, DELEGATION_ARRAY_ABI_TYPE, DELEGATION_ABI_TYPE, DELEGATION_ABI_TYPE_COMPONENTS, diff --git a/packages/smart-accounts-kit/src/write.ts b/packages/smart-accounts-kit/src/write.ts index 220ae897..a094e526 100644 --- a/packages/smart-accounts-kit/src/write.ts +++ b/packages/smart-accounts-kit/src/write.ts @@ -1,7 +1,7 @@ import { SimpleFactory, DelegationManager } from '@metamask/delegation-abis'; import type { Address, Chain, Hex, PublicClient, WalletClient } from 'viem'; -import { encodePermissionContexts } from './delegation'; +import { encodeDelegations } from './delegation'; import type { ExecutionStruct, ExecutionMode } from './executions'; import { encodeExecutionCalldatas } from './executions'; import type { Delegation, ContractMetaData, Redemption } from './types'; @@ -62,8 +62,9 @@ export const redeemDelegations = async ( executionModes.push(redemption.mode); }); - const encodedPermissionContexts = - encodePermissionContexts(permissionContexts); + const encodedPermissionContexts = permissionContexts.map((delegationChain) => + encodeDelegations(delegationChain), + ); const executionCalldatas = encodeExecutionCalldatas(executionsBatch); const { request } = await publicClient.simulateContract({