Skip to content

Commit 16b003f

Browse files
committed
fix
1 parent 2aad57a commit 16b003f

File tree

101 files changed

+478
-546
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

101 files changed

+478
-546
lines changed

packages/wallet/core/src/envelope.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Config, Payload, Signature } from '@0xsequence/wallet-primitives'
1+
import { Address, Config, Payload, Signature } from '@0xsequence/wallet-primitives'
22
import { Hex } from 'ox'
33

44
export type Envelope<T extends Payload.Payload> = {

packages/wallet/core/src/preconditions/codec.ts

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { Address } from '@0xsequence/wallet-primitives'
12
import {
23
Precondition,
34
NativeBalancePrecondition,
@@ -40,52 +41,52 @@ export function decodePrecondition(p: IntentPrecondition): Precondition | undefi
4041
switch (p.type) {
4142
case 'native-balance':
4243
precondition = new NativeBalancePrecondition(
43-
Address.from(data.address),
44+
Address.checksum(data.address),
4445
data.min ? BigInt(data.min) : undefined,
4546
data.max ? BigInt(data.max) : undefined,
4647
)
4748
break
4849

4950
case 'erc20-balance':
5051
precondition = new Erc20BalancePrecondition(
51-
Address.from(data.address),
52-
Address.from(data.token),
52+
Address.checksum(data.address),
53+
Address.checksum(data.token),
5354
data.min ? BigInt(data.min) : undefined,
5455
data.max ? BigInt(data.max) : undefined,
5556
)
5657
break
5758

5859
case 'erc20-approval':
5960
precondition = new Erc20ApprovalPrecondition(
60-
Address.from(data.address),
61-
Address.from(data.token),
62-
Address.from(data.operator),
61+
Address.checksum(data.address),
62+
Address.checksum(data.token),
63+
Address.checksum(data.operator),
6364
BigInt(data.min),
6465
)
6566
break
6667

6768
case 'erc721-ownership':
6869
precondition = new Erc721OwnershipPrecondition(
69-
Address.from(data.address),
70-
Address.from(data.token),
70+
Address.checksum(data.address),
71+
Address.checksum(data.token),
7172
BigInt(data.tokenId),
7273
data.owned,
7374
)
7475
break
7576

7677
case 'erc721-approval':
7778
precondition = new Erc721ApprovalPrecondition(
78-
Address.from(data.address),
79-
Address.from(data.token),
79+
Address.checksum(data.address),
80+
Address.checksum(data.token),
8081
BigInt(data.tokenId),
81-
Address.from(data.operator),
82+
Address.checksum(data.operator),
8283
)
8384
break
8485

8586
case 'erc1155-balance':
8687
precondition = new Erc1155BalancePrecondition(
87-
Address.from(data.address),
88-
Address.from(data.token),
88+
Address.checksum(data.address),
89+
Address.checksum(data.token),
8990
BigInt(data.tokenId),
9091
data.min ? BigInt(data.min) : undefined,
9192
data.max ? BigInt(data.max) : undefined,
@@ -94,10 +95,10 @@ export function decodePrecondition(p: IntentPrecondition): Precondition | undefi
9495

9596
case 'erc1155-approval':
9697
precondition = new Erc1155ApprovalPrecondition(
97-
Address.from(data.address),
98-
Address.from(data.token),
98+
Address.checksum(data.address),
99+
Address.checksum(data.token),
99100
BigInt(data.tokenId),
100-
Address.from(data.operator),
101+
Address.checksum(data.operator),
101102
BigInt(data.min),
102103
)
103104
break

packages/wallet/core/src/preconditions/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { Address } from '@0xsequence/wallet-primitives'
2+
13
export interface Precondition {
24
type(): string
35
isValid(): Error | undefined

packages/wallet/core/src/relayer/bundler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Payload } from '@0xsequence/wallet-primitives'
1+
import { Address, Payload } from '@0xsequence/wallet-primitives'
22
import { Hex } from 'ox'
33
import { UserOperation } from 'ox/erc4337'
44
import { OperationStatus } from './relayer.js'

packages/wallet/core/src/relayer/bundlers/pimlico.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Payload } from '@0xsequence/wallet-primitives'
1+
import { Address, Payload } from '@0xsequence/wallet-primitives'
22
import { Bundler } from '../bundler.js'
33
import { Provider, Hex, RpcTransport } from 'ox'
44
import { UserOperation } from 'ox/erc4337'

packages/wallet/core/src/relayer/relayer.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Payload, Precondition } from '@0xsequence/wallet-primitives'
1+
import { Address, Payload, Precondition } from '@0xsequence/wallet-primitives'
22
import { Hex } from 'ox'
33
import { FeeToken, GetMetaTxnReceiptReturn } from './standard/rpc/index.js'
44

packages/wallet/core/src/relayer/standard/eip6963.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { createStore, EIP6963ProviderInfo, EIP6963ProviderDetail } from 'mipd'
22
import { EIP1193ProviderAdapter, LocalRelayer } from './local.js'
33
import { FeeOption, FeeQuote, OperationStatus, Relayer } from '../relayer.js'
44
import { Hex } from 'ox'
5-
import { Payload } from '@0xsequence/wallet-primitives'
5+
import { Address, Payload } from '@0xsequence/wallet-primitives'
66
import { IntentPrecondition } from './rpc/relayer.gen.js'
77

88
export class EIP6963Relayer implements Relayer {

packages/wallet/core/src/relayer/standard/local.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Constants, Payload } from '@0xsequence/wallet-primitives'
1+
import { Address, Constants, Payload } from '@0xsequence/wallet-primitives'
22
import { EIP1193Provider } from 'mipd'
33
import { AbiFunction, Bytes, Hex, TransactionReceipt } from 'ox'
44
import { FeeOption, FeeQuote, OperationStatus, Relayer } from '../relayer.js'
@@ -217,8 +217,8 @@ export class LocalRelayer implements Relayer {
217217
to: erc721.token.toString(),
218218
data,
219219
})
220-
const owner = '0x' + result.slice(26)
221-
const isOwner = owner.toLowerCase() === erc721.address.toString().toLowerCase()
220+
const owner = Address.checksum(`0x${result.slice(26)}`)
221+
const isOwner = Address.isEqual(owner, erc721.address)
222222
return erc721.owned === undefined ? isOwner : erc721.owned === isOwner
223223
}
224224

@@ -229,8 +229,8 @@ export class LocalRelayer implements Relayer {
229229
to: erc721.token.toString(),
230230
data,
231231
})
232-
const approved = '0x' + result.slice(26)
233-
return approved.toLowerCase() === erc721.operator.toString().toLowerCase()
232+
const approved = Address.checksum(`0x${result.slice(26)}`)
233+
return Address.isEqual(approved, erc721.operator)
234234
}
235235

236236
case 'erc1155-balance': {

packages/wallet/core/src/relayer/standard/pk-relayer.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Payload, Precondition } from '@0xsequence/wallet-primitives'
1+
import { Address, Payload, Precondition } from '@0xsequence/wallet-primitives'
22
import { Hex, Provider, Secp256k1, TransactionEnvelopeEip1559, TransactionReceipt } from 'ox'
33
import { LocalRelayer } from './local.js'
44
import { FeeOption, FeeQuote, OperationStatus, Relayer } from '../relayer.js'

packages/wallet/core/src/relayer/standard/rpc/index.ts

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
} from './relayer.gen.js'
88
import { FeeOption, FeeQuote, OperationStatus, Relayer } from '../../relayer.js'
99
import { Hex, Bytes, AbiFunction } from 'ox'
10-
import { Constants, Payload } from '@0xsequence/wallet-primitives'
10+
import { Address, Constants, Payload } from '@0xsequence/wallet-primitives'
1111
import { ETHTxnStatus, FeeToken as RpcFeeToken } from './relayer.gen.js'
1212
import { decodePrecondition } from '../../../preconditions/index.js'
1313
import {
@@ -83,13 +83,12 @@ export class RpcRelayer implements Relayer {
8383

8484
const quote: FeeQuote | undefined = result.quote ? { _tag: 'FeeQuote', _quote: result.quote } : undefined
8585
const options = result.options.map((option) => {
86-
Address.assert(option.to)
8786
return {
8887
token: {
8988
...option.token,
9089
contractAddress: this.mapRpcFeeTokenToAddress(option.token),
9190
},
92-
to: option.to,
91+
to: Address.checksum(option.to),
9392
value: option.value,
9493
gasLimit: option.gasLimit,
9594
}
@@ -290,8 +289,8 @@ export class RpcRelayer implements Relayer {
290289
if (resultHex === undefined) {
291290
throw new Error('no response for erc-721 ownership query')
292291
}
293-
const owner = resultHex.slice(-40)
294-
const isOwner = owner.toLowerCase() === erc721.address.toString().slice(2).toLowerCase()
292+
const owner = Address.checksum(`0x${resultHex.slice(-40)}`)
293+
const isOwner = Address.isEqual(owner, erc721.address)
295294
const expectedOwnership = erc721.owned !== undefined ? erc721.owned : true
296295
return isOwner === expectedOwnership
297296
} catch (error) {
@@ -309,8 +308,8 @@ export class RpcRelayer implements Relayer {
309308
if (resultHex === undefined) {
310309
throw new Error('no response for erc-721 approval query')
311310
}
312-
const approved = resultHex.slice(-40)
313-
return approved.toLowerCase() === erc721.operator.toString().slice(2).toLowerCase()
311+
const approved = Address.checksum(resultHex.slice(-40))
312+
return Address.isEqual(approved, erc721.operator)
314313
} catch (error) {
315314
console.error('Error checking ERC721 approval:', error)
316315
return false
@@ -368,7 +367,7 @@ export class RpcRelayer implements Relayer {
368367

369368
private mapRpcFeeTokenToAddress(rpcToken: RpcFeeToken): Address.Checksummed {
370369
if (rpcToken.type === FeeTokenType.ERC20_TOKEN && rpcToken.contractAddress) {
371-
return Address.from(rpcToken.contractAddress)
370+
return Address.checksum(rpcToken.contractAddress)
372371
}
373372
return Constants.ZeroAddress // Default to zero address for native token or unsupported types
374373
}

0 commit comments

Comments
 (0)