Skip to content

Commit

Permalink
fix Api Kit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
DaniSomoza committed Jan 24, 2025
1 parent c15c53d commit 76d96f4
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 62 deletions.
41 changes: 3 additions & 38 deletions packages/api-kit/tests/e2e/addSafeOperation.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,8 @@ import sinonChai from 'sinon-chai'
import Safe from '@safe-global/protocol-kit'
import SafeApiKit from '@safe-global/api-kit/index'
import { getAddSafeOperationProps } from '@safe-global/api-kit/utils/safeOperation'
import { BundlerClient, Safe4337Pack } from '@safe-global/relay-kit'
import * as safe4337Utils from '@safe-global/relay-kit/dist/src/packs/safe-4337/utils'
import {
generateTransferCallData,
ENTRYPOINT_ABI,
ENTRYPOINT_ADDRESS_V06,
RPC_4337_CALLS
} from '@safe-global/relay-kit/test-utils'
import { Safe4337Pack } from '@safe-global/relay-kit'
import { generateTransferCallData } from '@safe-global/relay-kit/test-utils'
import { getKits } from '../utils/setupKits'

chai.use(chaiAsPromised)
Expand All @@ -22,7 +16,7 @@ const SIGNER_PK = '0x83a415ca62e11f5fa5567e98450d0f82ae19ff36ef876c10a8d448c788a
const SAFE_ADDRESS = '0x60C4Ab82D06Fd7dFE9517e17736C2Dcc77443EF0' // 1/2 Safe (v1.4.1) with signer above being an owner + 4337 module enabled
const PAYMASTER_TOKEN_ADDRESS = '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238'
const PAYMASTER_ADDRESS = '0x0000000000325602a77416A16136FDafd04b299f'
const BUNDLER_URL = 'https://bundler.url'
const BUNDLER_URL = 'https://api.pimlico.io/v2/sepolia/rpc?apikey=pim_Vjs7ohRqWdvsjUegngf9Bg'
const TX_SERVICE_URL = 'https://safe-transaction-sepolia.staging.5afe.dev/api'

let safeApiKit: SafeApiKit
Expand All @@ -37,42 +31,13 @@ describe('addSafeOperation', () => {
operation: 0
}

const requestStub = sinon.stub()
// Setup mocks for the bundler client
before(async () => {
sinon.stub(safe4337Utils, 'getEip4337BundlerProvider').returns({
request: requestStub,
readContract: sinon
.stub()
.withArgs({
address: ENTRYPOINT_ADDRESS_V06,
abi: ENTRYPOINT_ABI,
functionName: 'getNonce',
args: [SAFE_ADDRESS, BigInt(0)]
})
.resolves(123n)
} as unknown as BundlerClient)
;({ safeApiKit, protocolKit } = await getKits({
safeAddress: SAFE_ADDRESS,
signer: SIGNER_PK,
txServiceUrl: TX_SERVICE_URL
}))

requestStub.withArgs({ method: RPC_4337_CALLS.CHAIN_ID }).resolves('0xaa36a7')
requestStub
.withArgs({ method: RPC_4337_CALLS.SUPPORTED_ENTRY_POINTS })
.resolves([ENTRYPOINT_ADDRESS_V06])
requestStub
.withArgs({ method: 'pimlico_getUserOperationGasPrice' })
.resolves({ fast: { maxFeePerGas: '0x3b9aca00', maxPriorityFeePerGas: '0x3b9aca00' } })
requestStub
.withArgs({ method: RPC_4337_CALLS.ESTIMATE_USER_OPERATION_GAS, params: sinon.match.any })
.resolves({
preVerificationGas: BigInt(Date.now()),
callGasLimit: BigInt(Date.now()),
verificationGasLimit: BigInt(Date.now())
})

safe4337Pack = await Safe4337Pack.init({
provider: protocolKit.getSafeProvider().provider,
signer: protocolKit.getSafeProvider().signer,
Expand Down
29 changes: 5 additions & 24 deletions packages/api-kit/tests/e2e/confirmSafeOperation.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,8 @@ import chai from 'chai'
import chaiAsPromised from 'chai-as-promised'
import sinon from 'sinon'
import sinonChai from 'sinon-chai'
import { BundlerClient, Safe4337InitOptions, Safe4337Pack } from '@safe-global/relay-kit'
import {
generateTransferCallData,
ENTRYPOINT_ADDRESS_V06,
RPC_4337_CALLS
} from '@safe-global/relay-kit/test-utils'
import * as safe4337Utils from '@safe-global/relay-kit/dist/src/packs/safe-4337/utils'
import { Safe4337InitOptions, Safe4337Pack } from '@safe-global/relay-kit'
import { generateTransferCallData } from '@safe-global/relay-kit/test-utils'
import SafeApiKit from '@safe-global/api-kit/index'
import { getAddSafeOperationProps } from '@safe-global/api-kit/utils/safeOperation'
import { SafeOperation } from '@safe-global/types-kit'
Expand All @@ -21,7 +16,7 @@ const PRIVATE_KEY_1 = '0x83a415ca62e11f5fa5567e98450d0f82ae19ff36ef876c10a8d448c
const PRIVATE_KEY_2 = '0xb88ad5789871315d0dab6fc5961d6714f24f35a6393f13a6f426dfecfc00ab44'
const SAFE_ADDRESS = '0x60C4Ab82D06Fd7dFE9517e17736C2Dcc77443EF0' // 4337 enabled 1/2 Safe (v1.4.1) owned by PRIVATE_KEY_1 + PRIVATE_KEY_2
const TX_SERVICE_URL = 'https://safe-transaction-sepolia.staging.5afe.dev/api'
const BUNDLER_URL = `https://bundler.url`
const BUNDLER_URL = 'https://api.pimlico.io/v2/sepolia/rpc?apikey=pim_Vjs7ohRqWdvsjUegngf9Bg'
const PAYMASTER_TOKEN_ADDRESS = '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238'

let safeApiKit: SafeApiKit
Expand All @@ -32,8 +27,8 @@ let safeOpHash: string
describe('confirmSafeOperation', () => {
const transferUSDC = {
to: PAYMASTER_TOKEN_ADDRESS,
data: generateTransferCallData(SAFE_ADDRESS, 100_000n),
value: Date.now().toString(), // Make sure that the transaction hash is unique
data: generateTransferCallData(SAFE_ADDRESS, 100_000n) + Date.now().toString(), // Make sure that the transaction hash is unique
value: '0',
operation: 0
}

Expand Down Expand Up @@ -69,21 +64,7 @@ describe('confirmSafeOperation', () => {
return signedSafeOperation
}

const requestStub = sinon.stub()

before(async () => {
sinon.stub(safe4337Utils, 'getEip4337BundlerProvider').returns({
request: requestStub
} as unknown as BundlerClient)

requestStub.withArgs({ method: RPC_4337_CALLS.CHAIN_ID }).resolves('0xaa36a7')
requestStub
.withArgs({ method: RPC_4337_CALLS.SUPPORTED_ENTRY_POINTS })
.resolves([ENTRYPOINT_ADDRESS_V06])
requestStub
.withArgs({ method: 'pimlico_getUserOperationGasPrice' })
.resolves({ fast: { maxFeePerGas: '0x3b9aca00', maxPriorityFeePerGas: '0x3b9aca00' } })

safe4337Pack = await getSafe4337Pack({ signer: PRIVATE_KEY_1 })
safeApiKit = getApiKit(TX_SERVICE_URL)

Expand Down

0 comments on commit 76d96f4

Please sign in to comment.