Skip to content

Commit

Permalink
fix(fusion-order): accept chainId in .getTypedData (#71)
Browse files Browse the repository at this point in the history
  • Loading branch information
vbrvk authored Mar 20, 2024
1 parent e67f509 commit d251a26
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 15 deletions.
6 changes: 4 additions & 2 deletions src/api/quoter/quote/quote.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,13 @@ export class Quote {
this.settlementAddress = new Address(response.settlementAddress)
}

createFusionOrder(paramsData: FusionOrderParamsData): FusionOrder {
createFusionOrder(
paramsData: Omit<FusionOrderParamsData, 'permit'>
): FusionOrder {
const params = FusionOrderParams.new({
preset: paramsData?.preset || this.recommendedPreset,
receiver: paramsData?.receiver,
permit: paramsData?.permit,
permit: this.params.permit,
nonce: paramsData?.nonce
})

Expand Down
4 changes: 2 additions & 2 deletions src/fusion-order/fusion-extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ import {SettlementPostInteractionData} from './settlement-post-interaction-data'
export class FusionExtension extends ExtensionBuilder {
constructor(
public readonly address: Address,
public readonly details: AuctionDetails,
public readonly auctionDetails: AuctionDetails,
public readonly postInteractionData: SettlementPostInteractionData
) {
super()
}

public build(): Extension {
const detailsBytes = this.details.encode()
const detailsBytes = this.auctionDetails.encode()

this.withMakingAmountData(this.address, detailsBytes)
.withTakingAmountData(this.address, detailsBytes)
Expand Down
22 changes: 19 additions & 3 deletions src/fusion-order/fusion-order.ts
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,22 @@ export class FusionOrder {
return this.inner.makerTraits.expiration() || 0n
}

/**
* Timestamp in sec
*/
get auctionStartTime(): bigint {
return this.fusionExtension.auctionDetails.startTime
}

/**
* Timestamp in sec
*/
get auctionEndTime(): bigint {
const {startTime, duration} = this.fusionExtension.auctionDetails

return startTime + duration
}

static new(
/**
* Fusion extension address
Expand Down Expand Up @@ -302,14 +318,14 @@ export class FusionOrder {
return this.inner.getOrderHash(chainId)
}

public getTypedData(domain = getLimitOrderV4Domain(1)): EIP712TypedData {
return this.inner.getTypedData(domain)
public getTypedData(chainId: number): EIP712TypedData {
return this.inner.getTypedData(getLimitOrderV4Domain(chainId))
}

public getCalculator(): AuctionCalculator {
return AuctionCalculator.fromAuctionData(
this.fusionExtension.postInteractionData,
this.fusionExtension.details
this.fusionExtension.auctionDetails
)
}

Expand Down
10 changes: 2 additions & 8 deletions src/sdk/sdk.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
import {
Address,
getLimitOrderV4Domain,
MakerTraits
} from '@1inch/limit-order-sdk'
import {Address, MakerTraits} from '@1inch/limit-order-sdk'
import {
FusionSDKConfigParams,
OrderInfo,
Expand Down Expand Up @@ -118,7 +114,6 @@ export class FusionSDK {
: undefined,
preset: params.preset,
nonce: params.nonce,
permit: params.permit,
takingFeeReceiver: params.fee?.takingFeeReceiver,
allowPartialFills: params.allowPartialFills,
allowMultipleFills: params.allowMultipleFills
Expand All @@ -138,11 +133,10 @@ export class FusionSDK {
}

const orderStruct = order.build()
const domain = getLimitOrderV4Domain(this.config.network)

const signature = await this.config.blockchainProvider.signTypedData(
orderStruct.maker,
order.getTypedData(domain)
order.getTypedData(this.config.network)
)

const relayerRequest = RelayerRequest.new({
Expand Down

0 comments on commit d251a26

Please sign in to comment.