polkamarkets-js 3.3.0 → 3.4.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.
@@ -0,0 +1 @@
1
+ {"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"manager","type":"address"},{"indexed":false,"internalType":"bool","name":"allowed","type":"bool"}],"name":"AllowedManagerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"enum PredictionMarketV3_3.MarketAction","name":"action","type":"uint8"},{"indexed":true,"internalType":"uint256","name":"marketId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"outcomeId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"MarketActionTx","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"marketId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"closesAtTimestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"MarketCloseDateEdited","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"marketId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"outcomes","type":"uint256"},{"indexed":false,"internalType":"string","name":"question","type":"string"},{"indexed":false,"internalType":"string","name":"image","type":"string"},{"indexed":false,"internalType":"contract IERC20","name":"token","type":"address"}],"name":"MarketCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"marketId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"MarketLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"marketId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"outcomeId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"MarketOutcomePrice","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"marketId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"uint256[]","name":"outcomeShares","type":"uint256[]"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"MarketOutcomeShares","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"marketId","type":"uint256"},{"indexed":false,"internalType":"bool","name":"paused","type":"bool"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"MarketPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"marketId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"outcomeId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"bool","name":"admin","type":"bool"}],"name":"MarketResolved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"marketId","type":"uint256"},{"indexed":false,"internalType":"string","name":"code","type":"string"},{"indexed":false,"internalType":"enum PredictionMarketV3_3.MarketAction","name":"action","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"outcomeId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Referral","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"MAX_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_OUTCOMES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINIMUM_REALITIO_TIMEOUT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"contract IWETH","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"addLiquidityWithETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"adminPauseMarket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"}],"name":"adminResolveMarketOutcome","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"closesAt","type":"uint256"}],"name":"adminSetMarketCloseDate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"adminUnpauseMarket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"allowedManagers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"},{"internalType":"uint256","name":"minOutcomeSharesToBuy","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"buy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"},{"internalType":"uint256","name":"minOutcomeSharesToBuy","type":"uint256"}],"name":"buyWithETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"}],"name":"calcBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"}],"name":"calcSellAmount","outputs":[{"internalType":"uint256","name":"outcomeTokenSellAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"claimFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"claimFeesToETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"claimLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"claimLiquidityToETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"}],"name":"claimVoidedOutcomeShares","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"}],"name":"claimVoidedOutcomeSharesToETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"claimWinnings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"claimWinningsToETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint32","name":"closesAt","type":"uint32"},{"internalType":"uint256","name":"outcomes","type":"uint256"},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256[]","name":"distribution","type":"uint256[]"},{"internalType":"string","name":"question","type":"string"},{"internalType":"string","name":"image","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"components":[{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"treasuryFee","type":"uint256"},{"internalType":"uint256","name":"distributorFee","type":"uint256"}],"internalType":"struct PredictionMarketV3_3.Fees","name":"buyFees","type":"tuple"},{"components":[{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"treasuryFee","type":"uint256"},{"internalType":"uint256","name":"distributorFee","type":"uint256"}],"internalType":"struct PredictionMarketV3_3.Fees","name":"sellFees","type":"tuple"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"address","name":"distributor","type":"address"},{"internalType":"uint32","name":"realitioTimeout","type":"uint32"},{"internalType":"contract IPredictionMarketV3Manager","name":"manager","type":"address"}],"internalType":"struct PredictionMarketV3_3.CreateMarketDescription","name":"desc","type":"tuple"}],"name":"createMarket","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint32","name":"closesAt","type":"uint32"},{"internalType":"uint256","name":"outcomes","type":"uint256"},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256[]","name":"distribution","type":"uint256[]"},{"internalType":"string","name":"question","type":"string"},{"internalType":"string","name":"image","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"components":[{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"treasuryFee","type":"uint256"},{"internalType":"uint256","name":"distributorFee","type":"uint256"}],"internalType":"struct PredictionMarketV3_3.Fees","name":"buyFees","type":"tuple"},{"components":[{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"treasuryFee","type":"uint256"},{"internalType":"uint256","name":"distributorFee","type":"uint256"}],"internalType":"struct PredictionMarketV3_3.Fees","name":"sellFees","type":"tuple"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"address","name":"distributor","type":"address"},{"internalType":"uint32","name":"realitioTimeout","type":"uint32"},{"internalType":"contract IPredictionMarketV3Manager","name":"manager","type":"address"}],"internalType":"struct PredictionMarketV3_3.CreateMarketDescription","name":"desc","type":"tuple"}],"name":"createMarketWithETH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketAltData","outputs":[{"internalType":"uint256","name":"buyFee","type":"uint256"},{"internalType":"bytes32","name":"questionId","type":"bytes32"},{"internalType":"uint256","name":"questionIdUint","type":"uint256"},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"buyTreasuryFee","type":"uint256"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"contract IRealityETH_ERC20","name":"realitio","type":"address"},{"internalType":"uint256","name":"realitioTimeout","type":"uint256"},{"internalType":"contract IPredictionMarketV3Manager","name":"manager","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketCreator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketData","outputs":[{"internalType":"enum PredictionMarketV3_3.MarketState","name":"state","type":"uint8"},{"internalType":"uint256","name":"closesAt","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"sharesAvailable","type":"uint256"},{"internalType":"int256","name":"resolvedOutcomeId","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketFees","outputs":[{"components":[{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"treasuryFee","type":"uint256"},{"internalType":"uint256","name":"distributorFee","type":"uint256"}],"internalType":"struct PredictionMarketV3_3.Fees","name":"buyFees","type":"tuple"},{"components":[{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"treasuryFee","type":"uint256"},{"internalType":"uint256","name":"distributorFee","type":"uint256"}],"internalType":"struct PredictionMarketV3_3.Fees","name":"sellFees","type":"tuple"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"address","name":"distributor","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketLiquidityPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"}],"name":"getMarketOutcomeData","outputs":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"availableShares","type":"uint256"},{"internalType":"uint256","name":"totalShares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketOutcomeIds","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"}],"name":"getMarketOutcomePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketOutcomesShares","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketPrices","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256[]","name":"outcomes","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketQuestion","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketResolvedOutcome","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketShares","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256[]","name":"outcomes","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMarkets","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"address","name":"user","type":"address"}],"name":"getUserClaimStatus","outputs":[{"internalType":"bool","name":"winningsToClaim","type":"bool"},{"internalType":"bool","name":"winningsClaimed","type":"bool"},{"internalType":"bool","name":"liquidityToClaim","type":"bool"},{"internalType":"bool","name":"liquidityClaimed","type":"bool"},{"internalType":"uint256","name":"claimableFees","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"address","name":"user","type":"address"}],"name":"getUserClaimableFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"address","name":"user","type":"address"}],"name":"getUserLiquidityPoolShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"address","name":"user","type":"address"}],"name":"getUserMarketShares","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256[]","name":"outcomes","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IWETH","name":"_WETH","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"isMarketVoided","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint32","name":"closesAt","type":"uint32"},{"internalType":"uint256","name":"outcomes","type":"uint256"},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256[]","name":"distribution","type":"uint256[]"},{"internalType":"string","name":"question","type":"string"},{"internalType":"string","name":"image","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"components":[{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"treasuryFee","type":"uint256"},{"internalType":"uint256","name":"distributorFee","type":"uint256"}],"internalType":"struct PredictionMarketV3_3.Fees","name":"buyFees","type":"tuple"},{"components":[{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"treasuryFee","type":"uint256"},{"internalType":"uint256","name":"distributorFee","type":"uint256"}],"internalType":"struct PredictionMarketV3_3.Fees","name":"sellFees","type":"tuple"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"address","name":"distributor","type":"address"},{"internalType":"uint32","name":"realitioTimeout","type":"uint32"},{"internalType":"contract IPredictionMarketV3Manager","name":"manager","type":"address"}],"internalType":"struct PredictionMarketV3_3.CreateMarketDescription","name":"desc","type":"tuple"}],"name":"mintAndCreateMarket","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"},{"internalType":"uint256","name":"minOutcomeSharesToBuy","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"code","type":"string"}],"name":"referralBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"},{"internalType":"uint256","name":"minOutcomeSharesToBuy","type":"uint256"},{"internalType":"string","name":"code","type":"string"}],"name":"referralBuyWithETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"maxOutcomeSharesToSell","type":"uint256"},{"internalType":"string","name":"code","type":"string"}],"name":"referralSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"maxOutcomeSharesToSell","type":"uint256"},{"internalType":"string","name":"code","type":"string"}],"name":"referralSellToETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"removeLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"removeLiquidityToETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"resolveMarketOutcome","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"maxOutcomeSharesToSell","type":"uint256"}],"name":"sell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"maxOutcomeSharesToSell","type":"uint256"}],"name":"sellToETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"manager","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"setAllowedManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"components":[{"internalType":"uint256","name":"closesAtTimestamp","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"sharesAvailable","type":"uint256"},{"internalType":"enum PredictionMarketV3_3.MarketState","name":"state","type":"uint8"},{"components":[{"internalType":"bool","name":"resolved","type":"bool"},{"internalType":"contract IRealityETH_ERC20","name":"realitio","type":"address"},{"internalType":"uint256","name":"outcomeId","type":"uint256"},{"internalType":"bytes32","name":"questionId","type":"bytes32"},{"internalType":"uint256","name":"realitioTimeout","type":"uint256"}],"internalType":"struct PredictionMarketV3_3.MarketResolution","name":"resolution","type":"tuple"},{"internalType":"uint256","name":"feesPoolWeight","type":"uint256"},{"internalType":"address","name":"feesTreasury","type":"address"},{"internalType":"address","name":"feesDistributor","type":"address"},{"components":[{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"treasuryFee","type":"uint256"},{"internalType":"uint256","name":"distributorFee","type":"uint256"}],"internalType":"struct PredictionMarketV3_3.Fees","name":"buyFees","type":"tuple"},{"components":[{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"treasuryFee","type":"uint256"},{"internalType":"uint256","name":"distributorFee","type":"uint256"}],"internalType":"struct PredictionMarketV3_3.Fees","name":"sellFees","type":"tuple"},{"internalType":"uint256","name":"outcomeCount","type":"uint256"},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"contract IPredictionMarketV3Manager","name":"manager","type":"address"},{"internalType":"address","name":"creator","type":"address"},{"internalType":"bool","name":"paused","type":"bool"}],"internalType":"struct PredictionMarketV3_3.MarketUpdateDescription","name":"update","type":"tuple"}],"name":"updateMarket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"components":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct PredictionMarketV3_3.MarketFeesHolderUpdateDescription[]","name":"updates","type":"tuple[]"}],"name":"updateMarketFeesHolders","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"components":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"claim","type":"bool"}],"internalType":"struct PredictionMarketV3_3.MarketLiquidityHolderUpdateDescription[]","name":"updates","type":"tuple[]"}],"name":"updateMarketLiquidityHolders","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"},{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"sharesTotal","type":"uint256"},{"internalType":"uint256","name":"sharesAvailable","type":"uint256"}],"internalType":"struct PredictionMarketV3_3.MarketOutcomeUpdateDescription","name":"update","type":"tuple"}],"name":"updateMarketOutcome","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"},{"components":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"claim","type":"bool"},{"internalType":"bool","name":"voidedClaim","type":"bool"}],"internalType":"struct PredictionMarketV3_3.MarketOutcomeHolderUpdateDescription[]","name":"updates","type":"tuple[]"}],"name":"updateMarketOutcomeHolders","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"components":[{"internalType":"uint256","name":"closesAtTimestamp","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"sharesAvailable","type":"uint256"},{"internalType":"enum PredictionMarketV3_3.MarketState","name":"state","type":"uint8"},{"components":[{"internalType":"bool","name":"resolved","type":"bool"},{"internalType":"contract IRealityETH_ERC20","name":"realitio","type":"address"},{"internalType":"uint256","name":"outcomeId","type":"uint256"},{"internalType":"bytes32","name":"questionId","type":"bytes32"},{"internalType":"uint256","name":"realitioTimeout","type":"uint256"}],"internalType":"struct PredictionMarketV3_3.MarketResolution","name":"resolution","type":"tuple"},{"internalType":"uint256","name":"feesPoolWeight","type":"uint256"},{"internalType":"address","name":"feesTreasury","type":"address"},{"internalType":"address","name":"feesDistributor","type":"address"},{"components":[{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"treasuryFee","type":"uint256"},{"internalType":"uint256","name":"distributorFee","type":"uint256"}],"internalType":"struct PredictionMarketV3_3.Fees","name":"buyFees","type":"tuple"},{"components":[{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"treasuryFee","type":"uint256"},{"internalType":"uint256","name":"distributorFee","type":"uint256"}],"internalType":"struct PredictionMarketV3_3.Fees","name":"sellFees","type":"tuple"},{"internalType":"uint256","name":"outcomeCount","type":"uint256"},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"contract IPredictionMarketV3Manager","name":"manager","type":"address"},{"internalType":"address","name":"creator","type":"address"},{"internalType":"bool","name":"paused","type":"bool"}],"internalType":"struct PredictionMarketV3_3.MarketUpdateDescription","name":"update","type":"tuple"}],"name":"updateMarketResolution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "polkamarkets-js",
3
- "version": "3.3.0",
3
+ "version": "3.4.0",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "directories": {
@@ -18,6 +18,7 @@ const WETH9Contract = require("./models/index").WETH9Contract;
18
18
  const ArbitrationContract = require("./models/index").ArbitrationContract;
19
19
  const ArbitrationProxyContract = require("./models/index").ArbitrationProxyContract;
20
20
 
21
+ const DualProvider = require("./utils/DualProvider");
21
22
  const Account = require('./utils/Account');
22
23
 
23
24
 
@@ -38,7 +39,8 @@ class Application {
38
39
  isSocialLogin = false,
39
40
  socialLoginParams,
40
41
  startBlock,
41
- defaultDecimals
42
+ defaultDecimals,
43
+ useDualProvider = false
42
44
  }) {
43
45
  this.web3Provider = web3Provider;
44
46
  // evm logs http source (optional)
@@ -48,6 +50,8 @@ class Application {
48
50
  this.isSocialLogin = isSocialLogin;
49
51
  this.startBlock = startBlock;
50
52
  this.defaultDecimals = defaultDecimals;
53
+ // use DualProvider to separate read (HttpProvider) and write (window.ethereum) operations
54
+ this.useDualProvider = useDualProvider;
51
55
 
52
56
  if (this.isSocialLogin) {
53
57
  this.socialLoginParams = socialLoginParams;
@@ -70,7 +74,14 @@ class Application {
70
74
  * @description Start the Application
71
75
  */
72
76
  start() {
73
- this.web3 = new Web3(new Web3.providers.HttpProvider(this.web3Provider));
77
+ if (this.useDualProvider) {
78
+ // Store read provider for later use in DualProvider
79
+ this.readProvider = new Web3.providers.HttpProvider(this.web3Provider);
80
+ this.web3 = new Web3(this.readProvider);
81
+ } else {
82
+ // Backwards compatible: standard HttpProvider
83
+ this.web3 = new Web3(new Web3.providers.HttpProvider(this.web3Provider));
84
+ }
74
85
  this.web3.eth.handleRevert = true;
75
86
  if (typeof window !== "undefined") {
76
87
  window.web3 = this.web3;
@@ -97,8 +108,18 @@ class Application {
97
108
  try {
98
109
  if (typeof window === "undefined") { return false; }
99
110
  if (window.ethereum) {
100
- window.web3 = new Web3(window.ethereum);
101
- this.web3 = window.web3;
111
+ if (this.useDualProvider) {
112
+ // New approach: DualProvider for reads (HttpProvider) and writes (window.ethereum)
113
+ const dualProvider = new DualProvider(this.readProvider, window.ethereum);
114
+ this.web3 = new Web3(dualProvider);
115
+ this.web3.eth.handleRevert = true;
116
+ window.web3 = this.web3;
117
+ } else {
118
+ // Backwards compatible: replace web3 with window.ethereum
119
+ window.web3 = new Web3(window.ethereum);
120
+ this.web3 = window.web3;
121
+ }
122
+
102
123
  await window.ethereum.enable();
103
124
  return true;
104
125
  }
@@ -196,11 +217,12 @@ class Application {
196
217
  * @param {Address} ContractAddress (Opt) If it is deployed
197
218
  * @description Create a PredictionMarketV3 Contract
198
219
  */
199
- getPredictionMarketV3PlusContract({ contractAddress = null, querierContractAddress = null } = {}) {
220
+ getPredictionMarketV3PlusContract({ contractAddress = null, querierContractAddress = null, contractVersion = null } = {}) {
200
221
  try {
201
222
  return new PredictionMarketV3PlusContract({
202
223
  ...this.contractDefaultParams(contractAddress),
203
224
  querierContractAddress,
225
+ contractVersion,
204
226
  });
205
227
  } catch (err) {
206
228
  throw err;
@@ -7,6 +7,8 @@ let index = {
7
7
  prediction: require("../../abis/PredictionMarket.json"),
8
8
  predictionV2: require("../../abis/PredictionMarketV2.json"),
9
9
  predictionV3: require("../../abis/PredictionMarketV3.json"),
10
+ predictionV3_2: require("../../abis/PredictionMarketV3_2.json"),
11
+ predictionV3_3: require("../../abis/PredictionMarketV3_3.json"),
10
12
  predictionV3Plus: require("../../abis/PredictionMarketV3_4.json"),
11
13
  predictionV3Manager: require("../../abis/PredictionMarketV3Manager.json"),
12
14
  predictionV3Controller: require("../../abis/PredictionMarketV3Controller.json"),
@@ -1,4 +1,6 @@
1
- const predictionV3 = require("../interfaces").predictionV3Plus;
1
+ const predictionV3_2 = require("../interfaces").predictionV3_2;
2
+ const predictionV3_3 = require("../interfaces").predictionV3_3;
3
+ const predictionV3Plus = require("../interfaces").predictionV3Plus;
2
4
  const PredictionMarketV3Contract = require("./PredictionMarketV3Contract");
3
5
  const PredictionMarketV3QuerierContract = require("./PredictionMarketV3QuerierContract");
4
6
 
@@ -8,7 +10,11 @@ const realitioLib = require('@reality.eth/reality-eth-lib/formatters/question');
8
10
 
9
11
  class PredictionMarketV3PlusContract extends PredictionMarketV3Contract {
10
12
  constructor(params) {
11
- super({ abi: predictionV3, ...params });
13
+ let abi = predictionV3Plus;
14
+ if (params.contractVersion && params.contractVersion < 3.4) {
15
+ abi = params.contractVersion === 3.3 ? predictionV3_3 : predictionV3_2;
16
+ }
17
+ super({ abi, ...params });
12
18
  this.contractName = 'predictionMarketV3';
13
19
  if (params.defaultDecimals) {
14
20
  this.defaultDecimals = params.defaultDecimals;
@@ -19,6 +25,9 @@ class PredictionMarketV3PlusContract extends PredictionMarketV3Contract {
19
25
  contractAddress: params.querierContractAddress
20
26
  });
21
27
  }
28
+ if (params.contractVersion) {
29
+ this.contractVersion = params.contractVersion;
30
+ }
22
31
  this.marketDecimals = {};
23
32
  }
24
33
 
@@ -205,6 +214,34 @@ class PredictionMarketV3PlusContract extends PredictionMarketV3Contract {
205
214
  this.getContract().methods.referralSell(marketId, outcomeId, valueToWei, maxOutcomeSharesToSell, code),
206
215
  );
207
216
  };
217
+
218
+ async addLiquidity({marketId, value, wrapped = false, minSharesIn = null}) {
219
+ if (!this.contractVersion || this.contractVersion < 3.4) {
220
+ return super.addLiquidity({marketId, value, wrapped});
221
+ }
222
+
223
+ const decimals = await this.getMarketDecimals({marketId});
224
+ const valueToWei = Numbers.toSmartContractDecimals(value, decimals);
225
+ const minSharesInToWei = minSharesIn === null ? 0 : Numbers.toSmartContractDecimals(minSharesIn, decimals);
226
+
227
+ return await this.__sendTx(
228
+ this.getContract().methods.addLiquidity(marketId, valueToWei, minSharesInToWei)
229
+ );
230
+ };
231
+
232
+ async removeLiquidity({marketId, shares, wrapped = false, minValueOut = null}) {
233
+ if (!this.contractVersion || this.contractVersion < 3.4) {
234
+ return super.removeLiquidity({marketId, shares, wrapped});
235
+ }
236
+
237
+ const decimals = await this.getMarketDecimals({marketId});
238
+ const sharesToWei = Numbers.toSmartContractDecimals(shares, decimals);
239
+ const minValueOutToWei = minValueOut === null ? 0 : Numbers.toSmartContractDecimals(minValueOut, decimals);
240
+
241
+ return await this.__sendTx(
242
+ this.getContract().methods.removeLiquidity(marketId, sharesToWei, minValueOutToWei)
243
+ );
244
+ }
208
245
  }
209
246
 
210
247
  module.exports = PredictionMarketV3PlusContract;
@@ -0,0 +1,79 @@
1
+ /**
2
+ * DualProvider - Routes requests to appropriate provider based on method type
3
+ * Read operations use HttpProvider, write operations use window.ethereum
4
+ */
5
+ class DualProvider {
6
+ constructor(readProvider, writeProvider) {
7
+ this.readProvider = readProvider;
8
+ this.writeProvider = writeProvider;
9
+
10
+ // Methods that require user interaction/signing (write operations)
11
+ this.writeMethods = new Set([
12
+ "eth_sendTransaction",
13
+ "eth_sendRawTransaction",
14
+ "eth_sign",
15
+ "eth_signTransaction",
16
+ "personal_sign",
17
+ "eth_signTypedData",
18
+ "eth_signTypedData_v3",
19
+ "eth_signTypedData_v4",
20
+ "wallet_switchEthereumChain",
21
+ "wallet_addEthereumChain",
22
+ "eth_accounts",
23
+ "eth_requestAccounts",
24
+ ]);
25
+ }
26
+
27
+ send(payload, callback) {
28
+ const provider = this.writeMethods.has(payload.method)
29
+ ? this.writeProvider
30
+ : this.readProvider;
31
+
32
+ return provider.send(payload, callback);
33
+ }
34
+
35
+ sendAsync(payload, callback) {
36
+ const provider = this.writeMethods.has(payload.method)
37
+ ? this.writeProvider
38
+ : this.readProvider;
39
+
40
+ return provider.sendAsync(payload, callback);
41
+ }
42
+
43
+ // Support for modern request/send pattern
44
+ request(args) {
45
+ const provider = this.writeMethods.has(args.method)
46
+ ? this.writeProvider
47
+ : this.readProvider;
48
+
49
+ if (provider.request) {
50
+ return provider.request(args);
51
+ }
52
+
53
+ // Fallback for providers that don't support request()
54
+ return new Promise((resolve, reject) => {
55
+ const callback = (error, response) => {
56
+ if (error) {
57
+ reject(error);
58
+ } else {
59
+ resolve(response.result);
60
+ }
61
+ };
62
+
63
+ if (provider.sendAsync) {
64
+ provider.sendAsync(
65
+ { jsonrpc: "2.0", id: Date.now(), ...args },
66
+ callback
67
+ );
68
+ } else if (provider.send) {
69
+ provider.send({ jsonrpc: "2.0", id: Date.now(), ...args }, callback);
70
+ } else {
71
+ reject(
72
+ new Error("Provider does not support request, send, or sendAsync")
73
+ );
74
+ }
75
+ });
76
+ }
77
+ }
78
+
79
+ module.exports = DualProvider;