@maxion-platform/ronin-market-sdk 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1141 -0
- package/dist/cjs/actions/approve-token/index.js +64 -0
- package/dist/cjs/actions/approve-token/types.js +9 -0
- package/dist/cjs/actions/bulk-buy-token/index.js +116 -0
- package/dist/cjs/actions/buy-token/index.js +160 -0
- package/dist/cjs/actions/gift-token/index.js +49 -0
- package/dist/cjs/actions/offer/acceptOffer.js +40 -0
- package/dist/cjs/actions/offer/cancelOffer.js +27 -0
- package/dist/cjs/actions/offer/makeOffer.js +92 -0
- package/dist/cjs/actions/order/cancelOrder.js +58 -0
- package/dist/cjs/actions/order/createOrder.js +153 -0
- package/dist/cjs/actions/ron-wrapper/index.js +51 -0
- package/dist/cjs/common/constants.js +147 -0
- package/dist/cjs/configs/index.js +83 -0
- package/dist/cjs/contracts/BaseContract.js +23 -0
- package/dist/cjs/contracts/KatanaContract.js +25 -0
- package/dist/cjs/contracts/abis/collection-offer.json.js +2366 -0
- package/dist/cjs/contracts/abis/erc1155.json.js +823 -0
- package/dist/cjs/contracts/abis/erc20.json.js +232 -0
- package/dist/cjs/contracts/abis/erc721.json.js +825 -0
- package/dist/cjs/contracts/abis/katana.json.js +1034 -0
- package/dist/cjs/contracts/abis/market-gateway-multisend.json.js +394 -0
- package/dist/cjs/contracts/abis/market-gateway.json.js +774 -0
- package/dist/cjs/contracts/abis/multicall.json.js +349 -0
- package/dist/cjs/contracts/abis/royalty-registry.json.js +952 -0
- package/dist/cjs/contracts/abis/types/v5/factories/CollectionOffer__factory.js +2352 -0
- package/dist/cjs/contracts/abis/types/v5/factories/Erc1155OrderExchange__factory.js +876 -0
- package/dist/cjs/contracts/abis/types/v5/factories/Erc1155__factory.js +813 -0
- package/dist/cjs/contracts/abis/types/v5/factories/Erc20__factory.js +240 -0
- package/dist/cjs/contracts/abis/types/v5/factories/Erc721__factory.js +814 -0
- package/dist/cjs/contracts/abis/types/v5/factories/Katana__factory.js +1041 -0
- package/dist/cjs/contracts/abis/types/v5/factories/MarketGatewayMultisend__factory.js +398 -0
- package/dist/cjs/contracts/abis/types/v5/factories/MarketGateway__factory.js +773 -0
- package/dist/cjs/contracts/abis/types/v5/factories/MavisExchange__factory.js +842 -0
- package/dist/cjs/contracts/abis/types/v5/factories/Multicall__factory.js +355 -0
- package/dist/cjs/contracts/abis/types/v5/factories/RoyaltyRegistry__factory.js +949 -0
- package/dist/cjs/contracts/abis/types/v5/factories/Wron__factory.js +476 -0
- package/dist/cjs/contracts/abis/types/v5/factories/index.js +31 -0
- package/dist/cjs/contracts/abis/wron.json.js +478 -0
- package/dist/cjs/contracts/index.js +70 -0
- package/dist/cjs/contracts/market-gateway/Erc1155MarketGatewayContract.js +104 -0
- package/dist/cjs/contracts/market-gateway/MarketGatewayContract.js +102 -0
- package/dist/cjs/contracts/market-gateway/MarketGatewayMultisendContract.js +157 -0
- package/dist/cjs/contracts/market-gateway/factory.js +20 -0
- package/dist/cjs/index.js +278 -0
- package/dist/cjs/queries/collection/index.js +44 -0
- package/dist/cjs/queries/collection/types.js +8 -0
- package/dist/cjs/queries/exchange-rate/index.js +11 -0
- package/dist/cjs/queries/graphql/fragments/asset.js +24 -0
- package/dist/cjs/queries/graphql/fragments/collection.js +32 -0
- package/dist/cjs/queries/graphql/fragments/offer.js +61 -0
- package/dist/cjs/queries/graphql/fragments/order.js +77 -0
- package/dist/cjs/queries/graphql/fragments/profile.js +37 -0
- package/dist/cjs/queries/graphql/fragments/token.js +217 -0
- package/dist/cjs/queries/graphql/index.js +37 -0
- package/dist/cjs/queries/graphql/mutations/metadata.js +11 -0
- package/dist/cjs/queries/graphql/mutations/order.js +15 -0
- package/dist/cjs/queries/graphql/queries/collection.js +80 -0
- package/dist/cjs/queries/graphql/queries/exchange-rate.js +27 -0
- package/dist/cjs/queries/graphql/queries/offer.js +102 -0
- package/dist/cjs/queries/graphql/queries/order.js +105 -0
- package/dist/cjs/queries/graphql/queries/token.js +390 -0
- package/dist/cjs/queries/offer/index.js +92 -0
- package/dist/cjs/queries/offer/types.js +11 -0
- package/dist/cjs/queries/order/index.js +90 -0
- package/dist/cjs/queries/order/types.js +43 -0
- package/dist/cjs/queries/token/index.js +226 -0
- package/dist/cjs/queries/token/types.js +24 -0
- package/dist/cjs/services/balance/checkIsInsufficientBalance.js +16 -0
- package/dist/cjs/services/balance/fetchBalances.js +27 -0
- package/dist/cjs/services/order/bulkSettleOrders.js +26 -0
- package/dist/cjs/services/order/checkIsOrderValid.js +72 -0
- package/dist/cjs/services/order/generateOrderData.js +86 -0
- package/dist/cjs/services/order/getNonce.js +13 -0
- package/dist/cjs/services/order/getOrderSignature.js +18 -0
- package/dist/cjs/services/order/getOrderState.js +39 -0
- package/dist/cjs/services/order/getOrdersByCriteria.js +38 -0
- package/dist/cjs/services/order/getOrdersByQuantity.js +23 -0
- package/dist/cjs/services/order/getOrdersTotalPrice.js +46 -0
- package/dist/cjs/services/order/getSwapTokenData.js +41 -0
- package/dist/cjs/services/order/settleOrder.js +141 -0
- package/dist/cjs/services/tokens/checkIsTokenApproved.js +47 -0
- package/dist/cjs/services/tokens/configs.js +163 -0
- package/dist/cjs/services/tokens/data.js +150 -0
- package/dist/cjs/services/tokens/getPaymentTokens.js +14 -0
- package/dist/cjs/services/tokens/getTokensNeedToApprove.js +26 -0
- package/dist/cjs/services/tokens/getTokensNeedToApproveByOrders.js +31 -0
- package/dist/cjs/types/index.js +23 -0
- package/dist/cjs/types/order.js +13 -0
- package/dist/cjs/utils/convertPrice.js +13 -0
- package/dist/cjs/utils/getSpenderContractAddress.js +17 -0
- package/dist/cjs/utils/mapData.js +65 -0
- package/dist/mjs/actions/approve-token/index.js +47 -0
- package/dist/mjs/actions/approve-token/types.js +7 -0
- package/dist/mjs/actions/bulk-buy-token/index.js +86 -0
- package/dist/mjs/actions/buy-token/index.js +126 -0
- package/dist/mjs/actions/gift-token/index.js +27 -0
- package/dist/mjs/actions/offer/acceptOffer.js +15 -0
- package/dist/mjs/actions/offer/cancelOffer.js +3 -0
- package/dist/mjs/actions/offer/makeOffer.js +63 -0
- package/dist/mjs/actions/order/cancelOrder.js +32 -0
- package/dist/mjs/actions/order/createOrder.js +122 -0
- package/dist/mjs/actions/ron-wrapper/index.js +24 -0
- package/dist/mjs/common/constants.js +139 -0
- package/dist/mjs/configs/index.js +72 -0
- package/dist/mjs/contracts/BaseContract.js +15 -0
- package/dist/mjs/contracts/KatanaContract.js +19 -0
- package/dist/mjs/contracts/abis/collection-offer.json.js +2360 -0
- package/dist/mjs/contracts/abis/erc1155.json.js +817 -0
- package/dist/mjs/contracts/abis/erc20.json.js +226 -0
- package/dist/mjs/contracts/abis/erc721.json.js +819 -0
- package/dist/mjs/contracts/abis/katana.json.js +1028 -0
- package/dist/mjs/contracts/abis/market-gateway-multisend.json.js +388 -0
- package/dist/mjs/contracts/abis/market-gateway.json.js +768 -0
- package/dist/mjs/contracts/abis/multicall.json.js +343 -0
- package/dist/mjs/contracts/abis/royalty-registry.json.js +946 -0
- package/dist/mjs/contracts/abis/types/v5/factories/CollectionOffer__factory.js +2346 -0
- package/dist/mjs/contracts/abis/types/v5/factories/Erc1155OrderExchange__factory.js +870 -0
- package/dist/mjs/contracts/abis/types/v5/factories/Erc1155__factory.js +807 -0
- package/dist/mjs/contracts/abis/types/v5/factories/Erc20__factory.js +234 -0
- package/dist/mjs/contracts/abis/types/v5/factories/Erc721__factory.js +808 -0
- package/dist/mjs/contracts/abis/types/v5/factories/Katana__factory.js +1035 -0
- package/dist/mjs/contracts/abis/types/v5/factories/MarketGatewayMultisend__factory.js +392 -0
- package/dist/mjs/contracts/abis/types/v5/factories/MarketGateway__factory.js +767 -0
- package/dist/mjs/contracts/abis/types/v5/factories/MavisExchange__factory.js +836 -0
- package/dist/mjs/contracts/abis/types/v5/factories/Multicall__factory.js +349 -0
- package/dist/mjs/contracts/abis/types/v5/factories/RoyaltyRegistry__factory.js +943 -0
- package/dist/mjs/contracts/abis/types/v5/factories/Wron__factory.js +470 -0
- package/dist/mjs/contracts/abis/types/v5/factories/index.js +3 -0
- package/dist/mjs/contracts/abis/wron.json.js +472 -0
- package/dist/mjs/contracts/index.js +40 -0
- package/dist/mjs/contracts/market-gateway/Erc1155MarketGatewayContract.js +94 -0
- package/dist/mjs/contracts/market-gateway/MarketGatewayContract.js +91 -0
- package/dist/mjs/contracts/market-gateway/MarketGatewayMultisendContract.js +146 -0
- package/dist/mjs/contracts/market-gateway/factory.js +10 -0
- package/dist/mjs/index.js +1 -0
- package/dist/mjs/queries/collection/index.js +29 -0
- package/dist/mjs/queries/collection/types.js +6 -0
- package/dist/mjs/queries/exchange-rate/index.js +4 -0
- package/dist/mjs/queries/graphql/fragments/asset.js +17 -0
- package/dist/mjs/queries/graphql/fragments/collection.js +25 -0
- package/dist/mjs/queries/graphql/fragments/offer.js +53 -0
- package/dist/mjs/queries/graphql/fragments/order.js +68 -0
- package/dist/mjs/queries/graphql/fragments/profile.js +29 -0
- package/dist/mjs/queries/graphql/fragments/token.js +199 -0
- package/dist/mjs/queries/graphql/index.js +27 -0
- package/dist/mjs/queries/graphql/mutations/metadata.js +5 -0
- package/dist/mjs/queries/graphql/mutations/order.js +8 -0
- package/dist/mjs/queries/graphql/queries/collection.js +69 -0
- package/dist/mjs/queries/graphql/queries/exchange-rate.js +21 -0
- package/dist/mjs/queries/graphql/queries/offer.js +90 -0
- package/dist/mjs/queries/graphql/queries/order.js +94 -0
- package/dist/mjs/queries/graphql/queries/token.js +368 -0
- package/dist/mjs/queries/offer/index.js +75 -0
- package/dist/mjs/queries/offer/types.js +9 -0
- package/dist/mjs/queries/order/index.js +59 -0
- package/dist/mjs/queries/order/types.js +41 -0
- package/dist/mjs/queries/token/index.js +189 -0
- package/dist/mjs/queries/token/types.js +22 -0
- package/dist/mjs/services/balance/checkIsInsufficientBalance.js +8 -0
- package/dist/mjs/services/balance/fetchBalances.js +15 -0
- package/dist/mjs/services/order/bulkSettleOrders.js +17 -0
- package/dist/mjs/services/order/checkIsOrderValid.js +47 -0
- package/dist/mjs/services/order/generateOrderData.js +76 -0
- package/dist/mjs/services/order/getNonce.js +6 -0
- package/dist/mjs/services/order/getOrderSignature.js +10 -0
- package/dist/mjs/services/order/getOrderState.js +28 -0
- package/dist/mjs/services/order/getOrdersByCriteria.js +26 -0
- package/dist/mjs/services/order/getOrdersByQuantity.js +19 -0
- package/dist/mjs/services/order/getOrdersTotalPrice.js +36 -0
- package/dist/mjs/services/order/getSwapTokenData.js +25 -0
- package/dist/mjs/services/order/settleOrder.js +122 -0
- package/dist/mjs/services/tokens/checkIsTokenApproved.js +35 -0
- package/dist/mjs/services/tokens/configs.js +153 -0
- package/dist/mjs/services/tokens/data.js +143 -0
- package/dist/mjs/services/tokens/getPaymentTokens.js +7 -0
- package/dist/mjs/services/tokens/getTokensNeedToApprove.js +18 -0
- package/dist/mjs/services/tokens/getTokensNeedToApproveByOrders.js +22 -0
- package/dist/mjs/types/index.js +10 -0
- package/dist/mjs/types/order.js +11 -0
- package/dist/mjs/utils/convertPrice.js +7 -0
- package/dist/mjs/utils/getSpenderContractAddress.js +10 -0
- package/dist/mjs/utils/mapData.js +43 -0
- package/dist/types/actions/approve-token/index.d.ts +8 -0
- package/dist/types/actions/approve-token/index.d.ts.map +1 -0
- package/dist/types/actions/approve-token/types.d.ts +25 -0
- package/dist/types/actions/approve-token/types.d.ts.map +1 -0
- package/dist/types/actions/bulk-buy-token/index.d.ts +4 -0
- package/dist/types/actions/bulk-buy-token/index.d.ts.map +1 -0
- package/dist/types/actions/bulk-buy-token/types.d.ts +25 -0
- package/dist/types/actions/bulk-buy-token/types.d.ts.map +1 -0
- package/dist/types/actions/buy-token/index.d.ts +8 -0
- package/dist/types/actions/buy-token/index.d.ts.map +1 -0
- package/dist/types/actions/buy-token/types.d.ts +28 -0
- package/dist/types/actions/buy-token/types.d.ts.map +1 -0
- package/dist/types/actions/gift-token/index.d.ts +6 -0
- package/dist/types/actions/gift-token/index.d.ts.map +1 -0
- package/dist/types/actions/gift-token/types.d.ts +16 -0
- package/dist/types/actions/gift-token/types.d.ts.map +1 -0
- package/dist/types/actions/index.d.ts +8 -0
- package/dist/types/actions/index.d.ts.map +1 -0
- package/dist/types/actions/offer/acceptOffer.d.ts +3 -0
- package/dist/types/actions/offer/acceptOffer.d.ts.map +1 -0
- package/dist/types/actions/offer/cancelOffer.d.ts +3 -0
- package/dist/types/actions/offer/cancelOffer.d.ts.map +1 -0
- package/dist/types/actions/offer/index.d.ts +5 -0
- package/dist/types/actions/offer/index.d.ts.map +1 -0
- package/dist/types/actions/offer/makeOffer.d.ts +3 -0
- package/dist/types/actions/offer/makeOffer.d.ts.map +1 -0
- package/dist/types/actions/offer/types.d.ts +21 -0
- package/dist/types/actions/offer/types.d.ts.map +1 -0
- package/dist/types/actions/order/cancelOrder.d.ts +5 -0
- package/dist/types/actions/order/cancelOrder.d.ts.map +1 -0
- package/dist/types/actions/order/createOrder.d.ts +5 -0
- package/dist/types/actions/order/createOrder.d.ts.map +1 -0
- package/dist/types/actions/order/index.d.ts +4 -0
- package/dist/types/actions/order/index.d.ts.map +1 -0
- package/dist/types/actions/order/types.d.ts +30 -0
- package/dist/types/actions/order/types.d.ts.map +1 -0
- package/dist/types/actions/ron-wrapper/index.d.ts +5 -0
- package/dist/types/actions/ron-wrapper/index.d.ts.map +1 -0
- package/dist/types/actions/ron-wrapper/types.d.ts +9 -0
- package/dist/types/actions/ron-wrapper/types.d.ts.map +1 -0
- package/dist/types/common/constants.d.ts +24 -0
- package/dist/types/common/constants.d.ts.map +1 -0
- package/dist/types/common/index.d.ts +2 -0
- package/dist/types/common/index.d.ts.map +1 -0
- package/dist/types/configs/index.d.ts +28 -0
- package/dist/types/configs/index.d.ts.map +1 -0
- package/dist/types/contracts/BaseContract.d.ts +6 -0
- package/dist/types/contracts/BaseContract.d.ts.map +1 -0
- package/dist/types/contracts/KatanaContract.d.ts +9 -0
- package/dist/types/contracts/KatanaContract.d.ts.map +1 -0
- package/dist/types/contracts/abis/types/v5/CollectionOffer.d.ts +871 -0
- package/dist/types/contracts/abis/types/v5/CollectionOffer.d.ts.map +1 -0
- package/dist/types/contracts/abis/types/v5/Erc1155.d.ts +535 -0
- package/dist/types/contracts/abis/types/v5/Erc1155.d.ts.map +1 -0
- package/dist/types/contracts/abis/types/v5/Erc1155OrderExchange.d.ts +522 -0
- package/dist/types/contracts/abis/types/v5/Erc1155OrderExchange.d.ts.map +1 -0
- package/dist/types/contracts/abis/types/v5/Erc20.d.ts +169 -0
- package/dist/types/contracts/abis/types/v5/Erc20.d.ts.map +1 -0
- package/dist/types/contracts/abis/types/v5/Erc721.d.ts +547 -0
- package/dist/types/contracts/abis/types/v5/Erc721.d.ts.map +1 -0
- package/dist/types/contracts/abis/types/v5/Katana.d.ts +548 -0
- package/dist/types/contracts/abis/types/v5/Katana.d.ts.map +1 -0
- package/dist/types/contracts/abis/types/v5/MarketGateway.d.ts +543 -0
- package/dist/types/contracts/abis/types/v5/MarketGateway.d.ts.map +1 -0
- package/dist/types/contracts/abis/types/v5/MarketGatewayMultisend.d.ts +267 -0
- package/dist/types/contracts/abis/types/v5/MarketGatewayMultisend.d.ts.map +1 -0
- package/dist/types/contracts/abis/types/v5/MavisExchange.d.ts +508 -0
- package/dist/types/contracts/abis/types/v5/MavisExchange.d.ts.map +1 -0
- package/dist/types/contracts/abis/types/v5/Multicall.d.ts +219 -0
- package/dist/types/contracts/abis/types/v5/Multicall.d.ts.map +1 -0
- package/dist/types/contracts/abis/types/v5/RoyaltyRegistry.d.ts +497 -0
- package/dist/types/contracts/abis/types/v5/RoyaltyRegistry.d.ts.map +1 -0
- package/dist/types/contracts/abis/types/v5/Wron.d.ts +348 -0
- package/dist/types/contracts/abis/types/v5/Wron.d.ts.map +1 -0
- package/dist/types/contracts/abis/types/v5/common.d.ts +23 -0
- package/dist/types/contracts/abis/types/v5/common.d.ts.map +1 -0
- package/dist/types/contracts/abis/types/v5/factories/CollectionOffer__factory.d.ts +1826 -0
- package/dist/types/contracts/abis/types/v5/factories/CollectionOffer__factory.d.ts.map +1 -0
- package/dist/types/contracts/abis/types/v5/factories/Erc1155OrderExchange__factory.d.ts +672 -0
- package/dist/types/contracts/abis/types/v5/factories/Erc1155OrderExchange__factory.d.ts.map +1 -0
- package/dist/types/contracts/abis/types/v5/factories/Erc1155__factory.d.ts +626 -0
- package/dist/types/contracts/abis/types/v5/factories/Erc1155__factory.d.ts.map +1 -0
- package/dist/types/contracts/abis/types/v5/factories/Erc20__factory.d.ts +176 -0
- package/dist/types/contracts/abis/types/v5/factories/Erc20__factory.d.ts.map +1 -0
- package/dist/types/contracts/abis/types/v5/factories/Erc721__factory.d.ts +620 -0
- package/dist/types/contracts/abis/types/v5/factories/Erc721__factory.d.ts.map +1 -0
- package/dist/types/contracts/abis/types/v5/factories/Katana__factory.d.ts +810 -0
- package/dist/types/contracts/abis/types/v5/factories/Katana__factory.d.ts.map +1 -0
- package/dist/types/contracts/abis/types/v5/factories/MarketGatewayMultisend__factory.d.ts +302 -0
- package/dist/types/contracts/abis/types/v5/factories/MarketGatewayMultisend__factory.d.ts.map +1 -0
- package/dist/types/contracts/abis/types/v5/factories/MarketGateway__factory.d.ts +588 -0
- package/dist/types/contracts/abis/types/v5/factories/MarketGateway__factory.d.ts.map +1 -0
- package/dist/types/contracts/abis/types/v5/factories/MavisExchange__factory.d.ts +646 -0
- package/dist/types/contracts/abis/types/v5/factories/MavisExchange__factory.d.ts.map +1 -0
- package/dist/types/contracts/abis/types/v5/factories/Multicall__factory.d.ts +268 -0
- package/dist/types/contracts/abis/types/v5/factories/Multicall__factory.d.ts.map +1 -0
- package/dist/types/contracts/abis/types/v5/factories/RoyaltyRegistry__factory.d.ts +721 -0
- package/dist/types/contracts/abis/types/v5/factories/RoyaltyRegistry__factory.d.ts.map +1 -0
- package/dist/types/contracts/abis/types/v5/factories/Wron__factory.d.ts +369 -0
- package/dist/types/contracts/abis/types/v5/factories/Wron__factory.d.ts.map +1 -0
- package/dist/types/contracts/abis/types/v5/factories/index.d.ts +13 -0
- package/dist/types/contracts/abis/types/v5/factories/index.d.ts.map +1 -0
- package/dist/types/contracts/abis/types/v5/index.d.ts +26 -0
- package/dist/types/contracts/abis/types/v5/index.d.ts.map +1 -0
- package/dist/types/contracts/index.d.ts +19 -0
- package/dist/types/contracts/index.d.ts.map +1 -0
- package/dist/types/contracts/market-gateway/Erc1155MarketGatewayContract.d.ts +46 -0
- package/dist/types/contracts/market-gateway/Erc1155MarketGatewayContract.d.ts.map +1 -0
- package/dist/types/contracts/market-gateway/MarketGatewayContract.d.ts +43 -0
- package/dist/types/contracts/market-gateway/MarketGatewayContract.d.ts.map +1 -0
- package/dist/types/contracts/market-gateway/MarketGatewayMultisendContract.d.ts +60 -0
- package/dist/types/contracts/market-gateway/MarketGatewayMultisendContract.d.ts.map +1 -0
- package/dist/types/contracts/market-gateway/factory.d.ts +6 -0
- package/dist/types/contracts/market-gateway/factory.d.ts.map +1 -0
- package/dist/types/contracts/market-gateway/index.d.ts +5 -0
- package/dist/types/contracts/market-gateway/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/queries/collection/index.d.ts +11 -0
- package/dist/types/queries/collection/index.d.ts.map +1 -0
- package/dist/types/queries/collection/queryTypes.d.ts +40 -0
- package/dist/types/queries/collection/queryTypes.d.ts.map +1 -0
- package/dist/types/queries/collection/types.d.ts +98 -0
- package/dist/types/queries/collection/types.d.ts.map +1 -0
- package/dist/types/queries/exchange-rate/index.d.ts +5 -0
- package/dist/types/queries/exchange-rate/index.d.ts.map +1 -0
- package/dist/types/queries/exchange-rate/queryTypes.d.ts +9 -0
- package/dist/types/queries/exchange-rate/queryTypes.d.ts.map +1 -0
- package/dist/types/queries/exchange-rate/types.d.ts +11 -0
- package/dist/types/queries/exchange-rate/types.d.ts.map +1 -0
- package/dist/types/queries/graphql/fragments/asset.d.ts +3 -0
- package/dist/types/queries/graphql/fragments/asset.d.ts.map +1 -0
- package/dist/types/queries/graphql/fragments/collection.d.ts +3 -0
- package/dist/types/queries/graphql/fragments/collection.d.ts.map +1 -0
- package/dist/types/queries/graphql/fragments/offer.d.ts +3 -0
- package/dist/types/queries/graphql/fragments/offer.d.ts.map +1 -0
- package/dist/types/queries/graphql/fragments/order.d.ts +3 -0
- package/dist/types/queries/graphql/fragments/order.d.ts.map +1 -0
- package/dist/types/queries/graphql/fragments/profile.d.ts +4 -0
- package/dist/types/queries/graphql/fragments/profile.d.ts.map +1 -0
- package/dist/types/queries/graphql/fragments/token.d.ts +12 -0
- package/dist/types/queries/graphql/fragments/token.d.ts.map +1 -0
- package/dist/types/queries/graphql/index.d.ts +14 -0
- package/dist/types/queries/graphql/index.d.ts.map +1 -0
- package/dist/types/queries/graphql/mutations/metadata.d.ts +2 -0
- package/dist/types/queries/graphql/mutations/metadata.d.ts.map +1 -0
- package/dist/types/queries/graphql/mutations/order.d.ts +2 -0
- package/dist/types/queries/graphql/mutations/order.d.ts.map +1 -0
- package/dist/types/queries/graphql/queries/collection.d.ts +5 -0
- package/dist/types/queries/graphql/queries/collection.d.ts.map +1 -0
- package/dist/types/queries/graphql/queries/exchange-rate.d.ts +2 -0
- package/dist/types/queries/graphql/queries/exchange-rate.d.ts.map +1 -0
- package/dist/types/queries/graphql/queries/offer.d.ts +7 -0
- package/dist/types/queries/graphql/queries/offer.d.ts.map +1 -0
- package/dist/types/queries/graphql/queries/order.d.ts +6 -0
- package/dist/types/queries/graphql/queries/order.d.ts.map +1 -0
- package/dist/types/queries/graphql/queries/token.d.ts +14 -0
- package/dist/types/queries/graphql/queries/token.d.ts.map +1 -0
- package/dist/types/queries/index.d.ts +8 -0
- package/dist/types/queries/index.d.ts.map +1 -0
- package/dist/types/queries/offer/index.d.ts +19 -0
- package/dist/types/queries/offer/index.d.ts.map +1 -0
- package/dist/types/queries/offer/queryTypes.d.ts +89 -0
- package/dist/types/queries/offer/queryTypes.d.ts.map +1 -0
- package/dist/types/queries/offer/types.d.ts +33 -0
- package/dist/types/queries/offer/types.d.ts.map +1 -0
- package/dist/types/queries/order/index.d.ts +14 -0
- package/dist/types/queries/order/index.d.ts.map +1 -0
- package/dist/types/queries/order/queryTypes.d.ts +87 -0
- package/dist/types/queries/order/queryTypes.d.ts.map +1 -0
- package/dist/types/queries/order/types.d.ts +96 -0
- package/dist/types/queries/order/types.d.ts.map +1 -0
- package/dist/types/queries/profile/index.d.ts +2 -0
- package/dist/types/queries/profile/index.d.ts.map +1 -0
- package/dist/types/queries/profile/types.d.ts +11 -0
- package/dist/types/queries/profile/types.d.ts.map +1 -0
- package/dist/types/queries/token/index.d.ts +92 -0
- package/dist/types/queries/token/index.d.ts.map +1 -0
- package/dist/types/queries/token/queryTypes.d.ts +304 -0
- package/dist/types/queries/token/queryTypes.d.ts.map +1 -0
- package/dist/types/queries/token/types.d.ts +103 -0
- package/dist/types/queries/token/types.d.ts.map +1 -0
- package/dist/types/services/balance/checkIsInsufficientBalance.d.ts +4 -0
- package/dist/types/services/balance/checkIsInsufficientBalance.d.ts.map +1 -0
- package/dist/types/services/balance/fetchBalances.d.ts +4 -0
- package/dist/types/services/balance/fetchBalances.d.ts.map +1 -0
- package/dist/types/services/balance/index.d.ts +3 -0
- package/dist/types/services/balance/index.d.ts.map +1 -0
- package/dist/types/services/index.d.ts +4 -0
- package/dist/types/services/index.d.ts.map +1 -0
- package/dist/types/services/order/bulkSettleOrders.d.ts +21 -0
- package/dist/types/services/order/bulkSettleOrders.d.ts.map +1 -0
- package/dist/types/services/order/checkIsOrderValid.d.ts +5 -0
- package/dist/types/services/order/checkIsOrderValid.d.ts.map +1 -0
- package/dist/types/services/order/generateOrderData.d.ts +6 -0
- package/dist/types/services/order/generateOrderData.d.ts.map +1 -0
- package/dist/types/services/order/getNonce.d.ts +3 -0
- package/dist/types/services/order/getNonce.d.ts.map +1 -0
- package/dist/types/services/order/getOrderSignature.d.ts +4 -0
- package/dist/types/services/order/getOrderSignature.d.ts.map +1 -0
- package/dist/types/services/order/getOrderState.d.ts +4 -0
- package/dist/types/services/order/getOrderState.d.ts.map +1 -0
- package/dist/types/services/order/getOrdersByCriteria.d.ts +4 -0
- package/dist/types/services/order/getOrdersByCriteria.d.ts.map +1 -0
- package/dist/types/services/order/getOrdersByQuantity.d.ts +4 -0
- package/dist/types/services/order/getOrdersByQuantity.d.ts.map +1 -0
- package/dist/types/services/order/getOrdersTotalPrice.d.ts +15 -0
- package/dist/types/services/order/getOrdersTotalPrice.d.ts.map +1 -0
- package/dist/types/services/order/getSwapTokenData.d.ts +9 -0
- package/dist/types/services/order/getSwapTokenData.d.ts.map +1 -0
- package/dist/types/services/order/index.d.ts +11 -0
- package/dist/types/services/order/index.d.ts.map +1 -0
- package/dist/types/services/order/settleOrder.d.ts +11 -0
- package/dist/types/services/order/settleOrder.d.ts.map +1 -0
- package/dist/types/services/tokens/checkIsTokenApproved.d.ts +6 -0
- package/dist/types/services/tokens/checkIsTokenApproved.d.ts.map +1 -0
- package/dist/types/services/tokens/configs.d.ts +71 -0
- package/dist/types/services/tokens/configs.d.ts.map +1 -0
- package/dist/types/services/tokens/data.d.ts +45 -0
- package/dist/types/services/tokens/data.d.ts.map +1 -0
- package/dist/types/services/tokens/getPaymentTokens.d.ts +11 -0
- package/dist/types/services/tokens/getPaymentTokens.d.ts.map +1 -0
- package/dist/types/services/tokens/getTokensNeedToApprove.d.ts +4 -0
- package/dist/types/services/tokens/getTokensNeedToApprove.d.ts.map +1 -0
- package/dist/types/services/tokens/getTokensNeedToApproveByOrders.d.ts +4 -0
- package/dist/types/services/tokens/getTokensNeedToApproveByOrders.d.ts.map +1 -0
- package/dist/types/services/tokens/index.d.ts +7 -0
- package/dist/types/services/tokens/index.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +11 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/order.d.ts +72 -0
- package/dist/types/types/order.d.ts.map +1 -0
- package/dist/types/types/wallet.d.ts +10 -0
- package/dist/types/types/wallet.d.ts.map +1 -0
- package/dist/types/utils/convertPrice.d.ts +3 -0
- package/dist/types/utils/convertPrice.d.ts.map +1 -0
- package/dist/types/utils/getSpenderContractAddress.d.ts +3 -0
- package/dist/types/utils/getSpenderContractAddress.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +4 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/mapData.d.ts +7 -0
- package/dist/types/utils/mapData.d.ts.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var ethers = require('ethers');
|
|
4
|
+
var lodash = require('lodash');
|
|
5
|
+
var index = require('../../contracts/index.js');
|
|
6
|
+
var configs = require('../tokens/configs.js');
|
|
7
|
+
var data = require('../tokens/data.js');
|
|
8
|
+
|
|
9
|
+
const getOrdersTotalPrice = async (params) => {
|
|
10
|
+
const { data: data$1, chainId, wallet, token } = params;
|
|
11
|
+
const { provider } = wallet;
|
|
12
|
+
const { address } = token || data.paymentTokens?.[chainId].RON;
|
|
13
|
+
const katanaContract = index.createKatanaContract(chainId, provider);
|
|
14
|
+
const ordersNeedToSwap = data$1.filter(orderData => orderData.order.paymentToken !== address);
|
|
15
|
+
const ordersDontNeedToSwap = data$1.filter(orderData => orderData.order.paymentToken === address);
|
|
16
|
+
const totalPriceOfEachOrder = {};
|
|
17
|
+
let totalPrice = ordersDontNeedToSwap.reduce((total, { quantity, order }) => {
|
|
18
|
+
const { currentPrice, hash } = order;
|
|
19
|
+
const orderTotalPrice = ethers.BigNumber.from(currentPrice).mul(quantity);
|
|
20
|
+
totalPriceOfEachOrder[hash] = orderTotalPrice.toString();
|
|
21
|
+
return total.add(orderTotalPrice);
|
|
22
|
+
}, ethers.BigNumber.from(0));
|
|
23
|
+
const ordersNeedToSwapAmounts = ordersNeedToSwap.map(({ quantity, order }) => {
|
|
24
|
+
const { paymentToken, currentPrice } = order;
|
|
25
|
+
const swapConfig = configs.getSwapConfig(chainId, paymentToken);
|
|
26
|
+
const path = swapConfig[address].path;
|
|
27
|
+
const orderTotalPrice = ethers.BigNumber.from(currentPrice).mul(quantity);
|
|
28
|
+
return { amount: orderTotalPrice.toString(), path };
|
|
29
|
+
});
|
|
30
|
+
if (!lodash.isEmpty(ordersNeedToSwap)) {
|
|
31
|
+
const swappedValues = await katanaContract.getAmountsInMultiCall(ordersNeedToSwapAmounts, chainId);
|
|
32
|
+
const totalSwappedValues = ordersNeedToSwap.reduce((total, { order }, currentIndex) => {
|
|
33
|
+
const { hash } = order;
|
|
34
|
+
const price = swappedValues[currentIndex];
|
|
35
|
+
totalPriceOfEachOrder[hash] = price.toString();
|
|
36
|
+
return total.add(price);
|
|
37
|
+
}, ethers.BigNumber.from(0));
|
|
38
|
+
totalPrice = totalPrice.add(totalSwappedValues);
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
totalPrice: totalPrice.toString(),
|
|
42
|
+
totalPriceOfEachOrder,
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
exports.getOrdersTotalPrice = getOrdersTotalPrice;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utils = require('ethers/lib/utils');
|
|
4
|
+
var index = require('../../contracts/index.js');
|
|
5
|
+
require('../../configs/index.js');
|
|
6
|
+
require('../tokens/data.js');
|
|
7
|
+
var getPaymentTokens = require('../tokens/getPaymentTokens.js');
|
|
8
|
+
var configs = require('../tokens/configs.js');
|
|
9
|
+
require('lodash');
|
|
10
|
+
require('ethers');
|
|
11
|
+
|
|
12
|
+
const getLiquidityProviderFeePercent = (chainId, inputTokenAddress, outputTokenAddress) => {
|
|
13
|
+
const swapConfig = configs.getSwapConfig(chainId, outputTokenAddress)[inputTokenAddress];
|
|
14
|
+
return swapConfig?.lpFeePercent;
|
|
15
|
+
};
|
|
16
|
+
const getPriceImpactPercent = async (chainId, inputTokenAddress, outputTokenAddress, fiatValueIn, fiatValueOut) => {
|
|
17
|
+
const liquidityProviderPercent = getLiquidityProviderFeePercent(chainId, inputTokenAddress, outputTokenAddress);
|
|
18
|
+
return (1 - fiatValueIn / fiatValueOut) * 100 - liquidityProviderPercent;
|
|
19
|
+
};
|
|
20
|
+
const getLiquidityProviderFee = (chainId, inputTokenAddress, outputTokenAddress, amountIn) => {
|
|
21
|
+
const inputTokenData = getPaymentTokens.getPaymentToken(chainId, inputTokenAddress);
|
|
22
|
+
const formattedAmountIn = utils.formatUnits(amountIn, inputTokenData?.decimals);
|
|
23
|
+
const liquidityProviderPercent = getLiquidityProviderFeePercent(chainId, inputTokenAddress, outputTokenAddress);
|
|
24
|
+
return {
|
|
25
|
+
value: (Number(formattedAmountIn) * liquidityProviderPercent) / 100,
|
|
26
|
+
symbol: inputTokenData?.symbol,
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
const getSwappedAmount = async (chainId, inputTokenAddress, outputTokenAddress, amount) => {
|
|
30
|
+
const readProvider = index.createReadOnlyProvider(chainId);
|
|
31
|
+
const katanaContract = index.createKatanaContract(chainId);
|
|
32
|
+
const swapConfig = configs.getSwapConfig(chainId, outputTokenAddress);
|
|
33
|
+
const path = swapConfig[inputTokenAddress]?.path;
|
|
34
|
+
const response = await katanaContract.connect(readProvider).getAmountsIn(amount, path);
|
|
35
|
+
return response?.[0];
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
exports.getLiquidityProviderFee = getLiquidityProviderFee;
|
|
39
|
+
exports.getLiquidityProviderFeePercent = getLiquidityProviderFeePercent;
|
|
40
|
+
exports.getPriceImpactPercent = getPriceImpactPercent;
|
|
41
|
+
exports.getSwappedAmount = getSwappedAmount;
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var constants = require('../../common/constants.js');
|
|
4
|
+
require('ethers');
|
|
5
|
+
require('../../configs/index.js');
|
|
6
|
+
require('../tokens/data.js');
|
|
7
|
+
var factory = require('../../contracts/market-gateway/factory.js');
|
|
8
|
+
require('../../types/index.js');
|
|
9
|
+
var generateOrderData = require('./generateOrderData.js');
|
|
10
|
+
var getSwapTokenData = require('./getSwapTokenData.js');
|
|
11
|
+
|
|
12
|
+
const getSettlePrice = async (chainId, selectedTokenAddress, listingTokenAddress, amount) => {
|
|
13
|
+
const isBuyingWithListingToken = selectedTokenAddress.toLowerCase() === listingTokenAddress.toLowerCase();
|
|
14
|
+
if (isBuyingWithListingToken) {
|
|
15
|
+
return amount;
|
|
16
|
+
}
|
|
17
|
+
const swappedAmount = await getSwapTokenData.getSwappedAmount(chainId, selectedTokenAddress, listingTokenAddress, amount);
|
|
18
|
+
return swappedAmount
|
|
19
|
+
?.mul(100 + constants.SWAP_DEFAULT_SLIPPAGE)
|
|
20
|
+
.div(100)
|
|
21
|
+
.toString();
|
|
22
|
+
};
|
|
23
|
+
// Erc721
|
|
24
|
+
const settleErc721Order = (chainId, wallet, order, settlePrice, referralAddr, recipient, options) => {
|
|
25
|
+
const { provider, account } = wallet;
|
|
26
|
+
const { signature, expectedState } = order;
|
|
27
|
+
const marketGatewayContract = factory.createMarketGatewayContract(chainId, provider);
|
|
28
|
+
const erc721Order = generateOrderData.generateErc721Order(order);
|
|
29
|
+
return marketGatewayContract.settleOrder({
|
|
30
|
+
expectedState,
|
|
31
|
+
settlePrice,
|
|
32
|
+
account,
|
|
33
|
+
signature,
|
|
34
|
+
chainId,
|
|
35
|
+
referralAddr,
|
|
36
|
+
recipient,
|
|
37
|
+
order: erc721Order,
|
|
38
|
+
options,
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
const swapTokensAndSettleErc721Order = (chainId, wallet, order, settlePrice, tokenPaths, deadline, referralAddr, recipient, options) => {
|
|
42
|
+
const { provider, account } = wallet;
|
|
43
|
+
const marketGatewayContract = factory.createMarketGatewayContract(chainId, provider);
|
|
44
|
+
const erc721Order = generateOrderData.generateErc721Order(order);
|
|
45
|
+
const { signature, expectedState } = order;
|
|
46
|
+
return marketGatewayContract.swapTokensAndSettleOrder({
|
|
47
|
+
expectedState,
|
|
48
|
+
settlePrice,
|
|
49
|
+
path: tokenPaths,
|
|
50
|
+
signature,
|
|
51
|
+
account,
|
|
52
|
+
referralAddr,
|
|
53
|
+
recipient,
|
|
54
|
+
deadline,
|
|
55
|
+
order: erc721Order,
|
|
56
|
+
options,
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
const swapRONAndSettleErc721Order = (chainId, wallet, order, settlePrice, tokenPaths, deadline, referralAddr, recipient, options) => {
|
|
60
|
+
const { provider, account } = wallet;
|
|
61
|
+
const marketGatewayContract = factory.createMarketGatewayContract(chainId, provider);
|
|
62
|
+
const erc721Order = generateOrderData.generateErc721Order(order);
|
|
63
|
+
const { signature, expectedState } = order;
|
|
64
|
+
return marketGatewayContract.swapRONAndSettleOrder({
|
|
65
|
+
expectedState,
|
|
66
|
+
settlePrice,
|
|
67
|
+
referralAddr,
|
|
68
|
+
recipient,
|
|
69
|
+
path: tokenPaths,
|
|
70
|
+
signature,
|
|
71
|
+
account,
|
|
72
|
+
deadline,
|
|
73
|
+
order: erc721Order,
|
|
74
|
+
options,
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
// Erc1155
|
|
78
|
+
const settleErc1155Order = (chainId, wallet, order, settlePrice, quantity, referralAddr, recipient, options) => {
|
|
79
|
+
const { provider, account } = wallet;
|
|
80
|
+
const erc1155MarketGatewayContract = factory.createErc1155MarketGatewayContract(chainId, provider);
|
|
81
|
+
const erc1155Order = generateOrderData.generateErc1155Order(order);
|
|
82
|
+
const { signature, expectedState } = order;
|
|
83
|
+
return erc1155MarketGatewayContract.settleErc1155Order({
|
|
84
|
+
expectedState,
|
|
85
|
+
settlePrice,
|
|
86
|
+
account,
|
|
87
|
+
signature,
|
|
88
|
+
chainId,
|
|
89
|
+
referralAddr,
|
|
90
|
+
recipient,
|
|
91
|
+
quantity,
|
|
92
|
+
order: erc1155Order,
|
|
93
|
+
options,
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
const swapTokensAndSettleErc1155Order = (chainId, wallet, order, settlePrice, tokenPaths, quantity, deadline, referralAddr, recipient, options) => {
|
|
97
|
+
const { provider, account } = wallet;
|
|
98
|
+
const erc1155MarketGatewayContract = factory.createErc1155MarketGatewayContract(chainId, provider);
|
|
99
|
+
const erc1155Order = generateOrderData.generateErc1155Order(order);
|
|
100
|
+
const { signature, expectedState } = order;
|
|
101
|
+
return erc1155MarketGatewayContract.swapTokensAndSettleErc1155Order({
|
|
102
|
+
expectedState,
|
|
103
|
+
settlePrice,
|
|
104
|
+
path: tokenPaths,
|
|
105
|
+
signature,
|
|
106
|
+
account,
|
|
107
|
+
referralAddr,
|
|
108
|
+
recipient,
|
|
109
|
+
deadline,
|
|
110
|
+
quantity,
|
|
111
|
+
order: erc1155Order,
|
|
112
|
+
options,
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
const swapRONAndSettleErc1155Order = (chainId, wallet, order, settlePrice, tokenPaths, quantity, deadline, referralAddr, recipient, options) => {
|
|
116
|
+
const { provider, account } = wallet;
|
|
117
|
+
const erc1155MarketGatewayContract = factory.createErc1155MarketGatewayContract(chainId, provider);
|
|
118
|
+
const erc1155Order = generateOrderData.generateErc1155Order(order);
|
|
119
|
+
const { signature, expectedState } = order;
|
|
120
|
+
return erc1155MarketGatewayContract.swapRONAndSettleErc1155Order({
|
|
121
|
+
expectedState,
|
|
122
|
+
settlePrice,
|
|
123
|
+
referralAddr,
|
|
124
|
+
path: tokenPaths,
|
|
125
|
+
signature,
|
|
126
|
+
account,
|
|
127
|
+
recipient,
|
|
128
|
+
deadline,
|
|
129
|
+
quantity,
|
|
130
|
+
order: erc1155Order,
|
|
131
|
+
options,
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
exports.getSettlePrice = getSettlePrice;
|
|
136
|
+
exports.settleErc1155Order = settleErc1155Order;
|
|
137
|
+
exports.settleErc721Order = settleErc721Order;
|
|
138
|
+
exports.swapRONAndSettleErc1155Order = swapRONAndSettleErc1155Order;
|
|
139
|
+
exports.swapRONAndSettleErc721Order = swapRONAndSettleErc721Order;
|
|
140
|
+
exports.swapTokensAndSettleErc1155Order = swapTokensAndSettleErc1155Order;
|
|
141
|
+
exports.swapTokensAndSettleErc721Order = swapTokensAndSettleErc721Order;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index$1 = require('../../configs/index.js');
|
|
4
|
+
var index = require('../../contracts/index.js');
|
|
5
|
+
var data = require('./data.js');
|
|
6
|
+
var getPaymentTokens = require('./getPaymentTokens.js');
|
|
7
|
+
|
|
8
|
+
const checkIsErc721Approved = (chainId, account, address) => {
|
|
9
|
+
const readProvider = index.createReadOnlyProvider(chainId);
|
|
10
|
+
const config = index$1.getConfig(chainId);
|
|
11
|
+
const erc721Contract = index.createErc721Contract(address);
|
|
12
|
+
const marketGatewayContractAddress = config.contractsAddress.marketGateway;
|
|
13
|
+
return erc721Contract.connect(readProvider).isApprovedForAll(account, marketGatewayContractAddress);
|
|
14
|
+
};
|
|
15
|
+
const checkIsErc1155Approved = (chainId, account, address) => {
|
|
16
|
+
const readProvider = index.createReadOnlyProvider(chainId);
|
|
17
|
+
const config = index$1.getConfig(chainId);
|
|
18
|
+
const erc1155Contract = index.createErc1155Contract(address);
|
|
19
|
+
const marketGatewayContractAddress = config.contractsAddress.marketGateway;
|
|
20
|
+
return erc1155Contract.connect(readProvider).isApprovedForAll(account, marketGatewayContractAddress);
|
|
21
|
+
};
|
|
22
|
+
const checkIsErc20Approved = async (chainId, account, address, amount, spenderAddress) => {
|
|
23
|
+
const config = index$1.getConfig(chainId);
|
|
24
|
+
const spender = spenderAddress || config.contractsAddress.marketGateway;
|
|
25
|
+
const tokens = getPaymentTokens.getPaymentTokens(chainId);
|
|
26
|
+
const isRon = tokens[data.Token.RON].address.toLowerCase() === address.toLowerCase();
|
|
27
|
+
if (isRon) {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
const erc20Contract = index.createErc20Contract(address);
|
|
31
|
+
const readProvider = index.createReadOnlyProvider(chainId);
|
|
32
|
+
const response = await erc20Contract.connect(readProvider).allowance(account, spender);
|
|
33
|
+
return response.gte(amount);
|
|
34
|
+
};
|
|
35
|
+
const checkIsWRonTokenApproved = async (chainId, account, amount) => {
|
|
36
|
+
const config = index$1.getConfig(chainId);
|
|
37
|
+
const marketGatewayContractAddress = config.contractsAddress.marketGateway;
|
|
38
|
+
const wRonContract = index.createWRonContract(chainId);
|
|
39
|
+
const readProvider = index.createReadOnlyProvider(chainId);
|
|
40
|
+
const response = await wRonContract.connect(readProvider).allowance(account, marketGatewayContractAddress);
|
|
41
|
+
return response.gte(amount);
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
exports.checkIsErc1155Approved = checkIsErc1155Approved;
|
|
45
|
+
exports.checkIsErc20Approved = checkIsErc20Approved;
|
|
46
|
+
exports.checkIsErc721Approved = checkIsErc721Approved;
|
|
47
|
+
exports.checkIsWRonTokenApproved = checkIsWRonTokenApproved;
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var getPaymentTokens = require('./getPaymentTokens.js');
|
|
4
|
+
|
|
5
|
+
const getSwapToRonConfig = (tokens) => {
|
|
6
|
+
return {
|
|
7
|
+
[tokens.AXS.address]: {
|
|
8
|
+
route: [tokens.AXS.symbol, tokens.RON.symbol].join(' > '),
|
|
9
|
+
path: [tokens.AXS.address, tokens.RON.address],
|
|
10
|
+
tokens: [tokens.AXS, tokens.RON],
|
|
11
|
+
lpFeePercent: 1 - (1 - 0.3),
|
|
12
|
+
},
|
|
13
|
+
[tokens.SLP.address]: {
|
|
14
|
+
route: [tokens.SLP.symbol, tokens.RON.symbol].join(' > '),
|
|
15
|
+
path: [tokens.SLP.address, tokens.RON.address],
|
|
16
|
+
tokens: [tokens.SLP, tokens.RON],
|
|
17
|
+
lpFeePercent: 1 - (1 - 0.3),
|
|
18
|
+
},
|
|
19
|
+
[tokens.USDC.address]: {
|
|
20
|
+
route: [tokens.USDC.symbol, tokens.RON.symbol].join(' > '),
|
|
21
|
+
path: [tokens.USDC.address, tokens.RON.address],
|
|
22
|
+
tokens: [tokens.USDC, tokens.RON],
|
|
23
|
+
lpFeePercent: 1 - (1 - 0.3),
|
|
24
|
+
},
|
|
25
|
+
[tokens.WETH.address]: {
|
|
26
|
+
route: [tokens.WETH.symbol, tokens.RON.symbol].join(' > '),
|
|
27
|
+
path: [tokens.WETH.address, tokens.RON.address],
|
|
28
|
+
tokens: [tokens.WETH, tokens.RON],
|
|
29
|
+
lpFeePercent: 1 - (1 - 0.3),
|
|
30
|
+
},
|
|
31
|
+
[tokens.ION.address]: {
|
|
32
|
+
route: [tokens.ION.symbol, tokens.USDC.symbol, tokens.RON.symbol].join(' > '),
|
|
33
|
+
path: [tokens.ION.address, tokens.USDC.address, tokens.RON.address],
|
|
34
|
+
tokens: [tokens.ION, tokens.USDC, tokens.RON],
|
|
35
|
+
lpFeePercent: 1 - (1 - 0.3) * (1 - 0.3),
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
const getSwapToUsdcConfig = (tokens) => {
|
|
40
|
+
return {
|
|
41
|
+
[tokens.AXS.address]: {
|
|
42
|
+
route: [tokens.AXS.symbol, tokens.RON.symbol, tokens.USDC.symbol].join(' > '),
|
|
43
|
+
path: [tokens.AXS.address, tokens.RON.address, tokens.USDC.address],
|
|
44
|
+
tokens: [tokens.AXS, tokens.RON, tokens.USDC],
|
|
45
|
+
lpFeePercent: 1 - (1 - 0.3) * (1 - 0.3),
|
|
46
|
+
},
|
|
47
|
+
[tokens.SLP.address]: {
|
|
48
|
+
route: [tokens.SLP.symbol, tokens.RON.symbol, tokens.USDC.symbol].join(' > '),
|
|
49
|
+
path: [tokens.SLP.address, tokens.RON.address, tokens.USDC.address],
|
|
50
|
+
tokens: [tokens.SLP, tokens.RON, tokens.USDC],
|
|
51
|
+
lpFeePercent: 1 - (1 - 0.3) * (1 - 0.3),
|
|
52
|
+
},
|
|
53
|
+
[tokens.RON.address]: {
|
|
54
|
+
route: [tokens.RON.symbol, tokens.USDC.symbol].join(' > '),
|
|
55
|
+
path: [tokens.RON.address, tokens.USDC.address],
|
|
56
|
+
tokens: [tokens.RON, tokens.USDC],
|
|
57
|
+
lpFeePercent: 1 - (1 - 0.3),
|
|
58
|
+
},
|
|
59
|
+
[tokens.WETH.address]: {
|
|
60
|
+
route: [tokens.WETH.symbol, tokens.RON.symbol, tokens.USDC.symbol].join(' > '),
|
|
61
|
+
path: [tokens.WETH.address, tokens.RON.address, tokens.USDC.address],
|
|
62
|
+
tokens: [tokens.WETH, tokens.RON, tokens.USDC],
|
|
63
|
+
lpFeePercent: 1 - (1 - 0.3) * (1 - 0.3),
|
|
64
|
+
},
|
|
65
|
+
[tokens.ION.address]: {
|
|
66
|
+
route: [tokens.ION.symbol, tokens.USDC.symbol].join(' > '),
|
|
67
|
+
path: [tokens.ION.address, tokens.USDC.address],
|
|
68
|
+
tokens: [tokens.ION, tokens.USDC],
|
|
69
|
+
lpFeePercent: 1 - (1 - 0.3),
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
const getSwapToWethConfig = (tokens) => {
|
|
74
|
+
return {
|
|
75
|
+
[tokens.AXS.address]: {
|
|
76
|
+
route: [tokens.AXS.symbol, tokens.RON.symbol, tokens.WETH.symbol].join(' > '),
|
|
77
|
+
path: [tokens.AXS.address, tokens.RON.address, tokens.WETH.address],
|
|
78
|
+
tokens: [tokens.AXS, tokens.RON, tokens.WETH],
|
|
79
|
+
lpFeePercent: 1 - (1 - 0.3) * (1 - 0.3),
|
|
80
|
+
},
|
|
81
|
+
[tokens.SLP.address]: {
|
|
82
|
+
route: [tokens.SLP.symbol, tokens.RON.symbol, tokens.WETH.symbol].join(' > '),
|
|
83
|
+
path: [tokens.SLP.address, tokens.RON.address, tokens.WETH.address],
|
|
84
|
+
tokens: [tokens.SLP, tokens.RON, tokens.WETH],
|
|
85
|
+
lpFeePercent: 1 - (1 - 0.3) * (1 - 0.3),
|
|
86
|
+
},
|
|
87
|
+
[tokens.RON.address]: {
|
|
88
|
+
route: [tokens.RON.symbol, tokens.WETH.symbol].join(' > '),
|
|
89
|
+
path: [tokens.RON.address, tokens.WETH.address],
|
|
90
|
+
tokens: [tokens.RON, tokens.WETH],
|
|
91
|
+
lpFeePercent: 1 - (1 - 0.3),
|
|
92
|
+
},
|
|
93
|
+
[tokens.USDC.address]: {
|
|
94
|
+
route: [tokens.USDC.symbol, tokens.RON.symbol, tokens.WETH.symbol].join(' > '),
|
|
95
|
+
path: [tokens.USDC.address, tokens.RON.address, tokens.WETH.address],
|
|
96
|
+
tokens: [tokens.USDC, tokens.RON, tokens.WETH],
|
|
97
|
+
lpFeePercent: 1 - (1 - 0.3) * (1 - 0.3),
|
|
98
|
+
},
|
|
99
|
+
[tokens.ION.address]: {
|
|
100
|
+
route: [tokens.ION.symbol, tokens.USDC.symbol, tokens.WETH.symbol].join(' > '),
|
|
101
|
+
path: [tokens.ION.address, tokens.USDC.address, tokens.WETH.address],
|
|
102
|
+
tokens: [tokens.ION, tokens.USDC, tokens.WETH],
|
|
103
|
+
lpFeePercent: 1 - (1 - 0.3) * (1 - 0.3),
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
const getSwapToIonConfig = (tokens) => {
|
|
108
|
+
return {
|
|
109
|
+
[tokens.AXS.address]: {
|
|
110
|
+
route: [tokens.AXS.symbol, tokens.USDC.symbol, tokens.ION.symbol].join(' > '),
|
|
111
|
+
path: [tokens.AXS.address, tokens.USDC.address, tokens.ION.address],
|
|
112
|
+
tokens: [tokens.AXS, tokens.USDC, tokens.ION],
|
|
113
|
+
lpFeePercent: 1 - (1 - 0.3) * (1 - 0.3),
|
|
114
|
+
},
|
|
115
|
+
[tokens.SLP.address]: {
|
|
116
|
+
route: [tokens.SLP.symbol, tokens.USDC.symbol, tokens.ION.symbol].join(' > '),
|
|
117
|
+
path: [tokens.SLP.address, tokens.USDC.address, tokens.ION.address],
|
|
118
|
+
tokens: [tokens.SLP, tokens.USDC, tokens.ION],
|
|
119
|
+
lpFeePercent: 1 - (1 - 0.3) * (1 - 0.3),
|
|
120
|
+
},
|
|
121
|
+
[tokens.RON.address]: {
|
|
122
|
+
route: [tokens.RON.symbol, tokens.USDC.symbol, tokens.ION.symbol].join(' > '),
|
|
123
|
+
path: [tokens.RON.address, tokens.USDC.address, tokens.ION.address],
|
|
124
|
+
tokens: [tokens.RON, tokens.USDC, tokens.ION],
|
|
125
|
+
lpFeePercent: 1 - (1 - 0.3) * (1 - 0.3),
|
|
126
|
+
},
|
|
127
|
+
[tokens.WETH.address]: {
|
|
128
|
+
route: [tokens.WETH.symbol, tokens.USDC.symbol, tokens.ION.symbol].join(' > '),
|
|
129
|
+
path: [tokens.WETH.address, tokens.USDC.address, tokens.ION.address],
|
|
130
|
+
tokens: [tokens.WETH, tokens.USDC, tokens.ION],
|
|
131
|
+
lpFeePercent: 1 - (1 - 0.3) * (1 - 0.3),
|
|
132
|
+
},
|
|
133
|
+
[tokens.USDC.address]: {
|
|
134
|
+
route: [tokens.USDC.symbol, tokens.ION.symbol].join(' > '),
|
|
135
|
+
path: [tokens.USDC.address, tokens.ION.address],
|
|
136
|
+
tokens: [tokens.USDC, tokens.ION],
|
|
137
|
+
lpFeePercent: 1 - (1 - 0.3),
|
|
138
|
+
},
|
|
139
|
+
};
|
|
140
|
+
};
|
|
141
|
+
const getSwapConfig = (chainId, toToken) => {
|
|
142
|
+
const tokens = getPaymentTokens.getPaymentTokens(chainId);
|
|
143
|
+
const validTokens = [tokens.USDC.address, tokens.WETH.address, tokens.RON.address, tokens.ION.address];
|
|
144
|
+
if (!validTokens.includes(toToken)) {
|
|
145
|
+
throw new Error('Token must be USDC, ION, WETH or RON');
|
|
146
|
+
}
|
|
147
|
+
switch (toToken) {
|
|
148
|
+
case tokens.USDC.address:
|
|
149
|
+
return getSwapToUsdcConfig(tokens);
|
|
150
|
+
case tokens.WETH.address:
|
|
151
|
+
return getSwapToWethConfig(tokens);
|
|
152
|
+
case tokens.ION.address:
|
|
153
|
+
return getSwapToIonConfig(tokens);
|
|
154
|
+
default:
|
|
155
|
+
return getSwapToRonConfig(tokens);
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
exports.getSwapConfig = getSwapConfig;
|
|
160
|
+
exports.getSwapToIonConfig = getSwapToIonConfig;
|
|
161
|
+
exports.getSwapToRonConfig = getSwapToRonConfig;
|
|
162
|
+
exports.getSwapToUsdcConfig = getSwapToUsdcConfig;
|
|
163
|
+
exports.getSwapToWethConfig = getSwapToWethConfig;
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('../../types/index.js');
|
|
4
|
+
|
|
5
|
+
exports.Token = void 0;
|
|
6
|
+
(function (Token) {
|
|
7
|
+
Token["RON"] = "RON";
|
|
8
|
+
Token["WETH"] = "WETH";
|
|
9
|
+
Token["AXS"] = "AXS";
|
|
10
|
+
Token["SLP"] = "SLP";
|
|
11
|
+
Token["USDC"] = "USDC";
|
|
12
|
+
Token["ION"] = "ION";
|
|
13
|
+
})(exports.Token || (exports.Token = {}));
|
|
14
|
+
const paymentTokens = {
|
|
15
|
+
[index.ChainId.testnet]: {
|
|
16
|
+
[exports.Token.RON]: {
|
|
17
|
+
chainId: 202601,
|
|
18
|
+
address: '0xa959726154953bae111746e265e6d754f48570e6',
|
|
19
|
+
decimals: 18,
|
|
20
|
+
symbol: 'RON',
|
|
21
|
+
name: 'Ronin',
|
|
22
|
+
unit: 'ether',
|
|
23
|
+
imageUrl: 'https://cdn.skymavis.com/ronin/2021/ron/logo-transparent.png',
|
|
24
|
+
},
|
|
25
|
+
[exports.Token.WETH]: {
|
|
26
|
+
chainId: 202601,
|
|
27
|
+
address: '0x29c6f8349a028e1bdfc68bfa08bdee7bc5d47e16',
|
|
28
|
+
decimals: 18,
|
|
29
|
+
symbol: 'WETH',
|
|
30
|
+
name: 'Ronin Wrapped Ethereum',
|
|
31
|
+
unit: 'ether',
|
|
32
|
+
imageUrl: 'https://cdn.skymavis.com/ronin/2021/erc20/0x29c6f8349a028e1bdfc68bfa08bdee7bc5d47e16/logo-transparent.png',
|
|
33
|
+
},
|
|
34
|
+
[exports.Token.AXS]: {
|
|
35
|
+
chainId: 202601,
|
|
36
|
+
address: '0x3c4e17b9056272ce1b49f6900d8cfd6171a1869d',
|
|
37
|
+
decimals: 18,
|
|
38
|
+
symbol: 'AXS',
|
|
39
|
+
name: 'Axie Infinity Shard',
|
|
40
|
+
unit: 'ether',
|
|
41
|
+
imageUrl: 'https://cdn.skymavis.com/ronin/2021/erc20/0x3c4e17b9056272ce1b49f6900d8cfd6171a1869d/logo-transparent.png',
|
|
42
|
+
},
|
|
43
|
+
[exports.Token.SLP]: {
|
|
44
|
+
chainId: 202601,
|
|
45
|
+
address: '0x82f5483623d636bc3deba8ae67e1751b6cf2bad2',
|
|
46
|
+
decimals: 0,
|
|
47
|
+
symbol: 'SLP',
|
|
48
|
+
name: 'Smooth Love Potion',
|
|
49
|
+
unit: 'wei',
|
|
50
|
+
imageUrl: 'https://cdn.skymavis.com/ronin/2021/erc20/0x82f5483623d636bc3deba8ae67e1751b6cf2bad2/logo-transparent.png',
|
|
51
|
+
},
|
|
52
|
+
[exports.Token.USDC]: {
|
|
53
|
+
chainId: 202601,
|
|
54
|
+
address: '0x067fbff8990c58ab90bae3c97241c5d736053f77',
|
|
55
|
+
decimals: 6,
|
|
56
|
+
symbol: 'USDC',
|
|
57
|
+
name: 'USDC',
|
|
58
|
+
unit: 'mwei',
|
|
59
|
+
imageUrl: 'https://cdn.skymavis.com/ronin/2021/erc20/0x067fbff8990c58ab90bae3c97241c5d736053f77/logo-transparent.png',
|
|
60
|
+
},
|
|
61
|
+
[exports.Token.ION]: {
|
|
62
|
+
chainId: 202601,
|
|
63
|
+
address: '0xcC5da0dA34dE144d4a3766F4Dd15C727E75B6116',
|
|
64
|
+
decimals: 6,
|
|
65
|
+
symbol: 'ION',
|
|
66
|
+
name: 'ION',
|
|
67
|
+
unit: 'mwei',
|
|
68
|
+
imageUrl: 'https://cdn.skymavis.com/ronin/2020/erc20/0x44f4ee8df6333f655e5486a400b2f93b220f6ee1/logo-transparent.png',
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
[index.ChainId.mainnet]: {
|
|
72
|
+
[exports.Token.RON]: {
|
|
73
|
+
chainId: 2020,
|
|
74
|
+
address: '0xe514d9deb7966c8be0ca922de8a064264ea6bcd4',
|
|
75
|
+
decimals: 18,
|
|
76
|
+
symbol: 'RON',
|
|
77
|
+
name: 'Ronin',
|
|
78
|
+
unit: 'ether',
|
|
79
|
+
imageUrl: 'https://cdn.skymavis.com/ronin/2020/ron/logo-transparent.png',
|
|
80
|
+
},
|
|
81
|
+
[exports.Token.WETH]: {
|
|
82
|
+
chainId: 2020,
|
|
83
|
+
address: '0xc99a6a985ed2cac1ef41640596c5a5f9f4e19ef5',
|
|
84
|
+
decimals: 18,
|
|
85
|
+
symbol: 'WETH',
|
|
86
|
+
name: 'Ronin Wrapped Ethereum',
|
|
87
|
+
unit: 'ether',
|
|
88
|
+
imageUrl: 'https://cdn.skymavis.com/ronin/2020/erc20/0xc99a6a985ed2cac1ef41640596c5a5f9f4e19ef5/logo-transparent.png',
|
|
89
|
+
},
|
|
90
|
+
[exports.Token.AXS]: {
|
|
91
|
+
chainId: 2020,
|
|
92
|
+
address: '0x97a9107c1793bc407d6f527b77e7fff4d812bece',
|
|
93
|
+
decimals: 18,
|
|
94
|
+
symbol: 'AXS',
|
|
95
|
+
name: 'Axie Infinity Shard',
|
|
96
|
+
unit: 'ether',
|
|
97
|
+
imageUrl: 'https://cdn.skymavis.com/ronin/2020/erc20/0x97a9107c1793bc407d6f527b77e7fff4d812bece/logo-transparent.png',
|
|
98
|
+
},
|
|
99
|
+
[exports.Token.SLP]: {
|
|
100
|
+
chainId: 2020,
|
|
101
|
+
address: '0xa8754b9fa15fc18bb59458815510e40a12cd2014',
|
|
102
|
+
decimals: 0,
|
|
103
|
+
symbol: 'SLP',
|
|
104
|
+
name: 'Smooth Love Potion',
|
|
105
|
+
unit: 'wei',
|
|
106
|
+
imageUrl: 'https://cdn.skymavis.com/ronin/2020/erc20/0xa8754b9fa15fc18bb59458815510e40a12cd2014/logo-transparent.png',
|
|
107
|
+
},
|
|
108
|
+
[exports.Token.USDC]: {
|
|
109
|
+
chainId: 2020,
|
|
110
|
+
address: '0x0b7007c13325c48911f73a2dad5fa5dcbf808adc',
|
|
111
|
+
decimals: 6,
|
|
112
|
+
symbol: 'USDC',
|
|
113
|
+
name: 'USD//C',
|
|
114
|
+
unit: 'mwei',
|
|
115
|
+
imageUrl: 'https://cdn.skymavis.com/ronin/2020/erc20/0x0b7007c13325c48911f73a2dad5fa5dcbf808adc/logo-transparent.png',
|
|
116
|
+
},
|
|
117
|
+
[exports.Token.ION]: {
|
|
118
|
+
chainId: 2020,
|
|
119
|
+
address: '0x44f4ee8df6333f655e5486a400b2f93b220f6ee1',
|
|
120
|
+
decimals: 6,
|
|
121
|
+
symbol: 'ION',
|
|
122
|
+
name: 'ION',
|
|
123
|
+
unit: 'mwei',
|
|
124
|
+
imageUrl: 'https://cdn.skymavis.com/ronin/2020/erc20/0x44f4ee8df6333f655e5486a400b2f93b220f6ee1/logo-transparent.png',
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
};
|
|
128
|
+
const wRonToken = {
|
|
129
|
+
[index.ChainId.testnet]: {
|
|
130
|
+
chainId: 202601,
|
|
131
|
+
address: '0xa959726154953bae111746e265e6d754f48570e6',
|
|
132
|
+
decimals: 18,
|
|
133
|
+
symbol: 'WRON',
|
|
134
|
+
name: 'Wrapped Ronin',
|
|
135
|
+
unit: 'ether',
|
|
136
|
+
imageUrl: 'https://cdn.skymavis.com/ronin/2021/erc20/0xa959726154953bae111746e265e6d754f48570e6/logo-transparent.png',
|
|
137
|
+
},
|
|
138
|
+
[index.ChainId.mainnet]: {
|
|
139
|
+
chainId: 2020,
|
|
140
|
+
address: '0xe514d9deb7966c8be0ca922de8a064264ea6bcd4',
|
|
141
|
+
decimals: 18,
|
|
142
|
+
symbol: 'WRON',
|
|
143
|
+
name: 'Wrapped Ronin',
|
|
144
|
+
unit: 'ether',
|
|
145
|
+
imageUrl: 'https://cdn.skymavis.com/ronin/2020/erc20/0xe514d9deb7966c8be0ca922de8a064264ea6bcd4/logo-transparent.png',
|
|
146
|
+
},
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
exports.paymentTokens = paymentTokens;
|
|
150
|
+
exports.wRonToken = wRonToken;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var data = require('./data.js');
|
|
4
|
+
|
|
5
|
+
const getPaymentTokens = (chainId) => {
|
|
6
|
+
return data.paymentTokens[chainId];
|
|
7
|
+
};
|
|
8
|
+
const getPaymentToken = (chainId, tokenAddress) => {
|
|
9
|
+
const tokens = getPaymentTokens(chainId);
|
|
10
|
+
return Object.entries(tokens).find(([, value]) => value.address.toLowerCase() === tokenAddress.toLowerCase())?.[1];
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
exports.getPaymentToken = getPaymentToken;
|
|
14
|
+
exports.getPaymentTokens = getPaymentTokens;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var checkIsTokenApproved = require('./checkIsTokenApproved.js');
|
|
4
|
+
var configs = require('./configs.js');
|
|
5
|
+
var getPaymentTokens = require('./getPaymentTokens.js');
|
|
6
|
+
|
|
7
|
+
const getTokensNeedToApprove = async (chainId, account, inputTokenAddress, outputTokenAddress, amount, spenderAddress) => {
|
|
8
|
+
if (inputTokenAddress.toLowerCase() === outputTokenAddress.toLowerCase()) {
|
|
9
|
+
const isAllowed = await checkIsTokenApproved.checkIsErc20Approved(chainId, account, inputTokenAddress, amount, spenderAddress);
|
|
10
|
+
const paymentToken = getPaymentTokens.getPaymentToken(chainId, inputTokenAddress);
|
|
11
|
+
return isAllowed ? [] : [paymentToken];
|
|
12
|
+
}
|
|
13
|
+
const swapConfig = configs.getSwapConfig(chainId, outputTokenAddress);
|
|
14
|
+
const tokens = swapConfig[inputTokenAddress]?.tokens || [];
|
|
15
|
+
const tokensNeedToApprove = await tokens.reduce(async (results, currentToken) => {
|
|
16
|
+
const isAllowed = await checkIsTokenApproved.checkIsErc20Approved(chainId, account, currentToken.address, amount, spenderAddress);
|
|
17
|
+
const tokensData = await results;
|
|
18
|
+
if (!isAllowed) {
|
|
19
|
+
return [...tokensData, currentToken];
|
|
20
|
+
}
|
|
21
|
+
return results;
|
|
22
|
+
}, Promise.resolve([]));
|
|
23
|
+
return tokensNeedToApprove;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
exports.getTokensNeedToApprove = getTokensNeedToApprove;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var lodash = require('lodash');
|
|
4
|
+
var getOrdersTotalPrice = require('../order/getOrdersTotalPrice.js');
|
|
5
|
+
var getPaymentTokens = require('./getPaymentTokens.js');
|
|
6
|
+
var getTokensNeedToApprove = require('./getTokensNeedToApprove.js');
|
|
7
|
+
|
|
8
|
+
const getTokensNeedToApproveByOrders = async (chainId, wallet, bulkBuyOrderData, inputPaymentToken, spenderAddress) => {
|
|
9
|
+
const { account } = wallet;
|
|
10
|
+
let allTokensNeedToApprove = [];
|
|
11
|
+
const checkedTokens = {};
|
|
12
|
+
const paymentTokenData = getPaymentTokens.getPaymentToken(chainId, inputPaymentToken);
|
|
13
|
+
const { totalPrice } = await getOrdersTotalPrice.getOrdersTotalPrice({
|
|
14
|
+
data: bulkBuyOrderData,
|
|
15
|
+
token: paymentTokenData,
|
|
16
|
+
chainId,
|
|
17
|
+
wallet,
|
|
18
|
+
});
|
|
19
|
+
for (const data of bulkBuyOrderData) {
|
|
20
|
+
const { order } = data;
|
|
21
|
+
const { paymentToken } = order;
|
|
22
|
+
if (!checkedTokens[paymentToken]) {
|
|
23
|
+
checkedTokens[paymentToken] = true;
|
|
24
|
+
const tokensNeedToApprove = await getTokensNeedToApprove.getTokensNeedToApprove(chainId, account, inputPaymentToken, paymentToken, totalPrice, spenderAddress);
|
|
25
|
+
allTokensNeedToApprove = [...allTokensNeedToApprove, ...tokensNeedToApprove];
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return lodash.unionBy(allTokensNeedToApprove, 'address');
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
exports.getTokensNeedToApproveByOrders = getTokensNeedToApproveByOrders;
|