@d8x/perpetuals-sdk 1.3.6 → 2.0.0-alpha
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/accountTrade.d.ts +9 -9
- package/dist/cjs/accountTrade.js +19 -17
- package/dist/cjs/accountTrade.js.map +1 -1
- package/dist/cjs/brokerTool.d.ts +11 -12
- package/dist/cjs/brokerTool.js +7 -8
- package/dist/cjs/brokerTool.js.map +1 -1
- package/dist/cjs/constants.d.ts +11 -12
- package/dist/cjs/constants.js +12 -13
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/contracts/ERC20.d.ts +146 -171
- package/dist/cjs/contracts/IPerpetualManager.d.ts +2534 -2225
- package/dist/cjs/contracts/IPyth.d.ts +181 -184
- package/dist/cjs/contracts/LimitOrderBook.d.ts +373 -401
- package/dist/cjs/contracts/LimitOrderBookBeacon.d.ts +53 -104
- package/dist/cjs/contracts/LimitOrderBookFactory.d.ts +129 -185
- package/dist/cjs/contracts/MockTokenSwap.d.ts +109 -169
- package/dist/cjs/contracts/Multicall3.d.ts +147 -211
- package/dist/cjs/contracts/OnDemandOracleUpgradeable.d.ts +342 -399
- package/dist/cjs/contracts/OracleFactory.d.ts +258 -238
- package/dist/cjs/contracts/PerpetualManagerProxy.d.ts +1099 -891
- package/dist/cjs/contracts/RedStoneAbi.d.ts +369 -488
- package/dist/cjs/contracts/ShareToken.d.ts +232 -285
- package/dist/cjs/contracts/common.d.ts +40 -11
- package/dist/cjs/contracts/factories/ERC20__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/ERC20__factory.js +3 -3
- package/dist/cjs/contracts/factories/ERC20__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/IPerpetualManager__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/IPerpetualManager__factory.js +3 -3
- package/dist/cjs/contracts/factories/IPerpetualManager__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/IPyth__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/IPyth__factory.js +3 -3
- package/dist/cjs/contracts/factories/IPyth__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/LimitOrderBookBeacon__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/LimitOrderBookBeacon__factory.js +3 -3
- package/dist/cjs/contracts/factories/LimitOrderBookBeacon__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.js +3 -3
- package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/LimitOrderBook__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/LimitOrderBook__factory.js +3 -3
- package/dist/cjs/contracts/factories/LimitOrderBook__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/MockTokenSwap__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/MockTokenSwap__factory.js +3 -3
- package/dist/cjs/contracts/factories/MockTokenSwap__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/Multicall3__factory.d.ts +11 -9
- package/dist/cjs/contracts/factories/Multicall3__factory.js +7 -10
- package/dist/cjs/contracts/factories/Multicall3__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/OnDemandOracleUpgradeable__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/OnDemandOracleUpgradeable__factory.js +3 -3
- package/dist/cjs/contracts/factories/OnDemandOracleUpgradeable__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/OracleFactory__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/OracleFactory__factory.js +3 -3
- package/dist/cjs/contracts/factories/OracleFactory__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/PerpetualManagerProxy__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/PerpetualManagerProxy__factory.js +3 -3
- package/dist/cjs/contracts/factories/PerpetualManagerProxy__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/RedStoneAbi__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/RedStoneAbi__factory.js +3 -3
- package/dist/cjs/contracts/factories/RedStoneAbi__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/ShareToken__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/ShareToken__factory.js +3 -3
- package/dist/cjs/contracts/factories/ShareToken__factory.js.map +1 -1
- package/dist/cjs/d8XMath.d.ts +16 -16
- package/dist/cjs/d8XMath.js +48 -49
- package/dist/cjs/d8XMath.js.map +1 -1
- package/dist/cjs/liquidatorTool.d.ts +8 -8
- package/dist/cjs/liquidatorTool.js +5 -7
- package/dist/cjs/liquidatorTool.js.map +1 -1
- package/dist/cjs/liquidityProviderTool.d.ts +4 -5
- package/dist/cjs/liquidityProviderTool.js.map +1 -1
- package/dist/cjs/marketData.d.ts +27 -28
- package/dist/cjs/marketData.js +65 -69
- package/dist/cjs/marketData.js.map +1 -1
- package/dist/cjs/nodeSDKTypes.d.ts +35 -37
- package/dist/cjs/onChainPxFeed.d.ts +2 -2
- package/dist/cjs/onChainPxFeed.js +3 -3
- package/dist/cjs/onChainPxFeed.js.map +1 -1
- package/dist/cjs/onChainPxFeedAngle.d.ts +2 -2
- package/dist/cjs/onChainPxFeedAngle.js +4 -5
- package/dist/cjs/onChainPxFeedAngle.js.map +1 -1
- package/dist/cjs/onChainPxFeedRedStone.js +2 -2
- package/dist/cjs/onChainPxFeedRedStone.js.map +1 -1
- package/dist/cjs/orderExecutorTool.d.ts +7 -9
- package/dist/cjs/orderExecutorTool.js +54 -63
- package/dist/cjs/orderExecutorTool.js.map +1 -1
- package/dist/cjs/perpetualDataHandler.d.ts +38 -35
- package/dist/cjs/perpetualDataHandler.js +173 -167
- package/dist/cjs/perpetualDataHandler.js.map +1 -1
- package/dist/cjs/perpetualEventHandler.d.ts +4 -5
- package/dist/cjs/perpetualEventHandler.js +2 -2
- package/dist/cjs/perpetualEventHandler.js.map +1 -1
- package/dist/cjs/priceFeeds.js +2 -3
- package/dist/cjs/priceFeeds.js.map +1 -1
- package/dist/cjs/referralCodeSigner.d.ts +1 -1
- package/dist/cjs/referralCodeSigner.js +12 -16
- package/dist/cjs/referralCodeSigner.js.map +1 -1
- package/dist/cjs/traderDigests.d.ts +2 -1
- package/dist/cjs/traderDigests.js +9 -11
- package/dist/cjs/traderDigests.js.map +1 -1
- package/dist/cjs/traderInterface.d.ts +8 -9
- package/dist/cjs/traderInterface.js +26 -23
- package/dist/cjs/traderInterface.js.map +1 -1
- package/dist/cjs/utils.d.ts +2 -3
- package/dist/cjs/utils.js +1 -2
- package/dist/cjs/utils.js.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/cjs/writeAccessHandler.d.ts +7 -9
- package/dist/cjs/writeAccessHandler.js +13 -16
- package/dist/cjs/writeAccessHandler.js.map +1 -1
- package/dist/esm/accountTrade.d.ts +9 -9
- package/dist/esm/accountTrade.js +19 -17
- package/dist/esm/accountTrade.js.map +1 -1
- package/dist/esm/brokerTool.d.ts +11 -12
- package/dist/esm/brokerTool.js +2 -3
- package/dist/esm/brokerTool.js.map +1 -1
- package/dist/esm/constants.d.ts +11 -12
- package/dist/esm/constants.js +12 -13
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/contracts/ERC20.d.ts +146 -171
- package/dist/esm/contracts/IPerpetualManager.d.ts +2534 -2225
- package/dist/esm/contracts/IPyth.d.ts +181 -184
- package/dist/esm/contracts/LimitOrderBook.d.ts +373 -401
- package/dist/esm/contracts/LimitOrderBookBeacon.d.ts +53 -104
- package/dist/esm/contracts/LimitOrderBookFactory.d.ts +129 -185
- package/dist/esm/contracts/MockTokenSwap.d.ts +109 -169
- package/dist/esm/contracts/Multicall3.d.ts +147 -211
- package/dist/esm/contracts/OnDemandOracleUpgradeable.d.ts +342 -399
- package/dist/esm/contracts/OracleFactory.d.ts +258 -238
- package/dist/esm/contracts/PerpetualManagerProxy.d.ts +1099 -891
- package/dist/esm/contracts/RedStoneAbi.d.ts +369 -488
- package/dist/esm/contracts/ShareToken.d.ts +232 -285
- package/dist/esm/contracts/common.d.ts +40 -11
- package/dist/esm/contracts/factories/ERC20__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/ERC20__factory.js +4 -4
- package/dist/esm/contracts/factories/ERC20__factory.js.map +1 -1
- package/dist/esm/contracts/factories/IPerpetualManager__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/IPerpetualManager__factory.js +4 -4
- package/dist/esm/contracts/factories/IPerpetualManager__factory.js.map +1 -1
- package/dist/esm/contracts/factories/IPyth__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/IPyth__factory.js +4 -4
- package/dist/esm/contracts/factories/IPyth__factory.js.map +1 -1
- package/dist/esm/contracts/factories/LimitOrderBookBeacon__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/LimitOrderBookBeacon__factory.js +4 -4
- package/dist/esm/contracts/factories/LimitOrderBookBeacon__factory.js.map +1 -1
- package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.js +4 -4
- package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.js.map +1 -1
- package/dist/esm/contracts/factories/LimitOrderBook__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/LimitOrderBook__factory.js +4 -4
- package/dist/esm/contracts/factories/LimitOrderBook__factory.js.map +1 -1
- package/dist/esm/contracts/factories/MockTokenSwap__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/MockTokenSwap__factory.js +4 -4
- package/dist/esm/contracts/factories/MockTokenSwap__factory.js.map +1 -1
- package/dist/esm/contracts/factories/Multicall3__factory.d.ts +11 -9
- package/dist/esm/contracts/factories/Multicall3__factory.js +8 -11
- package/dist/esm/contracts/factories/Multicall3__factory.js.map +1 -1
- package/dist/esm/contracts/factories/OnDemandOracleUpgradeable__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/OnDemandOracleUpgradeable__factory.js +4 -4
- package/dist/esm/contracts/factories/OnDemandOracleUpgradeable__factory.js.map +1 -1
- package/dist/esm/contracts/factories/OracleFactory__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/OracleFactory__factory.js +4 -4
- package/dist/esm/contracts/factories/OracleFactory__factory.js.map +1 -1
- package/dist/esm/contracts/factories/PerpetualManagerProxy__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/PerpetualManagerProxy__factory.js +4 -4
- package/dist/esm/contracts/factories/PerpetualManagerProxy__factory.js.map +1 -1
- package/dist/esm/contracts/factories/RedStoneAbi__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/RedStoneAbi__factory.js +4 -4
- package/dist/esm/contracts/factories/RedStoneAbi__factory.js.map +1 -1
- package/dist/esm/contracts/factories/ShareToken__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/ShareToken__factory.js +4 -4
- package/dist/esm/contracts/factories/ShareToken__factory.js.map +1 -1
- package/dist/esm/d8XMath.d.ts +16 -16
- package/dist/esm/d8XMath.js +48 -49
- package/dist/esm/d8XMath.js.map +1 -1
- package/dist/esm/liquidatorTool.d.ts +8 -8
- package/dist/esm/liquidatorTool.js +5 -7
- package/dist/esm/liquidatorTool.js.map +1 -1
- package/dist/esm/liquidityProviderTool.d.ts +4 -5
- package/dist/esm/liquidityProviderTool.js.map +1 -1
- package/dist/esm/marketData.d.ts +27 -28
- package/dist/esm/marketData.js +55 -59
- package/dist/esm/marketData.js.map +1 -1
- package/dist/esm/nodeSDKTypes.d.ts +35 -37
- package/dist/esm/onChainPxFeed.d.ts +2 -2
- package/dist/esm/onChainPxFeed.js +3 -3
- package/dist/esm/onChainPxFeed.js.map +1 -1
- package/dist/esm/onChainPxFeedAngle.d.ts +2 -2
- package/dist/esm/onChainPxFeedAngle.js +2 -3
- package/dist/esm/onChainPxFeedAngle.js.map +1 -1
- package/dist/esm/onChainPxFeedRedStone.js +1 -1
- package/dist/esm/onChainPxFeedRedStone.js.map +1 -1
- package/dist/esm/orderExecutorTool.d.ts +7 -9
- package/dist/esm/orderExecutorTool.js +40 -49
- package/dist/esm/orderExecutorTool.js.map +1 -1
- package/dist/esm/perpetualDataHandler.d.ts +38 -35
- package/dist/esm/perpetualDataHandler.js +114 -108
- package/dist/esm/perpetualDataHandler.js.map +1 -1
- package/dist/esm/perpetualEventHandler.d.ts +4 -5
- package/dist/esm/perpetualEventHandler.js +2 -2
- package/dist/esm/perpetualEventHandler.js.map +1 -1
- package/dist/esm/priceFeeds.js +2 -3
- package/dist/esm/priceFeeds.js.map +1 -1
- package/dist/esm/referralCodeSigner.d.ts +1 -1
- package/dist/esm/referralCodeSigner.js +6 -10
- package/dist/esm/referralCodeSigner.js.map +1 -1
- package/dist/esm/traderDigests.d.ts +2 -1
- package/dist/esm/traderDigests.js +2 -4
- package/dist/esm/traderDigests.js.map +1 -1
- package/dist/esm/traderInterface.d.ts +8 -9
- package/dist/esm/traderInterface.js +26 -23
- package/dist/esm/traderInterface.js.map +1 -1
- package/dist/esm/utils.d.ts +2 -3
- package/dist/esm/utils.js +1 -2
- package/dist/esm/utils.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/esm/writeAccessHandler.d.ts +7 -9
- package/dist/esm/writeAccessHandler.js +5 -8
- package/dist/esm/writeAccessHandler.js.map +1 -1
- package/package.json +7 -17
- package/src/accountTrade.ts +32 -34
- package/src/brokerTool.ts +17 -20
- package/src/constants.ts +12 -13
- package/src/contracts/ERC20.ts +236 -350
- package/src/contracts/IPerpetualManager.ts +3359 -5050
- package/src/contracts/IPyth.ts +272 -409
- package/src/contracts/LimitOrderBook.ts +503 -779
- package/src/contracts/LimitOrderBookBeacon.ts +123 -171
- package/src/contracts/LimitOrderBookFactory.ts +263 -332
- package/src/contracts/MockTokenSwap.ts +237 -275
- package/src/contracts/Multicall3.ts +208 -374
- package/src/contracts/OnDemandOracleUpgradeable.ts +569 -782
- package/src/contracts/OracleFactory.ts +410 -538
- package/src/contracts/PerpetualManagerProxy.ts +1898 -1426
- package/src/contracts/RedStoneAbi.ts +486 -986
- package/src/contracts/ShareToken.ts +376 -557
- package/src/contracts/common.ts +108 -21
- package/src/contracts/factories/ERC20__factory.ts +4 -5
- package/src/contracts/factories/IPerpetualManager__factory.ts +4 -5
- package/src/contracts/factories/IPyth__factory.ts +4 -5
- package/src/contracts/factories/LimitOrderBookBeacon__factory.ts +5 -6
- package/src/contracts/factories/LimitOrderBookFactory__factory.ts +5 -6
- package/src/contracts/factories/LimitOrderBook__factory.ts +4 -5
- package/src/contracts/factories/MockTokenSwap__factory.ts +4 -5
- package/src/contracts/factories/Multicall3__factory.ts +21 -19
- package/src/contracts/factories/OnDemandOracleUpgradeable__factory.ts +5 -6
- package/src/contracts/factories/OracleFactory__factory.ts +4 -5
- package/src/contracts/factories/PerpetualManagerProxy__factory.ts +5 -6
- package/src/contracts/factories/RedStoneAbi__factory.ts +4 -8
- package/src/contracts/factories/ShareToken__factory.ts +4 -8
- package/src/d8XMath.ts +57 -57
- package/src/liquidatorTool.ts +12 -15
- package/src/liquidityProviderTool.ts +7 -5
- package/src/marketData.ts +110 -121
- package/src/nodeSDKTypes.ts +51 -38
- package/src/onChainPxFeed.ts +4 -4
- package/src/onChainPxFeedAngle.ts +5 -7
- package/src/onChainPxFeedRedStone.ts +1 -3
- package/src/orderExecutorTool.ts +102 -109
- package/src/perpetualDataHandler.ts +181 -167
- package/src/perpetualEventHandler.ts +16 -17
- package/src/priceFeeds.ts +2 -3
- package/src/referralCodeSigner.ts +6 -10
- package/src/traderDigests.ts +8 -5
- package/src/traderInterface.ts +45 -31
- package/src/utils.ts +3 -4
- package/src/version.ts +1 -1
- package/src/writeAccessHandler.ts +26 -17
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { BigNumber } from "@ethersproject/bignumber";
|
|
2
1
|
import { ONE_64x64 } from "./constants";
|
|
3
2
|
import { ABK64x64ToFloat, mul64x64 } from "./d8XMath";
|
|
4
3
|
import MarketData from "./marketData";
|
|
@@ -194,9 +193,9 @@ export default class PerpetualEventHandler {
|
|
|
194
193
|
*/
|
|
195
194
|
public onUpdateMarkPrice(
|
|
196
195
|
perpetualId: number,
|
|
197
|
-
fMidPricePremium:
|
|
198
|
-
fMarkPricePremium:
|
|
199
|
-
fSpotIndexPrice:
|
|
196
|
+
fMidPricePremium: bigint,
|
|
197
|
+
fMarkPricePremium: bigint,
|
|
198
|
+
fSpotIndexPrice: bigint
|
|
200
199
|
): void {
|
|
201
200
|
let [newMidPrice, newMarkPrice, newIndexPrice] = PerpetualEventHandler.ConvertUpdateMarkPrice(
|
|
202
201
|
fMidPricePremium,
|
|
@@ -218,7 +217,7 @@ export default class PerpetualEventHandler {
|
|
|
218
217
|
* UpdateFundingRate(uint24 indexed perpetualId, int128 fFundingRate)
|
|
219
218
|
* @param fFundingRate funding rate in ABDK format
|
|
220
219
|
*/
|
|
221
|
-
public onUpdateUpdateFundingRate(perpetualId: number, fFundingRate:
|
|
220
|
+
public onUpdateUpdateFundingRate(perpetualId: number, fFundingRate: bigint): void {
|
|
222
221
|
let newRate = ABK64x64ToFloat(fFundingRate);
|
|
223
222
|
let perpetual = this.getPerpetualData(perpetualId.toString());
|
|
224
223
|
if (perpetual == undefined) {
|
|
@@ -332,11 +331,11 @@ export default class PerpetualEventHandler {
|
|
|
332
331
|
perpetualId: number,
|
|
333
332
|
trader: string,
|
|
334
333
|
_positionId: string,
|
|
335
|
-
_fPositionBC:
|
|
336
|
-
_fCashCC:
|
|
337
|
-
_fLockedInValueQC:
|
|
338
|
-
_fFundingPaymentCC:
|
|
339
|
-
fOpenInterestBC:
|
|
334
|
+
_fPositionBC: bigint,
|
|
335
|
+
_fCashCC: bigint,
|
|
336
|
+
_fLockedInValueQC: bigint,
|
|
337
|
+
_fFundingPaymentCC: bigint,
|
|
338
|
+
fOpenInterestBC: bigint
|
|
340
339
|
): Promise<void> {
|
|
341
340
|
let perpetual = this.getPerpetualData(perpetualId.toString());
|
|
342
341
|
if (perpetual == undefined) {
|
|
@@ -369,8 +368,8 @@ export default class PerpetualEventHandler {
|
|
|
369
368
|
positionId: string,
|
|
370
369
|
_order: SmartContractOrder,
|
|
371
370
|
orderDigest: string,
|
|
372
|
-
newPositionSizeBC:
|
|
373
|
-
_price:
|
|
371
|
+
newPositionSizeBC: bigint,
|
|
372
|
+
_price: bigint
|
|
374
373
|
): TradeEvent {
|
|
375
374
|
// remove order digest from open orders
|
|
376
375
|
let orderStructs = this.ordersInPerpetual.get(perpetualId);
|
|
@@ -440,12 +439,12 @@ export default class PerpetualEventHandler {
|
|
|
440
439
|
* @returns mark price and spot index in float
|
|
441
440
|
*/
|
|
442
441
|
private static ConvertUpdateMarkPrice(
|
|
443
|
-
fMidPricePremium:
|
|
444
|
-
fMarkPricePremium:
|
|
445
|
-
fSpotIndexPrice:
|
|
442
|
+
fMidPricePremium: bigint,
|
|
443
|
+
fMarkPricePremium: bigint,
|
|
444
|
+
fSpotIndexPrice: bigint
|
|
446
445
|
): [number, number, number] {
|
|
447
|
-
let fMarkPrice = mul64x64(fSpotIndexPrice, ONE_64x64
|
|
448
|
-
let fMidPrice = mul64x64(fSpotIndexPrice, ONE_64x64
|
|
446
|
+
let fMarkPrice = mul64x64(fSpotIndexPrice, ONE_64x64 + fMarkPricePremium);
|
|
447
|
+
let fMidPrice = mul64x64(fSpotIndexPrice, ONE_64x64 + fMidPricePremium);
|
|
449
448
|
let midPrice = ABK64x64ToFloat(fMidPrice);
|
|
450
449
|
let markPrice = ABK64x64ToFloat(fMarkPrice);
|
|
451
450
|
let indexPrice = ABK64x64ToFloat(fSpotIndexPrice);
|
package/src/priceFeeds.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { BigNumber } from "@ethersproject/bignumber";
|
|
2
1
|
import { Buffer } from "buffer";
|
|
3
2
|
import { decNToFloat, floatToDec18 } from "./d8XMath";
|
|
4
3
|
import type {
|
|
@@ -279,7 +278,7 @@ export default class PriceFeeds {
|
|
|
279
278
|
let [, pxInfo]: [string[], PriceFeedFormat[]] = await this.fetchPriceQuery(queries[k] + suffixes[k]);
|
|
280
279
|
let tsSecNow = Math.round(Date.now() / 1000);
|
|
281
280
|
for (let j = 0; j < pxInfo.length; j++) {
|
|
282
|
-
let price = decNToFloat(
|
|
281
|
+
let price = decNToFloat(BigInt(pxInfo[j].price), -pxInfo[j].expo);
|
|
283
282
|
let isMarketClosed = tsSecNow - pxInfo[j].publish_time > this.THRESHOLD_MARKET_CLOSED_SEC;
|
|
284
283
|
resultPrices.set(symbolsOfEndpoint[k][j], [price, isMarketClosed]);
|
|
285
284
|
}
|
|
@@ -376,7 +375,7 @@ export default class PriceFeeds {
|
|
|
376
375
|
const tsSecNow = Math.round(Date.now() / 1000);
|
|
377
376
|
for (let k = 0; k < feedIds.length; k++) {
|
|
378
377
|
let pxInfo: PriceFeedFormat = data[k].prices[0];
|
|
379
|
-
let price = decNToFloat(
|
|
378
|
+
let price = decNToFloat(BigInt(pxInfo.price), -pxInfo.expo);
|
|
380
379
|
prices.push(price);
|
|
381
380
|
priceFeedUpdates.push(data[k].vaas[0]);
|
|
382
381
|
let isMarketClosed = tsSecNow - pxInfo.publish_time > this.THRESHOLD_MARKET_CLOSED_SEC;
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Signer } from "@ethersproject/abstract-signer";
|
|
3
|
-
import { keccak256 } from "@ethersproject/keccak256";
|
|
4
|
-
import { Provider, StaticJsonRpcProvider } from "@ethersproject/providers";
|
|
5
|
-
import { Wallet, verifyMessage } from "@ethersproject/wallet";
|
|
1
|
+
import { AbiCoder, JsonRpcProvider, keccak256, Provider, Signer, verifyMessage, Wallet } from "ethers";
|
|
6
2
|
import type { APIReferPayload, APIReferralCodePayload, APIReferralCodeSelectionPayload } from "./nodeSDKTypes";
|
|
7
3
|
|
|
8
4
|
/**
|
|
@@ -31,7 +27,7 @@ export default class ReferralCodeSigner {
|
|
|
31
27
|
if (typeof signer == "string") {
|
|
32
28
|
const wallet = this.createSignerInstance(signer);
|
|
33
29
|
this.signingFun = (x: string | Uint8Array) => wallet.signMessage(x);
|
|
34
|
-
} else if (
|
|
30
|
+
} else if ("signMessage" in signer) {
|
|
35
31
|
this.signingFun = (x: string | Uint8Array) => signer.signMessage(x);
|
|
36
32
|
} else {
|
|
37
33
|
this.signingFun = signer;
|
|
@@ -39,7 +35,7 @@ export default class ReferralCodeSigner {
|
|
|
39
35
|
}
|
|
40
36
|
|
|
41
37
|
public createSignerInstance(_privateKey: string): Signer {
|
|
42
|
-
this.provider = new
|
|
38
|
+
this.provider = new JsonRpcProvider(this.rpcURL);
|
|
43
39
|
const wallet = new Wallet(_privateKey);
|
|
44
40
|
return wallet.connect(this.provider);
|
|
45
41
|
}
|
|
@@ -120,7 +116,7 @@ export default class ReferralCodeSigner {
|
|
|
120
116
|
}
|
|
121
117
|
|
|
122
118
|
private static _referralNewToMessage(rc: APIReferPayload): string {
|
|
123
|
-
let abiCoder =
|
|
119
|
+
let abiCoder = new AbiCoder();
|
|
124
120
|
const passOnPercTwoDigitsFormat = Math.round(rc.passOnPercTDF);
|
|
125
121
|
let digest = keccak256(
|
|
126
122
|
abiCoder.encode(
|
|
@@ -137,7 +133,7 @@ export default class ReferralCodeSigner {
|
|
|
137
133
|
* @returns the hex-string to be signed
|
|
138
134
|
*/
|
|
139
135
|
private static _referralCodeNewCodePayloadToMessage(rc: APIReferralCodePayload): string {
|
|
140
|
-
let abiCoder =
|
|
136
|
+
let abiCoder = new AbiCoder();
|
|
141
137
|
const passOnPercTwoDigitsFormat = Math.round(rc.passOnPercTDF);
|
|
142
138
|
let digest = keccak256(
|
|
143
139
|
abiCoder.encode(
|
|
@@ -154,7 +150,7 @@ export default class ReferralCodeSigner {
|
|
|
154
150
|
* @returns the hex-string to be signed
|
|
155
151
|
*/
|
|
156
152
|
private static _codeSelectionPayloadToMessage(rc: APIReferralCodeSelectionPayload): string {
|
|
157
|
-
let abiCoder =
|
|
153
|
+
let abiCoder = new AbiCoder();
|
|
158
154
|
let digest = keccak256(
|
|
159
155
|
abiCoder.encode(["string", "address", "uint256"], [rc.code, rc.traderAddr, Math.round(rc.createdOn)])
|
|
160
156
|
);
|
package/src/traderDigests.ts
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import { defaultAbiCoder } from "@ethersproject/abi";
|
|
2
|
-
import { concat } from "@ethersproject/bytes";
|
|
3
|
-
import { keccak256 } from "@ethersproject/keccak256";
|
|
4
|
-
import { toUtf8Bytes } from "@ethersproject/strings";
|
|
5
1
|
import { Buffer } from "buffer";
|
|
2
|
+
import { AbiCoder, BigNumberish, concat, keccak256, toUtf8Bytes } from "ethers";
|
|
6
3
|
import { type SmartContractOrder } from "./nodeSDKTypes";
|
|
7
4
|
|
|
8
5
|
export default class TraderDigests {
|
|
@@ -30,11 +27,17 @@ export default class TraderDigests {
|
|
|
30
27
|
* @returns digest
|
|
31
28
|
* @ignore
|
|
32
29
|
*/
|
|
33
|
-
public createDigest(
|
|
30
|
+
public createDigest(
|
|
31
|
+
order: SmartContractOrder,
|
|
32
|
+
chainId: BigNumberish,
|
|
33
|
+
isNewOrder: boolean,
|
|
34
|
+
proxyAddress: string
|
|
35
|
+
): string {
|
|
34
36
|
const NAME = "Perpetual Trade Manager";
|
|
35
37
|
const DOMAIN_TYPEHASH = keccak256(
|
|
36
38
|
Buffer.from("EIP712Domain(string name,uint256 chainId,address verifyingContract)")
|
|
37
39
|
);
|
|
40
|
+
const defaultAbiCoder = new AbiCoder();
|
|
38
41
|
let domainSeparator = keccak256(
|
|
39
42
|
defaultAbiCoder.encode(
|
|
40
43
|
["bytes32", "bytes32", "uint256", "address"],
|
package/src/traderInterface.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Signer } from "
|
|
2
|
-
import type { CallOverrides, ContractTransaction, Overrides } from "@ethersproject/contracts";
|
|
1
|
+
import { Contract, ContractTransactionResponse, Overrides, Signer } from "ethers";
|
|
3
2
|
import { ZERO_ORDER_ID } from "./constants";
|
|
4
3
|
import { ABK64x64ToFloat, floatToDec18, floatToDecN } from "./d8XMath";
|
|
5
4
|
import MarketData from "./marketData";
|
|
@@ -50,14 +49,19 @@ export default class TraderInterface extends MarketData {
|
|
|
50
49
|
poolSymbolName: string,
|
|
51
50
|
traderAddr: string,
|
|
52
51
|
brokerAddr: string,
|
|
53
|
-
overrides?:
|
|
52
|
+
overrides?: Overrides
|
|
54
53
|
): Promise<number> {
|
|
55
54
|
if (this.proxyContract == null) {
|
|
56
55
|
throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
|
|
57
56
|
}
|
|
58
57
|
let poolId = PerpetualDataHandler._getPoolIdFromSymbol(poolSymbolName, this.poolStaticInfos);
|
|
59
|
-
let feeTbps = await this.proxyContract.queryExchangeFee(
|
|
60
|
-
|
|
58
|
+
let feeTbps = (await this.proxyContract.queryExchangeFee(
|
|
59
|
+
poolId,
|
|
60
|
+
traderAddr,
|
|
61
|
+
brokerAddr,
|
|
62
|
+
overrides || {}
|
|
63
|
+
)) as bigint;
|
|
64
|
+
return Number(feeTbps) / 100_000;
|
|
61
65
|
}
|
|
62
66
|
|
|
63
67
|
/**
|
|
@@ -82,7 +86,7 @@ export default class TraderInterface extends MarketData {
|
|
|
82
86
|
public async getCurrentTraderVolume(
|
|
83
87
|
poolSymbolName: string,
|
|
84
88
|
traderAddr: string,
|
|
85
|
-
overrides?:
|
|
89
|
+
overrides?: Overrides
|
|
86
90
|
): Promise<number> {
|
|
87
91
|
if (this.proxyContract == null) {
|
|
88
92
|
throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
|
|
@@ -117,7 +121,7 @@ export default class TraderInterface extends MarketData {
|
|
|
117
121
|
public async cancelOrderDigest(
|
|
118
122
|
symbol: string,
|
|
119
123
|
orderId: string,
|
|
120
|
-
overrides?:
|
|
124
|
+
overrides?: Overrides
|
|
121
125
|
): Promise<{ digest: string; OBContractAddr: string }> {
|
|
122
126
|
if (this.proxyContract == null) {
|
|
123
127
|
throw Error("no proxy contract initialized. Use createProxyInstance().");
|
|
@@ -125,7 +129,7 @@ export default class TraderInterface extends MarketData {
|
|
|
125
129
|
let orderBookContract = this.getOrderBookContract(symbol);
|
|
126
130
|
let scOrder: SmartContractOrder = await orderBookContract.orderOfDigest(orderId, overrides || {});
|
|
127
131
|
let digest = this.digestTool.createDigest(scOrder, this.chainId, false, this.proxyAddr);
|
|
128
|
-
return { digest: digest, OBContractAddr: orderBookContract.
|
|
132
|
+
return { digest: digest, OBContractAddr: orderBookContract.target.toString() };
|
|
129
133
|
}
|
|
130
134
|
|
|
131
135
|
/**
|
|
@@ -147,7 +151,7 @@ export default class TraderInterface extends MarketData {
|
|
|
147
151
|
*/
|
|
148
152
|
public getOrderBookAddress(symbol: string): string {
|
|
149
153
|
let orderBookContract = this.getOrderBookContract(symbol);
|
|
150
|
-
return orderBookContract.
|
|
154
|
+
return orderBookContract.target.toString();
|
|
151
155
|
}
|
|
152
156
|
|
|
153
157
|
/**
|
|
@@ -172,20 +176,24 @@ export default class TraderInterface extends MarketData {
|
|
|
172
176
|
if (this.proxyContract == null) {
|
|
173
177
|
throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
|
|
174
178
|
}
|
|
175
|
-
let digest = this.digestTool.createDigest(scOrder, this.chainId, true, this.proxyContract.
|
|
179
|
+
let digest = this.digestTool.createDigest(scOrder, this.chainId, true, this.proxyContract.target.toString());
|
|
176
180
|
return digest;
|
|
177
181
|
}
|
|
178
182
|
|
|
179
183
|
/**
|
|
180
|
-
* Get the ABI of a method in the proxy contract
|
|
184
|
+
* Get the ABI of a method in the proxy contract. Throws if non-existent
|
|
181
185
|
* @param method Name of the method
|
|
182
186
|
* @returns ABI as a single string
|
|
183
187
|
*/
|
|
184
188
|
public getProxyABI(method: string): string {
|
|
185
189
|
if (this.proxyContract == null) {
|
|
186
|
-
throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
|
|
190
|
+
throw new Error("no proxy contract or wallet initialized. Use createProxyInstance().");
|
|
187
191
|
}
|
|
188
|
-
|
|
192
|
+
const res = PerpetualDataHandler._getABIFromContract(this.proxyContract, method);
|
|
193
|
+
if (!res) {
|
|
194
|
+
throw new Error(`no proxy method found with name ${method}`);
|
|
195
|
+
}
|
|
196
|
+
return res;
|
|
189
197
|
}
|
|
190
198
|
|
|
191
199
|
/**
|
|
@@ -199,7 +207,11 @@ export default class TraderInterface extends MarketData {
|
|
|
199
207
|
throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
|
|
200
208
|
}
|
|
201
209
|
let orderBookContract = this.getOrderBookContract(symbol);
|
|
202
|
-
|
|
210
|
+
const res = PerpetualDataHandler._getABIFromContract(orderBookContract, method);
|
|
211
|
+
if (!res) {
|
|
212
|
+
throw new Error(`no proxy method found with name ${method}`);
|
|
213
|
+
}
|
|
214
|
+
return res;
|
|
203
215
|
}
|
|
204
216
|
|
|
205
217
|
/**
|
|
@@ -254,16 +266,14 @@ export default class TraderInterface extends MarketData {
|
|
|
254
266
|
poolSymbolName: string,
|
|
255
267
|
amountCC: number,
|
|
256
268
|
overrides?: Overrides
|
|
257
|
-
): Promise<
|
|
269
|
+
): Promise<ContractTransactionResponse> {
|
|
258
270
|
if (this.proxyContract == null) {
|
|
259
271
|
throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
|
|
260
272
|
}
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
.addLiquidity(poolId, floatToDecN(amountCC, decimals!), overrides || { gasLimit: this.gasLimit });
|
|
266
|
-
return tx;
|
|
273
|
+
const poolId = PerpetualDataHandler._getPoolIdFromSymbol(poolSymbolName, this.poolStaticInfos);
|
|
274
|
+
const decimals = this.getSettlementTokenDecimalsFromSymbol(poolSymbolName);
|
|
275
|
+
const proxy = new Contract(this.proxyAddr, this.proxyABI, signer);
|
|
276
|
+
return await proxy.addLiquidity(poolId, floatToDecN(amountCC, decimals!), overrides || { gasLimit: this.gasLimit });
|
|
267
277
|
}
|
|
268
278
|
|
|
269
279
|
/**
|
|
@@ -295,15 +305,17 @@ export default class TraderInterface extends MarketData {
|
|
|
295
305
|
poolSymbolName: string,
|
|
296
306
|
amountPoolShares: number,
|
|
297
307
|
overrides?: Overrides
|
|
298
|
-
): Promise<
|
|
308
|
+
): Promise<ContractTransactionResponse> {
|
|
299
309
|
if (this.proxyContract == null) {
|
|
300
310
|
throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
|
|
301
311
|
}
|
|
302
312
|
let poolId = PerpetualDataHandler._getPoolIdFromSymbol(poolSymbolName, this.poolStaticInfos);
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
313
|
+
const proxy = new Contract(this.proxyAddr, this.proxyABI, signer);
|
|
314
|
+
return await proxy.withdrawLiquidity(
|
|
315
|
+
poolId,
|
|
316
|
+
floatToDec18(amountPoolShares),
|
|
317
|
+
overrides || { gasLimit: this.gasLimit }
|
|
318
|
+
);
|
|
307
319
|
}
|
|
308
320
|
|
|
309
321
|
/**
|
|
@@ -332,14 +344,16 @@ export default class TraderInterface extends MarketData {
|
|
|
332
344
|
signer: Signer,
|
|
333
345
|
poolSymbolName: string,
|
|
334
346
|
overrides?: Overrides
|
|
335
|
-
): Promise<
|
|
347
|
+
): Promise<ContractTransactionResponse> {
|
|
336
348
|
if (this.proxyContract == null) {
|
|
337
349
|
throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
|
|
338
350
|
}
|
|
339
351
|
let poolId = PerpetualDataHandler._getPoolIdFromSymbol(poolSymbolName, this.poolStaticInfos);
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
352
|
+
const proxy = new Contract(this.proxyAddr, this.proxyABI, signer);
|
|
353
|
+
return await proxy.executeLiquidityWithdrawal(
|
|
354
|
+
poolId,
|
|
355
|
+
await signer.getAddress(),
|
|
356
|
+
overrides || { gasLimit: this.gasLimit }
|
|
357
|
+
);
|
|
344
358
|
}
|
|
345
359
|
}
|
package/src/utils.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { BigNumber } from "@ethersproject/bignumber";
|
|
2
1
|
import { Buffer } from "buffer";
|
|
3
2
|
import { NodeSDKConfig } from "./nodeSDKTypes";
|
|
4
3
|
|
|
@@ -126,11 +125,11 @@ export function symbol4BToLongSymbol(s: string, mapping: Map<string, string>): s
|
|
|
126
125
|
return longCCY.substring(1);
|
|
127
126
|
}
|
|
128
127
|
|
|
129
|
-
export function combineFlags(f1:
|
|
130
|
-
return
|
|
128
|
+
export function combineFlags(f1: bigint, f2: bigint): bigint {
|
|
129
|
+
return BigInt((parseInt(f1.toString()) | parseInt(f2.toString())) >>> 0);
|
|
131
130
|
}
|
|
132
131
|
|
|
133
|
-
export function containsFlag(f1:
|
|
132
|
+
export function containsFlag(f1: bigint, f2: bigint): boolean {
|
|
134
133
|
return (BigInt(f1.toString()) & BigInt(f2.toString())) > 0;
|
|
135
134
|
}
|
|
136
135
|
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const D8X_SDK_VERSION = "
|
|
1
|
+
export const D8X_SDK_VERSION = "2.0.0-alpha";
|
|
@@ -1,11 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import {
|
|
2
|
+
Contract,
|
|
3
|
+
ContractTransactionResponse,
|
|
4
|
+
JsonRpcProvider,
|
|
5
|
+
Overrides,
|
|
6
|
+
parseEther,
|
|
7
|
+
Provider,
|
|
8
|
+
Signer,
|
|
9
|
+
Wallet,
|
|
10
|
+
} from "ethers";
|
|
7
11
|
import { MAX_UINT_256, MULTICALL_ADDRESS } from "./constants";
|
|
8
12
|
import { ERC20__factory, MockTokenSwap__factory, Multicall3__factory } from "./contracts";
|
|
13
|
+
import { PayableOverrides } from "./contracts/common";
|
|
9
14
|
import { floatToDecN } from "./d8XMath";
|
|
10
15
|
import MarketData from "./marketData";
|
|
11
16
|
import { type NodeSDKConfig } from "./nodeSDKTypes";
|
|
@@ -39,7 +44,7 @@ export default class WriteAccessHandler extends PerpetualDataHandler {
|
|
|
39
44
|
}
|
|
40
45
|
}
|
|
41
46
|
|
|
42
|
-
public async createProxyInstance(provider?: Provider, overrides?:
|
|
47
|
+
public async createProxyInstance(provider?: Provider, overrides?: Overrides): Promise<void>;
|
|
43
48
|
|
|
44
49
|
public async createProxyInstance(marketData: MarketData): Promise<void>;
|
|
45
50
|
|
|
@@ -49,9 +54,9 @@ export default class WriteAccessHandler extends PerpetualDataHandler {
|
|
|
49
54
|
* about perpetual currencies
|
|
50
55
|
* @param provider optional provider
|
|
51
56
|
*/
|
|
52
|
-
public async createProxyInstance(providerOrMarketData?: Provider | MarketData, overrides?:
|
|
53
|
-
if (providerOrMarketData == undefined ||
|
|
54
|
-
this.provider = providerOrMarketData ?? new
|
|
57
|
+
public async createProxyInstance(providerOrMarketData?: Provider | MarketData, overrides?: Overrides) {
|
|
58
|
+
if (providerOrMarketData == undefined || !("createProxyInstance" in providerOrMarketData)) {
|
|
59
|
+
this.provider = providerOrMarketData ?? new JsonRpcProvider(this.nodeURL, this.network, { staticNetwork: true });
|
|
55
60
|
if (!this.signer) {
|
|
56
61
|
const wallet = new Wallet(this.privateKey!);
|
|
57
62
|
this.signer = wallet.connect(this.provider);
|
|
@@ -60,7 +65,7 @@ export default class WriteAccessHandler extends PerpetualDataHandler {
|
|
|
60
65
|
} else {
|
|
61
66
|
const mktData = providerOrMarketData;
|
|
62
67
|
this.nodeURL = mktData.config.nodeURL;
|
|
63
|
-
this.provider = new
|
|
68
|
+
this.provider = new JsonRpcProvider(mktData.config.nodeURL, mktData.network, { staticNetwork: true });
|
|
64
69
|
this.proxyContract = new Contract(mktData.getProxyAddress(), this.config.proxyABI!, this.provider);
|
|
65
70
|
this.multicall = Multicall3__factory.connect(this.config.multicall ?? MULTICALL_ADDRESS, this.provider);
|
|
66
71
|
({
|
|
@@ -84,9 +89,13 @@ export default class WriteAccessHandler extends PerpetualDataHandler {
|
|
|
84
89
|
* Set allowance for ar margin token (e.g., MATIC, ETH, USDC)
|
|
85
90
|
* @param symbol token in 'long-form' such as MATIC, symbol also fine (ETH-USD-MATIC)
|
|
86
91
|
* @param amount optional, amount to approve if not 'infinity'
|
|
87
|
-
* @returns
|
|
92
|
+
* @returns Contract Transaction
|
|
88
93
|
*/
|
|
89
|
-
public async setAllowance(
|
|
94
|
+
public async setAllowance(
|
|
95
|
+
symbol: string,
|
|
96
|
+
amount?: number,
|
|
97
|
+
overrides?: Overrides
|
|
98
|
+
): Promise<ContractTransactionResponse> {
|
|
90
99
|
// extract margin-currency name
|
|
91
100
|
let symbolarr = symbol.split("-");
|
|
92
101
|
symbol = symbol.length == 3 ? symbolarr[2] : symbolarr[0];
|
|
@@ -95,7 +104,7 @@ export default class WriteAccessHandler extends PerpetualDataHandler {
|
|
|
95
104
|
if (settleTokenAddr == undefined || this.signer == null) {
|
|
96
105
|
throw Error("No margin token or signer defined, call createProxyInstance");
|
|
97
106
|
}
|
|
98
|
-
let amountDec18:
|
|
107
|
+
let amountDec18: bigint;
|
|
99
108
|
if (amount == undefined) {
|
|
100
109
|
amountDec18 = MAX_UINT_256;
|
|
101
110
|
} else {
|
|
@@ -108,9 +117,9 @@ export default class WriteAccessHandler extends PerpetualDataHandler {
|
|
|
108
117
|
tokenAddr: string,
|
|
109
118
|
proxyAddr: string,
|
|
110
119
|
signer: Signer,
|
|
111
|
-
amount:
|
|
120
|
+
amount: bigint,
|
|
112
121
|
overrides?: Overrides
|
|
113
|
-
): Promise<
|
|
122
|
+
): Promise<ContractTransactionResponse> {
|
|
114
123
|
const marginToken = ERC20__factory.connect(tokenAddr, signer);
|
|
115
124
|
return await marginToken.approve(proxyAddr, amount, overrides || {});
|
|
116
125
|
}
|
|
@@ -134,7 +143,7 @@ export default class WriteAccessHandler extends PerpetualDataHandler {
|
|
|
134
143
|
symbol: string,
|
|
135
144
|
amountToPay: string,
|
|
136
145
|
overrides?: PayableOverrides
|
|
137
|
-
): Promise<
|
|
146
|
+
): Promise<ContractTransactionResponse> {
|
|
138
147
|
if (this.signer == null) {
|
|
139
148
|
throw Error("no wallet initialized. Use createProxyInstance().");
|
|
140
149
|
}
|