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
package/src/Application.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
101
|
-
|
|
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;
|
package/src/interfaces/index.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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;
|