@openocean.finance/openocean-sdk 0.1.81 → 0.1.82
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/lib/swapSdk/limitOrder.js +28 -38
- package/package.json +1 -1
|
@@ -45,7 +45,6 @@ var ERC20_abi_1 = require("../asset/abi/ERC20_abi");
|
|
|
45
45
|
var Chains_1 = require("./../config/Chains");
|
|
46
46
|
var utils_1 = require("../utils");
|
|
47
47
|
var bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
48
|
-
// const chainName: string = 'eth'
|
|
49
48
|
function createLimitOrder(makerToken, takerToken, _makerAddress, makerAmount, takerAmount, chainId, gasPrice, expire, decimals, chainName, myWallet) {
|
|
50
49
|
return __awaiter(this, void 0, void 0, function () {
|
|
51
50
|
var connector, limitOrderBuilder, limitOrderProtocolFacade, limitOrderPredicateBuilder, minutes, expireTime, and, timestampBelow, simplePredicate, limitOrder, limitOrderTypedData, contract, approveAmount, _approveAmount, _makerAmount2, signature, orderHash, message, amountRate;
|
|
@@ -84,16 +83,18 @@ function createLimitOrder(makerToken, takerToken, _makerAddress, makerAmount, ta
|
|
|
84
83
|
interaction: "0x", // 默认值0x
|
|
85
84
|
});
|
|
86
85
|
limitOrderTypedData = limitOrderBuilder.buildLimitOrderTypedData(limitOrder);
|
|
87
|
-
limitOrderTypedData.domain.name =
|
|
88
|
-
limitOrderTypedData.domain.version =
|
|
86
|
+
limitOrderTypedData.domain.name = "openocean Limit Order Protocol";
|
|
87
|
+
limitOrderTypedData.domain.version = "2";
|
|
89
88
|
contract = new myWallet.sdk.eth.Contract(ERC20_abi_1.ERC20_abi, makerToken.address);
|
|
90
89
|
if (!!Chains_1.chains.isNativeToken(chainName, makerToken.address)) return [3 /*break*/, 3];
|
|
91
|
-
return [4 /*yield*/, contract.methods
|
|
90
|
+
return [4 /*yield*/, contract.methods
|
|
91
|
+
.allowance(_makerAddress, getLimitContractAddress(chainName))
|
|
92
|
+
.call()];
|
|
92
93
|
case 1:
|
|
93
94
|
approveAmount = _a.sent();
|
|
94
95
|
_approveAmount = +utils_1.utils.decimals2Amount(approveAmount, decimals);
|
|
95
96
|
_makerAmount2 = +utils_1.utils.decimals2Amount(makerAmount, decimals);
|
|
96
|
-
console.log(
|
|
97
|
+
console.log("_approveAmount", _approveAmount, _makerAmount2, decimals);
|
|
97
98
|
if (!(_approveAmount < _makerAmount2)) return [3 /*break*/, 3];
|
|
98
99
|
return [4 /*yield*/, sendEthApprove(makerToken.address, "1", "", gasPrice, getLimitContractAddress(chainName), myWallet)];
|
|
99
100
|
case 2:
|
|
@@ -104,7 +105,8 @@ function createLimitOrder(makerToken, takerToken, _makerAddress, makerAmount, ta
|
|
|
104
105
|
signature = _a.sent();
|
|
105
106
|
orderHash = limitOrderBuilder.buildLimitOrderHash(limitOrderTypedData);
|
|
106
107
|
message = limitOrderTypedData.message;
|
|
107
|
-
amountRate = (+utils_1.utils.decimals2Amount(makerAmount, makerToken.decimals) /
|
|
108
|
+
amountRate = (+utils_1.utils.decimals2Amount(makerAmount, makerToken.decimals) /
|
|
109
|
+
+utils_1.utils.decimals2Amount(takerAmount, takerToken.decimals)).toFixed(6);
|
|
108
110
|
return [2 /*return*/, {
|
|
109
111
|
makerAmount: makerAmount,
|
|
110
112
|
takerAmount: takerAmount,
|
|
@@ -116,7 +118,7 @@ function createLimitOrder(makerToken, takerToken, _makerAddress, makerAmount, ta
|
|
|
116
118
|
isActive: true,
|
|
117
119
|
chainId: chainId,
|
|
118
120
|
expireTime: expireTime,
|
|
119
|
-
amountRate: amountRate
|
|
121
|
+
amountRate: amountRate,
|
|
120
122
|
}];
|
|
121
123
|
}
|
|
122
124
|
});
|
|
@@ -143,25 +145,7 @@ function cancelLimitOrder(order, gasPrice, chainName, myWallet) {
|
|
|
143
145
|
return [4 /*yield*/, confirmLater(myWallet.sdk.eth.sendTransaction(swapParams))];
|
|
144
146
|
case 1:
|
|
145
147
|
result = _a.sent();
|
|
146
|
-
return [2 /*return*/, result
|
|
147
|
-
// if (result && result.message) {
|
|
148
|
-
// instance.change({ status: "failed", text: result.message });
|
|
149
|
-
// } else {
|
|
150
|
-
// instance.change({
|
|
151
|
-
// status: "submitted",
|
|
152
|
-
// chain: state.chainName,
|
|
153
|
-
// address: result,
|
|
154
|
-
// });
|
|
155
|
-
// setTimeout(() => {
|
|
156
|
-
// reloadPage(true);
|
|
157
|
-
// }, 3000);
|
|
158
|
-
// }
|
|
159
|
-
// } catch (e:any) {
|
|
160
|
-
// console.warn(e);
|
|
161
|
-
// console.log("Error: " + e.message);
|
|
162
|
-
// // instance.change({ status: "failed", text: e.message || e });
|
|
163
|
-
// }
|
|
164
|
-
];
|
|
148
|
+
return [2 /*return*/, result];
|
|
165
149
|
}
|
|
166
150
|
});
|
|
167
151
|
});
|
|
@@ -169,16 +153,22 @@ function cancelLimitOrder(order, gasPrice, chainName, myWallet) {
|
|
|
169
153
|
exports.cancelLimitOrder = cancelLimitOrder;
|
|
170
154
|
function getLimitContractAddress(chainName) {
|
|
171
155
|
var address = {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
156
|
+
eth: "0xcC8d695603ce0b43D352891892FcC716c6a7C9f4",
|
|
157
|
+
bsc: "0xA8A0213bb2ce671E457Ec14D08EB9d40E6DA8e2d",
|
|
158
|
+
avax: "0x99b3488Ee3432bB60256140b4BD2488E3b6A705f",
|
|
159
|
+
fantom: "0x44A632dC8ee03ad2cF5d530280a044DaED3E1ec0",
|
|
160
|
+
polygon: "0xFA9B584Bc9543B66BeFdc41fb1DA8636edD7a697",
|
|
161
|
+
arbitrum: "0x23C78B3d85b45BfA6DC8e09b517ba2d9b0ECCA8C",
|
|
162
|
+
optimism: "0xc0A62DDCd284020dC883C642A3Ed5D2A1770eb91",
|
|
163
|
+
moonriver: "0xc0A62DDCd284020dC883C642A3Ed5D2A1770eb91",
|
|
164
|
+
harmony: "0xc0A62DDCd284020dC883C642A3Ed5D2A1770eb91",
|
|
165
|
+
heco: "0xc0A62DDCd284020dC883C642A3Ed5D2A1770eb91",
|
|
166
|
+
okex: "0xc0A62DDCd284020dC883C642A3Ed5D2A1770eb91",
|
|
167
|
+
xdai: "0xc0A62DDCd284020dC883C642A3Ed5D2A1770eb91",
|
|
178
168
|
}[chainName];
|
|
179
169
|
if (address)
|
|
180
170
|
return address;
|
|
181
|
-
return
|
|
171
|
+
return "";
|
|
182
172
|
}
|
|
183
173
|
function sendEthApprove(inToken, type, amount, gasPrice, toContract, myWallet) {
|
|
184
174
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -199,7 +189,7 @@ function sendEthApprove(inToken, type, amount, gasPrice, toContract, myWallet) {
|
|
|
199
189
|
return [4 /*yield*/, contract.methods.totalSupply().call()];
|
|
200
190
|
case 3:
|
|
201
191
|
maxAmount = _a.sent();
|
|
202
|
-
console.log(
|
|
192
|
+
console.log("maxAmount", maxAmount);
|
|
203
193
|
_a.label = 4;
|
|
204
194
|
case 4:
|
|
205
195
|
approveAmount = type === "1" ? maxAmount : amount;
|
|
@@ -223,12 +213,12 @@ function sendEthApprove(inToken, type, amount, gasPrice, toContract, myWallet) {
|
|
|
223
213
|
exports.sendEthApprove = sendEthApprove;
|
|
224
214
|
function confirmLater(promise) {
|
|
225
215
|
return new Promise(function (resolve, reject) {
|
|
226
|
-
promise.on(
|
|
227
|
-
promise.on(
|
|
216
|
+
promise.on("transactionHash", resolve);
|
|
217
|
+
promise.on("error", reject);
|
|
228
218
|
function onConfirm(confNumber, receipt) {
|
|
229
|
-
promise.off(
|
|
219
|
+
promise.off("confirmation", onConfirm);
|
|
230
220
|
}
|
|
231
|
-
promise.on(
|
|
221
|
+
promise.on("confirmation", onConfirm);
|
|
232
222
|
});
|
|
233
223
|
}
|
|
234
224
|
exports.confirmLater = confirmLater;
|