mirror of
https://github.com/luxwallet/ios.git
synced 2026-10-30 20:33:27 +00:00
69 lines
4.4 KiB
Swift
69 lines
4.4 KiB
Swift
import BigInt
|
|
import EvmKit
|
|
import HsExtensions
|
|
@testable import Unstoppable
|
|
@testable import WalletCore
|
|
import XCTest
|
|
|
|
final class EntryPointV06Tests: XCTestCase {
|
|
func testEncodeGetNonce() throws {
|
|
let sender = try EvmKit.Address(hex: "0x1234567890abcdef1234567890abcdef12345678")
|
|
|
|
let data = EntryPointV06.encodeGetNonce(sender: sender)
|
|
|
|
XCTAssertEqual(
|
|
data.hs.hex,
|
|
"35567e1a0000000000000000000000001234567890abcdef1234567890abcdef123456780000000000000000000000000000000000000000000000000000000000000000"
|
|
)
|
|
}
|
|
|
|
func testDecodeGetNonce() throws {
|
|
let encoded = "000000000000000000000000000000000000000000000000000000000000002a".hs.hexData!
|
|
|
|
XCTAssertEqual(try EntryPointV06.decodeGetNonce(encoded), 42)
|
|
}
|
|
|
|
func testEncodeGetUserOpHash() {
|
|
let data = EntryPointV06.encodeGetUserOpHash(sampleUserOperation())
|
|
|
|
XCTAssertEqual(
|
|
data.hs.hex,
|
|
"a619353100000000000000000000000000000000000000000000000000000000000000200000000000000000000000001234567890abcdef1234567890abcdef12345678000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000c35000000000000000000000000000000000000000000000000000000000000186a00000000000000000000000000000000000000000000000000000000000005208000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a9059cbb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
|
)
|
|
}
|
|
|
|
func testDecodeGetUserOpHash() throws {
|
|
let encoded = "edfd7c6c5670154a4999ece69853a5f87368b6f475ce228964ba8f98c5005c8e".hs.hexData!
|
|
|
|
XCTAssertEqual(try EntryPointV06.decodeGetUserOpHash(encoded), encoded)
|
|
}
|
|
|
|
func testEncodeHandleOps() {
|
|
let beneficiary = try! EvmKit.Address(hex: "0x9999999999999999999999999999999999999999")
|
|
|
|
let data = EntryPointV06.encodeHandleOps(ops: [sampleUserOperation()], beneficiary: beneficiary)
|
|
|
|
XCTAssertEqual(
|
|
data.hs.hex,
|
|
"1fad948c00000000000000000000000000000000000000000000000000000000000000400000000000000000000000009999999999999999999999999999999999999999000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000001234567890abcdef1234567890abcdef12345678000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000c35000000000000000000000000000000000000000000000000000000000000186a00000000000000000000000000000000000000000000000000000000000005208000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a9059cbb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
|
)
|
|
}
|
|
|
|
private func sampleUserOperation() -> UserOperation {
|
|
let sender = try! EvmKit.Address(hex: "0x1234567890abcdef1234567890abcdef12345678")
|
|
return UserOperation(
|
|
sender: sender,
|
|
nonce: 0,
|
|
initCode: Data(),
|
|
callData: Data([0xA9, 0x05, 0x9C, 0xBB]),
|
|
callGasLimit: 50000,
|
|
verificationGasLimit: 100_000,
|
|
preVerificationGas: 21000,
|
|
maxFeePerGas: 1_000_000_000,
|
|
maxPriorityFeePerGas: 1_000_000_000,
|
|
paymasterAndData: Data(),
|
|
signature: Data()
|
|
)
|
|
}
|
|
}
|