Files
ios/Unstoppable/Tests/Abstraction/Send/GasFreeTip712SignerTests.swift
Anton Stavnichiy 378413dded Update zcash endpoint selector and backup flag.
* Fix tests. Move tests to develop scheme
2026-06-08 15:36:13 +06:00

40 lines
1.4 KiB
Swift

import Foundation
import Testing
@testable import Unstoppable
@testable import WalletCore
struct GasFreeTip712SignerTests {
private let privateKey = Data(repeating: 0x42, count: 32)
private let messageHash = Data(repeating: 0xCC, count: 32)
@Test func produces65ByteSignature() throws {
let signature = try GasFreeTip712Signer.sign(messageHash: messageHash, privateKey: privateKey)
#expect(signature.count == 65)
}
@Test func recoveryIdIsNormalisedToEthereumConvention() throws {
let signature = try GasFreeTip712Signer.sign(messageHash: messageHash, privateKey: privateKey)
let v = try #require(signature.last)
#expect(v == 27 || v == 28)
}
@Test func signatureIsDeterministicForSameInputs() throws {
let first = try GasFreeTip712Signer.sign(messageHash: messageHash, privateKey: privateKey)
let second = try GasFreeTip712Signer.sign(messageHash: messageHash, privateKey: privateKey)
#expect(first == second)
}
@Test func differentMessageHashProducesDifferentSignature() throws {
let hashA = Data(repeating: 0xAA, count: 32)
let hashB = Data(repeating: 0xBB, count: 32)
let sigA = try GasFreeTip712Signer.sign(messageHash: hashA, privateKey: privateKey)
let sigB = try GasFreeTip712Signer.sign(messageHash: hashB, privateKey: privateKey)
#expect(sigA != sigB)
}
}