diff --git a/.changeset/purple-boats-look.md b/.changeset/purple-boats-look.md new file mode 100644 index 0000000..de7837b --- /dev/null +++ b/.changeset/purple-boats-look.md @@ -0,0 +1,5 @@ +--- +'@protocolink/api': minor +--- + +add Wagmi, skip Wagmi tests diff --git a/.changeset/witty-tomatoes-suffer.md b/.changeset/witty-tomatoes-suffer.md new file mode 100644 index 0000000..9514489 --- /dev/null +++ b/.changeset/witty-tomatoes-suffer.md @@ -0,0 +1,5 @@ +--- +'@protocolink/api': minor +--- + +add IOLEND, skip IOLEND tests diff --git a/packages/api/package.json b/packages/api/package.json index b26a33f..9d0a6b2 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -28,7 +28,7 @@ "dependencies": { "@protocolink/common": "^0.5.4", "@protocolink/core": "^0.6.3", - "@protocolink/logics": "^1.7.2", + "@protocolink/logics": "^1.8.0", "@types/lodash": "^4.14.195", "@types/uuid": "^9.0.2", "@uniswap/permit2-sdk": "^1.2.0", diff --git a/packages/api/src/protocols/index.ts b/packages/api/src/protocols/index.ts index 9db281e..e9702f1 100644 --- a/packages/api/src/protocols/index.ts +++ b/packages/api/src/protocols/index.ts @@ -2,6 +2,7 @@ export * as aavev2 from './aave-v2'; export * as aavev3 from './aave-v3'; export * as balancerv2 from './balancer-v2'; export * as compoundv3 from './compound-v3'; +export * as iolend from './iolend'; export * as magicsea from './magicsea'; export * as morphoblue from './morphoblue'; export * as openoceanv2 from './openocean-v2'; @@ -15,4 +16,5 @@ export * as stargatev2 from './stargate-v2'; export * as syncswap from './syncswap'; export * as uniswapv3 from './uniswap-v3'; export * as utility from './utility'; +export * as wagmi from './wagmi'; export * as zeroexv4 from './zeroex-v4'; diff --git a/packages/api/src/protocols/iolend/borrow.ts b/packages/api/src/protocols/iolend/borrow.ts new file mode 100644 index 0000000..174020f --- /dev/null +++ b/packages/api/src/protocols/iolend/borrow.ts @@ -0,0 +1,16 @@ +import { Logic } from 'src/types'; +import * as common from '@protocolink/common'; +import { getProtocolTokenList } from 'src/api'; +import * as logics from '@protocolink/logics'; + +export type BorrowFields = common.Declasifying; + +export type BorrowLogic = Logic; + +export async function getBorrowTokenList(chainId: number): Promise { + return getProtocolTokenList(chainId, logics.iolend.BorrowLogic.rid); +} + +export function newBorrowLogic(fields: BorrowFields): BorrowLogic { + return { rid: logics.iolend.BorrowLogic.rid, fields }; +} diff --git a/packages/api/src/protocols/iolend/deposit.ts b/packages/api/src/protocols/iolend/deposit.ts new file mode 100644 index 0000000..44f0fd4 --- /dev/null +++ b/packages/api/src/protocols/iolend/deposit.ts @@ -0,0 +1,25 @@ +import { Logic } from 'src/types'; +import * as common from '@protocolink/common'; +import { getProtocolTokenList, quote } from 'src/api'; +import * as logics from '@protocolink/logics'; + +export type DepositParams = common.Declasifying; + +export type DepositFields = common.Declasifying; + +export type DepositLogic = Logic; + +export async function getDepositTokenList(chainId: number): Promise { + return getProtocolTokenList(chainId, logics.iolend.DepositLogic.rid); +} + +export async function getDepositQuotation( + chainId: number, + params: DepositParams +): Promise { + return quote(chainId, logics.iolend.DepositLogic.rid, params); +} + +export function newDepositLogic(fields: DepositFields): DepositLogic { + return { rid: logics.iolend.DepositLogic.rid, fields }; +} diff --git a/packages/api/src/protocols/iolend/index.ts b/packages/api/src/protocols/iolend/index.ts new file mode 100644 index 0000000..5099be8 --- /dev/null +++ b/packages/api/src/protocols/iolend/index.ts @@ -0,0 +1,4 @@ +export * from './borrow'; +export * from './deposit'; +export * from './repay'; +export * from './withdraw'; diff --git a/packages/api/src/protocols/iolend/repay.ts b/packages/api/src/protocols/iolend/repay.ts new file mode 100644 index 0000000..712e174 --- /dev/null +++ b/packages/api/src/protocols/iolend/repay.ts @@ -0,0 +1,22 @@ +import { Logic } from 'src/types'; +import * as common from '@protocolink/common'; +import { getProtocolTokenList, quote } from 'src/api'; +import * as logics from '@protocolink/logics'; + +export type RepayParams = common.Declasifying; + +export type RepayFields = common.Declasifying; + +export type RepayLogic = Logic; + +export async function getRepayTokenList(chainId: number): Promise { + return getProtocolTokenList(chainId, logics.iolend.RepayLogic.rid); +} + +export async function getRepayQuotation(chainId: number, params: RepayParams): Promise { + return quote(chainId, logics.iolend.RepayLogic.rid, params); +} + +export function newRepayLogic(fields: RepayFields): RepayLogic { + return { rid: logics.iolend.RepayLogic.rid, fields }; +} diff --git a/packages/api/src/protocols/iolend/withdraw.ts b/packages/api/src/protocols/iolend/withdraw.ts new file mode 100644 index 0000000..491d4a4 --- /dev/null +++ b/packages/api/src/protocols/iolend/withdraw.ts @@ -0,0 +1,25 @@ +import { Logic } from 'src/types'; +import * as common from '@protocolink/common'; +import { getProtocolTokenList, quote } from 'src/api'; +import * as logics from '@protocolink/logics'; + +export type WithdrawParams = common.Declasifying; + +export type WithdrawFields = common.Declasifying; + +export type WithdrawLogic = Logic; + +export async function getWithdrawTokenList(chainId: number): Promise { + return getProtocolTokenList(chainId, logics.iolend.WithdrawLogic.rid); +} + +export async function getWithdrawQuotation( + chainId: number, + params: WithdrawParams +): Promise { + return quote(chainId, logics.iolend.WithdrawLogic.rid, params); +} + +export function newWithdrawLogic(fields: WithdrawFields): WithdrawLogic { + return { rid: logics.iolend.WithdrawLogic.rid, fields }; +} diff --git a/packages/api/src/protocols/wagmi/index.ts b/packages/api/src/protocols/wagmi/index.ts new file mode 100644 index 0000000..29d1c04 --- /dev/null +++ b/packages/api/src/protocols/wagmi/index.ts @@ -0,0 +1 @@ +export * from './swap-token'; diff --git a/packages/api/src/protocols/wagmi/swap-token.ts b/packages/api/src/protocols/wagmi/swap-token.ts new file mode 100644 index 0000000..9b8f789 --- /dev/null +++ b/packages/api/src/protocols/wagmi/swap-token.ts @@ -0,0 +1,25 @@ +import { Logic } from 'src/types'; +import * as common from '@protocolink/common'; +import { getProtocolTokenList, quote } from 'src/api'; +import * as logics from '@protocolink/logics'; + +export type SwapTokenParams = common.Declasifying; + +export type SwapTokenFields = common.Declasifying; + +export type SwapTokenLogic = Logic; + +export async function getSwapTokenTokenList(chainId: number): Promise { + return getProtocolTokenList(chainId, logics.wagmi.SwapTokenLogic.rid); +} + +export async function getSwapTokenQuotation( + chainId: number, + params: SwapTokenParams +): Promise { + return quote(chainId, logics.wagmi.SwapTokenLogic.rid, params); +} + +export function newSwapTokenLogic(fields: SwapTokenFields): SwapTokenLogic { + return { rid: logics.wagmi.SwapTokenLogic.rid, fields }; +} diff --git a/yarn.lock b/yarn.lock index 1ce4598..93398c9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1083,10 +1083,10 @@ node-addon-api "^3.2.1" node-gyp-build "^4.3.0" -"@protocolink/logics@^1.7.2": - version "1.7.2" - resolved "https://registry.yarnpkg.com/@protocolink/logics/-/logics-1.7.2.tgz#1594f40c0b293d445d899197a44fbf592c624ae6" - integrity sha512-s+ddfBV/IsyuM1cA3WrAceKRc1p7F2smritniMF2cX0LzKJpARRtW3ysGkYMo5E93Zi0naZE8b0iSkUXIJoo+w== +"@protocolink/logics@^1.7.2", "@protocolink/logics@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@protocolink/logics/-/logics-1.8.0.tgz#346acb4d87ea0249ecba4ee7424da7452c4146e6" + integrity sha512-eke2obRiyIAA8qxmg/WiqgiITBRd4LxQnnr1GmCz4WH+6W+0ddVvPpy+AooIda5LCPMEm1ohw3lhDPpeVKK/1A== dependencies: "@paraswap/sdk" "^6.6.0" "@protocolink/common" "^0.5.4"