@reyaxyz/sdk 0.1.0
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/LICENSE.md +1 -0
- package/README.md +10 -0
- package/dist/abis/AccountModule.json +1079 -0
- package/dist/abis/ExecutionModule.json +758 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/services/encode.js +37 -0
- package/dist/services/encode.js.map +1 -0
- package/dist/services/executeTransaction.js +110 -0
- package/dist/services/executeTransaction.js.map +1 -0
- package/dist/services/lp/encode.js +29 -0
- package/dist/services/lp/encode.js.map +1 -0
- package/dist/services/lp/lp.js +70 -0
- package/dist/services/lp/lp.js.map +1 -0
- package/dist/services/lp/types.js +3 -0
- package/dist/services/lp/types.js.map +1 -0
- package/dist/services/margin-accounts/account.js +56 -0
- package/dist/services/margin-accounts/account.js.map +1 -0
- package/dist/services/margin-accounts/deposit.js +56 -0
- package/dist/services/margin-accounts/deposit.js.map +1 -0
- package/dist/services/margin-accounts/encode.js +43 -0
- package/dist/services/margin-accounts/encode.js.map +1 -0
- package/dist/services/margin-accounts/types.js +3 -0
- package/dist/services/margin-accounts/types.js.map +1 -0
- package/dist/services/margin-accounts/withdraw.js +56 -0
- package/dist/services/margin-accounts/withdraw.js.map +1 -0
- package/dist/services/orders/encode.js +25 -0
- package/dist/services/orders/encode.js.map +1 -0
- package/dist/services/orders/order.js +56 -0
- package/dist/services/orders/order.js.map +1 -0
- package/dist/services/orders/types.js +3 -0
- package/dist/services/orders/types.js.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/services/encode.d.ts +6 -0
- package/dist/types/services/encode.d.ts.map +1 -0
- package/dist/types/services/executeTransaction.d.ts +12 -0
- package/dist/types/services/executeTransaction.d.ts.map +1 -0
- package/dist/types/services/lp/encode.d.ts +4 -0
- package/dist/types/services/lp/encode.d.ts.map +1 -0
- package/dist/types/services/lp/lp.d.ts +4 -0
- package/dist/types/services/lp/lp.d.ts.map +1 -0
- package/dist/types/services/lp/types.d.ts +17 -0
- package/dist/types/services/lp/types.d.ts.map +1 -0
- package/dist/types/services/margin-accounts/account.d.ts +3 -0
- package/dist/types/services/margin-accounts/account.d.ts.map +1 -0
- package/dist/types/services/margin-accounts/deposit.d.ts +3 -0
- package/dist/types/services/margin-accounts/deposit.d.ts.map +1 -0
- package/dist/types/services/margin-accounts/encode.d.ts +5 -0
- package/dist/types/services/margin-accounts/encode.d.ts.map +1 -0
- package/dist/types/services/margin-accounts/types.d.ts +25 -0
- package/dist/types/services/margin-accounts/types.d.ts.map +1 -0
- package/dist/types/services/margin-accounts/withdraw.d.ts +3 -0
- package/dist/types/services/margin-accounts/withdraw.d.ts.map +1 -0
- package/dist/types/services/orders/encode.d.ts +3 -0
- package/dist/types/services/orders/encode.d.ts.map +1 -0
- package/dist/types/services/orders/order.d.ts +3 -0
- package/dist/types/services/orders/order.d.ts.map +1 -0
- package/dist/types/services/orders/types.d.ts +12 -0
- package/dist/types/services/orders/types.d.ts.map +1 -0
- package/dist/types/utils/action.d.ts +27 -0
- package/dist/types/utils/action.d.ts.map +1 -0
- package/dist/types/utils/routerCommands.d.ts +21 -0
- package/dist/types/utils/routerCommands.d.ts.map +1 -0
- package/dist/types/utils/txHelpers.d.ts +2 -0
- package/dist/types/utils/txHelpers.d.ts.map +1 -0
- package/dist/utils/action.js +22 -0
- package/dist/utils/action.js.map +1 -0
- package/dist/utils/routerCommands.js +41 -0
- package/dist/utils/routerCommands.js.map +1 -0
- package/dist/utils/txHelpers.js +8 -0
- package/dist/utils/txHelpers.js.map +1 -0
- package/package.json +36 -0
- package/src/abis/AccountModule.json +1079 -0
- package/src/abis/CoreProxy.json +206 -0
- package/src/abis/ExecutionModule.json +758 -0
- package/src/index.ts +1 -0
- package/src/services/encode.ts +72 -0
- package/src/services/executeTransaction.ts +54 -0
- package/src/services/lp/encode.ts +36 -0
- package/src/services/lp/lp.ts +47 -0
- package/src/services/lp/types.ts +18 -0
- package/src/services/margin-accounts/account.ts +21 -0
- package/src/services/margin-accounts/deposit.ts +23 -0
- package/src/services/margin-accounts/encode.ts +56 -0
- package/src/services/margin-accounts/types.ts +27 -0
- package/src/services/margin-accounts/withdraw.ts +23 -0
- package/src/services/orders/encode.ts +29 -0
- package/src/services/orders/order.ts +24 -0
- package/src/services/orders/types.ts +12 -0
- package/src/utils/action.ts +41 -0
- package/src/utils/routerCommands.ts +58 -0
- package/src/utils/txHelpers.ts +3 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./utils/action"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"/","sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B","sourcesContent":["export * from './utils/action';\n"]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
//////////////////// ENCODE SINGLE ////////////////////
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.encodeRouterCall = exports.encodeSingleTrade = exports.encodeSingleWithdraw = exports.encodeSingleDeposit = void 0;
|
|
5
|
+
var routerCommands_1 = require("../utils/routerCommands");
|
|
6
|
+
var ethers_1 = require("ethers");
|
|
7
|
+
var ExecutionModule_json_1 = require("../abis/ExecutionModule.json");
|
|
8
|
+
// const abi = [
|
|
9
|
+
// 'function coreExecute(uint128 poolId, uint128 accountId, Command[] commands, EIP712Signature sig)',
|
|
10
|
+
// ];
|
|
11
|
+
var encodeSingleDeposit = function (token, amount, marketId, exchangeId, multiAction) {
|
|
12
|
+
multiAction.newAction((0, routerCommands_1.getCommand)(routerCommands_1.CommandType.DEPOSIT, [token, amount], marketId, exchangeId));
|
|
13
|
+
};
|
|
14
|
+
exports.encodeSingleDeposit = encodeSingleDeposit;
|
|
15
|
+
var encodeSingleWithdraw = function (token, amount, marketId, exchangeId, multiAction) {
|
|
16
|
+
multiAction.newAction((0, routerCommands_1.getCommand)(routerCommands_1.CommandType.WITHDRAW, [token, amount], marketId, exchangeId));
|
|
17
|
+
};
|
|
18
|
+
exports.encodeSingleWithdraw = encodeSingleWithdraw;
|
|
19
|
+
var encodeSingleTrade = function (counterpartyAccountIds, orderBase, orderPriceLimit, marketId, exchangeId, multiAction) {
|
|
20
|
+
// (int256 orderBase, UD60x18 orderPriceLimit) = abi.decode(matchOrderInputs.inputs, (int256, UD60x18));
|
|
21
|
+
var encodedBasePrice = ethers_1.AbiCoder.defaultAbiCoder().encode(['int256', 'uint256'], // @todo check if uint256 casts to UD60x18
|
|
22
|
+
[orderBase, orderPriceLimit]);
|
|
23
|
+
multiAction.newAction((0, routerCommands_1.getCommand)(routerCommands_1.CommandType.MATCH_ORDER, [counterpartyAccountIds, encodedBasePrice], marketId, exchangeId));
|
|
24
|
+
};
|
|
25
|
+
exports.encodeSingleTrade = encodeSingleTrade;
|
|
26
|
+
var encodeRouterCall = function (multiAction, accountId, nativeCurrencyValue) {
|
|
27
|
+
var functionSignature = 'execute';
|
|
28
|
+
var parameters = [accountId, multiAction.commands];
|
|
29
|
+
var INTERFACE = new ethers_1.Interface(ExecutionModule_json_1.abi);
|
|
30
|
+
var calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);
|
|
31
|
+
return {
|
|
32
|
+
calldata: calldata,
|
|
33
|
+
value: BigInt(nativeCurrencyValue).toString(10),
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
exports.encodeRouterCall = encodeRouterCall;
|
|
37
|
+
//# sourceMappingURL=encode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encode.js","sourceRoot":"/","sources":["services/encode.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAGzD,0DAAkE;AAClE,iCAA6C;AAC7C,qEAAmD;AACnD,gBAAgB;AAChB,wGAAwG;AACxG,KAAK;AACE,IAAM,mBAAmB,GAAG,UACjC,KAAa,EACb,MAAc,EACd,QAAgB,EAChB,UAAkB,EAClB,WAAwB;IAExB,WAAW,CAAC,SAAS,CACnB,IAAA,2BAAU,EAAC,4BAAW,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,CACvE,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,mBAAmB,uBAU9B;AAEK,IAAM,oBAAoB,GAAG,UAClC,KAAa,EACb,MAAc,EACd,QAAgB,EAChB,UAAkB,EAClB,WAAwB;IAExB,WAAW,CAAC,SAAS,CACnB,IAAA,2BAAU,EAAC,4BAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,CACxE,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,oBAAoB,wBAU/B;AAEK,IAAM,iBAAiB,GAAG,UAC/B,sBAAgC,EAChC,SAAiB,EACjB,eAAuB,EACvB,QAAgB,EAChB,UAAkB,EAClB,WAAwB;IAExB,wGAAwG;IACxG,IAAM,gBAAgB,GAAG,iBAAQ,CAAC,eAAe,EAAE,CAAC,MAAM,CACxD,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,0CAA0C;IACjE,CAAC,SAAS,EAAE,eAAe,CAAC,CAC7B,CAAC;IAEF,WAAW,CAAC,SAAS,CACnB,IAAA,2BAAU,EACR,4BAAW,CAAC,WAAW,EACvB,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,EAC1C,QAAQ,EACR,UAAU,CACX,CACF,CAAC;AACJ,CAAC,CAAC;AAtBW,QAAA,iBAAiB,qBAsB5B;AAEK,IAAM,gBAAgB,GAAG,UAC9B,WAAwB,EACxB,SAAiB,EACjB,mBAA2B;IAE3B,IAAM,iBAAiB,GAAG,SAAS,CAAC;IACpC,IAAM,UAAU,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAErD,IAAM,SAAS,GAAG,IAAI,kBAAS,CAAC,0BAAG,CAAC,CAAC;IACrC,IAAM,QAAQ,GAAG,SAAS,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;IAC7E,OAAO;QACL,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;KAChD,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,gBAAgB,oBAc3B","sourcesContent":["//////////////////// ENCODE SINGLE ////////////////////\n\nimport { MethodParameters, MultiAction } from '../utils/action';\nimport { CommandType, getCommand } from '../utils/routerCommands';\nimport { AbiCoder, Interface } from 'ethers';\nimport { abi } from '../abis/ExecutionModule.json';\n// const abi = [\n// 'function coreExecute(uint128 poolId, uint128 accountId, Command[] commands, EIP712Signature sig)',\n// ];\nexport const encodeSingleDeposit = (\n token: string,\n amount: bigint,\n marketId: number,\n exchangeId: number,\n multiAction: MultiAction,\n): void => {\n multiAction.newAction(\n getCommand(CommandType.DEPOSIT, [token, amount], marketId, exchangeId),\n );\n};\n\nexport const encodeSingleWithdraw = (\n token: string,\n amount: bigint,\n marketId: number,\n exchangeId: number,\n multiAction: MultiAction,\n): void => {\n multiAction.newAction(\n getCommand(CommandType.WITHDRAW, [token, amount], marketId, exchangeId),\n );\n};\n\nexport const encodeSingleTrade = (\n counterpartyAccountIds: number[],\n orderBase: bigint,\n orderPriceLimit: bigint,\n marketId: number,\n exchangeId: number,\n multiAction: MultiAction,\n): void => {\n // (int256 orderBase, UD60x18 orderPriceLimit) = abi.decode(matchOrderInputs.inputs, (int256, UD60x18));\n const encodedBasePrice = AbiCoder.defaultAbiCoder().encode(\n ['int256', 'uint256'], // @todo check if uint256 casts to UD60x18\n [orderBase, orderPriceLimit],\n );\n\n multiAction.newAction(\n getCommand(\n CommandType.MATCH_ORDER,\n [counterpartyAccountIds, encodedBasePrice],\n marketId,\n exchangeId,\n ),\n );\n};\n\nexport const encodeRouterCall = (\n multiAction: MultiAction,\n accountId: number,\n nativeCurrencyValue: bigint,\n): MethodParameters => {\n const functionSignature = 'execute';\n const parameters = [accountId, multiAction.commands];\n\n const INTERFACE = new Interface(abi);\n const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);\n return {\n calldata: calldata,\n value: BigInt(nativeCurrencyValue).toString(10),\n };\n};\n"]}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
+
exports.executeTransaction = exports.estimateGas = void 0;
|
|
51
|
+
var txHelpers_1 = require("../utils/txHelpers");
|
|
52
|
+
function estimateGas(signer, data, value, chainId) {
|
|
53
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
54
|
+
var accountAddress, contractAddress, tx, gasLimit, gasEstimate, error_1;
|
|
55
|
+
return __generator(this, function (_a) {
|
|
56
|
+
switch (_a.label) {
|
|
57
|
+
case 0:
|
|
58
|
+
console.log(chainId); // @todo remove chainId if obsolete
|
|
59
|
+
return [4 /*yield*/, signer.getAddress()];
|
|
60
|
+
case 1:
|
|
61
|
+
accountAddress = _a.sent();
|
|
62
|
+
contractAddress = "0xdb8cd625873ca9d7b6529ffafe5ecdd3746708b4";
|
|
63
|
+
tx = __assign({ from: accountAddress, to: contractAddress, data: data }, (value && value !== '0' ? { value: value } : {}));
|
|
64
|
+
_a.label = 2;
|
|
65
|
+
case 2:
|
|
66
|
+
_a.trys.push([2, 4, , 5]);
|
|
67
|
+
return [4 /*yield*/, signer.estimateGas(tx)];
|
|
68
|
+
case 3:
|
|
69
|
+
gasEstimate = _a.sent();
|
|
70
|
+
gasLimit = (0, txHelpers_1.getGasBuffer)(gasEstimate);
|
|
71
|
+
return [3 /*break*/, 5];
|
|
72
|
+
case 4:
|
|
73
|
+
error_1 = _a.sent();
|
|
74
|
+
console.warn(error_1);
|
|
75
|
+
throw new Error(error_1);
|
|
76
|
+
case 5: return [2 /*return*/, __assign(__assign({}, tx), { gasLimit: gasLimit })];
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
exports.estimateGas = estimateGas;
|
|
82
|
+
function executeTransaction(signer, data, value, chainId) {
|
|
83
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
84
|
+
var txData, txResponse, txReceipt, error_2;
|
|
85
|
+
return __generator(this, function (_a) {
|
|
86
|
+
switch (_a.label) {
|
|
87
|
+
case 0: return [4 /*yield*/, estimateGas(signer, data, value, chainId)];
|
|
88
|
+
case 1:
|
|
89
|
+
txData = _a.sent();
|
|
90
|
+
_a.label = 2;
|
|
91
|
+
case 2:
|
|
92
|
+
_a.trys.push([2, 5, , 6]);
|
|
93
|
+
return [4 /*yield*/, signer.sendTransaction(txData)];
|
|
94
|
+
case 3:
|
|
95
|
+
txResponse = _a.sent();
|
|
96
|
+
return [4 /*yield*/, txResponse.wait()];
|
|
97
|
+
case 4:
|
|
98
|
+
txReceipt = _a.sent();
|
|
99
|
+
return [2 /*return*/, txReceipt];
|
|
100
|
+
case 5:
|
|
101
|
+
error_2 = _a.sent();
|
|
102
|
+
console.warn(error_2);
|
|
103
|
+
throw new Error('Transaction Execution Error');
|
|
104
|
+
case 6: return [2 /*return*/];
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
exports.executeTransaction = executeTransaction;
|
|
110
|
+
//# sourceMappingURL=executeTransaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executeTransaction.js","sourceRoot":"/","sources":["services/executeTransaction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,gDAAkD;AASlD,SAAsB,WAAW,CAC/B,MAAc,EACd,IAAY,EACZ,KAAa,EACb,OAAe;;;;;;oBAEf,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,mCAAmC;oBAClC,qBAAM,MAAM,CAAC,UAAU,EAAE,EAAA;;oBAA1C,cAAc,GAAG,SAAyB;oBAC1C,eAAe,GAAG,4CAA4C,CAAC;oBAC/D,EAAE,cACN,IAAI,EAAE,cAAc,EACpB,EAAE,EAAE,eAAe,EACnB,IAAI,MAAA,IACD,CAAC,KAAK,IAAI,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACpD,CAAC;;;;oBAKoB,qBAAM,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,EAAA;;oBAA1C,WAAW,GAAG,SAA4B;oBAChD,QAAQ,GAAG,IAAA,wBAAY,EAAC,WAAW,CAAC,CAAC;;;;oBAErC,OAAO,CAAC,IAAI,CAAC,OAAK,CAAC,CAAC;oBACpB,MAAM,IAAI,KAAK,CAAC,OAAe,CAAC,CAAC;wBAEnC,4CAAY,EAAE,KAAE,QAAQ,UAAA,KAAG;;;;CAC5B;AA1BD,kCA0BC;AAED,SAAsB,kBAAkB,CACtC,MAAc,EACd,IAAY,EACZ,KAAa,EACb,OAAe;;;;;wBAEA,qBAAM,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,EAAA;;oBAAxD,MAAM,GAAG,SAA+C;;;;oBAEzC,qBAAM,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,EAAA;;oBAAjD,UAAU,GAAG,SAAoC;oBACrC,qBAAM,UAAU,CAAC,IAAI,EAAE,EAAA;;oBAAnC,SAAS,GAAG,SAAuB;oBACzC,sBAAO,SAAS,EAAC;;;oBAEjB,OAAO,CAAC,IAAI,CAAC,OAAK,CAAC,CAAC;oBACpB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;;;;;CAElD;AAfD,gDAeC","sourcesContent":["import { Signer } from 'ethers';\nimport { getGasBuffer } from '../utils/txHelpers';\n\nexport type Transaction = {\n from: string;\n to: string;\n data: string;\n value?: string;\n};\n\nexport async function estimateGas(\n signer: Signer,\n data: string,\n value: string,\n chainId: number,\n): Promise<Transaction & { gasLimit: bigint }> {\n console.log(chainId); // @todo remove chainId if obsolete\n const accountAddress = await signer.getAddress();\n const contractAddress = `0xdb8cd625873ca9d7b6529ffafe5ecdd3746708b4`; // @todo Define after deployment\n const tx = {\n from: accountAddress,\n to: contractAddress,\n data,\n ...(value && value !== '0' ? { value: value } : {}),\n };\n\n let gasLimit: bigint;\n\n try {\n const gasEstimate = await signer.estimateGas(tx);\n gasLimit = getGasBuffer(gasEstimate);\n } catch (error) {\n console.warn(error);\n throw new Error(error as string);\n }\n return { ...tx, gasLimit };\n}\n\nexport async function executeTransaction(\n signer: Signer,\n data: string,\n value: string,\n chainId: number,\n) {\n const txData = await estimateGas(signer, data, value, chainId);\n try {\n const txResponse = await signer.sendTransaction(txData);\n const txReceipt = await txResponse.wait(); // @todo Check what was reasoning behind this since this function waits until transaction is minted\n return txReceipt;\n } catch (error) {\n console.warn(error);\n throw new Error('Transaction Execution Error');\n }\n}\n"]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.encodeRemoveLiquidityCall = exports.encodeProvideLiquidityCall = void 0;
|
|
4
|
+
var ethers_1 = require("ethers");
|
|
5
|
+
// @todo Update ABI
|
|
6
|
+
var provideLiquidityAbi = [
|
|
7
|
+
'function addLiquidity(uint128 poolId, address owner, uint256 amount, uint256 minShares) returns (uint256)',
|
|
8
|
+
];
|
|
9
|
+
// @todo Update ABI
|
|
10
|
+
var removeLiquidityabi = [
|
|
11
|
+
'function removeLiquidity(uint128 poolId, uint256 sharesAmount, uint256 minOut) returns (uint256)',
|
|
12
|
+
];
|
|
13
|
+
var encodeProvideLiquidityCall = function (poolId, accountOwner, amount, minShares) {
|
|
14
|
+
var functionSignature = 'addLiquidity';
|
|
15
|
+
var parameters = [poolId, accountOwner, amount, minShares];
|
|
16
|
+
var INTERFACE = new ethers_1.Interface(provideLiquidityAbi);
|
|
17
|
+
var calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);
|
|
18
|
+
return { calldata: calldata, value: BigInt(0).toString(10) };
|
|
19
|
+
};
|
|
20
|
+
exports.encodeProvideLiquidityCall = encodeProvideLiquidityCall;
|
|
21
|
+
var encodeRemoveLiquidityCall = function (poolId, sharesAmount, minOut) {
|
|
22
|
+
var functionSignature = 'removeLiquidity';
|
|
23
|
+
var parameters = [poolId, sharesAmount, minOut];
|
|
24
|
+
var INTERFACE = new ethers_1.Interface(removeLiquidityabi);
|
|
25
|
+
var calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);
|
|
26
|
+
return { calldata: calldata, value: BigInt(0).toString(10) };
|
|
27
|
+
};
|
|
28
|
+
exports.encodeRemoveLiquidityCall = encodeRemoveLiquidityCall;
|
|
29
|
+
//# sourceMappingURL=encode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encode.js","sourceRoot":"/","sources":["services/lp/encode.ts"],"names":[],"mappings":";;;AACA,iCAAmC;AAEnC,mBAAmB;AACnB,IAAM,mBAAmB,GAAG;IAC1B,2GAA2G;CAC5G,CAAC;AAEF,mBAAmB;AACnB,IAAM,kBAAkB,GAAG;IACzB,kGAAkG;CACnG,CAAC;AACK,IAAM,0BAA0B,GAAG,UACxC,MAAc,EACd,YAAoB,EACpB,MAAc,EACd,SAAiB;IAEjB,IAAM,iBAAiB,GAAG,cAAc,CAAC;IACzC,IAAM,UAAU,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC7D,IAAM,SAAS,GAAG,IAAI,kBAAS,CAAC,mBAAmB,CAAC,CAAC;IACrD,IAAM,QAAQ,GAAG,SAAS,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;IAC7E,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/D,CAAC,CAAC;AAXW,QAAA,0BAA0B,8BAWrC;AAEK,IAAM,yBAAyB,GAAG,UACvC,MAAc,EACd,YAAoB,EACpB,MAAc;IAEd,IAAM,iBAAiB,GAAG,iBAAiB,CAAC;IAC5C,IAAM,UAAU,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAClD,IAAM,SAAS,GAAG,IAAI,kBAAS,CAAC,kBAAkB,CAAC,CAAC;IACpD,IAAM,QAAQ,GAAG,SAAS,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;IAC7E,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/D,CAAC,CAAC;AAVW,QAAA,yBAAyB,6BAUpC","sourcesContent":["import { MethodParameters } from '../../utils/action';\nimport { Interface } from 'ethers';\n\n// @todo Update ABI\nconst provideLiquidityAbi = [\n 'function addLiquidity(uint128 poolId, address owner, uint256 amount, uint256 minShares) returns (uint256)',\n];\n\n// @todo Update ABI\nconst removeLiquidityabi = [\n 'function removeLiquidity(uint128 poolId, uint256 sharesAmount, uint256 minOut) returns (uint256)',\n];\nexport const encodeProvideLiquidityCall = (\n poolId: number,\n accountOwner: string,\n amount: number,\n minShares: number,\n): MethodParameters => {\n const functionSignature = 'addLiquidity';\n const parameters = [poolId, accountOwner, amount, minShares];\n const INTERFACE = new Interface(provideLiquidityAbi);\n const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);\n return { calldata: calldata, value: BigInt(0).toString(10) };\n};\n\nexport const encodeRemoveLiquidityCall = (\n poolId: number,\n sharesAmount: number,\n minOut: number,\n): MethodParameters => {\n const functionSignature = 'removeLiquidity';\n const parameters = [poolId, sharesAmount, minOut];\n const INTERFACE = new Interface(removeLiquidityabi);\n const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);\n return { calldata: calldata, value: BigInt(0).toString(10) };\n};\n"]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.removeLiquidity = exports.provideLiquidity = void 0;
|
|
40
|
+
var executeTransaction_1 = require("../executeTransaction");
|
|
41
|
+
var encode_1 = require("./encode");
|
|
42
|
+
var provideLiquidity = function (params) { return __awaiter(void 0, void 0, void 0, function () {
|
|
43
|
+
var _a, data, value, result;
|
|
44
|
+
return __generator(this, function (_b) {
|
|
45
|
+
switch (_b.label) {
|
|
46
|
+
case 0:
|
|
47
|
+
_a = (0, encode_1.encodeProvideLiquidityCall)(params.poolId, params.owner, params.amount, params.minShares), data = _a.calldata, value = _a.value;
|
|
48
|
+
return [4 /*yield*/, (0, executeTransaction_1.executeTransaction)(params.signer, data, value, params.chainId)];
|
|
49
|
+
case 1:
|
|
50
|
+
result = _b.sent();
|
|
51
|
+
return [2 /*return*/, result];
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}); };
|
|
55
|
+
exports.provideLiquidity = provideLiquidity;
|
|
56
|
+
var removeLiquidity = function (params) { return __awaiter(void 0, void 0, void 0, function () {
|
|
57
|
+
var _a, data, value, result;
|
|
58
|
+
return __generator(this, function (_b) {
|
|
59
|
+
switch (_b.label) {
|
|
60
|
+
case 0:
|
|
61
|
+
_a = (0, encode_1.encodeRemoveLiquidityCall)(params.poolId, params.sharesAmount, params.minOut), data = _a.calldata, value = _a.value;
|
|
62
|
+
return [4 /*yield*/, (0, executeTransaction_1.executeTransaction)(params.signer, data, value, params.chainId)];
|
|
63
|
+
case 1:
|
|
64
|
+
result = _b.sent();
|
|
65
|
+
return [2 /*return*/, result];
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}); };
|
|
69
|
+
exports.removeLiquidity = removeLiquidity;
|
|
70
|
+
//# sourceMappingURL=lp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lp.js","sourceRoot":"/","sources":["services/lp/lp.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4DAA2D;AAC3D,mCAGkB;AAGX,IAAM,gBAAgB,GAAG,UAC9B,MAA4B;;;;;gBAGtB,KAA4B,IAAA,mCAA0B,EAC1D,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,SAAS,CACjB,EALiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAK3B;gBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,MAAM,CAAC,OAAO,CACf,EAAA;;gBALK,MAAM,GAAG,SAKd;gBAED,sBAAO,MAAM,EAAC;;;KACf,CAAC;AAnBW,QAAA,gBAAgB,oBAmB3B;AAEK,IAAM,eAAe,GAAG,UAC7B,MAA2B;;;;;gBAGrB,KAA4B,IAAA,kCAAyB,EACzD,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,MAAM,CACd,EAJiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAI3B;gBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,MAAM,CAAC,OAAO,CACf,EAAA;;gBALK,MAAM,GAAG,SAKd;gBAED,sBAAO,MAAM,EAAC;;;KACf,CAAC;AAlBW,QAAA,eAAe,mBAkB1B","sourcesContent":["import { executeTransaction } from '../executeTransaction';\nimport {\n encodeProvideLiquidityCall,\n encodeRemoveLiquidityCall,\n} from './encode';\nimport { ProvideLiquidityArgs, RemoveLiquidityArgs } from './types';\n\nexport const provideLiquidity = async (\n params: ProvideLiquidityArgs,\n): Promise<unknown> => {\n // @todo update type once we agree on the structure\n const { calldata: data, value } = encodeProvideLiquidityCall(\n params.poolId,\n params.owner,\n params.amount,\n params.minShares,\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n params.chainId,\n );\n\n return result;\n};\n\nexport const removeLiquidity = async (\n params: RemoveLiquidityArgs,\n): Promise<unknown> => {\n // @todo update type once we agree on the structure\n const { calldata: data, value } = encodeRemoveLiquidityCall(\n params.poolId,\n params.sharesAmount,\n params.minOut,\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n params.chainId,\n );\n\n return result;\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"/","sources":["services/lp/types.ts"],"names":[],"mappings":"","sourcesContent":["import { Signer } from 'ethers';\n\nexport type ProvideLiquidityArgs = {\n signer: Signer;\n chainId: number;\n poolId: number;\n owner: string;\n amount: number;\n minShares: number;\n};\n\nexport type RemoveLiquidityArgs = {\n signer: Signer;\n chainId: number;\n poolId: number;\n sharesAmount: number;\n minOut: number;\n};\n"]}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.createAccount = void 0;
|
|
40
|
+
var executeTransaction_1 = require("../executeTransaction");
|
|
41
|
+
var encode_1 = require("./encode");
|
|
42
|
+
var createAccount = function (params) { return __awaiter(void 0, void 0, void 0, function () {
|
|
43
|
+
var _a, data, value, result;
|
|
44
|
+
return __generator(this, function (_b) {
|
|
45
|
+
switch (_b.label) {
|
|
46
|
+
case 0:
|
|
47
|
+
_a = (0, encode_1.encodeCreateAccountCall)(params.ownerAddress), data = _a.calldata, value = _a.value;
|
|
48
|
+
return [4 /*yield*/, (0, executeTransaction_1.executeTransaction)(params.signer, data, value, params.chainId)];
|
|
49
|
+
case 1:
|
|
50
|
+
result = _b.sent();
|
|
51
|
+
return [2 /*return*/, result];
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}); };
|
|
55
|
+
exports.createAccount = createAccount;
|
|
56
|
+
//# sourceMappingURL=account.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account.js","sourceRoot":"/","sources":["services/margin-accounts/account.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4DAA2D;AAC3D,mCAAmD;AAG5C,IAAM,aAAa,GAAG,UAC3B,MAAyB;;;;;gBAGnB,KAA4B,IAAA,gCAAuB,EACvD,MAAM,CAAC,YAAY,CACpB,EAFiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAE3B;gBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,MAAM,CAAC,OAAO,CACf,EAAA;;gBALK,MAAM,GAAG,SAKd;gBAED,sBAAO,MAAM,EAAC;;;KACf,CAAC;AAhBW,QAAA,aAAa,iBAgBxB","sourcesContent":["import { executeTransaction } from '../executeTransaction';\nimport { encodeCreateAccountCall } from './encode';\nimport { CreateAccountArgs } from './types';\n\nexport const createAccount = async (\n params: CreateAccountArgs,\n): Promise<unknown> => {\n // @todo update type once we agree on the structure\n const { calldata: data, value } = encodeCreateAccountCall(\n params.ownerAddress,\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n params.chainId,\n );\n\n return result;\n};\n"]}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.deposit = void 0;
|
|
40
|
+
var encode_1 = require("./encode");
|
|
41
|
+
var executeTransaction_1 = require("../executeTransaction");
|
|
42
|
+
var deposit = function (params) { return __awaiter(void 0, void 0, void 0, function () {
|
|
43
|
+
var _a, data, value, result;
|
|
44
|
+
return __generator(this, function (_b) {
|
|
45
|
+
switch (_b.label) {
|
|
46
|
+
case 0:
|
|
47
|
+
_a = (0, encode_1.encodeDeposit)(params.accountId, params.token, params.amount, params.marketId, params.exchangeId), data = _a.calldata, value = _a.value;
|
|
48
|
+
return [4 /*yield*/, (0, executeTransaction_1.executeTransaction)(params.signer, data, value, params.chainId)];
|
|
49
|
+
case 1:
|
|
50
|
+
result = _b.sent();
|
|
51
|
+
return [2 /*return*/, result];
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}); };
|
|
55
|
+
exports.deposit = deposit;
|
|
56
|
+
//# sourceMappingURL=deposit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deposit.js","sourceRoot":"/","sources":["services/margin-accounts/deposit.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,mCAAyC;AACzC,4DAA2D;AAEpD,IAAM,OAAO,GAAG,UAAO,MAAmB;;;;;gBAEzC,KAA4B,IAAA,sBAAa,EAC7C,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,UAAU,CAClB,EANiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAM3B;gBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,MAAM,CAAC,OAAO,CACf,EAAA;;gBALK,MAAM,GAAG,SAKd;gBAED,sBAAO,MAAM,EAAC;;;KACf,CAAC;AAlBW,QAAA,OAAO,WAkBlB","sourcesContent":["import { DepositArgs } from './types';\nimport { encodeDeposit } from './encode';\nimport { executeTransaction } from '../executeTransaction';\n\nexport const deposit = async (params: DepositArgs): Promise<unknown> => {\n // @todo update type once we agree on the structure\n const { calldata: data, value } = encodeDeposit(\n params.accountId,\n params.token,\n params.amount,\n params.marketId,\n params.exchangeId,\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n params.chainId,\n );\n\n return result;\n};\n"]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.encodeWithdraw = exports.encodeDeposit = exports.encodeCreateAccountCall = void 0;
|
|
15
|
+
var action_1 = require("../../utils/action");
|
|
16
|
+
var ethers_1 = require("ethers");
|
|
17
|
+
var encode_1 = require("../encode");
|
|
18
|
+
var AccountModule_json_1 = require("../../abis/AccountModule.json");
|
|
19
|
+
var encodeCreateAccountCall = function (accountOwner) {
|
|
20
|
+
var functionSignature = 'createAccount';
|
|
21
|
+
var parameters = [accountOwner];
|
|
22
|
+
var INTERFACE = new ethers_1.Interface(AccountModule_json_1.abi);
|
|
23
|
+
var calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);
|
|
24
|
+
return { calldata: calldata, value: BigInt(0).toString(10) };
|
|
25
|
+
};
|
|
26
|
+
exports.encodeCreateAccountCall = encodeCreateAccountCall;
|
|
27
|
+
var encodeDeposit = function (accountId, token, amount, marketId, exchangeId) {
|
|
28
|
+
var multiAction = new action_1.MultiAction();
|
|
29
|
+
(0, encode_1.encodeSingleDeposit)(token, amount, marketId, exchangeId, multiAction);
|
|
30
|
+
var value = BigInt(0);
|
|
31
|
+
var call = (0, encode_1.encodeRouterCall)(multiAction, accountId, value);
|
|
32
|
+
return __assign({}, call);
|
|
33
|
+
};
|
|
34
|
+
exports.encodeDeposit = encodeDeposit;
|
|
35
|
+
var encodeWithdraw = function (accountId, token, amount, marketId, exchangeId) {
|
|
36
|
+
var multiAction = new action_1.MultiAction();
|
|
37
|
+
(0, encode_1.encodeSingleWithdraw)(token, amount, marketId, exchangeId, multiAction);
|
|
38
|
+
var value = BigInt(0);
|
|
39
|
+
var call = (0, encode_1.encodeRouterCall)(multiAction, accountId, value);
|
|
40
|
+
return __assign({}, call);
|
|
41
|
+
};
|
|
42
|
+
exports.encodeWithdraw = encodeWithdraw;
|
|
43
|
+
//# sourceMappingURL=encode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encode.js","sourceRoot":"/","sources":["services/margin-accounts/encode.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,6CAAmE;AACnE,iCAAmC;AACnC,oCAImB;AAEnB,oEAAoD;AAC7C,IAAM,uBAAuB,GAAG,UACrC,YAAoB;IAEpB,IAAM,iBAAiB,GAAG,eAAe,CAAC;IAC1C,IAAM,UAAU,GAAG,CAAC,YAAY,CAAC,CAAC;IAClC,IAAM,SAAS,GAAG,IAAI,kBAAS,CAAC,wBAAG,CAAC,CAAC;IACrC,IAAM,QAAQ,GAAG,SAAS,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;IAC7E,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/D,CAAC,CAAC;AARW,QAAA,uBAAuB,2BAQlC;AAEK,IAAM,aAAa,GAAG,UAC3B,SAAiB,EACjB,KAAa,EACb,MAAc,EACd,QAAgB,EAChB,UAAkB;IAElB,IAAM,WAAW,GAAG,IAAI,oBAAW,EAAE,CAAC;IAEtC,IAAA,4BAAmB,EAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAEtE,IAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,IAAM,IAAI,GAAG,IAAA,yBAAgB,EAAC,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAE7D,oBACK,IAAI,EACP;AACJ,CAAC,CAAC;AAjBW,QAAA,aAAa,iBAiBxB;AAEK,IAAM,cAAc,GAAG,UAC5B,SAAiB,EACjB,KAAa,EACb,MAAc,EACd,QAAgB,EAChB,UAAkB;IAElB,IAAM,WAAW,GAAG,IAAI,oBAAW,EAAE,CAAC;IAEtC,IAAA,6BAAoB,EAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAEvE,IAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,IAAM,IAAI,GAAG,IAAA,yBAAgB,EAAC,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAE7D,oBACK,IAAI,EACP;AACJ,CAAC,CAAC;AAjBW,QAAA,cAAc,kBAiBzB","sourcesContent":["import { MethodParameters, MultiAction } from '../../utils/action';\nimport { Interface } from 'ethers';\nimport {\n encodeRouterCall,\n encodeSingleDeposit,\n encodeSingleWithdraw,\n} from '../encode';\n\nimport { abi } from '../../abis/AccountModule.json';\nexport const encodeCreateAccountCall = (\n accountOwner: string,\n): MethodParameters => {\n const functionSignature = 'createAccount';\n const parameters = [accountOwner];\n const INTERFACE = new Interface(abi);\n const calldata = INTERFACE.encodeFunctionData(functionSignature, parameters);\n return { calldata: calldata, value: BigInt(0).toString(10) };\n};\n\nexport const encodeDeposit = (\n accountId: number,\n token: string,\n amount: bigint,\n marketId: number,\n exchangeId: number,\n): MethodParameters => {\n const multiAction = new MultiAction();\n\n encodeSingleDeposit(token, amount, marketId, exchangeId, multiAction);\n\n const value = BigInt(0);\n const call = encodeRouterCall(multiAction, accountId, value);\n\n return {\n ...call,\n };\n};\n\nexport const encodeWithdraw = (\n accountId: number,\n token: string,\n amount: bigint,\n marketId: number,\n exchangeId: number,\n): MethodParameters => {\n const multiAction = new MultiAction();\n\n encodeSingleWithdraw(token, amount, marketId, exchangeId, multiAction);\n\n const value = BigInt(0);\n const call = encodeRouterCall(multiAction, accountId, value);\n\n return {\n ...call,\n };\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"/","sources":["services/margin-accounts/types.ts"],"names":[],"mappings":"","sourcesContent":["import { Signer } from 'ethers';\n\nexport type CreateAccountArgs = {\n signer: Signer;\n chainId: number;\n ownerAddress: string;\n};\n\nexport type DepositArgs = {\n signer: Signer;\n chainId: number;\n accountId: number;\n token: string;\n amount: bigint;\n marketId: number;\n exchangeId: number;\n};\n\nexport type WithdrawArgs = {\n signer: Signer;\n chainId: number;\n accountId: number;\n token: string;\n amount: bigint;\n marketId: number;\n exchangeId: number;\n};\n"]}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.withdraw = void 0;
|
|
40
|
+
var encode_1 = require("./encode");
|
|
41
|
+
var executeTransaction_1 = require("../executeTransaction");
|
|
42
|
+
var withdraw = function (params) { return __awaiter(void 0, void 0, void 0, function () {
|
|
43
|
+
var _a, data, value, result;
|
|
44
|
+
return __generator(this, function (_b) {
|
|
45
|
+
switch (_b.label) {
|
|
46
|
+
case 0:
|
|
47
|
+
_a = (0, encode_1.encodeWithdraw)(params.accountId, params.token, params.amount, params.marketId, params.exchangeId), data = _a.calldata, value = _a.value;
|
|
48
|
+
return [4 /*yield*/, (0, executeTransaction_1.executeTransaction)(params.signer, data, value, params.chainId)];
|
|
49
|
+
case 1:
|
|
50
|
+
result = _b.sent();
|
|
51
|
+
return [2 /*return*/, result];
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}); };
|
|
55
|
+
exports.withdraw = withdraw;
|
|
56
|
+
//# sourceMappingURL=withdraw.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withdraw.js","sourceRoot":"/","sources":["services/margin-accounts/withdraw.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,mCAA0C;AAC1C,4DAA2D;AAEpD,IAAM,QAAQ,GAAG,UAAO,MAAoB;;;;;gBAE3C,KAA4B,IAAA,uBAAc,EAC9C,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,UAAU,CAClB,EANiB,IAAI,cAAA,EAAE,KAAK,WAAA,CAM3B;gBAEa,qBAAM,IAAA,uCAAkB,EACrC,MAAM,CAAC,MAAM,EACb,IAAI,EACJ,KAAK,EACL,MAAM,CAAC,OAAO,CACf,EAAA;;gBALK,MAAM,GAAG,SAKd;gBAED,sBAAO,MAAM,EAAC;;;KACf,CAAC;AAlBW,QAAA,QAAQ,YAkBnB","sourcesContent":["import { WithdrawArgs } from './types';\nimport { encodeWithdraw } from './encode';\nimport { executeTransaction } from '../executeTransaction';\n\nexport const withdraw = async (params: WithdrawArgs): Promise<unknown> => {\n // @todo update type once we agree on the structure\n const { calldata: data, value } = encodeWithdraw(\n params.accountId,\n params.token,\n params.amount,\n params.marketId,\n params.exchangeId,\n );\n\n const result = await executeTransaction(\n params.signer,\n data,\n value,\n params.chainId,\n );\n\n return result;\n};\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.encodeMatchOrder = void 0;
|
|
15
|
+
var action_1 = require("../../utils/action");
|
|
16
|
+
var encode_1 = require("../encode");
|
|
17
|
+
var encodeMatchOrder = function (accountId, orderBase, orderPriceLimit, counterpartyAccountIds, marketId, exchangeId) {
|
|
18
|
+
var multiAction = new action_1.MultiAction();
|
|
19
|
+
(0, encode_1.encodeSingleTrade)(counterpartyAccountIds, orderBase, orderPriceLimit, marketId, exchangeId, multiAction);
|
|
20
|
+
var value = BigInt(0);
|
|
21
|
+
var call = (0, encode_1.encodeRouterCall)(multiAction, accountId, value);
|
|
22
|
+
return __assign({}, call);
|
|
23
|
+
};
|
|
24
|
+
exports.encodeMatchOrder = encodeMatchOrder;
|
|
25
|
+
//# sourceMappingURL=encode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encode.js","sourceRoot":"/","sources":["services/orders/encode.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,6CAAmE;AACnE,oCAAgE;AAEzD,IAAM,gBAAgB,GAAG,UAC9B,SAAiB,EACjB,SAAiB,EACjB,eAAuB,EACvB,sBAAgC,EAChC,QAAgB,EAChB,UAAkB;IAElB,IAAM,WAAW,GAAG,IAAI,oBAAW,EAAE,CAAC;IAEtC,IAAA,0BAAiB,EACf,sBAAsB,EACtB,SAAS,EACT,eAAe,EACf,QAAQ,EACR,UAAU,EACV,WAAW,CACZ,CAAC;IAEF,IAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,IAAM,IAAI,GAAG,IAAA,yBAAgB,EAAC,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAE7D,oBACK,IAAI,EACP;AACJ,CAAC,CAAC;AAzBW,QAAA,gBAAgB,oBAyB3B","sourcesContent":["import { MethodParameters, MultiAction } from '../../utils/action';\nimport { encodeRouterCall, encodeSingleTrade } from '../encode';\n\nexport const encodeMatchOrder = (\n accountId: number,\n orderBase: bigint,\n orderPriceLimit: bigint,\n counterpartyAccountIds: number[],\n marketId: number,\n exchangeId: number,\n): MethodParameters => {\n const multiAction = new MultiAction();\n\n encodeSingleTrade(\n counterpartyAccountIds,\n orderBase,\n orderPriceLimit,\n marketId,\n exchangeId,\n multiAction,\n );\n\n const value = BigInt(0);\n const call = encodeRouterCall(multiAction, accountId, value);\n\n return {\n ...call,\n };\n};\n"]}
|