-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(quote): add smartSlippage property to quote (#64)
* feat: add quote v1.1.0 with the `smartQuote` property * feat: new parent schema v1.2.0 with updated quote schema * chore: add generated types from new schema * feat: add unittests for new schemas * chore: update version to current one * refactor: rename smartQuote to smartSlippage
- Loading branch information
1 parent
57d0cd2
commit 6cd7e05
Showing
5 changed files
with
398 additions
and
56 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,165 @@ | ||
/* tslint:disable */ | ||
/** | ||
* This file was automatically generated by json-schema-to-typescript. | ||
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, | ||
* and run json-schema-to-typescript to regenerate this file. | ||
*/ | ||
|
||
/** | ||
* Semantic versioning of document. | ||
*/ | ||
export type Version = string; | ||
/** | ||
* The code identifying the CLI, UI, service generating the order. | ||
*/ | ||
export type AppCode = string; | ||
/** | ||
* Environment from which the order came from. | ||
*/ | ||
export type Environment = string; | ||
/** | ||
* The address of the trader who signs the CoW Swap order. This field should normally be omitted; it is recommended to use it if the signer is a smart-contract wallet using EIP-1271 signatures. | ||
*/ | ||
export type Signer = string; | ||
export type ReferrerAddress = string; | ||
/** | ||
* Tracks in which medium the traffic originated from (twitter, facebook, etc.) | ||
*/ | ||
export type UTMSource = string; | ||
/** | ||
* Tracks in which medium the traffic originated from (mail, CPC, social, etc.) | ||
*/ | ||
export type UTMMedium = string; | ||
/** | ||
* Track the performance of a specific campaign | ||
*/ | ||
export type UTMCampaign = string; | ||
/** | ||
* Track which link was clicked | ||
*/ | ||
export type UTMContent = string; | ||
/** | ||
* Track which keyword term a website visitor came from | ||
*/ | ||
export type UTMKeywordTerm = string; | ||
/** | ||
* Slippage tolerance that was applied to the order to get the limit price. Expressed in Basis Points (BPS). One basis point is equivalent to 0.01% (1/100th of a percent) | ||
*/ | ||
export type SlippageBips = number; | ||
/** | ||
* Whether the given slippageBips used is originated from a Smart slippage suggestion | ||
*/ | ||
export type SmartSlippage = boolean; | ||
/** | ||
* Indicator of the order class. | ||
*/ | ||
export type OrderClass1 = "market" | "limit" | "liquidity" | "twap"; | ||
/** | ||
* Semantic versioning of document. | ||
*/ | ||
export type Version1 = string; | ||
/** | ||
* The contract to call for the hook | ||
*/ | ||
export type HookTarget = string; | ||
/** | ||
* The calldata to use when calling the hook | ||
*/ | ||
export type HookCallData = string; | ||
/** | ||
* The gas limit (in gas units) for the hook | ||
*/ | ||
export type HookGasLimit = string; | ||
/** | ||
* CoW Hooks to call before an order executes | ||
*/ | ||
export type PreHooks = CoWHook[]; | ||
/** | ||
* CoW Hooks to call after an order executes | ||
*/ | ||
export type PostHooks = CoWHook[]; | ||
/** | ||
* The code identifying the UI powering the widget | ||
*/ | ||
export type AppCode1 = string; | ||
/** | ||
* Environment from which the order came from. | ||
*/ | ||
export type Environment1 = string; | ||
/** | ||
* The fee in basis points (BPS) to be paid to the partner. One basis point is equivalent to 0.01% (1/100th of a percent) | ||
*/ | ||
export type BasisPointBPS = number; | ||
/** | ||
* The Ethereum address of the partner to receive the fee. | ||
*/ | ||
export type PartnerAccount = string; | ||
/** | ||
* The replaced order UID. | ||
*/ | ||
export type ReplacedOrderUID = string; | ||
|
||
/** | ||
* Metadata JSON document for adding information to orders. | ||
*/ | ||
export interface AppDataRootSchema { | ||
version: Version; | ||
appCode?: AppCode; | ||
environment?: Environment; | ||
metadata: Metadata; | ||
} | ||
/** | ||
* Each metadata will specify one aspect of the order. | ||
*/ | ||
export interface Metadata { | ||
signer?: Signer; | ||
referrer?: Referrer; | ||
utm?: UTMCodes; | ||
quote?: Quote; | ||
orderClass?: OrderClass; | ||
hooks?: OrderInteractionHooks; | ||
widget?: Widget; | ||
partnerFee?: PartnerFee; | ||
replacedOrder?: ReplacedOrder; | ||
} | ||
export interface Referrer { | ||
address: ReferrerAddress; | ||
} | ||
export interface UTMCodes { | ||
utmSource?: UTMSource; | ||
utmMedium?: UTMMedium; | ||
utmCampaign?: UTMCampaign; | ||
utmContent?: UTMContent; | ||
utmTerm?: UTMKeywordTerm; | ||
} | ||
export interface Quote { | ||
slippageBips: SlippageBips; | ||
smartSlippage?: SmartSlippage; | ||
} | ||
export interface OrderClass { | ||
orderClass: OrderClass1; | ||
} | ||
/** | ||
* Optional Pre and Post order interaction hooks attached to a single order | ||
*/ | ||
export interface OrderInteractionHooks { | ||
version?: Version1; | ||
pre?: PreHooks; | ||
post?: PostHooks; | ||
} | ||
export interface CoWHook { | ||
target: HookTarget; | ||
callData: HookCallData; | ||
gasLimit: HookGasLimit; | ||
} | ||
export interface Widget { | ||
appCode: AppCode1; | ||
environment?: Environment1; | ||
} | ||
export interface PartnerFee { | ||
bps: BasisPointBPS; | ||
recipient: PartnerAccount; | ||
} | ||
export interface ReplacedOrder { | ||
uid: ReplacedOrderUID; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
{ | ||
"$id": "#quote/v0.2.0.json", | ||
"$schema": "http://json-schema.org/draft-07/schema", | ||
"required": [ | ||
"slippageBips" | ||
], | ||
"title": "Quote", | ||
"type": "object", | ||
"additionalProperties": false, | ||
"properties": { | ||
"slippageBips": { | ||
"title": "Slippage Bips", | ||
"description": "Slippage tolerance that was applied to the order to get the limit price. Expressed in Basis Points (BPS). One basis point is equivalent to 0.01% (1/100th of a percent)", | ||
"$ref": "../definitions.json#/definitions/bps" | ||
}, | ||
"smartSlippage": { | ||
"title": "Smart Slippage", | ||
"description": "Whether the given slippageBips used is originated from a Smart slippage suggestion", | ||
"type": "boolean", | ||
"default": false | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
{ | ||
"$id": "https://cowswap.exchange/schemas/app-data/v1.2.0.json", | ||
"$schema": "http://json-schema.org/draft-07/schema", | ||
"description": "Metadata JSON document for adding information to orders.", | ||
"required": [ | ||
"version", | ||
"metadata" | ||
], | ||
"title": "AppData Root Schema", | ||
"type": "object", | ||
"additionalProperties": false, | ||
"properties": { | ||
"version": { | ||
"$ref": "definitions.json#/definitions/version", | ||
"readOnly": true, | ||
"default": "1.2.0" | ||
}, | ||
"appCode": { | ||
"$id": "#/properties/appCode", | ||
"description": "The code identifying the CLI, UI, service generating the order.", | ||
"examples": [ | ||
"CoW Swap" | ||
], | ||
"title": "App Code", | ||
"type": "string" | ||
}, | ||
"environment": { | ||
"$id": "#/properties/environment", | ||
"description": "Environment from which the order came from.", | ||
"title": "Environment", | ||
"type": "string", | ||
"examples": [ | ||
"production", | ||
"development", | ||
"staging", | ||
"ens" | ||
] | ||
}, | ||
"metadata": { | ||
"$id": "#/properties/metadata", | ||
"default": {}, | ||
"description": "Each metadata will specify one aspect of the order.", | ||
"required": [], | ||
"title": "Metadata", | ||
"type": "object", | ||
"additionalProperties": false, | ||
"properties": { | ||
"signer": { | ||
"$ref": "signer/v0.1.0.json#" | ||
}, | ||
"referrer": { | ||
"$ref": "referrer/v0.2.0.json#" | ||
}, | ||
"utm": { | ||
"$ref": "utm/v0.2.0.json#" | ||
}, | ||
"quote": { | ||
"$ref": "quote/v1.1.0.json#" | ||
}, | ||
"orderClass": { | ||
"$ref": "orderClass/v0.3.0.json#" | ||
}, | ||
"hooks": { | ||
"$ref": "hooks/v0.1.0.json#" | ||
}, | ||
"widget": { | ||
"$ref": "widget/v0.1.0.json#" | ||
}, | ||
"partnerFee": { | ||
"$ref": "partnerFee/v0.1.0.json#" | ||
}, | ||
"replacedOrder": { | ||
"$ref": "replacedOrder/v0.1.0.json#" | ||
} | ||
} | ||
} | ||
} | ||
} |
Oops, something went wrong.