@drift-labs/common 1.0.59 → 1.0.61
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/_deprecated/common-math.d.ts +10 -0
- package/lib/_deprecated/common-math.js +9 -0
- package/lib/_deprecated/common-math.js.map +1 -0
- package/lib/_deprecated/common-ui-utils.d.ts +248 -0
- package/lib/_deprecated/common-ui-utils.js +59 -0
- package/lib/_deprecated/common-ui-utils.js.map +1 -0
- package/lib/_deprecated/equality-checks.d.ts +2 -0
- package/lib/_deprecated/equality-checks.js +7 -0
- package/lib/_deprecated/equality-checks.js.map +1 -0
- package/lib/{common-ui-utils/market.d.ts → _deprecated/market-utils.d.ts} +5 -7
- package/lib/_deprecated/market-utils.js +18 -0
- package/lib/_deprecated/market-utils.js.map +1 -0
- package/lib/_deprecated/order-utils.d.ts +12 -0
- package/lib/_deprecated/order-utils.js +18 -0
- package/lib/_deprecated/order-utils.js.map +1 -0
- package/lib/_deprecated/trading-utils.d.ts +52 -0
- package/lib/_deprecated/trading-utils.js +27 -0
- package/lib/_deprecated/trading-utils.js.map +1 -0
- package/lib/_deprecated/user-utils.d.ts +17 -0
- package/lib/_deprecated/user-utils.js +12 -0
- package/lib/_deprecated/user-utils.js.map +1 -0
- package/lib/_deprecated/utils.d.ts +40 -0
- package/lib/_deprecated/utils.js +47 -0
- package/lib/_deprecated/utils.js.map +1 -0
- package/lib/clients/tvFeed.js +2 -2
- package/lib/clients/tvFeed.js.map +1 -1
- package/lib/drift/Drift/clients/AuthorityDrift/DriftOperations/index.js +8 -8
- package/lib/drift/Drift/clients/AuthorityDrift/DriftOperations/index.js.map +1 -1
- package/lib/drift/Drift/clients/AuthorityDrift/index.js +9 -9
- package/lib/drift/Drift/clients/AuthorityDrift/index.js.map +1 -1
- package/lib/drift/Drift/clients/CentralServerDrift/index.js +5 -4
- package/lib/drift/Drift/clients/CentralServerDrift/index.js.map +1 -1
- package/lib/drift/base/actions/trade/editOrder.d.ts +1 -1
- package/lib/drift/base/actions/trade/editOrder.js.map +1 -1
- package/lib/drift/base/actions/trade/margin.js +4 -4
- package/lib/drift/base/actions/trade/margin.js.map +1 -1
- package/lib/drift/base/actions/trade/openPerpOrder/auction.d.ts +1 -1
- package/lib/drift/base/actions/trade/openPerpOrder/auction.js +4 -3
- package/lib/drift/base/actions/trade/openPerpOrder/auction.js.map +1 -1
- package/lib/drift/base/actions/trade/openPerpOrder/dlobServer/index.js +2 -2
- package/lib/drift/base/actions/trade/openPerpOrder/dlobServer/index.js.map +1 -1
- package/lib/drift/base/actions/trade/openPerpOrder/isolatedPositionDeposit.js +2 -2
- package/lib/drift/base/actions/trade/openPerpOrder/isolatedPositionDeposit.js.map +1 -1
- package/lib/drift/base/actions/trade/openPerpOrder/openPerpMarketOrder/index.d.ts +1 -1
- package/lib/drift/base/actions/trade/openPerpOrder/openPerpMarketOrder/index.js +4 -4
- package/lib/drift/base/actions/trade/openPerpOrder/openPerpMarketOrder/index.js.map +1 -1
- package/lib/drift/base/actions/trade/openPerpOrder/openPerpNonMarketOrder/index.d.ts +4 -4
- package/lib/drift/base/actions/trade/openPerpOrder/openPerpNonMarketOrder/index.js +60 -32
- package/lib/drift/base/actions/trade/openPerpOrder/openPerpNonMarketOrder/index.js.map +1 -1
- package/lib/drift/base/actions/trade/openPerpOrder/openSwiftOrder/index.js +4 -3
- package/lib/drift/base/actions/trade/openPerpOrder/openSwiftOrder/index.js.map +1 -1
- package/lib/drift/base/actions/trade/openPerpOrder/positionMaxLeverage.js +2 -2
- package/lib/drift/base/actions/trade/openPerpOrder/positionMaxLeverage.js.map +1 -1
- package/lib/drift/base/actions/trade/openPerpOrder/types.d.ts +5 -0
- package/lib/drift/base/actions/trade/openPerpOrder/types.js.map +1 -1
- package/lib/drift/base/actions/user/create.js +2 -2
- package/lib/drift/base/actions/user/create.js.map +1 -1
- package/lib/drift/base/details/user/balances.js +2 -2
- package/lib/drift/base/details/user/balances.js.map +1 -1
- package/lib/drift/base/details/user/positions.js +2 -2
- package/lib/drift/base/details/user/positions.js.map +1 -1
- package/lib/index.d.ts +28 -28
- package/lib/index.js +44 -29
- package/lib/index.js.map +1 -1
- package/lib/utils/accounts/index.d.ts +6 -0
- package/lib/utils/accounts/index.js +23 -0
- package/lib/utils/accounts/index.js.map +1 -0
- package/lib/utils/accounts/init.d.ts +22 -0
- package/lib/utils/accounts/init.js +90 -0
- package/lib/utils/accounts/init.js.map +1 -0
- package/lib/utils/accounts/keys.d.ts +22 -0
- package/lib/utils/accounts/keys.js +36 -0
- package/lib/utils/accounts/keys.js.map +1 -0
- package/lib/utils/accounts/multiple.d.ts +14 -0
- package/lib/utils/accounts/multiple.js +45 -0
- package/lib/utils/accounts/multiple.js.map +1 -0
- package/lib/utils/accounts/signature.d.ts +6 -0
- package/lib/utils/accounts/signature.js +53 -0
- package/lib/utils/accounts/signature.js.map +1 -0
- package/lib/utils/accounts/subaccounts.d.ts +8 -0
- package/lib/utils/accounts/subaccounts.js +31 -0
- package/lib/utils/accounts/subaccounts.js.map +1 -0
- package/lib/utils/{WalletConnectionState.d.ts → accounts/wallet.d.ts} +7 -1
- package/lib/utils/{WalletConnectionState.js → accounts/wallet.js} +32 -2
- package/lib/utils/accounts/wallet.js.map +1 -0
- package/lib/utils/core/arrays.d.ts +2 -0
- package/lib/utils/core/arrays.js +25 -0
- package/lib/utils/core/arrays.js.map +1 -0
- package/lib/utils/core/async.d.ts +5 -0
- package/lib/utils/core/async.js +17 -0
- package/lib/utils/core/async.js.map +1 -0
- package/lib/utils/core/cache.d.ts +1 -0
- package/lib/utils/core/cache.js +40 -0
- package/lib/utils/core/cache.js.map +1 -0
- package/lib/utils/core/data-structures.d.ts +30 -0
- package/lib/utils/core/data-structures.js +84 -0
- package/lib/utils/core/data-structures.js.map +1 -0
- package/lib/utils/{equalityChecks.d.ts → core/equality.d.ts} +1 -1
- package/lib/utils/{equalityChecks.js → core/equality.js} +3 -3
- package/lib/utils/core/equality.js.map +1 -0
- package/lib/utils/core/fetch.js.map +1 -0
- package/lib/utils/core/index.d.ts +7 -0
- package/lib/utils/core/index.js +24 -0
- package/lib/utils/core/index.js.map +1 -0
- package/lib/utils/core/serialization.d.ts +30 -0
- package/lib/utils/core/serialization.js +92 -0
- package/lib/utils/core/serialization.js.map +1 -0
- package/lib/utils/{enum.js → enum/index.js} +1 -1
- package/lib/utils/enum/index.js.map +1 -0
- package/lib/utils/index.d.ts +11 -176
- package/lib/utils/index.js +25 -594
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/markets/balances.d.ts +6 -0
- package/lib/utils/markets/balances.js +29 -0
- package/lib/utils/markets/balances.js.map +1 -0
- package/lib/utils/markets/config.d.ts +5 -0
- package/lib/utils/markets/config.js +24 -0
- package/lib/utils/markets/config.js.map +1 -0
- package/lib/utils/markets/index.d.ts +6 -0
- package/lib/utils/markets/index.js +23 -0
- package/lib/utils/markets/index.js.map +1 -0
- package/lib/utils/markets/interest.d.ts +25 -0
- package/lib/utils/markets/interest.js +65 -0
- package/lib/utils/markets/interest.js.map +1 -0
- package/lib/utils/markets/leverage.d.ts +12 -0
- package/lib/utils/markets/leverage.js +60 -0
- package/lib/utils/markets/leverage.js.map +1 -0
- package/lib/utils/markets/operations.d.ts +21 -0
- package/lib/utils/markets/operations.js +59 -0
- package/lib/utils/markets/operations.js.map +1 -0
- package/lib/utils/math/bignum.d.ts +3 -0
- package/lib/utils/math/bignum.js +16 -0
- package/lib/utils/math/bignum.js.map +1 -0
- package/lib/utils/math/bn.d.ts +7 -0
- package/lib/utils/math/bn.js +58 -0
- package/lib/utils/math/bn.js.map +1 -0
- package/lib/utils/math/index.d.ts +7 -0
- package/lib/utils/math/index.js +24 -0
- package/lib/utils/math/index.js.map +1 -0
- package/lib/utils/math/numbers.d.ts +13 -0
- package/lib/utils/math/numbers.js +56 -0
- package/lib/utils/math/numbers.js.map +1 -0
- package/lib/utils/math/precision.d.ts +19 -0
- package/lib/utils/math/precision.js +73 -0
- package/lib/utils/math/precision.js.map +1 -0
- package/lib/utils/math/price.d.ts +12 -0
- package/lib/utils/math/price.js +45 -0
- package/lib/utils/math/price.js.map +1 -0
- package/lib/utils/math/sort.d.ts +13 -0
- package/lib/utils/math/sort.js +33 -0
- package/lib/utils/math/sort.js.map +1 -0
- package/lib/utils/math/spread.d.ts +8 -0
- package/lib/utils/math/spread.js +87 -0
- package/lib/utils/math/spread.js.map +1 -0
- package/lib/utils/orderbook/index.js +4 -4
- package/lib/utils/orderbook/index.js.map +1 -1
- package/lib/utils/orders/filters.d.ts +7 -0
- package/lib/utils/orders/filters.js +31 -0
- package/lib/utils/orders/filters.js.map +1 -0
- package/lib/utils/orders/flags.d.ts +12 -0
- package/lib/utils/orders/flags.js +44 -0
- package/lib/utils/orders/flags.js.map +1 -0
- package/lib/utils/orders/index.d.ts +6 -0
- package/lib/utils/orders/index.js +23 -0
- package/lib/utils/orders/index.js.map +1 -0
- package/lib/utils/orders/labels.d.ts +4 -0
- package/lib/utils/orders/labels.js +122 -0
- package/lib/utils/orders/labels.js.map +1 -0
- package/lib/utils/orders/misc.d.ts +11 -0
- package/lib/utils/orders/misc.js +27 -0
- package/lib/utils/orders/misc.js.map +1 -0
- package/lib/utils/orders/oracle.d.ts +5 -0
- package/lib/utils/orders/oracle.js +23 -0
- package/lib/utils/orders/oracle.js.map +1 -0
- package/lib/utils/orders/sort.d.ts +38 -0
- package/lib/utils/orders/sort.js +83 -0
- package/lib/utils/orders/sort.js.map +1 -0
- package/lib/utils/positions/index.d.ts +2 -0
- package/lib/{common-ui-utils → utils/positions}/index.js +1 -5
- package/lib/utils/positions/index.js.map +1 -0
- package/lib/utils/positions/open.d.ts +4 -0
- package/lib/{common-ui-utils/user.js → utils/positions/open.js} +10 -81
- package/lib/utils/positions/open.js.map +1 -0
- package/lib/utils/positions/user.d.ts +37 -0
- package/lib/utils/positions/user.js +74 -0
- package/lib/utils/positions/user.js.map +1 -0
- package/lib/utils/settings/settings.js.map +1 -0
- package/lib/utils/strings/convert.d.ts +11 -0
- package/lib/utils/{strings.js → strings/convert.js} +2 -51
- package/lib/utils/strings/convert.js.map +1 -0
- package/lib/utils/strings/format.d.ts +14 -0
- package/lib/utils/strings/format.js +61 -0
- package/lib/utils/strings/format.js.map +1 -0
- package/lib/utils/strings/index.d.ts +4 -0
- package/lib/utils/strings/index.js +21 -0
- package/lib/utils/strings/index.js.map +1 -0
- package/lib/utils/strings/parse.d.ts +4 -0
- package/lib/utils/strings/parse.js +25 -0
- package/lib/utils/strings/parse.js.map +1 -0
- package/lib/utils/strings/status.d.ts +15 -0
- package/lib/utils/strings/status.js +21 -0
- package/lib/utils/strings/status.js.map +1 -0
- package/lib/utils/token/account.d.ts +16 -0
- package/lib/utils/token/account.js +36 -0
- package/lib/utils/token/account.js.map +1 -0
- package/lib/utils/{token.d.ts → token/address.d.ts} +2 -7
- package/lib/utils/token/address.js +30 -0
- package/lib/utils/token/address.js.map +1 -0
- package/lib/utils/token/index.d.ts +3 -0
- package/lib/utils/token/index.js +20 -0
- package/lib/utils/token/index.js.map +1 -0
- package/lib/utils/token/instructions.d.ts +3 -0
- package/lib/utils/token/instructions.js +17 -0
- package/lib/utils/token/instructions.js.map +1 -0
- package/lib/utils/trading/auction.d.ts +82 -0
- package/lib/utils/trading/auction.js +208 -0
- package/lib/utils/trading/auction.js.map +1 -0
- package/lib/utils/trading/index.d.ts +7 -0
- package/lib/utils/trading/index.js +24 -0
- package/lib/utils/trading/index.js.map +1 -0
- package/lib/utils/trading/leverage.d.ts +18 -0
- package/lib/utils/trading/leverage.js +79 -0
- package/lib/utils/trading/leverage.js.map +1 -0
- package/lib/utils/trading/liquidation.d.ts +22 -0
- package/lib/utils/trading/liquidation.js +67 -0
- package/lib/utils/trading/liquidation.js.map +1 -0
- package/lib/utils/trading/lp.d.ts +4 -0
- package/lib/utils/trading/lp.js +20 -0
- package/lib/utils/trading/lp.js.map +1 -0
- package/lib/utils/trading/pnl.d.ts +34 -0
- package/lib/utils/trading/pnl.js +88 -0
- package/lib/utils/trading/pnl.js.map +1 -0
- package/lib/utils/trading/price.d.ts +12 -0
- package/lib/utils/trading/price.js +36 -0
- package/lib/utils/trading/price.js.map +1 -0
- package/lib/utils/trading/size.d.ts +27 -0
- package/lib/utils/trading/size.js +83 -0
- package/lib/utils/trading/size.js.map +1 -0
- package/lib/utils/{validation.d.ts → validation/address.d.ts} +1 -2
- package/lib/utils/{validation.js → validation/address.js} +4 -6
- package/lib/utils/validation/address.js.map +1 -0
- package/lib/utils/validation/index.d.ts +3 -0
- package/lib/utils/validation/index.js +20 -0
- package/lib/utils/validation/index.js.map +1 -0
- package/lib/utils/validation/input.d.ts +3 -0
- package/lib/utils/validation/input.js +33 -0
- package/lib/utils/validation/input.js.map +1 -0
- package/lib/utils/validation/notional.d.ts +2 -0
- package/lib/utils/validation/notional.js +8 -0
- package/lib/utils/validation/notional.js.map +1 -0
- package/package.json +90 -3
- package/lib/common-ui-utils/commonUiUtils.d.ts +0 -251
- package/lib/common-ui-utils/commonUiUtils.js +0 -647
- package/lib/common-ui-utils/commonUiUtils.js.map +0 -1
- package/lib/common-ui-utils/index.d.ts +0 -6
- package/lib/common-ui-utils/index.js.map +0 -1
- package/lib/common-ui-utils/market.js +0 -134
- package/lib/common-ui-utils/market.js.map +0 -1
- package/lib/common-ui-utils/order.d.ts +0 -25
- package/lib/common-ui-utils/order.js +0 -191
- package/lib/common-ui-utils/order.js.map +0 -1
- package/lib/common-ui-utils/settings/settings.js.map +0 -1
- package/lib/common-ui-utils/trading.d.ts +0 -79
- package/lib/common-ui-utils/trading.js +0 -313
- package/lib/common-ui-utils/trading.js.map +0 -1
- package/lib/common-ui-utils/user.d.ts +0 -18
- package/lib/common-ui-utils/user.js.map +0 -1
- package/lib/utils/WalletConnectionState.js.map +0 -1
- package/lib/utils/enum.js.map +0 -1
- package/lib/utils/equalityChecks.js.map +0 -1
- package/lib/utils/fetch.js.map +0 -1
- package/lib/utils/math.d.ts +0 -31
- package/lib/utils/math.js +0 -181
- package/lib/utils/math.js.map +0 -1
- package/lib/utils/strings.d.ts +0 -34
- package/lib/utils/strings.js.map +0 -1
- package/lib/utils/token.js +0 -45
- package/lib/utils/token.js.map +0 -1
- package/lib/utils/validation.js.map +0 -1
- /package/lib/utils/{fetch.d.ts → core/fetch.d.ts} +0 -0
- /package/lib/utils/{fetch.js → core/fetch.js} +0 -0
- /package/lib/utils/{enum.d.ts → enum/index.d.ts} +0 -0
- /package/lib/{common-ui-utils → utils}/settings/settings.d.ts +0 -0
- /package/lib/{common-ui-utils → utils}/settings/settings.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../src/utils/accounts/wallet.ts"],"names":[],"mappings":";;;AACA,6CAA0C;AAE1C,IAAY,oBAMX;AAND,WAAY,oBAAoB;IAC/B,+EAAgB,CAAA;IAChB,uFAAoB,CAAA;IACpB,qFAAmB,CAAA;IACnB,iFAAiB,CAAA;IACjB,iGAAyB,CAAA;AAC1B,CAAC,EANW,oBAAoB,oCAApB,oBAAoB,QAM/B;AAED,IAAY,gBAUX;AAVD,WAAY,gBAAgB;IAC3B,uEAAgD,CAAA;IAChD,+EAAwD,CAAA;IACxD,6EAAsD,CAAA;IACtD,yEAAkD,CAAA;IAClD,yFAAkE,CAAA;IAClE,4EAG2C,CAAA;AAC5C,CAAC,EAVW,gBAAgB,gCAAhB,gBAAgB,QAU3B;AAMD,MAAa,qBAAqB;IAIjC,YAAY,SAAoB;QAC/B,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,YAAY,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,EAAE,CAAC,UAAiC;QACnC,QAAQ,UAAU,EAAE,CAAC;YACpB,KAAK,cAAc;gBAClB,OAAO,IAAI,CAAC,KAAK,KAAK,gBAAgB,CAAC,YAAY,CAAC;YACrD,KAAK,kBAAkB;gBACtB,OAAO,CACN,CAAC,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,gBAAgB,CAAC;oBAChD,gBAAgB,CAAC,gBAAgB,CACjC,CAAC;YACH,KAAK,iBAAiB;gBACrB,OAAO,CACN,CAAC,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,eAAe,CAAC;oBAC/C,gBAAgB,CAAC,eAAe,CAChC,CAAC;YACH,KAAK,eAAe;gBACnB,OAAO,CACN,CAAC,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,aAAa,CAAC;oBAC7C,gBAAgB,CAAC,aAAa,CAC9B,CAAC;YACH,KAAK,gBAAgB;gBACpB,OAAO,CACN,CAAC,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,cAAc,CAAC;oBAC9C,gBAAgB,CAAC,cAAc,CAC/B,CAAC;YACH,KAAK,uBAAuB;gBAC3B,OAAO,CACN,CAAC,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,qBAAqB,CAAC;oBACrD,gBAAgB,CAAC,qBAAqB,CACtC,CAAC;YACH,OAAO,CAAC,CAAC,CAAC;gBACT,wDAAwD;gBACxD,MAAM,OAAO,GAAU,UAAU,CAAC;gBAClC,OAAO,OAAO,CAAC;YAChB,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,CAAC,UAAgC,EAAE,aAAyB;QACjE,qDAAqD;QACrD,IAAI,aAAa,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;YAC5D,OAAO;QACR,CAAC;QAED,IAAI,UAAU,KAAK,cAAc,EAAE,CAAC;YACnC,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,YAAY,CAAC;YAC3C,OAAO;QACR,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,YAAY;QACf,OAAO,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,gBAAgB;QACnB,OAAO,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,eAAe;QAClB,OAAO,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,cAAc;QACjB,OAAO,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,qBAAqB;QACxB,OAAO,IAAI,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC;IACzC,CAAC;CACD;AA9ED,sDA8EC;AAED;;;GAGG;AACH,MAAM,wBAAwB,GAAG,CAAC,YAAwB,EAAE,EAAE;IAC7D,MAAM,UAAU,GAAG,YAAY;QAC9B,CAAC,CAAC,IAAI,iBAAO,CAAC;YACZ,SAAS,EAAE,YAAY,CAAC,OAAO,EAAE;YACjC,SAAS,EAAE,IAAI,iBAAO,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE;SAC3C,CAAC;QACJ,CAAC,CAAC,IAAI,iBAAO,EAAE,CAAC;IAEjB,MAAM,SAAS,GAAc;QAC5B,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,YAAY;QACZ,eAAe,EAAE,GAAG,EAAE;YACrB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;QACD,YAAY;QACZ,mBAAmB,EAAE,GAAG,EAAE;YACzB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;QACD,YAAY;QACZ,WAAW,EAAE,GAAG,EAAE;YACjB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;KACD,CAAC;IAEF,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC;AAEO,4DAAwB","sourcesContent":["import { IWalletV2, PublicKey } from '@drift-labs/sdk';\nimport { Keypair } from '@solana/web3.js';\n\nexport enum ConnectionStateSteps {\n\tNotConnected = 0,\n\tAdapterConnected = 1,\n\tClientConnected = 2,\n\tBalanceLoaded = 4,\n\tSubaccountsSubscribed = 8,\n}\n\nexport enum ConnectionStates {\n\tNotConnected = ConnectionStateSteps.NotConnected,\n\tAdapterConnected = ConnectionStateSteps.AdapterConnected,\n\tClientConnected = ConnectionStateSteps.ClientConnected,\n\tBalanceLoaded = ConnectionStateSteps.BalanceLoaded,\n\tSubaccountsSubscribed = ConnectionStateSteps.SubaccountsSubscribed,\n\tFullyConnected = ConnectionStateSteps.AdapterConnected +\n\t\tConnectionStateSteps.ClientConnected +\n\t\tConnectionStateSteps.BalanceLoaded +\n\t\tConnectionStateSteps.SubaccountsSubscribed,\n}\n\nexport type ConnectionStepString = keyof typeof ConnectionStateSteps;\n\nexport type ConnectionStateString = keyof typeof ConnectionStates;\n\nexport class WalletConnectionState {\n\tstate: number;\n\tauthority: PublicKey;\n\n\tconstructor(authority: PublicKey) {\n\t\tthis.state = ConnectionStates.NotConnected;\n\t\tthis.authority = authority;\n\t}\n\n\tis(stateQuery: ConnectionStateString) {\n\t\tswitch (stateQuery) {\n\t\t\tcase 'NotConnected':\n\t\t\t\treturn this.state === ConnectionStates.NotConnected;\n\t\t\tcase 'AdapterConnected':\n\t\t\t\treturn (\n\t\t\t\t\t(this.state & ConnectionStates.AdapterConnected) ===\n\t\t\t\t\tConnectionStates.AdapterConnected\n\t\t\t\t);\n\t\t\tcase 'ClientConnected':\n\t\t\t\treturn (\n\t\t\t\t\t(this.state & ConnectionStates.ClientConnected) ===\n\t\t\t\t\tConnectionStates.ClientConnected\n\t\t\t\t);\n\t\t\tcase 'BalanceLoaded':\n\t\t\t\treturn (\n\t\t\t\t\t(this.state & ConnectionStates.BalanceLoaded) ===\n\t\t\t\t\tConnectionStates.BalanceLoaded\n\t\t\t\t);\n\t\t\tcase 'FullyConnected':\n\t\t\t\treturn (\n\t\t\t\t\t(this.state & ConnectionStates.FullyConnected) ===\n\t\t\t\t\tConnectionStates.FullyConnected\n\t\t\t\t);\n\t\t\tcase 'SubaccountsSubscribed':\n\t\t\t\treturn (\n\t\t\t\t\t(this.state & ConnectionStates.SubaccountsSubscribed) ===\n\t\t\t\t\tConnectionStates.SubaccountsSubscribed\n\t\t\t\t);\n\t\t\tdefault: {\n\t\t\t\t// Throw a typescript error if we have an unhandled case\n\t\t\t\tconst nothing: never = stateQuery;\n\t\t\t\treturn nothing;\n\t\t\t}\n\t\t}\n\t}\n\n\tupdate(updateStep: ConnectionStepString, authorityGate?: PublicKey) {\n\t\t// Check that authorities match before updating state\n\t\tif (authorityGate && !this.authority.equals(authorityGate)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (updateStep === 'NotConnected') {\n\t\t\tthis.state = ConnectionStates.NotConnected;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.state = this.state | ConnectionStateSteps[updateStep];\n\t}\n\n\tget NotConnected() {\n\t\treturn this.is('NotConnected');\n\t}\n\tget AdapterConnected() {\n\t\treturn this.is('AdapterConnected');\n\t}\n\tget ClientConnected() {\n\t\treturn this.is('ClientConnected');\n\t}\n\tget BalanceLoaded() {\n\t\treturn this.is('BalanceLoaded');\n\t}\n\tget FullyConnected() {\n\t\treturn this.is('FullyConnected');\n\t}\n\tget SubaccountsSubscribed() {\n\t\treturn this.is('SubaccountsSubscribed');\n\t}\n}\n\n/**\n * Creates an IWallet wrapper, with redundant methods. If a `walletPubKey` is passed in,\n * the `publicKey` will be based on that.\n */\nconst createPlaceholderIWallet = (walletPubKey?: PublicKey) => {\n\tconst newKeypair = walletPubKey\n\t\t? new Keypair({\n\t\t\t\tpublicKey: walletPubKey.toBytes(),\n\t\t\t\tsecretKey: new Keypair().publicKey.toBytes(),\n\t\t })\n\t\t: new Keypair();\n\n\tconst newWallet: IWalletV2 = {\n\t\tpublicKey: newKeypair.publicKey,\n\t\t//@ts-ignore\n\t\tsignTransaction: () => {\n\t\t\treturn Promise.resolve();\n\t\t},\n\t\t//@ts-ignore\n\t\tsignAllTransactions: () => {\n\t\t\treturn Promise.resolve();\n\t\t},\n\t\t//@ts-ignore\n\t\tsignMessage: () => {\n\t\t\treturn Promise.resolve();\n\t\t},\n\t};\n\n\treturn newWallet;\n};\n\nexport { createPlaceholderIWallet };\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.glueArray = exports.chunks = void 0;
|
|
4
|
+
const chunks = (array, size) => {
|
|
5
|
+
return new Array(Math.ceil(array.length / size))
|
|
6
|
+
.fill(null)
|
|
7
|
+
.map((_, index) => index * size)
|
|
8
|
+
.map((begin) => array.slice(begin, begin + size));
|
|
9
|
+
};
|
|
10
|
+
exports.chunks = chunks;
|
|
11
|
+
const glueArray = (size, elements) => {
|
|
12
|
+
const gluedElements = [];
|
|
13
|
+
elements.forEach((element, index) => {
|
|
14
|
+
const gluedIndex = Math.floor(index / size);
|
|
15
|
+
if (gluedElements[gluedIndex]) {
|
|
16
|
+
gluedElements[gluedIndex].push(element);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
gluedElements[gluedIndex] = [element];
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
return gluedElements;
|
|
23
|
+
};
|
|
24
|
+
exports.glueArray = glueArray;
|
|
25
|
+
//# sourceMappingURL=arrays.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arrays.js","sourceRoot":"","sources":["../../../src/utils/core/arrays.ts"],"names":[],"mappings":";;;AAAO,MAAM,MAAM,GAAG,CAAI,KAAmB,EAAE,IAAY,EAAS,EAAE;IACrE,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;SAC9C,IAAI,CAAC,IAAI,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;SAC/B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;AACpD,CAAC,CAAC;AALW,QAAA,MAAM,UAKjB;AAEK,MAAM,SAAS,GAAG,CAAI,IAAY,EAAE,QAAa,EAAS,EAAE;IAClE,MAAM,aAAa,GAAU,EAAE,CAAC;IAEhC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;QAC5C,IAAI,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACP,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,aAAa,CAAC;AACtB,CAAC,CAAC;AAbW,QAAA,SAAS,aAapB","sourcesContent":["export const chunks = <T>(array: readonly T[], size: number): T[][] => {\n\treturn new Array(Math.ceil(array.length / size))\n\t\t.fill(null)\n\t\t.map((_, index) => index * size)\n\t\t.map((begin) => array.slice(begin, begin + size));\n};\n\nexport const glueArray = <T>(size: number, elements: T[]): T[][] => {\n\tconst gluedElements: T[][] = [];\n\n\telements.forEach((element, index) => {\n\t\tconst gluedIndex = Math.floor(index / size);\n\t\tif (gluedElements[gluedIndex]) {\n\t\t\tgluedElements[gluedIndex].push(element);\n\t\t} else {\n\t\t\tgluedElements[gluedIndex] = [element];\n\t\t}\n\t});\n\n\treturn gluedElements;\n};\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.timedPromise = exports.sleep = void 0;
|
|
4
|
+
async function sleep(ms) {
|
|
5
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
6
|
+
}
|
|
7
|
+
exports.sleep = sleep;
|
|
8
|
+
const timedPromise = async (promise) => {
|
|
9
|
+
const start = Date.now();
|
|
10
|
+
const promiseResult = await promise;
|
|
11
|
+
return {
|
|
12
|
+
promiseTime: Date.now() - start,
|
|
13
|
+
promiseResult,
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
exports.timedPromise = timedPromise;
|
|
17
|
+
//# sourceMappingURL=async.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async.js","sourceRoot":"","sources":["../../../src/utils/core/async.ts"],"names":[],"mappings":";;;AAAO,KAAK,UAAU,KAAK,CAAC,EAAE;IAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,CAAC;AAFD,sBAEC;AAEM,MAAM,YAAY,GAAG,KAAK,EAAK,OAAU,EAAE,EAAE;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC;IAEpC,OAAO;QACN,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;QAC/B,aAAa;KACb,CAAC;AACH,CAAC,CAAC;AARW,QAAA,YAAY,gBAQvB","sourcesContent":["export async function sleep(ms) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport const timedPromise = async <T>(promise: T) => {\n\tconst start = Date.now();\n\tconst promiseResult = await promise;\n\n\treturn {\n\t\tpromiseTime: Date.now() - start,\n\t\tpromiseResult,\n\t};\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getCachedUiString(pattern: string, ...values: (string | number)[]): string;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCachedUiString = void 0;
|
|
4
|
+
// Cache for common UI string patterns to reduce memory allocation
|
|
5
|
+
const uiStringCache = new Map();
|
|
6
|
+
const MAX_UI_STRING_CACHE_SIZE = 2000;
|
|
7
|
+
// Helper function to cache common string patterns
|
|
8
|
+
function getCachedUiString(pattern, ...values) {
|
|
9
|
+
const cacheKey = `${pattern}:${values.join(':')}`;
|
|
10
|
+
if (uiStringCache.has(cacheKey)) {
|
|
11
|
+
return uiStringCache.get(cacheKey);
|
|
12
|
+
}
|
|
13
|
+
let result;
|
|
14
|
+
switch (pattern) {
|
|
15
|
+
case 'abbreviate': {
|
|
16
|
+
const [authString, length] = values;
|
|
17
|
+
result = `${authString.slice(0, length)}\u2026${authString.slice(-length)}`;
|
|
18
|
+
break;
|
|
19
|
+
}
|
|
20
|
+
case 'userKey': {
|
|
21
|
+
const [userId, authority] = values;
|
|
22
|
+
result = `${userId}_${authority}`;
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
case 'marketKey': {
|
|
26
|
+
const [marketType, marketIndex] = values;
|
|
27
|
+
result = `${marketType}_${marketIndex}`;
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
default:
|
|
31
|
+
result = values.join('_');
|
|
32
|
+
}
|
|
33
|
+
// Cache if not too large
|
|
34
|
+
if (uiStringCache.size < MAX_UI_STRING_CACHE_SIZE) {
|
|
35
|
+
uiStringCache.set(cacheKey, result);
|
|
36
|
+
}
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
39
|
+
exports.getCachedUiString = getCachedUiString;
|
|
40
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/utils/core/cache.ts"],"names":[],"mappings":";;;AAAA,kEAAkE;AAClE,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;AAChD,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAEtC,kDAAkD;AAClD,SAAgB,iBAAiB,CAChC,OAAe,EACf,GAAG,MAA2B;IAE9B,MAAM,QAAQ,GAAG,GAAG,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAElD,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,OAAO,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;IACrC,CAAC;IAED,IAAI,MAAc,CAAC;IACnB,QAAQ,OAAO,EAAE,CAAC;QACjB,KAAK,YAAY,CAAC,CAAC,CAAC;YACnB,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,MAA0B,CAAC;YACxD,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,UAAU,CAAC,KAAK,CAC/D,CAAC,MAAM,CACP,EAAE,CAAC;YACJ,MAAM;QACP,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,MAA0B,CAAC;YACvD,MAAM,GAAG,GAAG,MAAM,IAAI,SAAS,EAAE,CAAC;YAClC,MAAM;QACP,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YAClB,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,MAA0B,CAAC;YAC7D,MAAM,GAAG,GAAG,UAAU,IAAI,WAAW,EAAE,CAAC;YACxC,MAAM;QACP,CAAC;QACD;YACC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,yBAAyB;IACzB,IAAI,aAAa,CAAC,IAAI,GAAG,wBAAwB,EAAE,CAAC;QACnD,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAvCD,8CAuCC","sourcesContent":["// Cache for common UI string patterns to reduce memory allocation\nconst uiStringCache = new Map<string, string>();\nconst MAX_UI_STRING_CACHE_SIZE = 2000;\n\n// Helper function to cache common string patterns\nexport function getCachedUiString(\n\tpattern: string,\n\t...values: (string | number)[]\n): string {\n\tconst cacheKey = `${pattern}:${values.join(':')}`;\n\n\tif (uiStringCache.has(cacheKey)) {\n\t\treturn uiStringCache.get(cacheKey)!;\n\t}\n\n\tlet result: string;\n\tswitch (pattern) {\n\t\tcase 'abbreviate': {\n\t\t\tconst [authString, length] = values as [string, number];\n\t\t\tresult = `${authString.slice(0, length)}\\u2026${authString.slice(\n\t\t\t\t-length\n\t\t\t)}`;\n\t\t\tbreak;\n\t\t}\n\t\tcase 'userKey': {\n\t\t\tconst [userId, authority] = values as [number, string];\n\t\t\tresult = `${userId}_${authority}`;\n\t\t\tbreak;\n\t\t}\n\t\tcase 'marketKey': {\n\t\t\tconst [marketType, marketIndex] = values as [string, number];\n\t\t\tresult = `${marketType}_${marketIndex}`;\n\t\t\tbreak;\n\t\t}\n\t\tdefault:\n\t\t\tresult = values.join('_');\n\t}\n\n\t// Cache if not too large\n\tif (uiStringCache.size < MAX_UI_STRING_CACHE_SIZE) {\n\t\tuiStringCache.set(cacheKey, result);\n\t}\n\n\treturn result;\n}\n"]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export declare class Ref<T> {
|
|
2
|
+
val: T;
|
|
3
|
+
constructor(val: T);
|
|
4
|
+
set(val: T): void;
|
|
5
|
+
get(): T;
|
|
6
|
+
}
|
|
7
|
+
export declare class Counter {
|
|
8
|
+
private val;
|
|
9
|
+
get(): number;
|
|
10
|
+
increment(value?: number): void;
|
|
11
|
+
reset(): void;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* A class which allows a group of switches to seperately turn a multiswitch on or off. The base state is the state of the "multiswitch" when all of the constituent switches are off. When any of the switches are "on" then the multiswitch flips to the opposite state
|
|
15
|
+
*
|
|
16
|
+
* If baseState is on => any switch being "on" will turn the multiswitch off.
|
|
17
|
+
* If baseState is off => any switch being "off" will turn the multiswitch off.
|
|
18
|
+
*/
|
|
19
|
+
export declare class MultiSwitch {
|
|
20
|
+
private baseState;
|
|
21
|
+
private switches;
|
|
22
|
+
private switchValue;
|
|
23
|
+
constructor(baseState?: 'on' | 'off');
|
|
24
|
+
private getSwitchKey;
|
|
25
|
+
switchOn(key: string): void;
|
|
26
|
+
switchOff(key: string): void;
|
|
27
|
+
private _switchOff;
|
|
28
|
+
private _switchOn;
|
|
29
|
+
get isOn(): boolean;
|
|
30
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MultiSwitch = exports.Counter = exports.Ref = void 0;
|
|
4
|
+
class Ref {
|
|
5
|
+
constructor(val) {
|
|
6
|
+
this.val = val;
|
|
7
|
+
}
|
|
8
|
+
set(val) {
|
|
9
|
+
this.val = val;
|
|
10
|
+
}
|
|
11
|
+
get() {
|
|
12
|
+
return this.val;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.Ref = Ref;
|
|
16
|
+
class Counter {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.val = 0;
|
|
19
|
+
}
|
|
20
|
+
get() {
|
|
21
|
+
return this.val;
|
|
22
|
+
}
|
|
23
|
+
increment(value = 1) {
|
|
24
|
+
this.val += value;
|
|
25
|
+
}
|
|
26
|
+
reset() {
|
|
27
|
+
this.val = 0;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.Counter = Counter;
|
|
31
|
+
/**
|
|
32
|
+
* A class which allows a group of switches to seperately turn a multiswitch on or off. The base state is the state of the "multiswitch" when all of the constituent switches are off. When any of the switches are "on" then the multiswitch flips to the opposite state
|
|
33
|
+
*
|
|
34
|
+
* If baseState is on => any switch being "on" will turn the multiswitch off.
|
|
35
|
+
* If baseState is off => any switch being "off" will turn the multiswitch off.
|
|
36
|
+
*/
|
|
37
|
+
class MultiSwitch {
|
|
38
|
+
constructor(baseState = 'off') {
|
|
39
|
+
this.baseState = baseState;
|
|
40
|
+
this.switches = [];
|
|
41
|
+
this.switchValue = 0;
|
|
42
|
+
}
|
|
43
|
+
getSwitchKey(key) {
|
|
44
|
+
// If first time using switch, add to list of switches
|
|
45
|
+
if (!this.switches.includes(key)) {
|
|
46
|
+
this.switches.push(key);
|
|
47
|
+
}
|
|
48
|
+
const switchIndex = this.switches.indexOf(key);
|
|
49
|
+
return 2 ** switchIndex;
|
|
50
|
+
}
|
|
51
|
+
switchOn(key) {
|
|
52
|
+
if (this.baseState === 'on') {
|
|
53
|
+
this._switchOff(key);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
this._switchOn(key);
|
|
57
|
+
}
|
|
58
|
+
switchOff(key) {
|
|
59
|
+
if (this.baseState === 'on') {
|
|
60
|
+
this._switchOn(key);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
this._switchOff(key);
|
|
64
|
+
}
|
|
65
|
+
_switchOff(key) {
|
|
66
|
+
const switchKey = this.getSwitchKey(key);
|
|
67
|
+
this.switchValue &= ~switchKey;
|
|
68
|
+
}
|
|
69
|
+
_switchOn(key) {
|
|
70
|
+
const switchKey = this.getSwitchKey(key);
|
|
71
|
+
this.switchValue |= switchKey;
|
|
72
|
+
}
|
|
73
|
+
get isOn() {
|
|
74
|
+
// When the base state is on, then if any switch is on the multi-switch is off
|
|
75
|
+
if (this.baseState === 'on') {
|
|
76
|
+
return this.switchValue === 0;
|
|
77
|
+
}
|
|
78
|
+
if (this.baseState === 'off') {
|
|
79
|
+
return this.switchValue > 0;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.MultiSwitch = MultiSwitch;
|
|
84
|
+
//# sourceMappingURL=data-structures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-structures.js","sourceRoot":"","sources":["../../../src/utils/core/data-structures.ts"],"names":[],"mappings":";;;AAAA,MAAa,GAAG;IAGf,YAAY,GAAM;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,GAAM;QACT,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IAChB,CAAC;IAED,GAAG;QACF,OAAO,IAAI,CAAC,GAAG,CAAC;IACjB,CAAC;CACD;AAdD,kBAcC;AAED,MAAa,OAAO;IAApB;QACS,QAAG,GAAG,CAAC,CAAC;IAajB,CAAC;IAXA,GAAG;QACF,OAAO,IAAI,CAAC,GAAG,CAAC;IACjB,CAAC;IAED,SAAS,CAAC,KAAK,GAAG,CAAC;QAClB,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC;IACnB,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IACd,CAAC;CACD;AAdD,0BAcC;AAED;;;;;GAKG;AACH,MAAa,WAAW;IAIvB,YAAoB,YAA0B,KAAK;QAA/B,cAAS,GAAT,SAAS,CAAsB;QAH3C,aAAQ,GAAa,EAAE,CAAC;QACxB,gBAAW,GAAG,CAAC,CAAC;IAE8B,CAAC;IAE/C,YAAY,CAAC,GAAW;QAC/B,sDAAsD;QACtD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAE/C,OAAO,CAAC,IAAI,WAAW,CAAC;IACzB,CAAC;IAEM,QAAQ,CAAC,GAAW;QAC1B,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO;QACR,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAEM,SAAS,CAAC,GAAW;QAC3B,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACpB,OAAO;QACR,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAEO,UAAU,CAAC,GAAW;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAEzC,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC;IAChC,CAAC;IAEO,SAAS,CAAC,GAAW;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAEzC,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC;IAC/B,CAAC;IAED,IAAW,IAAI;QACd,8EAA8E;QAC9E,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QAC7B,CAAC;IACF,CAAC;CACD;AAvDD,kCAuDC","sourcesContent":["export class Ref<T> {\n\tpublic val: T;\n\n\tconstructor(val: T) {\n\t\tthis.val = val;\n\t}\n\n\tset(val: T) {\n\t\tthis.val = val;\n\t}\n\n\tget() {\n\t\treturn this.val;\n\t}\n}\n\nexport class Counter {\n\tprivate val = 0;\n\n\tget() {\n\t\treturn this.val;\n\t}\n\n\tincrement(value = 1) {\n\t\tthis.val += value;\n\t}\n\n\treset() {\n\t\tthis.val = 0;\n\t}\n}\n\n/**\n * A class which allows a group of switches to seperately turn a multiswitch on or off. The base state is the state of the \"multiswitch\" when all of the constituent switches are off. When any of the switches are \"on\" then the multiswitch flips to the opposite state\n *\n * If baseState is on => any switch being \"on\" will turn the multiswitch off.\n * If baseState is off => any switch being \"off\" will turn the multiswitch off.\n */\nexport class MultiSwitch {\n\tprivate switches: string[] = [];\n\tprivate switchValue = 0;\n\n\tconstructor(private baseState: 'on' | 'off' = 'off') {}\n\n\tprivate getSwitchKey(key: string) {\n\t\t// If first time using switch, add to list of switches\n\t\tif (!this.switches.includes(key)) {\n\t\t\tthis.switches.push(key);\n\t\t}\n\n\t\tconst switchIndex = this.switches.indexOf(key);\n\n\t\treturn 2 ** switchIndex;\n\t}\n\n\tpublic switchOn(key: string) {\n\t\tif (this.baseState === 'on') {\n\t\t\tthis._switchOff(key);\n\t\t\treturn;\n\t\t}\n\t\tthis._switchOn(key);\n\t}\n\n\tpublic switchOff(key: string) {\n\t\tif (this.baseState === 'on') {\n\t\t\tthis._switchOn(key);\n\t\t\treturn;\n\t\t}\n\t\tthis._switchOff(key);\n\t}\n\n\tprivate _switchOff(key: string) {\n\t\tconst switchKey = this.getSwitchKey(key);\n\n\t\tthis.switchValue &= ~switchKey;\n\t}\n\n\tprivate _switchOn(key: string) {\n\t\tconst switchKey = this.getSwitchKey(key);\n\n\t\tthis.switchValue |= switchKey;\n\t}\n\n\tpublic get isOn() {\n\t\t// When the base state is on, then if any switch is on the multi-switch is off\n\t\tif (this.baseState === 'on') {\n\t\t\treturn this.switchValue === 0;\n\t\t}\n\n\t\tif (this.baseState === 'off') {\n\t\t\treturn this.switchValue > 0;\n\t\t}\n\t}\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.EQUALITY_CHECKS = void 0;
|
|
4
|
-
const
|
|
4
|
+
const enum_1 = require("../enum");
|
|
5
5
|
const arePropertiesEqual = (obj1, obj2, properties) => {
|
|
6
6
|
return properties.every((property) => {
|
|
7
7
|
var _a, _b, _c, _d;
|
|
@@ -21,7 +21,7 @@ const arePropertiesEqual = (obj1, obj2, properties) => {
|
|
|
21
21
|
case 'bignum':
|
|
22
22
|
return (_d = obj1[propertyName]) === null || _d === void 0 ? void 0 : _d.eq(obj2[propertyName]);
|
|
23
23
|
case 'programEnum':
|
|
24
|
-
return
|
|
24
|
+
return enum_1.ENUM_UTILS.match(obj1[propertyName], obj2[propertyName]);
|
|
25
25
|
case 'custom':
|
|
26
26
|
if (!customEqualityFn)
|
|
27
27
|
throw new Error('You need to provide a custom equality function for this property');
|
|
@@ -67,4 +67,4 @@ exports.EQUALITY_CHECKS = {
|
|
|
67
67
|
openPosition: areTwoOpenPositionsEqual,
|
|
68
68
|
openPositionLists: areOpenPositionListsEqual,
|
|
69
69
|
};
|
|
70
|
-
//# sourceMappingURL=
|
|
70
|
+
//# sourceMappingURL=equality.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"equality.js","sourceRoot":"","sources":["../../../src/utils/core/equality.ts"],"names":[],"mappings":"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","sourcesContent":["import { ENUM_UTILS } from '../enum';\nimport { OpenPosition } from '../../types';\n\nexport type PropertyType =\n\t| 'primitive'\n\t| 'primitiveArray'\n\t| 'bn'\n\t| 'bignum'\n\t| 'programEnum'\n\t| 'custom';\nexport type PropertyAndType<KeyOfObject> = [\n\tproperty: KeyOfObject,\n\ttype: PropertyType,\n\tcustomEqualityFn?: (a: any, b: any) => boolean\n];\n\nconst arePropertiesEqual = (\n\tobj1: any,\n\tobj2: any,\n\tproperties: PropertyAndType<any>[]\n) => {\n\treturn properties.every((property) => {\n\t\tconst propertyName = property[0];\n\t\tconst propertyType = property[1];\n\t\tconst customEqualityFn = property[2];\n\n\t\tswitch (propertyType) {\n\t\t\tcase 'primitive':\n\t\t\t\treturn obj1[propertyName] === obj2[propertyName];\n\t\t\tcase 'primitiveArray':\n\t\t\t\treturn (\n\t\t\t\t\tobj1[propertyName]?.length === obj2[propertyName]?.length &&\n\t\t\t\t\tobj1[propertyName]?.every((value: any, index: number) => {\n\t\t\t\t\t\treturn value === obj2[propertyName]?.[index];\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\tcase 'bn':\n\t\t\tcase 'bignum':\n\t\t\t\treturn obj1[propertyName]?.eq(obj2[propertyName]);\n\t\t\tcase 'programEnum':\n\t\t\t\treturn ENUM_UTILS.match(obj1[propertyName], obj2[propertyName]);\n\t\t\tcase 'custom':\n\t\t\t\tif (!customEqualityFn)\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t'You need to provide a custom equality function for this property'\n\t\t\t\t\t);\n\n\t\t\t\treturn customEqualityFn(obj1[propertyName], obj2[propertyName]);\n\t\t\tdefault:\n\t\t\t\tthrow new Error('Invalid property type');\n\t\t}\n\t});\n};\n\nconst areTwoOpenPositionsEqual = (\n\topenPosition1: OpenPosition,\n\topenPosition2: OpenPosition\n) => {\n\tconst propertiesToCompare: PropertyAndType<keyof OpenPosition>[] = [\n\t\t['marketIndex', 'primitive'],\n\t\t['marketSymbol', 'primitive'],\n\t\t['direction', 'primitive'],\n\t\t['notional', 'bn'],\n\t\t['baseSize', 'bn'],\n\t\t['entryPrice', 'bn'],\n\t\t['exitPrice', 'bn'],\n\t\t['liqPrice', 'bn'],\n\t\t['pnlVsOracle', 'bn'],\n\t\t['pnlVsMark', 'bn'],\n\t\t['quoteAssetNotionalAmount', 'bn'],\n\t\t['quoteEntryAmount', 'bn'],\n\t\t['unrealizedFundingPnl', 'bn'],\n\t\t['lastCumulativeFundingRate', 'bn'],\n\t\t['openOrders', 'primitive'],\n\t\t['unsettledPnl', 'bn'],\n\t\t['unsettledFundingPnl', 'bn'],\n\t\t['totalUnrealizedPnl', 'bn'],\n\t\t['costBasis', 'bn'],\n\t\t['pnlIsClaimable', 'primitive'],\n\t\t['realizedPnl', 'bn'],\n\t];\n\n\treturn arePropertiesEqual(openPosition1, openPosition2, propertiesToCompare);\n};\n\nconst areOpenPositionListsEqual = (\n\topenPositions1: OpenPosition[],\n\topenPositions2: OpenPosition[]\n) => {\n\tif (openPositions1.length !== openPositions2.length) return false;\n\n\treturn openPositions1.every((openPosition, index) =>\n\t\tareTwoOpenPositionsEqual(openPosition, openPositions2[index])\n\t);\n};\n\nexport const EQUALITY_CHECKS = {\n\tarePropertiesEqual,\n\topenPosition: areTwoOpenPositionsEqual,\n\topenPositionLists: areOpenPositionListsEqual,\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/utils/core/fetch.ts"],"names":[],"mappings":";;;AAAO,MAAM,iBAAiB,GAAG,CAChC,MAA0C,EACjC,EAAE;IACX,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SAC3B,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC;SAC3C,GAAG,CACH,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAChB,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,KAAM,CAAC,EAAE,CAC3D;SACA,IAAI,CAAC,GAAG,CAAC,CAAC;AACb,CAAC,CAAC;AAVW,QAAA,iBAAiB,qBAU5B","sourcesContent":["export const encodeQueryParams = (\n\tparams: Record<string, string | undefined>\n): string => {\n\treturn Object.entries(params)\n\t\t.filter(([_, value]) => value !== undefined)\n\t\t.map(\n\t\t\t([key, value]) =>\n\t\t\t\t`${encodeURIComponent(key)}=${encodeURIComponent(value!)}`\n\t\t)\n\t\t.join('&');\n};\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
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("./async"), exports);
|
|
18
|
+
__exportStar(require("./arrays"), exports);
|
|
19
|
+
__exportStar(require("./data-structures"), exports);
|
|
20
|
+
__exportStar(require("./cache"), exports);
|
|
21
|
+
__exportStar(require("./fetch"), exports);
|
|
22
|
+
__exportStar(require("./serialization"), exports);
|
|
23
|
+
__exportStar(require("./equality"), exports);
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,2CAAyB;AACzB,oDAAkC;AAClC,0CAAwB;AACxB,0CAAwB;AACxB,kDAAgC;AAChC,6CAA2B","sourcesContent":["export * from './async';\nexport * from './arrays';\nexport * from './data-structures';\nexport * from './cache';\nexport * from './fetch';\nexport * from './serialization';\nexport * from './equality';\n"]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts an objects with potential Pubkeys and BNs in it into a form that can be JSON stringified. When pubkeys get converted a _pbky_ suffix will be added to their key, and _bgnm_ for BNs.
|
|
3
|
+
*
|
|
4
|
+
* e.g.
|
|
5
|
+
* input : {
|
|
6
|
+
* QuoteAmount: BN
|
|
7
|
+
* }
|
|
8
|
+
*
|
|
9
|
+
* output: {
|
|
10
|
+
* _bgnm_QuoteAmount: string
|
|
11
|
+
* }
|
|
12
|
+
* @param value
|
|
13
|
+
* @returns
|
|
14
|
+
*/
|
|
15
|
+
export declare const encodeStringifiableObject: (value: any) => any;
|
|
16
|
+
/**
|
|
17
|
+
* Converts a parsed object with potential Pubkeys and BNs in it (in string form) to their proper form. Pubkey values must have a key starting in _pbky_ and BN values must have a key starting in _bnnm_
|
|
18
|
+
*
|
|
19
|
+
* * e.g.
|
|
20
|
+
* input : {
|
|
21
|
+
* _bgnm_QuoteAmount: string
|
|
22
|
+
* }
|
|
23
|
+
*
|
|
24
|
+
* output: {
|
|
25
|
+
* QuoteAmount: BN
|
|
26
|
+
* }
|
|
27
|
+
* @param value
|
|
28
|
+
* @returns
|
|
29
|
+
*/
|
|
30
|
+
export declare const decodeStringifiableObject: (value: any) => any;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.decodeStringifiableObject = exports.encodeStringifiableObject = void 0;
|
|
4
|
+
const sdk_1 = require("@drift-labs/sdk");
|
|
5
|
+
const getStringifiableObjectEntry = (value) => {
|
|
6
|
+
// If BN
|
|
7
|
+
// if (value instanceof BN) { /* This method would be much safer but don't think it's possible to ensure that instances of classes match when they're in different npm packages */
|
|
8
|
+
if (Object.keys(value).sort().join(',') === 'length,negative,red,words') {
|
|
9
|
+
return [value.toString(), '_bgnm_'];
|
|
10
|
+
}
|
|
11
|
+
// If PublicKey
|
|
12
|
+
// if (value instanceof PublicKey) { { /* This method would be much safer but don't think it's possible to ensure that instances of classes match when they're in different npm packages */
|
|
13
|
+
if (Object.keys(value).sort().join(',') === '_bn') {
|
|
14
|
+
return [value.toString(), '_pbky_'];
|
|
15
|
+
}
|
|
16
|
+
if (typeof value === 'object') {
|
|
17
|
+
return [(0, exports.encodeStringifiableObject)(value), ''];
|
|
18
|
+
}
|
|
19
|
+
return [value, ''];
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Converts an objects with potential Pubkeys and BNs in it into a form that can be JSON stringified. When pubkeys get converted a _pbky_ suffix will be added to their key, and _bgnm_ for BNs.
|
|
23
|
+
*
|
|
24
|
+
* e.g.
|
|
25
|
+
* input : {
|
|
26
|
+
* QuoteAmount: BN
|
|
27
|
+
* }
|
|
28
|
+
*
|
|
29
|
+
* output: {
|
|
30
|
+
* _bgnm_QuoteAmount: string
|
|
31
|
+
* }
|
|
32
|
+
* @param value
|
|
33
|
+
* @returns
|
|
34
|
+
*/
|
|
35
|
+
const encodeStringifiableObject = (value) => {
|
|
36
|
+
if (typeof value !== 'object')
|
|
37
|
+
return value;
|
|
38
|
+
if (Array.isArray(value)) {
|
|
39
|
+
return value.map((entry) => (0, exports.encodeStringifiableObject)(entry));
|
|
40
|
+
}
|
|
41
|
+
const buildJsonObject = {};
|
|
42
|
+
if (!value)
|
|
43
|
+
return value;
|
|
44
|
+
Object.entries(value).forEach(([key, val]) => {
|
|
45
|
+
const [convertedVal, keyTag] = getStringifiableObjectEntry(val);
|
|
46
|
+
buildJsonObject[`${keyTag}${key}`] = convertedVal;
|
|
47
|
+
});
|
|
48
|
+
return buildJsonObject;
|
|
49
|
+
};
|
|
50
|
+
exports.encodeStringifiableObject = encodeStringifiableObject;
|
|
51
|
+
/**
|
|
52
|
+
* Converts a parsed object with potential Pubkeys and BNs in it (in string form) to their proper form. Pubkey values must have a key starting in _pbky_ and BN values must have a key starting in _bnnm_
|
|
53
|
+
*
|
|
54
|
+
* * e.g.
|
|
55
|
+
* input : {
|
|
56
|
+
* _bgnm_QuoteAmount: string
|
|
57
|
+
* }
|
|
58
|
+
*
|
|
59
|
+
* output: {
|
|
60
|
+
* QuoteAmount: BN
|
|
61
|
+
* }
|
|
62
|
+
* @param value
|
|
63
|
+
* @returns
|
|
64
|
+
*/
|
|
65
|
+
const decodeStringifiableObject = (value) => {
|
|
66
|
+
if (typeof value !== 'object')
|
|
67
|
+
return value;
|
|
68
|
+
if (Array.isArray(value)) {
|
|
69
|
+
return value.map((entry) => (0, exports.decodeStringifiableObject)(entry));
|
|
70
|
+
}
|
|
71
|
+
const buildJsonObject = {};
|
|
72
|
+
Object.entries(value)
|
|
73
|
+
.filter((val) => val != undefined && val != null)
|
|
74
|
+
.forEach(([key, val]) => {
|
|
75
|
+
if (key.match(/^_pbky_/)) {
|
|
76
|
+
buildJsonObject[key.replace('_pbky_', '')] = new sdk_1.PublicKey(val);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (key.match(/^_bgnm_/)) {
|
|
80
|
+
buildJsonObject[key.replace('_bgnm_', '')] = new sdk_1.BN(val);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (typeof val === 'object' && val != undefined && val != null) {
|
|
84
|
+
buildJsonObject[key] = (0, exports.decodeStringifiableObject)(val);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
buildJsonObject[key] = val;
|
|
88
|
+
});
|
|
89
|
+
return buildJsonObject;
|
|
90
|
+
};
|
|
91
|
+
exports.decodeStringifiableObject = decodeStringifiableObject;
|
|
92
|
+
//# sourceMappingURL=serialization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../../src/utils/core/serialization.ts"],"names":[],"mappings":"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","sourcesContent":["import { BN, PublicKey } from '@drift-labs/sdk';\n\nconst getStringifiableObjectEntry = (value: any): [any, string] => {\n\t// If BN\n\t// if (value instanceof BN) { /* This method would be much safer but don't think it's possible to ensure that instances of classes match when they're in different npm packages */\n\tif (Object.keys(value).sort().join(',') === 'length,negative,red,words') {\n\t\treturn [value.toString(), '_bgnm_'];\n\t}\n\n\t// If PublicKey\n\t// if (value instanceof PublicKey) { { /* This method would be much safer but don't think it's possible to ensure that instances of classes match when they're in different npm packages */\n\tif (Object.keys(value).sort().join(',') === '_bn') {\n\t\treturn [value.toString(), '_pbky_'];\n\t}\n\n\tif (typeof value === 'object') {\n\t\treturn [encodeStringifiableObject(value), ''];\n\t}\n\n\treturn [value, ''];\n};\n\n/**\n * Converts an objects with potential Pubkeys and BNs in it into a form that can be JSON stringified. When pubkeys get converted a _pbky_ suffix will be added to their key, and _bgnm_ for BNs.\n *\n * e.g.\n * input : {\n * QuoteAmount: BN\n * }\n *\n * output: {\n * _bgnm_QuoteAmount: string\n * }\n * @param value\n * @returns\n */\nexport const encodeStringifiableObject = (value: any) => {\n\tif (typeof value !== 'object') return value;\n\n\tif (Array.isArray(value)) {\n\t\treturn value.map((entry) => encodeStringifiableObject(entry));\n\t}\n\n\tconst buildJsonObject = {};\n\n\tif (!value) return value;\n\n\tObject.entries(value).forEach(([key, val]) => {\n\t\tconst [convertedVal, keyTag] = getStringifiableObjectEntry(val);\n\t\tbuildJsonObject[`${keyTag}${key}`] = convertedVal;\n\t});\n\n\treturn buildJsonObject;\n};\n\n/**\n * Converts a parsed object with potential Pubkeys and BNs in it (in string form) to their proper form. Pubkey values must have a key starting in _pbky_ and BN values must have a key starting in _bnnm_\n *\n * * e.g.\n * input : {\n * _bgnm_QuoteAmount: string\n * }\n *\n * output: {\n * QuoteAmount: BN\n * }\n * @param value\n * @returns\n */\nexport const decodeStringifiableObject = (value: any) => {\n\tif (typeof value !== 'object') return value;\n\n\tif (Array.isArray(value)) {\n\t\treturn value.map((entry) => decodeStringifiableObject(entry));\n\t}\n\n\tconst buildJsonObject = {};\n\n\tObject.entries(value)\n\t\t.filter((val) => val != undefined && val != null)\n\t\t.forEach(([key, val]) => {\n\t\t\tif (key.match(/^_pbky_/)) {\n\t\t\t\tbuildJsonObject[key.replace('_pbky_', '')] = new PublicKey(val);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (key.match(/^_bgnm_/)) {\n\t\t\t\tbuildJsonObject[key.replace('_bgnm_', '')] = new BN(val as string);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (typeof val === 'object' && val != undefined && val != null) {\n\t\t\t\tbuildJsonObject[key] = decodeStringifiableObject(val);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tbuildJsonObject[key] = val;\n\t\t});\n\n\treturn buildJsonObject;\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/enum/index.ts"],"names":[],"mappings":";;;AAAO,MAAM,SAAS,GAAG,CAAC,KAAU,EAAE,KAAK,EAAE,EAAE;IAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC,CAAC;AAFW,QAAA,SAAS,aAEpB;AAEF,SAAS,SAAS,CAAC,OAAe;IACjC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/B,OAAO;QACN,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC,EAAE,EAAE;KACnB,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,OAA4B;;IAC9C,OAAO,MAAA,MAAM,CAAC,IAAI,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC,0CAAG,CAAC,CAAC,CAAC;AACxC,CAAC;AAEY,QAAA,UAAU,GAAG;IACzB,KAAK,EAAE,iBAAS;IAChB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;CAChB,CAAC","sourcesContent":["export const matchEnum = (enum1: any, enum2) => {\n\treturn JSON.stringify(enum1) === JSON.stringify(enum2);\n};\n\nfunction enumToObj(enumStr: string) {\n\tif (!enumStr) return undefined;\n\n\treturn {\n\t\t[enumStr ?? '']: {},\n\t};\n}\n\nfunction enumToStr(enumStr: Record<string, any>) {\n\treturn Object.keys(enumStr ?? {})?.[0];\n}\n\nexport const ENUM_UTILS = {\n\tmatch: matchEnum,\n\ttoObj: enumToObj,\n\ttoStr: enumToStr,\n};\n"]}
|