@clober/v2-sdk 0.0.55 → 0.0.56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/apis/chart-logs.js +16 -7
- package/dist/cjs/apis/chart-logs.js.map +1 -1
- package/dist/cjs/apis/market.js +13 -14
- package/dist/cjs/apis/market.js.map +1 -1
- package/dist/cjs/apis/open-order.js +16 -16
- package/dist/cjs/apis/open-order.js.map +1 -1
- package/dist/cjs/approval.js +18 -11
- package/dist/cjs/approval.js.map +1 -1
- package/dist/cjs/call.js +59 -41
- package/dist/cjs/call.js.map +1 -1
- package/dist/cjs/constants/subgraph.js +4 -22
- package/dist/cjs/constants/subgraph.js.map +1 -1
- package/dist/cjs/constants/test-chain.js +2 -2
- package/dist/cjs/constants/test-chain.js.map +1 -1
- package/dist/cjs/signature.js +10 -6
- package/dist/cjs/signature.js.map +1 -1
- package/dist/cjs/utils/allowance.js +2 -3
- package/dist/cjs/utils/allowance.js.map +1 -1
- package/dist/cjs/utils/approval.js +2 -3
- package/dist/cjs/utils/approval.js.map +1 -1
- package/dist/cjs/utils/build-transaction.js +3 -4
- package/dist/cjs/utils/build-transaction.js.map +1 -1
- package/dist/cjs/utils/currency.js +8 -9
- package/dist/cjs/utils/currency.js.map +1 -1
- package/dist/cjs/utils/open.js +2 -3
- package/dist/cjs/utils/open.js.map +1 -1
- package/dist/cjs/utils/order.js +5 -7
- package/dist/cjs/utils/order.js.map +1 -1
- package/dist/cjs/utils/unit-size.js +4 -5
- package/dist/cjs/utils/unit-size.js.map +1 -1
- package/dist/cjs/view.js +47 -20
- package/dist/cjs/view.js.map +1 -1
- package/dist/esm/apis/chart-logs.js +17 -8
- package/dist/esm/apis/chart-logs.js.map +1 -1
- package/dist/esm/apis/market.js +14 -15
- package/dist/esm/apis/market.js.map +1 -1
- package/dist/esm/apis/open-order.js +17 -17
- package/dist/esm/apis/open-order.js.map +1 -1
- package/dist/esm/approval.js +17 -12
- package/dist/esm/approval.js.map +1 -1
- package/dist/esm/call.js +53 -42
- package/dist/esm/call.js.map +1 -1
- package/dist/esm/constants/subgraph.js +3 -21
- package/dist/esm/constants/subgraph.js.map +1 -1
- package/dist/esm/constants/test-chain.js +2 -2
- package/dist/esm/constants/test-chain.js.map +1 -1
- package/dist/esm/signature.js +10 -7
- package/dist/esm/signature.js.map +1 -1
- package/dist/esm/utils/allowance.js +2 -3
- package/dist/esm/utils/allowance.js.map +1 -1
- package/dist/esm/utils/approval.js +2 -3
- package/dist/esm/utils/approval.js.map +1 -1
- package/dist/esm/utils/build-transaction.js +3 -4
- package/dist/esm/utils/build-transaction.js.map +1 -1
- package/dist/esm/utils/currency.js +8 -9
- package/dist/esm/utils/currency.js.map +1 -1
- package/dist/esm/utils/open.js +2 -3
- package/dist/esm/utils/open.js.map +1 -1
- package/dist/esm/utils/order.js +6 -8
- package/dist/esm/utils/order.js.map +1 -1
- package/dist/esm/utils/unit-size.js +4 -5
- package/dist/esm/utils/unit-size.js.map +1 -1
- package/dist/esm/view.js +41 -21
- package/dist/esm/view.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/apis/chart-logs.d.ts.map +1 -1
- package/dist/types/apis/market.d.ts +2 -1
- package/dist/types/apis/market.d.ts.map +1 -1
- package/dist/types/apis/open-order.d.ts +4 -3
- package/dist/types/apis/open-order.d.ts.map +1 -1
- package/dist/types/approval.d.ts +2 -2
- package/dist/types/approval.d.ts.map +1 -1
- package/dist/types/call.d.ts +7 -7
- package/dist/types/call.d.ts.map +1 -1
- package/dist/types/constants/subgraph.d.ts +2 -7
- package/dist/types/constants/subgraph.d.ts.map +1 -1
- package/dist/types/signature.d.ts +1 -1
- package/dist/types/signature.d.ts.map +1 -1
- package/dist/types/utils/allowance.d.ts +2 -2
- package/dist/types/utils/allowance.d.ts.map +1 -1
- package/dist/types/utils/approval.d.ts +2 -1
- package/dist/types/utils/approval.d.ts.map +1 -1
- package/dist/types/utils/build-transaction.d.ts +3 -3
- package/dist/types/utils/build-transaction.d.ts.map +1 -1
- package/dist/types/utils/currency.d.ts +3 -2
- package/dist/types/utils/currency.d.ts.map +1 -1
- package/dist/types/utils/open.d.ts +2 -1
- package/dist/types/utils/open.d.ts.map +1 -1
- package/dist/types/utils/order.d.ts +2 -1
- package/dist/types/utils/order.d.ts.map +1 -1
- package/dist/types/utils/unit-size.d.ts +2 -1
- package/dist/types/utils/unit-size.d.ts.map +1 -1
- package/dist/types/view.d.ts +7 -7
- package/dist/types/view.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/cjs/constants/client.js +0 -18
- package/dist/cjs/constants/client.js.map +0 -1
- package/dist/cjs/utils/decorator.js +0 -15
- package/dist/cjs/utils/decorator.js.map +0 -1
- package/dist/esm/constants/client.js +0 -14
- package/dist/esm/constants/client.js.map +0 -1
- package/dist/esm/utils/decorator.js +0 -11
- package/dist/esm/utils/decorator.js.map +0 -1
- package/dist/types/constants/client.d.ts +0 -5
- package/dist/types/constants/client.d.ts.map +0 -1
- package/dist/types/utils/decorator.d.ts +0 -6
- package/dist/types/utils/decorator.d.ts.map +0 -1
|
@@ -18,8 +18,8 @@ const CHART_LOG_INTERVAL_TIMESTAMP = {
|
|
|
18
18
|
[type_1.CHART_LOG_INTERVALS.oneWeek]: 7 * 24 * 60 * 60,
|
|
19
19
|
};
|
|
20
20
|
const PAGE_SIZE = 1000;
|
|
21
|
-
const
|
|
22
|
-
return subgraph_1.
|
|
21
|
+
const getChartLogsFromSubgraph = async ({ chainId, first, skip, marketCode, intervalType, from, to, }) => {
|
|
22
|
+
return subgraph_1.Subgraph.get(chainId, 'getChartLogs', 'query getChartLogs($first: Int!, $skip: Int!, $marketCode: String!, $intervalType: String!, $from: BigInt!, $to: BigInt!) { chartLogs( first: $first, skip: $skip, orderBy: timestamp, orderDirection: desc where: { marketCode: $marketCode, intervalType: $intervalType, timestamp_gte: $from, timestamp_lte: $to, }) { timestamp open high low close baseVolume } }', {
|
|
23
23
|
first,
|
|
24
24
|
from,
|
|
25
25
|
intervalType,
|
|
@@ -28,13 +28,13 @@ const getChartLogs = async ({ chainId, first, skip, marketCode, intervalType, fr
|
|
|
28
28
|
to,
|
|
29
29
|
});
|
|
30
30
|
};
|
|
31
|
-
const
|
|
32
|
-
return subgraph_1.
|
|
31
|
+
const getLatestChartLogFromSubgraph = async ({ chainId, marketCode, }) => {
|
|
32
|
+
return subgraph_1.Subgraph.get(chainId, 'getLatestChartLog', 'query getLatestChartLog($marketCode: String!) { chartLogs( first: 1, orderBy: timestamp, orderDirection: desc where: { marketCode: $marketCode, }) { timestamp open high low close baseVolume } }', {
|
|
33
33
|
marketCode,
|
|
34
34
|
});
|
|
35
35
|
};
|
|
36
36
|
async function fetchLatestChartLog(chainId, marketCode) {
|
|
37
|
-
const { data: { chartLogs }, } = await
|
|
37
|
+
const { data: { chartLogs }, } = await getLatestChartLogFromSubgraph({
|
|
38
38
|
chainId,
|
|
39
39
|
marketCode: marketCode.toLowerCase(),
|
|
40
40
|
});
|
|
@@ -57,11 +57,19 @@ async function fetchLatestChartLog(chainId, marketCode) {
|
|
|
57
57
|
};
|
|
58
58
|
}
|
|
59
59
|
exports.fetchLatestChartLog = fetchLatestChartLog;
|
|
60
|
+
const buildChartCacheKey = (chainId, marketCode, intervalType, from, to) => `${chainId}:${marketCode}:${intervalType}:${from}:${to}`;
|
|
61
|
+
const chartLogsCache = new Map();
|
|
62
|
+
const getChartLogsFromCache = (chainId, marketCode, intervalType, from, to) => chartLogsCache.get(buildChartCacheKey(chainId, marketCode, intervalType, from, to));
|
|
63
|
+
const setChartLogsToCache = (chainId, marketCode, intervalType, from, to, chartLogs) => chartLogsCache.set(buildChartCacheKey(chainId, marketCode, intervalType, from, to), chartLogs);
|
|
60
64
|
async function fetchChartLogs(chainId, marketCode, intervalType, from, to) {
|
|
65
|
+
const cachedChartLogs = getChartLogsFromCache(chainId, marketCode, intervalType, from, to);
|
|
66
|
+
if (cachedChartLogs !== undefined) {
|
|
67
|
+
return cachedChartLogs;
|
|
68
|
+
}
|
|
61
69
|
const chartLogsBetweenFromAndTo = [];
|
|
62
70
|
let skip = 0;
|
|
63
71
|
while (true) {
|
|
64
|
-
const { data: { chartLogs }, } = await
|
|
72
|
+
const { data: { chartLogs }, } = await getChartLogsFromSubgraph({
|
|
65
73
|
chainId,
|
|
66
74
|
first: PAGE_SIZE,
|
|
67
75
|
skip,
|
|
@@ -86,7 +94,7 @@ async function fetchChartLogs(chainId, marketCode, intervalType, from, to) {
|
|
|
86
94
|
skip += PAGE_SIZE;
|
|
87
95
|
}
|
|
88
96
|
chartLogsBetweenFromAndTo.sort((a, b) => Number(a.timestamp) - Number(b.timestamp));
|
|
89
|
-
const { data: { chartLogs: chartLogsBeforeFrom }, } = await
|
|
97
|
+
const { data: { chartLogs: chartLogsBeforeFrom }, } = await getChartLogsFromSubgraph({
|
|
90
98
|
chainId,
|
|
91
99
|
first: 1,
|
|
92
100
|
skip: 0,
|
|
@@ -148,6 +156,7 @@ async function fetchChartLogs(chainId, marketCode, intervalType, from, to) {
|
|
|
148
156
|
}
|
|
149
157
|
timestampForAcc += intervalInNumber;
|
|
150
158
|
}
|
|
159
|
+
setChartLogsToCache(chainId, marketCode, intervalType, from, to, result);
|
|
151
160
|
return result;
|
|
152
161
|
}
|
|
153
162
|
exports.fetchChartLogs = fetchChartLogs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart-logs.js","sourceRoot":"","sources":["../../../src/apis/chart-logs.ts"],"names":[],"mappings":";;;AACA,kCAAuD;AAEvD,
|
|
1
|
+
{"version":3,"file":"chart-logs.js","sourceRoot":"","sources":["../../../src/apis/chart-logs.ts"],"names":[],"mappings":";;;AACA,kCAAuD;AAEvD,oDAAgD;AAEhD,MAAM,4BAA4B,GAE9B;IACF,CAAC,0BAAmB,CAAC,SAAS,CAAC,EAAE,EAAE;IACnC,CAAC,0BAAmB,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE;IAC1C,CAAC,0BAAmB,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE;IACzC,CAAC,0BAAmB,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE;IACzC,CAAC,0BAAmB,CAAC,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE;IAC7C,CAAC,0BAAmB,CAAC,aAAa,CAAC,EAAE,EAAE,GAAG,EAAE;IAC5C,CAAC,0BAAmB,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE;IACtC,CAAC,0BAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE;IAC3C,CAAC,0BAAmB,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE;IAC5C,CAAC,0BAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE;IAC3C,CAAC,0BAAmB,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;IAC1C,CAAC,0BAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;CAChD,CAAA;AAED,MAAM,SAAS,GAAG,IAAI,CAAA;AAEtB,MAAM,wBAAwB,GAAG,KAAK,EAAE,EACtC,OAAO,EACP,KAAK,EACL,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,IAAI,EACJ,EAAE,GASH,EAAE,EAAE;IACH,OAAO,mBAAQ,CAAC,GAAG,CAKjB,OAAO,EACP,cAAc,EACd,wWAAwW,EACxW;QACE,KAAK;QACL,IAAI;QACJ,YAAY;QACZ,UAAU;QACV,IAAI;QACJ,EAAE;KACH,CACF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,6BAA6B,GAAG,KAAK,EAAE,EAC3C,OAAO,EACP,UAAU,GAIX,EAAE,EAAE;IACH,OAAO,mBAAQ,CAAC,GAAG,CAKjB,OAAO,EACP,mBAAmB,EACnB,mMAAmM,EACnM;QACE,UAAU;KACX,CACF,CAAA;AACH,CAAC,CAAA;AAEM,KAAK,UAAU,mBAAmB,CACvC,OAAkB,EAClB,UAAkB;IAElB,MAAM,EACJ,IAAI,EAAE,EAAE,SAAS,EAAE,GACpB,GAAG,MAAM,6BAA6B,CAAC;QACtC,OAAO;QACP,UAAU,EAAE,UAAU,CAAC,WAAW,EAAE;KACrC,CAAC,CAAA;IACF,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC;QACzB,CAAC,CAAC;YACE,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACzC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC/B,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC/B,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC7B,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACjC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;SACxC;QACH,CAAC,CAAC;YACE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;YACpB,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,GAAG;YACT,GAAG,EAAE,GAAG;YACR,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,GAAG;SACZ,CAAA;AACP,CAAC;AA3BD,kDA2BC;AAED,MAAM,kBAAkB,GAAG,CACzB,OAAkB,EAClB,UAAkB,EAClB,YAAiC,EACjC,IAAY,EACZ,EAAU,EACV,EAAE,CAAC,GAAG,OAAO,IAAI,UAAU,IAAI,YAAY,IAAI,IAAI,IAAI,EAAE,EAAE,CAAA;AAC7D,MAAM,cAAc,GAAG,IAAI,GAAG,EAAsB,CAAA;AACpD,MAAM,qBAAqB,GAAG,CAC5B,OAAkB,EAClB,UAAkB,EAClB,YAAiC,EACjC,IAAY,EACZ,EAAU,EACc,EAAE,CAC1B,cAAc,CAAC,GAAG,CAChB,kBAAkB,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC,CAChE,CAAA;AACH,MAAM,mBAAmB,GAAG,CAC1B,OAAkB,EAClB,UAAkB,EAClB,YAAiC,EACjC,IAAY,EACZ,EAAU,EACV,SAAqB,EACrB,EAAE,CACF,cAAc,CAAC,GAAG,CAChB,kBAAkB,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC,EAC/D,SAAS,CACV,CAAA;AAEI,KAAK,UAAU,cAAc,CAClC,OAAkB,EAClB,UAAkB,EAClB,YAAiC,EACjC,IAAY,EACZ,EAAU;IAEV,MAAM,eAAe,GAAG,qBAAqB,CAC3C,OAAO,EACP,UAAU,EACV,YAAY,EACZ,IAAI,EACJ,EAAE,CACH,CAAA;IACD,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,eAAe,CAAA;IACxB,CAAC;IACD,MAAM,yBAAyB,GAAe,EAAE,CAAA;IAChD,IAAI,IAAI,GAAG,CAAC,CAAA;IAEZ,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,EACJ,IAAI,EAAE,EAAE,SAAS,EAAE,GACpB,GAAG,MAAM,wBAAwB,CAAC;YACjC,OAAO;YACP,KAAK,EAAE,SAAS;YAChB,IAAI;YACJ,UAAU,EAAE,UAAU,CAAC,WAAW,EAAE;YACpC,YAAY;YACZ,IAAI;YACJ,EAAE;SACH,CAAC,CAAA;QACF,yBAAyB,CAAC,IAAI,CAC5B,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC5B,OAAO;gBACL,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACrC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC3B,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC3B,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACzB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC7B,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;aACpC,CAAA;QACH,CAAC,CAAC,CACH,CAAA;QACD,IAAI,SAAS,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;YACjC,MAAK;QACP,CAAC;QACD,IAAI,IAAI,SAAS,CAAA;IACnB,CAAC;IACD,yBAAyB,CAAC,IAAI,CAC5B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CACpD,CAAA;IACD,MAAM,EACJ,IAAI,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,GACzC,GAAG,MAAM,wBAAwB,CAAC;QACjC,OAAO;QACP,KAAK,EAAE,CAAC;QACR,IAAI,EAAE,CAAC;QACP,UAAU,EAAE,UAAU,CAAC,WAAW,EAAE;QACpC,YAAY;QACZ,IAAI,EAAE,CAAC;QACP,EAAE,EAAE,IAAI,GAAG,CAAC;KACb,CAAC,CAAA;IACF,IAAI,gBAAgB,GAClB,mBAAmB,CAAC,CAAC,CAAC,KAAK,SAAS;QAClC,CAAC,CAAC;YACE,SAAS,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACnD,IAAI,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACzC,IAAI,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACzC,GAAG,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YACvC,KAAK,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC3C,MAAM,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;SAClD;QACH,CAAC,CAAC;YACE,SAAS,EAAE,EAAE;YACb,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,GAAG;YACT,GAAG,EAAE,GAAG;YACR,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,GAAG;SACZ,CAAA;IACP,MAAM,gBAAgB,GAAG,4BAA4B,CAAC,YAAY,CAAC,CAAA;IACnE,MAAM,mBAAmB,GACvB,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,gBAAgB,CAAC,GAAG,gBAAgB,CAAA;IACxD,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,gBAAgB,CAAC,GAAG,gBAAgB,CAAA;IAE9E,IAAI,eAAe,GAAG,mBAAmB,CAAA;IACzC,IAAI,MAAM,GAAe,EAAE,CAAA;IAC3B,OAAO,eAAe,IAAI,iBAAiB,EAAE,CAAC;QAC5C,MAAM,eAAe,GAAG,yBAAyB,CAAC,IAAI,CACpD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,eAAe,CACvC,CAAA;QAED,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,GAAG;gBACP,GAAG,MAAM;gBACT;oBACE,SAAS,EAAE,eAAe,CAAC,SAAS;oBACpC,IAAI,EAAE,gBAAgB,CAAC,KAAK;oBAC5B,IAAI,EAAE,eAAe,CAAC,IAAI;oBAC1B,GAAG,EAAE,eAAe,CAAC,GAAG;oBACxB,KAAK,EAAE,eAAe,CAAC,KAAK;oBAC5B,MAAM,EAAE,eAAe,CAAC,MAAM;iBAC/B;aACF,CAAA;YACD,gBAAgB,GAAG,eAAe,CAAA;QACpC,CAAC;aAAM,CAAC;YACN,MAAM,GAAG;gBACP,GAAG,MAAM;gBACT;oBACE,SAAS,EAAE,eAAe;oBAC1B,IAAI,EAAE,gBAAgB,CAAC,KAAK;oBAC5B,IAAI,EAAE,gBAAgB,CAAC,KAAK;oBAC5B,GAAG,EAAE,gBAAgB,CAAC,KAAK;oBAC3B,KAAK,EAAE,gBAAgB,CAAC,KAAK;oBAC7B,MAAM,EAAE,GAAG;iBACZ;aACF,CAAA;QACH,CAAC;QAED,eAAe,IAAI,gBAAgB,CAAA;IACrC,CAAC;IACD,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IACxE,OAAO,MAAM,CAAA;AACf,CAAC;AA5HD,wCA4HC"}
|
package/dist/cjs/apis/market.js
CHANGED
|
@@ -7,21 +7,20 @@ const market_2 = require("../utils/market");
|
|
|
7
7
|
const book_id_1 = require("../utils/book-id");
|
|
8
8
|
const unit_size_1 = require("../utils/unit-size");
|
|
9
9
|
const addresses_1 = require("../constants/addresses");
|
|
10
|
-
const client_1 = require("../constants/client");
|
|
11
10
|
const book_viewer_abi_1 = require("../abis/core/book-viewer-abi");
|
|
12
11
|
const open_1 = require("../utils/open");
|
|
13
12
|
const currency_1 = require("../utils/currency");
|
|
14
13
|
const subgraph_1 = require("../constants/subgraph");
|
|
15
|
-
const
|
|
16
|
-
return subgraph_1.
|
|
14
|
+
const fetchBookFromSubgraph = async (chainId, bookId) => {
|
|
15
|
+
return subgraph_1.Subgraph.get(chainId, 'getBook', 'query getBook($bookId: ID!) { book(id: $bookId){ depths { tick unitAmount } } }', {
|
|
17
16
|
bookId,
|
|
18
17
|
});
|
|
19
18
|
};
|
|
20
|
-
const getBook = async (chainId, quoteCurrency, baseCurrency, n) => {
|
|
21
|
-
const unitSize = await (0, unit_size_1.calculateUnitSize)(chainId, quoteCurrency);
|
|
19
|
+
const getBook = async (publicClient, chainId, quoteCurrency, baseCurrency, useSubgraph, n) => {
|
|
20
|
+
const unitSize = await (0, unit_size_1.calculateUnitSize)(publicClient, chainId, quoteCurrency);
|
|
22
21
|
const bookId = (0, book_id_1.toBookId)(chainId, quoteCurrency.address, baseCurrency.address, unitSize);
|
|
23
|
-
if (
|
|
24
|
-
const { data: { book }, } = await
|
|
22
|
+
if (useSubgraph) {
|
|
23
|
+
const { data: { book }, } = await fetchBookFromSubgraph(chainId, bookId.toString());
|
|
25
24
|
new book_1.Book({
|
|
26
25
|
chainId,
|
|
27
26
|
id: bookId,
|
|
@@ -38,13 +37,13 @@ const getBook = async (chainId, quoteCurrency, baseCurrency, n) => {
|
|
|
38
37
|
});
|
|
39
38
|
}
|
|
40
39
|
const [depths, isOpened] = await Promise.all([
|
|
41
|
-
|
|
40
|
+
publicClient.readContract({
|
|
42
41
|
address: addresses_1.CONTRACT_ADDRESSES[chainId].BookViewer,
|
|
43
42
|
abi: book_viewer_abi_1.BOOK_VIEWER_ABI,
|
|
44
43
|
functionName: 'getLiquidity',
|
|
45
44
|
args: [bookId, Number(2n ** 19n - 1n), BigInt(n)],
|
|
46
45
|
}),
|
|
47
|
-
(0, open_1.fetchIsOpened)(chainId, bookId),
|
|
46
|
+
(0, open_1.fetchIsOpened)(publicClient, chainId, bookId),
|
|
48
47
|
]);
|
|
49
48
|
return new book_1.Book({
|
|
50
49
|
chainId,
|
|
@@ -59,7 +58,7 @@ const getBook = async (chainId, quoteCurrency, baseCurrency, n) => {
|
|
|
59
58
|
isOpened,
|
|
60
59
|
});
|
|
61
60
|
};
|
|
62
|
-
async function fetchMarket(chainId, tokenAddresses, n = 100) {
|
|
61
|
+
async function fetchMarket(publicClient, chainId, tokenAddresses, useSubgraph, n = 100) {
|
|
63
62
|
if (tokenAddresses.length !== 2) {
|
|
64
63
|
throw new Error('Invalid token pair');
|
|
65
64
|
}
|
|
@@ -68,12 +67,12 @@ async function fetchMarket(chainId, tokenAddresses, n = 100) {
|
|
|
68
67
|
tokenAddresses[1],
|
|
69
68
|
]);
|
|
70
69
|
const [quoteCurrency, baseCurrency] = await Promise.all([
|
|
71
|
-
(0, currency_1.fetchCurrency)(chainId, quoteTokenAddress),
|
|
72
|
-
(0, currency_1.fetchCurrency)(chainId, baseTokenAddress),
|
|
70
|
+
(0, currency_1.fetchCurrency)(publicClient, chainId, quoteTokenAddress),
|
|
71
|
+
(0, currency_1.fetchCurrency)(publicClient, chainId, baseTokenAddress),
|
|
73
72
|
]);
|
|
74
73
|
const [bidBook, askBook] = await Promise.all([
|
|
75
|
-
getBook(chainId, quoteCurrency, baseCurrency, n),
|
|
76
|
-
getBook(chainId, baseCurrency, quoteCurrency, n),
|
|
74
|
+
getBook(publicClient, chainId, quoteCurrency, baseCurrency, useSubgraph, n),
|
|
75
|
+
getBook(publicClient, chainId, baseCurrency, quoteCurrency, useSubgraph, n),
|
|
77
76
|
]);
|
|
78
77
|
return new market_1.Market({
|
|
79
78
|
chainId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"market.js","sourceRoot":"","sources":["../../../src/apis/market.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"market.js","sourceRoot":"","sources":["../../../src/apis/market.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,23 +10,23 @@ const currency_1 = require("../utils/currency");
|
|
|
10
10
|
const bigint_1 = require("../utils/bigint");
|
|
11
11
|
const fee_1 = require("../constants/fee");
|
|
12
12
|
const subgraph_1 = require("../constants/subgraph");
|
|
13
|
-
const
|
|
14
|
-
return subgraph_1.
|
|
13
|
+
const getOpenOrderFromSubgraph = async (chainId, orderId) => {
|
|
14
|
+
return subgraph_1.Subgraph.get(chainId, 'getOpenOrder', 'query getOpenOrder($orderId: ID!) { openOrder(id: $orderId) { id user book { id base { id name symbol decimals } quote { id name symbol decimals } unitSize } tick txHash createdAt unitAmount unitFilledAmount unitClaimedAmount unitClaimableAmount orderIndex } }', {
|
|
15
15
|
orderId,
|
|
16
16
|
});
|
|
17
17
|
};
|
|
18
|
-
const
|
|
19
|
-
return subgraph_1.
|
|
18
|
+
const getOpenOrdersFromSubgraph = async (chainId, orderIds) => {
|
|
19
|
+
return subgraph_1.Subgraph.get(chainId, 'getOpenOrders', 'query getOpenOrders($orderIds: [ID!]!) { openOrders(where: {id_in: $orderIds}) { id user book { id base { id name symbol decimals } quote { id name symbol decimals } unitSize } tick txHash createdAt unitAmount unitFilledAmount unitClaimedAmount unitClaimableAmount orderIndex } }', {
|
|
20
20
|
orderIds,
|
|
21
21
|
});
|
|
22
22
|
};
|
|
23
|
-
const
|
|
24
|
-
return subgraph_1.
|
|
23
|
+
const getOpenOrdersByUserAddressFromSubgraph = async (chainId, userAddress) => {
|
|
24
|
+
return subgraph_1.Subgraph.get(chainId, 'getOpenOrdersByUserAddress', 'query getOpenOrdersByUserAddress($userAddress: String!) { openOrders(where: { user: $userAddress }) { id user book { id base { id name symbol decimals } quote { id name symbol decimals } unitSize } tick txHash createdAt unitAmount unitFilledAmount unitClaimedAmount unitClaimableAmount orderIndex } }', {
|
|
25
25
|
userAddress: userAddress.toLowerCase(),
|
|
26
26
|
});
|
|
27
27
|
};
|
|
28
|
-
async function fetchOpenOrdersByUserAddress(chainId, userAddress) {
|
|
29
|
-
const { data: { openOrders }, } = await
|
|
28
|
+
async function fetchOpenOrdersByUserAddress(publicClient, chainId, userAddress) {
|
|
29
|
+
const { data: { openOrders }, } = await getOpenOrdersByUserAddressFromSubgraph(chainId, userAddress);
|
|
30
30
|
const currencies = await Promise.all(openOrders
|
|
31
31
|
.map((openOrder) => [
|
|
32
32
|
(0, viem_1.getAddress)(openOrder.book.base.id),
|
|
@@ -34,24 +34,24 @@ async function fetchOpenOrdersByUserAddress(chainId, userAddress) {
|
|
|
34
34
|
])
|
|
35
35
|
.flat()
|
|
36
36
|
.filter((address, index, self) => self.findIndex((c) => (0, viem_1.isAddressEqual)(c, address)) === index)
|
|
37
|
-
.map((address) => (0, currency_1.fetchCurrency)(chainId, address)));
|
|
37
|
+
.map((address) => (0, currency_1.fetchCurrency)(publicClient, chainId, address)));
|
|
38
38
|
return openOrders.map((openOrder) => toOpenOrder(chainId, currencies, openOrder));
|
|
39
39
|
}
|
|
40
40
|
exports.fetchOpenOrdersByUserAddress = fetchOpenOrdersByUserAddress;
|
|
41
|
-
async function fetchOpenOrder(chainId, id) {
|
|
42
|
-
const { data: { openOrder }, } = await
|
|
41
|
+
async function fetchOpenOrder(publicClient, chainId, id) {
|
|
42
|
+
const { data: { openOrder }, } = await getOpenOrderFromSubgraph(chainId, id);
|
|
43
43
|
if (!openOrder) {
|
|
44
44
|
throw new Error(`Open order not found: ${id}`);
|
|
45
45
|
}
|
|
46
46
|
const currencies = await Promise.all([
|
|
47
|
-
(0, currency_1.fetchCurrency)(chainId, (0, viem_1.getAddress)(openOrder.book.base.id)),
|
|
48
|
-
(0, currency_1.fetchCurrency)(chainId, (0, viem_1.getAddress)(openOrder.book.quote.id)),
|
|
47
|
+
(0, currency_1.fetchCurrency)(publicClient, chainId, (0, viem_1.getAddress)(openOrder.book.base.id)),
|
|
48
|
+
(0, currency_1.fetchCurrency)(publicClient, chainId, (0, viem_1.getAddress)(openOrder.book.quote.id)),
|
|
49
49
|
]);
|
|
50
50
|
return toOpenOrder(chainId, currencies, openOrder);
|
|
51
51
|
}
|
|
52
52
|
exports.fetchOpenOrder = fetchOpenOrder;
|
|
53
|
-
async function fetchOpenOrders(chainId, ids) {
|
|
54
|
-
const { data: { openOrders }, } = await
|
|
53
|
+
async function fetchOpenOrders(publicClient, chainId, ids) {
|
|
54
|
+
const { data: { openOrders }, } = await getOpenOrdersFromSubgraph(chainId, ids);
|
|
55
55
|
const currencies = await Promise.all(openOrders
|
|
56
56
|
.map((openOrder) => [
|
|
57
57
|
(0, viem_1.getAddress)(openOrder.book.base.id),
|
|
@@ -59,7 +59,7 @@ async function fetchOpenOrders(chainId, ids) {
|
|
|
59
59
|
])
|
|
60
60
|
.flat()
|
|
61
61
|
.filter((address, index, self) => self.findIndex((c) => (0, viem_1.isAddressEqual)(c, address)) === index)
|
|
62
|
-
.map((address) => (0, currency_1.fetchCurrency)(chainId, address)));
|
|
62
|
+
.map((address) => (0, currency_1.fetchCurrency)(publicClient, chainId, address)));
|
|
63
63
|
return openOrders.map((openOrder) => toOpenOrder(chainId, currencies, openOrder));
|
|
64
64
|
}
|
|
65
65
|
exports.fetchOpenOrders = fetchOpenOrders;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-order.js","sourceRoot":"","sources":["../../../src/apis/open-order.ts"],"names":[],"mappings":";;;AAAA,+
|
|
1
|
+
{"version":3,"file":"open-order.js","sourceRoot":"","sources":["../../../src/apis/open-order.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/approval.js
CHANGED
|
@@ -5,14 +5,17 @@ const viem_1 = require("viem");
|
|
|
5
5
|
const chain_1 = require("./constants/chain");
|
|
6
6
|
const addresses_1 = require("./constants/addresses");
|
|
7
7
|
const approval_1 = require("./utils/approval");
|
|
8
|
-
const decorator_1 = require("./utils/decorator");
|
|
9
8
|
const allowance_1 = require("./utils/allowance");
|
|
10
9
|
const currency_1 = require("./utils/currency");
|
|
11
|
-
|
|
10
|
+
const setApprovalOfOpenOrdersForAll = async ({ chainId, walletClient, options, }) => {
|
|
12
11
|
if (!walletClient.account) {
|
|
13
12
|
throw new Error('Account is not found');
|
|
14
13
|
}
|
|
15
|
-
const
|
|
14
|
+
const publicClient = (0, viem_1.createPublicClient)({
|
|
15
|
+
chain: chain_1.CHAIN_MAP[chainId],
|
|
16
|
+
transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
|
|
17
|
+
});
|
|
18
|
+
const isApprovedForAll = await (0, approval_1.fetchIsApprovedForAll)(publicClient, chainId, walletClient.account.address);
|
|
16
19
|
if (isApprovedForAll) {
|
|
17
20
|
return undefined;
|
|
18
21
|
}
|
|
@@ -43,18 +46,21 @@ exports.setApprovalOfOpenOrdersForAll = (0, decorator_1.decorator)(async ({ chai
|
|
|
43
46
|
functionName: 'setApprovalForAll',
|
|
44
47
|
args: [addresses_1.CONTRACT_ADDRESSES[chainId].Controller, true],
|
|
45
48
|
});
|
|
46
|
-
}
|
|
47
|
-
exports.
|
|
49
|
+
};
|
|
50
|
+
exports.setApprovalOfOpenOrdersForAll = setApprovalOfOpenOrdersForAll;
|
|
51
|
+
const approveERC20 = async ({ chainId, walletClient, token, amount, options, }) => {
|
|
48
52
|
if (!walletClient.account) {
|
|
49
53
|
throw new Error('Account is not found');
|
|
50
54
|
}
|
|
55
|
+
const publicClient = (0, viem_1.createPublicClient)({
|
|
56
|
+
chain: chain_1.CHAIN_MAP[chainId],
|
|
57
|
+
transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
|
|
58
|
+
});
|
|
51
59
|
const [currency, allowance] = await Promise.all([
|
|
52
|
-
(0, currency_1.fetchCurrency)(chainId, token),
|
|
53
|
-
(0, allowance_1.fetchAllowance)(
|
|
60
|
+
(0, currency_1.fetchCurrency)(publicClient, chainId, token),
|
|
61
|
+
(0, allowance_1.fetchAllowance)(publicClient, token, walletClient.account.address, addresses_1.CONTRACT_ADDRESSES[chainId].Controller),
|
|
54
62
|
]);
|
|
55
|
-
const value = amount
|
|
56
|
-
? (0, viem_1.parseUnits)(amount, currency.decimals)
|
|
57
|
-
: 2n ** 256n - 1n;
|
|
63
|
+
const value = amount ? (0, viem_1.parseUnits)(amount, currency.decimals) : 2n ** 256n - 1n;
|
|
58
64
|
if (allowance >= value) {
|
|
59
65
|
return undefined;
|
|
60
66
|
}
|
|
@@ -91,5 +97,6 @@ exports.approveERC20 = (0, decorator_1.decorator)(async ({ chainId, walletClient
|
|
|
91
97
|
functionName: 'approve',
|
|
92
98
|
args: [addresses_1.CONTRACT_ADDRESSES[chainId].Controller, value],
|
|
93
99
|
});
|
|
94
|
-
}
|
|
100
|
+
};
|
|
101
|
+
exports.approveERC20 = approveERC20;
|
|
95
102
|
//# sourceMappingURL=approval.js.map
|
package/dist/cjs/approval.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approval.js","sourceRoot":"","sources":["../../src/approval.ts"],"names":[],"mappings":";;;AAAA,+
|
|
1
|
+
{"version":3,"file":"approval.js","sourceRoot":"","sources":["../../src/approval.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/call.js
CHANGED
|
@@ -15,16 +15,19 @@ const tick_1 = require("./utils/tick");
|
|
|
15
15
|
const view_1 = require("./view");
|
|
16
16
|
const book_id_1 = require("./utils/book-id");
|
|
17
17
|
const approval_1 = require("./utils/approval");
|
|
18
|
-
const decorator_1 = require("./utils/decorator");
|
|
19
18
|
const order_1 = require("./utils/order");
|
|
20
19
|
const bigint_1 = require("./utils/bigint");
|
|
21
|
-
|
|
22
|
-
const
|
|
20
|
+
const openMarket = async ({ chainId, userAddress, inputToken, outputToken, options, }) => {
|
|
21
|
+
const publicClient = (0, viem_1.createPublicClient)({
|
|
22
|
+
chain: chain_1.CHAIN_MAP[chainId],
|
|
23
|
+
transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
|
|
24
|
+
});
|
|
25
|
+
const market = await (0, market_1.fetchMarket)(publicClient, chainId, [inputToken, outputToken], !!(options && options.useSubgraph));
|
|
23
26
|
const isBid = (0, viem_1.isAddressEqual)(market.quote.address, inputToken);
|
|
24
27
|
if ((isBid && !market.bidBook.isOpened) ||
|
|
25
28
|
(!isBid && !market.askBook.isOpened)) {
|
|
26
|
-
const unitSize = await (0, unit_size_1.calculateUnitSize)(chainId, isBid ? market.quote : market.base);
|
|
27
|
-
return (0, build_transaction_1.buildTransaction)(
|
|
29
|
+
const unitSize = await (0, unit_size_1.calculateUnitSize)(publicClient, chainId, isBid ? market.quote : market.base);
|
|
30
|
+
return (0, build_transaction_1.buildTransaction)(publicClient, {
|
|
28
31
|
chain: chain_1.CHAIN_MAP[chainId],
|
|
29
32
|
address: addresses_1.CONTRACT_ADDRESSES[chainId].Controller,
|
|
30
33
|
account: userAddress,
|
|
@@ -49,15 +52,20 @@ exports.openMarket = (0, decorator_1.decorator)(async ({ chainId, userAddress, i
|
|
|
49
52
|
}, options?.gasLimit);
|
|
50
53
|
}
|
|
51
54
|
return undefined;
|
|
52
|
-
}
|
|
53
|
-
exports.
|
|
55
|
+
};
|
|
56
|
+
exports.openMarket = openMarket;
|
|
57
|
+
const limitOrder = async ({ chainId, userAddress, inputToken, outputToken, amount, price, options, }) => {
|
|
54
58
|
const [roundingUpMakeBid, roundingDownMakeAsk, roundingDownTakenBid, roundingUpTakenAsk,] = [
|
|
55
59
|
options?.roundingUpMakeBid ? options.roundingUpMakeBid : false,
|
|
56
60
|
options?.roundingDownMakeAsk ? options.roundingDownMakeAsk : false,
|
|
57
61
|
options?.roundingDownTakenBid ? options.roundingDownTakenBid : false,
|
|
58
62
|
options?.roundingUpTakenAsk ? options.roundingUpTakenAsk : false,
|
|
59
63
|
];
|
|
60
|
-
const
|
|
64
|
+
const publicClient = (0, viem_1.createPublicClient)({
|
|
65
|
+
chain: chain_1.CHAIN_MAP[chainId],
|
|
66
|
+
transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
|
|
67
|
+
});
|
|
68
|
+
const market = await (0, market_1.fetchMarket)(publicClient, chainId, [inputToken, outputToken], !!(options && options.useSubgraph));
|
|
61
69
|
const isBid = (0, viem_1.isAddressEqual)(market.quote.address, inputToken);
|
|
62
70
|
const [inputCurrency, outputCurrency] = isBid
|
|
63
71
|
? [market.quote, market.base]
|
|
@@ -79,7 +87,7 @@ exports.limitOrder = (0, decorator_1.decorator)(async ({ chainId, userAddress, i
|
|
|
79
87
|
const tokensToSettle = [inputToken, outputToken].filter((address) => !(0, viem_1.isAddressEqual)(address, viem_1.zeroAddress));
|
|
80
88
|
const quoteAmount = (0, viem_1.parseUnits)(amount, inputCurrency.decimals);
|
|
81
89
|
const [unitSize, { takenAmount, spentAmount, bookId, events }] = await Promise.all([
|
|
82
|
-
(0, unit_size_1.calculateUnitSize)(chainId, inputCurrency),
|
|
90
|
+
(0, unit_size_1.calculateUnitSize)(publicClient, chainId, inputCurrency),
|
|
83
91
|
(0, view_1.getExpectedOutput)({
|
|
84
92
|
chainId,
|
|
85
93
|
inputToken,
|
|
@@ -106,7 +114,7 @@ exports.limitOrder = (0, decorator_1.decorator)(async ({ chainId, userAddress, i
|
|
|
106
114
|
};
|
|
107
115
|
if (options?.postOnly === true || spentAmount === '0') {
|
|
108
116
|
return {
|
|
109
|
-
transaction: await (0, build_transaction_1.buildTransaction)(
|
|
117
|
+
transaction: await (0, build_transaction_1.buildTransaction)(publicClient, {
|
|
110
118
|
chain: chain_1.CHAIN_MAP[chainId],
|
|
111
119
|
account: userAddress,
|
|
112
120
|
address: addresses_1.CONTRACT_ADDRESSES[chainId].Controller,
|
|
@@ -146,7 +154,7 @@ exports.limitOrder = (0, decorator_1.decorator)(async ({ chainId, userAddress, i
|
|
|
146
154
|
}
|
|
147
155
|
else {
|
|
148
156
|
return {
|
|
149
|
-
transaction: await (0, build_transaction_1.buildTransaction)(
|
|
157
|
+
transaction: await (0, build_transaction_1.buildTransaction)(publicClient, {
|
|
150
158
|
chain: chain_1.CHAIN_MAP[chainId],
|
|
151
159
|
account: userAddress,
|
|
152
160
|
address: addresses_1.CONTRACT_ADDRESSES[chainId].Controller,
|
|
@@ -208,15 +216,20 @@ exports.limitOrder = (0, decorator_1.decorator)(async ({ chainId, userAddress, i
|
|
|
208
216
|
},
|
|
209
217
|
};
|
|
210
218
|
}
|
|
211
|
-
}
|
|
212
|
-
exports.
|
|
219
|
+
};
|
|
220
|
+
exports.limitOrder = limitOrder;
|
|
221
|
+
const marketOrder = async ({ chainId, userAddress, inputToken, outputToken, amountIn, amountOut, options, }) => {
|
|
213
222
|
if (!amountIn && !amountOut) {
|
|
214
223
|
throw new Error('Either amountIn or amountOut must be provided');
|
|
215
224
|
}
|
|
216
225
|
else if (amountIn && amountOut) {
|
|
217
226
|
throw new Error('Only one of amountIn or amountOut can be provided');
|
|
218
227
|
}
|
|
219
|
-
const
|
|
228
|
+
const publicClient = (0, viem_1.createPublicClient)({
|
|
229
|
+
chain: chain_1.CHAIN_MAP[chainId],
|
|
230
|
+
transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
|
|
231
|
+
});
|
|
232
|
+
const market = await (0, market_1.fetchMarket)(publicClient, chainId, [inputToken, outputToken], !!(options && options.useSubgraph));
|
|
220
233
|
const isTakingBid = (0, viem_1.isAddressEqual)(market.base.address, inputToken);
|
|
221
234
|
const [inputCurrency, outputCurrency] = isTakingBid
|
|
222
235
|
? [market.base, market.quote]
|
|
@@ -248,7 +261,7 @@ exports.marketOrder = (0, decorator_1.decorator)(async ({ chainId, userAddress,
|
|
|
248
261
|
});
|
|
249
262
|
const baseAmount = (0, viem_1.parseUnits)(amountIn, inputCurrency.decimals);
|
|
250
263
|
return {
|
|
251
|
-
transaction: await (0, build_transaction_1.buildTransaction)(
|
|
264
|
+
transaction: await (0, build_transaction_1.buildTransaction)(publicClient, {
|
|
252
265
|
chain: chain_1.CHAIN_MAP[chainId],
|
|
253
266
|
account: userAddress,
|
|
254
267
|
address: addresses_1.CONTRACT_ADDRESSES[chainId].Controller,
|
|
@@ -313,7 +326,7 @@ exports.marketOrder = (0, decorator_1.decorator)(async ({ chainId, userAddress,
|
|
|
313
326
|
? baseAmount
|
|
314
327
|
: 2n ** 256n - 1n);
|
|
315
328
|
return {
|
|
316
|
-
transaction: await (0, build_transaction_1.buildTransaction)(
|
|
329
|
+
transaction: await (0, build_transaction_1.buildTransaction)(publicClient, {
|
|
317
330
|
chain: chain_1.CHAIN_MAP[chainId],
|
|
318
331
|
account: userAddress,
|
|
319
332
|
address: addresses_1.CONTRACT_ADDRESSES[chainId].Controller,
|
|
@@ -360,8 +373,9 @@ exports.marketOrder = (0, decorator_1.decorator)(async ({ chainId, userAddress,
|
|
|
360
373
|
else {
|
|
361
374
|
throw new Error('Either amountIn or amountOut must be provided');
|
|
362
375
|
}
|
|
363
|
-
}
|
|
364
|
-
exports.
|
|
376
|
+
};
|
|
377
|
+
exports.marketOrder = marketOrder;
|
|
378
|
+
const claimOrder = async ({ chainId, userAddress, id, options, }) => {
|
|
365
379
|
const { transaction, result } = await (0, exports.claimOrders)({
|
|
366
380
|
chainId,
|
|
367
381
|
userAddress,
|
|
@@ -372,9 +386,14 @@ exports.claimOrder = (0, decorator_1.decorator)(async ({ chainId, userAddress, i
|
|
|
372
386
|
transaction,
|
|
373
387
|
result: result[0],
|
|
374
388
|
};
|
|
375
|
-
}
|
|
376
|
-
exports.
|
|
377
|
-
|
|
389
|
+
};
|
|
390
|
+
exports.claimOrder = claimOrder;
|
|
391
|
+
const claimOrders = async ({ chainId, userAddress, ids, options, }) => {
|
|
392
|
+
const publicClient = (0, viem_1.createPublicClient)({
|
|
393
|
+
chain: chain_1.CHAIN_MAP[chainId],
|
|
394
|
+
transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
|
|
395
|
+
});
|
|
396
|
+
const isApprovedForAll = await (0, approval_1.fetchIsApprovedForAll)(publicClient, chainId, userAddress);
|
|
378
397
|
if (!isApprovedForAll) {
|
|
379
398
|
throw new Error(`
|
|
380
399
|
Set ApprovalForAll before calling this function.
|
|
@@ -386,18 +405,14 @@ exports.claimOrders = (0, decorator_1.decorator)(async ({ chainId, userAddress,
|
|
|
386
405
|
})
|
|
387
406
|
`);
|
|
388
407
|
}
|
|
389
|
-
const orders = (await (0, order_1.fetchOrders)(chainId, ids.map((id) => BigInt(id)))).filter((order) => (0, viem_1.isAddressEqual)(order.user, userAddress) &&
|
|
390
|
-
order.claimable.value !== '0');
|
|
408
|
+
const orders = (await (0, order_1.fetchOrders)(publicClient, chainId, ids.map((id) => BigInt(id)), !!(options && options.useSubgraph))).filter((order) => (0, viem_1.isAddressEqual)(order.user, userAddress) && order.claimable.value !== '0');
|
|
391
409
|
const tokensToSettle = orders
|
|
392
|
-
.map((order) => [
|
|
393
|
-
order.inputCurrency.address,
|
|
394
|
-
order.outputCurrency.address,
|
|
395
|
-
])
|
|
410
|
+
.map((order) => [order.inputCurrency.address, order.outputCurrency.address])
|
|
396
411
|
.flat()
|
|
397
412
|
.filter((address, index, self) => self.findIndex((c) => (0, viem_1.isAddressEqual)(c, address)) === index)
|
|
398
413
|
.filter((address) => !(0, viem_1.isAddressEqual)(address, viem_1.zeroAddress));
|
|
399
414
|
return {
|
|
400
|
-
transaction: await (0, build_transaction_1.buildTransaction)(
|
|
415
|
+
transaction: await (0, build_transaction_1.buildTransaction)(publicClient, {
|
|
401
416
|
chain: chain_1.CHAIN_MAP[chainId],
|
|
402
417
|
account: userAddress,
|
|
403
418
|
address: addresses_1.CONTRACT_ADDRESSES[chainId].Controller,
|
|
@@ -422,8 +437,9 @@ exports.claimOrders = (0, decorator_1.decorator)(async ({ chainId, userAddress,
|
|
|
422
437
|
return acc;
|
|
423
438
|
}, []),
|
|
424
439
|
};
|
|
425
|
-
}
|
|
426
|
-
exports.
|
|
440
|
+
};
|
|
441
|
+
exports.claimOrders = claimOrders;
|
|
442
|
+
const cancelOrder = async ({ chainId, userAddress, id, options, }) => {
|
|
427
443
|
const { transaction, result } = await (0, exports.cancelOrders)({
|
|
428
444
|
chainId,
|
|
429
445
|
userAddress,
|
|
@@ -434,9 +450,14 @@ exports.cancelOrder = (0, decorator_1.decorator)(async ({ chainId, userAddress,
|
|
|
434
450
|
transaction,
|
|
435
451
|
result: result[0],
|
|
436
452
|
};
|
|
437
|
-
}
|
|
438
|
-
exports.
|
|
439
|
-
|
|
453
|
+
};
|
|
454
|
+
exports.cancelOrder = cancelOrder;
|
|
455
|
+
const cancelOrders = async ({ chainId, userAddress, ids, options, }) => {
|
|
456
|
+
const publicClient = (0, viem_1.createPublicClient)({
|
|
457
|
+
chain: chain_1.CHAIN_MAP[chainId],
|
|
458
|
+
transport: options?.rpcUrl ? (0, viem_1.http)(options.rpcUrl) : (0, viem_1.http)(),
|
|
459
|
+
});
|
|
460
|
+
const isApprovedForAll = await (0, approval_1.fetchIsApprovedForAll)(publicClient, chainId, userAddress);
|
|
440
461
|
if (!isApprovedForAll) {
|
|
441
462
|
throw new Error(`
|
|
442
463
|
Set ApprovalForAll before calling this function.
|
|
@@ -448,18 +469,14 @@ exports.cancelOrders = (0, decorator_1.decorator)(async ({ chainId, userAddress,
|
|
|
448
469
|
})
|
|
449
470
|
`);
|
|
450
471
|
}
|
|
451
|
-
const orders = (await (0, order_1.fetchOrders)(chainId, ids.map((id) => BigInt(id)))).filter((order) => (0, viem_1.isAddressEqual)(order.user, userAddress) &&
|
|
452
|
-
order.cancelable.value !== '0');
|
|
472
|
+
const orders = (await (0, order_1.fetchOrders)(publicClient, chainId, ids.map((id) => BigInt(id)), !!(options && options.useSubgraph))).filter((order) => (0, viem_1.isAddressEqual)(order.user, userAddress) && order.cancelable.value !== '0');
|
|
453
473
|
const tokensToSettle = orders
|
|
454
|
-
.map((order) => [
|
|
455
|
-
order.inputCurrency.address,
|
|
456
|
-
order.outputCurrency.address,
|
|
457
|
-
])
|
|
474
|
+
.map((order) => [order.inputCurrency.address, order.outputCurrency.address])
|
|
458
475
|
.flat()
|
|
459
476
|
.filter((address, index, self) => self.findIndex((c) => (0, viem_1.isAddressEqual)(c, address)) === index)
|
|
460
477
|
.filter((address) => !(0, viem_1.isAddressEqual)(address, viem_1.zeroAddress));
|
|
461
478
|
return {
|
|
462
|
-
transaction: await (0, build_transaction_1.buildTransaction)(
|
|
479
|
+
transaction: await (0, build_transaction_1.buildTransaction)(publicClient, {
|
|
463
480
|
chain: chain_1.CHAIN_MAP[chainId],
|
|
464
481
|
account: userAddress,
|
|
465
482
|
address: addresses_1.CONTRACT_ADDRESSES[chainId].Controller,
|
|
@@ -485,5 +502,6 @@ exports.cancelOrders = (0, decorator_1.decorator)(async ({ chainId, userAddress,
|
|
|
485
502
|
return acc;
|
|
486
503
|
}, []),
|
|
487
504
|
};
|
|
488
|
-
}
|
|
505
|
+
};
|
|
506
|
+
exports.cancelOrders = cancelOrders;
|
|
489
507
|
//# sourceMappingURL=call.js.map
|