Added factory schema

This commit is contained in:
lomonoshka
2023-09-28 19:48:12 +04:00
parent 823e9a8ad5
commit 21015e9219
8 changed files with 20 additions and 12 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "@orionprotocol/sdk",
"version": "0.19.92-rc102",
"version": "0.19.92-rc103",
"description": "Orion Protocol SDK",
"main": "./lib/index.cjs",
"module": "./lib/index.js",

View File

@@ -1,7 +1,7 @@
import { SwapExecutor__factory, CurveRegistry__factory } from "@orionprotocol/contracts/lib/ethers-v5/index.js"
import type { BigNumberish, providers } from "ethers"
import type { SingleSwap } from "../generateSwapCalldata.js"
import { addCallParams } from "./utils.js"
import type { SingleSwap } from "../../../types.js"
export async function generateCurveStableSwapCall(
amount: BigNumberish,

View File

@@ -3,8 +3,8 @@ import { SafeArray } from "../../../utils/safeGetters.js"
import { BigNumber } from "ethers"
import type { BytesLike, BigNumberish } from "ethers"
import { defaultAbiCoder, concat } from "ethers/lib/utils.js"
import type { SingleSwap } from "../generateSwapCalldata.js"
import { addCallParams, generateCalls } from "./utils.js"
import type { SingleSwap } from "../../../types.js"
export async function generateUni2Calls(
path: SafeArray<SingleSwap>,

View File

@@ -1,8 +1,8 @@
import { SwapExecutor__factory, UniswapV3Pool__factory } from "@orionprotocol/contracts/lib/ethers-v5/index.js"
import { type BigNumberish, providers, type BytesLike, ethers } from "ethers"
import { SafeArray } from "../../../utils/safeGetters.js"
import type { SingleSwap } from "../generateSwapCalldata.js"
import { addCallParams, generateCalls } from "./utils.js"
import type { SingleSwap } from "../../../types.js"
export async function generateUni3Call(
swap: SingleSwap,

View File

@@ -9,15 +9,11 @@ import { generateUni3Calls, generateOrion3Calls, generateUni3Call, generateOrion
import { exchangeToNativeDecimals, generateCalls, pathCallWithBalance } from './callGenerators/utils.js';
import { generateApproveCall, generateTransferCall } from './callGenerators/erc20.js';
import { generateCurveStableSwapCall } from './callGenerators/curve.js';
import type { SingleSwap } from '../../types.js';
export type Factory = "UniswapV2" | "UniswapV3" | "Curve" | "OrionV2" | "OrionV3"
export type SingleSwap = {
pool: string
assetIn: string
assetOut: string
factory: Factory
}
export type GenerateSwapCalldataParams = {
amount: BigNumberish

View File

@@ -0,0 +1 @@
export default ["UniswapV2", "UniswapV3", "Curve", "OrionV2", "OrionV3"] as const

View File

@@ -1,6 +1,7 @@
import { z } from 'zod';
import MessageType from '../MessageType.js';
import baseMessageSchema from './baseMessageSchema.js';
import factories from '../../../../constants/factories.js';
const alternativeSchema = z.object({ // execution alternatives
e: z.string().array(), // exchanges
@@ -11,6 +12,7 @@ const alternativeSchema = z.object({ // execution alternatives
aa: z.number().optional(), // available amount in
aao: z.number().optional(), // available amount out
});
const factorySchema = z.enum(factories);
const swapInfoSchemaBase = baseMessageSchema.extend({
T: z.literal(MessageType.SWAP_INFO),
S: z.string(), // swap request id
@@ -37,7 +39,7 @@ const swapInfoSchemaBase = baseMessageSchema.extend({
p: z.string(), // pool address
ai: z.string().toUpperCase(), // asset in
ao: z.string().toUpperCase(), // asset out
f: z.string(), // factory
f: factorySchema, // factory
}))
});

View File

@@ -1,10 +1,10 @@
/* eslint-disable @typescript-eslint/consistent-type-definitions */
import factories from './constants/factories.js';
import type { BigNumber } from 'bignumber.js';
import type subOrderStatuses from './constants/subOrderStatuses.js';
import type positionStatuses from './constants/positionStatuses.js';
import type { knownEnvs } from './config/schemas/index.js';
import type getHistory from './Orion/bridge/getHistory.js';
import type { SingleSwap } from './Unit/Exchange/generateSwapCalldata.js';
export type DeepPartial<T> = T extends object ? {
[P in keyof T]?: DeepPartial<T[P]>;
@@ -166,6 +166,15 @@ export type SwapInfoAlternative = {
availableAmountOut?: number | undefined
}
export type Factory = typeof factories[number]
export type SingleSwap = {
pool: string
assetIn: string
assetOut: string
factory: Factory
}
export type SwapInfoBase = {
swapRequestId: string
assetIn: string