Created
March 17, 2025 16:24
-
-
Save ether-wan/f615a0ab41213c716bc759cb6876d179 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| [{"inputs":[{"internalType":"address","name":"_implementation","type":"address"},{"internalType":"address","name":"_feeWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"FailedDeployment"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"provider","type":"address","indexed":true},{"internalType":"uint256","name":"tokenAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"taraAmount","type":"uint256","indexed":false}],"type":"event","name":"LiquidityAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address","indexed":true},{"internalType":"address","name":"router","type":"address","indexed":true},{"internalType":"address","name":"pair","type":"address","indexed":true},{"internalType":"uint256","name":"liquidityAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"tokenAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"time","type":"uint256","indexed":false},{"internalType":"uint256","name":"totalVolume","type":"uint256","indexed":false}],"type":"event","name":"listed","anonymous":false},{"inputs":[{"internalType":"address","name":"caller","type":"address","indexed":true},{"internalType":"address","name":"funContract","type":"address","indexed":true},{"internalType":"uint256","name":"inAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"outAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"reserveTARA","type":"uint256","indexed":false},{"internalType":"uint256","name":"reserveTokens","type":"uint256","indexed":false},{"internalType":"uint256","name":"timestamp","type":"uint256","indexed":false},{"internalType":"string","name":"tradeType","type":"string","indexed":false}],"type":"event","name":"tradeCall","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASIS_POINTS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"LPManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_deployer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addDeployer"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"allowedDeployers","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_funToken","type":"address"},{"internalType":"uint256","name":"_minTokens","type":"uint256"},{"internalType":"address","name":"_affiliate","type":"address"}],"stateMutability":"payable","type":"function","name":"buyTokens"},{"inputs":[{"internalType":"address","name":"_funToken","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"checkMaxBuyPerWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"emergencyWithdrawTARA"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"emergencyWithdrawToken"},{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feeWallet","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_funToken","type":"address"},{"internalType":"uint256","name":"_amountIn","type":"uint256"}],"stateMutability":"view","type":"function","name":"getAmountOutTARA","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_funToken","type":"address"},{"internalType":"uint256","name":"_amountIn","type":"uint256"}],"stateMutability":"view","type":"function","name":"getAmountOutTokens","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_funToken","type":"address"}],"stateMutability":"view","type":"function","name":"getBaseToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_funToken","type":"address"}],"stateMutability":"view","type":"function","name":"getCurrentCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_funToken","type":"address"}],"stateMutability":"view","type":"function","name":"getFuntokenPool","outputs":[{"internalType":"struct FunPool.FunTokenPool","name":"","type":"tuple","components":[{"internalType":"address","name":"creator","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"baseToken","type":"address"},{"internalType":"address","name":"router","type":"address"},{"internalType":"address","name":"lockerAddress","type":"address"},{"internalType":"address","name":"storedLPAddress","type":"address"},{"internalType":"address","name":"deployer","type":"address"},{"internalType":"struct FunPool.FunTokenPoolData","name":"pool","type":"tuple","components":[{"internalType":"uint256","name":"reserveTokens","type":"uint256"},{"internalType":"uint256","name":"reserveTARA","type":"uint256"},{"internalType":"uint256","name":"volume","type":"uint256"},{"internalType":"uint256","name":"listThreshold","type":"uint256"},{"internalType":"uint256","name":"initialReserveTARA","type":"uint256"},{"internalType":"uint256","name":"maxBuyPerWallet","type":"uint256"},{"internalType":"bool","name":"tradeActive","type":"bool"},{"internalType":"bool","name":"royalemitted","type":"bool"}]}]}]},{"inputs":[{"internalType":"address[]","name":"_funTokens","type":"address[]"}],"stateMutability":"view","type":"function","name":"getFuntokenPools","outputs":[{"internalType":"struct FunPool.FunTokenPool[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"creator","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"baseToken","type":"address"},{"internalType":"address","name":"router","type":"address"},{"internalType":"address","name":"lockerAddress","type":"address"},{"internalType":"address","name":"storedLPAddress","type":"address"},{"internalType":"address","name":"deployer","type":"address"},{"internalType":"struct FunPool.FunTokenPoolData","name":"pool","type":"tuple","components":[{"internalType":"uint256","name":"reserveTokens","type":"uint256"},{"internalType":"uint256","name":"reserveTARA","type":"uint256"},{"internalType":"uint256","name":"volume","type":"uint256"},{"internalType":"uint256","name":"listThreshold","type":"uint256"},{"internalType":"uint256","name":"initialReserveTARA","type":"uint256"},{"internalType":"uint256","name":"maxBuyPerWallet","type":"uint256"},{"internalType":"bool","name":"tradeActive","type":"bool"},{"internalType":"bool","name":"royalemitted","type":"bool"}]}]}]},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"stateMutability":"view","type":"function","name":"getUserFuntokens","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string[2]","name":"_name_symbol","type":"string[2]"},{"internalType":"uint256","name":"_totalSupply","type":"uint256"},{"internalType":"address","name":"_creator","type":"address"},{"internalType":"uint256[2]","name":"listThreshold_initReserveTARA","type":"uint256[2]"},{"internalType":"uint256","name":"_maxBuyPerWallet","type":"uint256"}],"stateMutability":"payable","type":"function","name":"initFun","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oracle","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"positionManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_deployer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeDeployer"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_funToken","type":"address"},{"internalType":"uint256","name":"_tokenAmount","type":"uint256"},{"internalType":"uint256","name":"_minEth","type":"uint256"},{"internalType":"address","name":"_affiliate","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"sellTokens"},{"inputs":[{"internalType":"address","name":"_newFactory","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setFactory"},{"inputs":[{"internalType":"address","name":"_newfeeWallet","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setFeeWallet"},{"inputs":[{"internalType":"address","name":"_implementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setImplementation"},{"inputs":[{"internalType":"address","name":"_newLPManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setLPManager"},{"inputs":[{"internalType":"address","name":"_newPositionManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setPositionManager"},{"inputs":[{"internalType":"address","name":"_newRouter","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setRouter"},{"inputs":[{"internalType":"address","name":"_newStableAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setStableAddress"},{"inputs":[{"internalType":"uint24","name":"_newuniswapPoolFee","type":"uint24"}],"stateMutability":"nonpayable","type":"function","name":"setUniswapPoolFee"},{"inputs":[{"internalType":"address","name":"_newwtara","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setWTARA"},{"inputs":[],"stateMutability":"view","type":"function","name":"stable","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"tokenPools","outputs":[{"internalType":"address","name":"creator","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"baseToken","type":"address"},{"internalType":"address","name":"router","type":"address"},{"internalType":"address","name":"lockerAddress","type":"address"},{"internalType":"address","name":"storedLPAddress","type":"address"},{"internalType":"address","name":"deployer","type":"address"},{"internalType":"struct FunPool.FunTokenPoolData","name":"pool","type":"tuple","components":[{"internalType":"uint256","name":"reserveTokens","type":"uint256"},{"internalType":"uint256","name":"reserveTARA","type":"uint256"},{"internalType":"uint256","name":"volume","type":"uint256"},{"internalType":"uint256","name":"listThreshold","type":"uint256"},{"internalType":"uint256","name":"initialReserveTARA","type":"uint256"},{"internalType":"uint256","name":"maxBuyPerWallet","type":"uint256"},{"internalType":"bool","name":"tradeActive","type":"bool"},{"internalType":"bool","name":"royalemitted","type":"bool"}]}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"uniswapPoolFee","outputs":[{"internalType":"uint24","name":"","type":"uint24"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"userFunTokens","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"wtara","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import { createPublicClient, fallback, http } from "viem"; | |
| import { taraxa } from 'viem/chains'; | |
| import poolABI from "./pool-abi.json"; | |
| const blockchainClient: any = createPublicClient({ | |
| chain: taraxa, | |
| transport: fallback([ | |
| http(`https://841.rpc.thirdweb.com/THIRDWEB_SECRET`), | |
| ], { rank : true }), | |
| batch: { | |
| multicall: true | |
| }, | |
| pollingInterval: 500 | |
| }); | |
| export const poolSC = { | |
| address: "0x10e8fCE09e9c1F990F9452853d8dBc0cA9c39B0a", | |
| abi: poolABI | |
| }; | |
| const watchTradeCallEvents = async ( | |
| client: any | |
| ) => { | |
| const startWatching = async () => { | |
| try { | |
| client.watchContractEvent({ | |
| address: poolSC.address, | |
| abi: poolSC.abi, | |
| eventName: 'tradeCall', | |
| onLogs: async (logs: any) => { | |
| try { | |
| console.log("[TradeCall] event", logs); | |
| // here ok Trade event well received | |
| // ... | |
| } catch (error) { | |
| console.error('Error processing tradeCall event:', error); | |
| } | |
| }, | |
| onError: (error:any) => { | |
| console.error('Error in [TradeCall] watcher:', error); | |
| }, | |
| }); | |
| console.log('[TradeCall] watcher started successfully'); | |
| } catch (error) { | |
| console.error('Error starting [TradeCall] watcher:', error); | |
| } | |
| }; | |
| await startWatching(); | |
| }; | |
| watchTradeCallEvents(blockchainClient); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment