@net-protocol/score 0.1.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
+ {"version":3,"sources":["../src/abis/score.json","../src/abis/upvote-app.json","../src/abis/upvote-storage-app.json","../src/abis/pure-alpha-strategy.json","../src/abis/univ234-pools-strategy.json","../src/abis/dynamic-split-strategy.json","../src/constants.ts","../src/utils/strategyUtils.ts","../src/utils/scoreKeyUtils.ts","../src/client/ScoreClient.ts","../src/utils/poolKeyUtils.ts"],"names":["decodeAbiParameters","getStorageKeyBytes","keccak256","encodePacked","getAddress","encodeAbiParameters","getPublicClient","readContract","isValidPoolKey"],"mappings":"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","file":"index.js","sourcesContent":["[\n {\n \"type\": \"function\",\n \"name\": \"appKeyScores\",\n \"inputs\": [\n { \"name\": \"\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"\", \"type\": \"bytes32\", \"internalType\": \"bytes32\" }\n ],\n \"outputs\": [{ \"name\": \"\", \"type\": \"int256\", \"internalType\": \"int256\" }],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"appStrategyKeyScores\",\n \"inputs\": [\n { \"name\": \"\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"\", \"type\": \"bytes32\", \"internalType\": \"bytes32\" }\n ],\n \"outputs\": [{ \"name\": \"\", \"type\": \"int256\", \"internalType\": \"int256\" }],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"appStrategyTotalScores\",\n \"inputs\": [\n { \"name\": \"\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"\", \"type\": \"address\", \"internalType\": \"address\" }\n ],\n \"outputs\": [{ \"name\": \"\", \"type\": \"int256\", \"internalType\": \"int256\" }],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"appStrategyUserKeyScores\",\n \"inputs\": [\n { \"name\": \"\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"\", \"type\": \"bytes32\", \"internalType\": \"bytes32\" }\n ],\n \"outputs\": [{ \"name\": \"\", \"type\": \"int256\", \"internalType\": \"int256\" }],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"appTotalScores\",\n \"inputs\": [{ \"name\": \"\", \"type\": \"address\", \"internalType\": \"address\" }],\n \"outputs\": [{ \"name\": \"\", \"type\": \"int256\", \"internalType\": \"int256\" }],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"appUserKeyScores\",\n \"inputs\": [\n { \"name\": \"\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"\", \"type\": \"bytes32\", \"internalType\": \"bytes32\" }\n ],\n \"outputs\": [{ \"name\": \"\", \"type\": \"int256\", \"internalType\": \"int256\" }],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"appUserTotalScores\",\n \"inputs\": [\n { \"name\": \"\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"\", \"type\": \"address\", \"internalType\": \"address\" }\n ],\n \"outputs\": [{ \"name\": \"\", \"type\": \"int256\", \"internalType\": \"int256\" }],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"execute\",\n \"inputs\": [\n {\n \"name\": \"strategy\",\n \"type\": \"address\",\n \"internalType\": \"contract IScoreStrategy\"\n },\n {\n \"name\": \"params\",\n \"type\": \"tuple\",\n \"internalType\": \"struct Score.ScoreParams\",\n \"components\": [\n {\n \"name\": \"scoreKey\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"scoreDelta\",\n \"type\": \"int256\",\n \"internalType\": \"int256\"\n },\n {\n \"name\": \"originalSender\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"scoreStoredContext\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n },\n {\n \"name\": \"scoreUnstoredContext\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ]\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"payable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getAppKeyScores\",\n \"inputs\": [\n { \"name\": \"app\", \"type\": \"address\", \"internalType\": \"address\" },\n {\n \"name\": \"scoreKeys\",\n \"type\": \"bytes32[]\",\n \"internalType\": \"bytes32[]\"\n }\n ],\n \"outputs\": [\n { \"name\": \"counts\", \"type\": \"int256[]\", \"internalType\": \"int256[]\" }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getAppStrategyKeyScores\",\n \"inputs\": [\n { \"name\": \"app\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"strategy\", \"type\": \"address\", \"internalType\": \"address\" },\n {\n \"name\": \"scoreKeys\",\n \"type\": \"bytes32[]\",\n \"internalType\": \"bytes32[]\"\n }\n ],\n \"outputs\": [\n { \"name\": \"counts\", \"type\": \"int256[]\", \"internalType\": \"int256[]\" }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getAppStrategyTotalScores\",\n \"inputs\": [\n { \"name\": \"apps\", \"type\": \"address[]\", \"internalType\": \"address[]\" },\n { \"name\": \"strategy\", \"type\": \"address\", \"internalType\": \"address\" }\n ],\n \"outputs\": [\n { \"name\": \"totals\", \"type\": \"int256[]\", \"internalType\": \"int256[]\" }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getAppStrategyUserKeyScores\",\n \"inputs\": [\n { \"name\": \"app\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"strategy\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"user\", \"type\": \"address\", \"internalType\": \"address\" },\n {\n \"name\": \"scoreKeys\",\n \"type\": \"bytes32[]\",\n \"internalType\": \"bytes32[]\"\n }\n ],\n \"outputs\": [\n { \"name\": \"counts\", \"type\": \"int256[]\", \"internalType\": \"int256[]\" }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getAppTotalScores\",\n \"inputs\": [\n { \"name\": \"apps\", \"type\": \"address[]\", \"internalType\": \"address[]\" }\n ],\n \"outputs\": [\n { \"name\": \"totals\", \"type\": \"int256[]\", \"internalType\": \"int256[]\" }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getAppUserKeyScores\",\n \"inputs\": [\n { \"name\": \"app\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"user\", \"type\": \"address\", \"internalType\": \"address\" },\n {\n \"name\": \"scoreKeys\",\n \"type\": \"bytes32[]\",\n \"internalType\": \"bytes32[]\"\n }\n ],\n \"outputs\": [\n { \"name\": \"counts\", \"type\": \"int256[]\", \"internalType\": \"int256[]\" }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getAppUserTotalScores\",\n \"inputs\": [\n { \"name\": \"apps\", \"type\": \"address[]\", \"internalType\": \"address[]\" },\n { \"name\": \"user\", \"type\": \"address\", \"internalType\": \"address\" }\n ],\n \"outputs\": [\n { \"name\": \"totals\", \"type\": \"int256[]\", \"internalType\": \"int256[]\" }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getMultiAppMultiStrategyKeyScores\",\n \"inputs\": [\n { \"name\": \"apps\", \"type\": \"address[]\", \"internalType\": \"address[]\" },\n {\n \"name\": \"strategies\",\n \"type\": \"address[]\",\n \"internalType\": \"address[]\"\n },\n {\n \"name\": \"scoreKeys\",\n \"type\": \"bytes32[]\",\n \"internalType\": \"bytes32[]\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"counts\",\n \"type\": \"int256[][][]\",\n \"internalType\": \"int256[][][]\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getMultiAppMultiUserStrategyKeyScores\",\n \"inputs\": [\n { \"name\": \"apps\", \"type\": \"address[]\", \"internalType\": \"address[]\" },\n { \"name\": \"strategy\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"users\", \"type\": \"address[]\", \"internalType\": \"address[]\" },\n {\n \"name\": \"scoreKeys\",\n \"type\": \"bytes32[]\",\n \"internalType\": \"bytes32[]\"\n }\n ],\n \"outputs\": [\n {\n \"name\": \"counts\",\n \"type\": \"int256[][][]\",\n \"internalType\": \"int256[][][]\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getMultiAppStrategyKeyScores\",\n \"inputs\": [\n { \"name\": \"apps\", \"type\": \"address[]\", \"internalType\": \"address[]\" },\n { \"name\": \"strategy\", \"type\": \"address\", \"internalType\": \"address\" },\n {\n \"name\": \"scoreKeys\",\n \"type\": \"bytes32[]\",\n \"internalType\": \"bytes32[]\"\n }\n ],\n \"outputs\": [\n { \"name\": \"counts\", \"type\": \"int256[][]\", \"internalType\": \"int256[][]\" }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getMultiAppStrategyUserKeyScores\",\n \"inputs\": [\n { \"name\": \"apps\", \"type\": \"address[]\", \"internalType\": \"address[]\" },\n { \"name\": \"strategy\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"user\", \"type\": \"address\", \"internalType\": \"address\" },\n {\n \"name\": \"scoreKeys\",\n \"type\": \"bytes32[]\",\n \"internalType\": \"bytes32[]\"\n }\n ],\n \"outputs\": [\n { \"name\": \"counts\", \"type\": \"int256[][]\", \"internalType\": \"int256[][]\" }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getMultiAppUserKeyScores\",\n \"inputs\": [\n { \"name\": \"apps\", \"type\": \"address[]\", \"internalType\": \"address[]\" },\n { \"name\": \"user\", \"type\": \"address\", \"internalType\": \"address\" },\n {\n \"name\": \"scoreKeys\",\n \"type\": \"bytes32[]\",\n \"internalType\": \"bytes32[]\"\n }\n ],\n \"outputs\": [\n { \"name\": \"counts\", \"type\": \"int256[][]\", \"internalType\": \"int256[][]\" }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getMultiStrategyKeyScores\",\n \"inputs\": [\n {\n \"name\": \"strategies\",\n \"type\": \"address[]\",\n \"internalType\": \"address[]\"\n },\n {\n \"name\": \"scoreKeys\",\n \"type\": \"bytes32[]\",\n \"internalType\": \"bytes32[]\"\n }\n ],\n \"outputs\": [\n { \"name\": \"counts\", \"type\": \"int256[]\", \"internalType\": \"int256[]\" }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getMultiStrategyUserKeyScores\",\n \"inputs\": [\n {\n \"name\": \"strategies\",\n \"type\": \"address[]\",\n \"internalType\": \"address[]\"\n },\n { \"name\": \"user\", \"type\": \"address\", \"internalType\": \"address\" },\n {\n \"name\": \"scoreKeys\",\n \"type\": \"bytes32[]\",\n \"internalType\": \"bytes32[]\"\n }\n ],\n \"outputs\": [\n { \"name\": \"counts\", \"type\": \"int256[][]\", \"internalType\": \"int256[][]\" }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getMultiUserAppStrategyKeyScores\",\n \"inputs\": [\n { \"name\": \"app\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"strategy\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"users\", \"type\": \"address[]\", \"internalType\": \"address[]\" },\n {\n \"name\": \"scoreKeys\",\n \"type\": \"bytes32[]\",\n \"internalType\": \"bytes32[]\"\n }\n ],\n \"outputs\": [\n { \"name\": \"counts\", \"type\": \"int256[][]\", \"internalType\": \"int256[][]\" }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getMultiUserStrategyKeyScores\",\n \"inputs\": [\n { \"name\": \"strategy\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"users\", \"type\": \"address[]\", \"internalType\": \"address[]\" },\n {\n \"name\": \"scoreKeys\",\n \"type\": \"bytes32[]\",\n \"internalType\": \"bytes32[]\"\n }\n ],\n \"outputs\": [\n { \"name\": \"counts\", \"type\": \"int256[][]\", \"internalType\": \"int256[][]\" }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getStrategyKeyScores\",\n \"inputs\": [\n { \"name\": \"strategy\", \"type\": \"address\", \"internalType\": \"address\" },\n {\n \"name\": \"scoreKeys\",\n \"type\": \"bytes32[]\",\n \"internalType\": \"bytes32[]\"\n }\n ],\n \"outputs\": [\n { \"name\": \"counts\", \"type\": \"int256[]\", \"internalType\": \"int256[]\" }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getStrategyTotalScores\",\n \"inputs\": [\n {\n \"name\": \"strategies\",\n \"type\": \"address[]\",\n \"internalType\": \"address[]\"\n }\n ],\n \"outputs\": [\n { \"name\": \"totals\", \"type\": \"int256[]\", \"internalType\": \"int256[]\" }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getStrategyUserKeyScores\",\n \"inputs\": [\n { \"name\": \"strategy\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"user\", \"type\": \"address\", \"internalType\": \"address\" },\n {\n \"name\": \"scoreKeys\",\n \"type\": \"bytes32[]\",\n \"internalType\": \"bytes32[]\"\n }\n ],\n \"outputs\": [\n { \"name\": \"counts\", \"type\": \"int256[]\", \"internalType\": \"int256[]\" }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getStrategyUserTotalScores\",\n \"inputs\": [\n {\n \"name\": \"strategies\",\n \"type\": \"address[]\",\n \"internalType\": \"address[]\"\n },\n { \"name\": \"user\", \"type\": \"address\", \"internalType\": \"address\" }\n ],\n \"outputs\": [\n { \"name\": \"totals\", \"type\": \"int256[]\", \"internalType\": \"int256[]\" }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"strategyKeyScores\",\n \"inputs\": [\n { \"name\": \"\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"\", \"type\": \"bytes32\", \"internalType\": \"bytes32\" }\n ],\n \"outputs\": [{ \"name\": \"\", \"type\": \"int256\", \"internalType\": \"int256\" }],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"strategyTotalScores\",\n \"inputs\": [{ \"name\": \"\", \"type\": \"address\", \"internalType\": \"address\" }],\n \"outputs\": [{ \"name\": \"\", \"type\": \"int256\", \"internalType\": \"int256\" }],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"strategyUserKeyScores\",\n \"inputs\": [\n { \"name\": \"\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"\", \"type\": \"bytes32\", \"internalType\": \"bytes32\" }\n ],\n \"outputs\": [{ \"name\": \"\", \"type\": \"int256\", \"internalType\": \"int256\" }],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"strategyUserTotalScores\",\n \"inputs\": [\n { \"name\": \"\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"\", \"type\": \"address\", \"internalType\": \"address\" }\n ],\n \"outputs\": [{ \"name\": \"\", \"type\": \"int256\", \"internalType\": \"int256\" }],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"totalCalls\",\n \"inputs\": [],\n \"outputs\": [{ \"name\": \"\", \"type\": \"uint256\", \"internalType\": \"uint256\" }],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"event\",\n \"name\": \"ScoreUpdated\",\n \"inputs\": [\n {\n \"name\": \"user\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"app\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"strategy\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"scoreDelta\",\n \"type\": \"int256\",\n \"indexed\": false,\n \"internalType\": \"int256\"\n },\n {\n \"name\": \"scoreKey\",\n \"type\": \"bytes32\",\n \"indexed\": false,\n \"internalType\": \"bytes32\"\n }\n ],\n \"anonymous\": false\n },\n { \"type\": \"error\", \"name\": \"ReentrancyGuardReentrantCall\", \"inputs\": [] },\n {\n \"type\": \"error\",\n \"name\": \"StringsInsufficientHexLength\",\n \"inputs\": [\n { \"name\": \"value\", \"type\": \"uint256\", \"internalType\": \"uint256\" },\n { \"name\": \"length\", \"type\": \"uint256\", \"internalType\": \"uint256\" }\n ]\n },\n { \"type\": \"error\", \"name\": \"ZeroScoreDelta\", \"inputs\": [] }\n]\n","[\n { \"type\": \"constructor\", \"inputs\": [], \"stateMutability\": \"nonpayable\" },\n {\n \"type\": \"function\",\n \"name\": \"CORE_CONTRACT\",\n \"inputs\": [],\n \"outputs\": [\n { \"name\": \"\", \"type\": \"address\", \"internalType\": \"contract Score\" }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"LEGACY_CONTRACT\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"address\",\n \"internalType\": \"contract ILegacyUpvoteContract\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"getUpvotesWithLegacy\",\n \"inputs\": [\n {\n \"name\": \"upvoteKeys\",\n \"type\": \"bytes32[]\",\n \"internalType\": \"bytes32[]\"\n },\n {\n \"name\": \"strategies\",\n \"type\": \"address[]\",\n \"internalType\": \"address[]\"\n }\n ],\n \"outputs\": [\n { \"name\": \"counts\", \"type\": \"uint256[]\", \"internalType\": \"uint256[]\" }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"name\",\n \"inputs\": [],\n \"outputs\": [{ \"name\": \"\", \"type\": \"string\", \"internalType\": \"string\" }],\n \"stateMutability\": \"pure\"\n },\n {\n \"type\": \"function\",\n \"name\": \"owner\",\n \"inputs\": [],\n \"outputs\": [{ \"name\": \"\", \"type\": \"address\", \"internalType\": \"address\" }],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"renounceOwnership\",\n \"inputs\": [],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transferOwnership\",\n \"inputs\": [\n { \"name\": \"newOwner\", \"type\": \"address\", \"internalType\": \"address\" }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"upvote\",\n \"inputs\": [\n {\n \"name\": \"strategy\",\n \"type\": \"address\",\n \"internalType\": \"contract IScoreStrategy\"\n },\n { \"name\": \"scoreKey\", \"type\": \"bytes32\", \"internalType\": \"bytes32\" },\n { \"name\": \"scoreDelta\", \"type\": \"uint256\", \"internalType\": \"uint256\" },\n {\n \"name\": \"scoreStoredContext\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n },\n {\n \"name\": \"scoreUnstoredContext\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"payable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"withdrawETH\",\n \"inputs\": [{ \"name\": \"to\", \"type\": \"address\", \"internalType\": \"address\" }],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"withdrawErc20\",\n \"inputs\": [\n { \"name\": \"to\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"token\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"amount\", \"type\": \"uint256\", \"internalType\": \"uint256\" }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"event\",\n \"name\": \"OwnershipTransferred\",\n \"inputs\": [\n {\n \"name\": \"previousOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"error\",\n \"name\": \"OwnableInvalidOwner\",\n \"inputs\": [\n { \"name\": \"owner\", \"type\": \"address\", \"internalType\": \"address\" }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"OwnableUnauthorizedAccount\",\n \"inputs\": [\n { \"name\": \"account\", \"type\": \"address\", \"internalType\": \"address\" }\n ]\n },\n { \"type\": \"error\", \"name\": \"WithdrawFailed\", \"inputs\": [] }\n]\n","[\n { \"type\": \"constructor\", \"inputs\": [], \"stateMutability\": \"nonpayable\" },\n {\n \"type\": \"function\",\n \"name\": \"CORE_CONTRACT\",\n \"inputs\": [],\n \"outputs\": [\n { \"name\": \"\", \"type\": \"address\", \"internalType\": \"contract Score\" }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"name\",\n \"inputs\": [],\n \"outputs\": [{ \"name\": \"\", \"type\": \"string\", \"internalType\": \"string\" }],\n \"stateMutability\": \"pure\"\n },\n {\n \"type\": \"function\",\n \"name\": \"owner\",\n \"inputs\": [],\n \"outputs\": [{ \"name\": \"\", \"type\": \"address\", \"internalType\": \"address\" }],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"renounceOwnership\",\n \"inputs\": [],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transferOwnership\",\n \"inputs\": [\n { \"name\": \"newOwner\", \"type\": \"address\", \"internalType\": \"address\" }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"upvote\",\n \"inputs\": [\n {\n \"name\": \"strategy\",\n \"type\": \"address\",\n \"internalType\": \"contract IScoreStrategy\"\n },\n {\n \"name\": \"storageOperatorAddress\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n { \"name\": \"storageKey\", \"type\": \"bytes32\", \"internalType\": \"bytes32\" },\n { \"name\": \"scoreDelta\", \"type\": \"uint256\", \"internalType\": \"uint256\" },\n {\n \"name\": \"scoreUnstoredContext\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"payable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"withdrawETH\",\n \"inputs\": [{ \"name\": \"to\", \"type\": \"address\", \"internalType\": \"address\" }],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"withdrawErc20\",\n \"inputs\": [\n { \"name\": \"to\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"token\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"amount\", \"type\": \"uint256\", \"internalType\": \"uint256\" }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"event\",\n \"name\": \"OwnershipTransferred\",\n \"inputs\": [\n {\n \"name\": \"previousOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"error\",\n \"name\": \"OwnableInvalidOwner\",\n \"inputs\": [\n { \"name\": \"owner\", \"type\": \"address\", \"internalType\": \"address\" }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"OwnableUnauthorizedAccount\",\n \"inputs\": [\n { \"name\": \"account\", \"type\": \"address\", \"internalType\": \"address\" }\n ]\n },\n { \"type\": \"error\", \"name\": \"WithdrawFailed\", \"inputs\": [] }\n]\n","[\n { \"type\": \"constructor\", \"inputs\": [], \"stateMutability\": \"nonpayable\" },\n { \"type\": \"receive\", \"stateMutability\": \"payable\" },\n {\n \"type\": \"function\",\n \"name\": \"executeScoreStrategy\",\n \"inputs\": [\n {\n \"name\": \"params\",\n \"type\": \"tuple\",\n \"internalType\": \"struct IScoreStrategy.ScoreStrategyParams\",\n \"components\": [\n {\n \"name\": \"scoreKey\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"scoreDelta\",\n \"type\": \"int256\",\n \"internalType\": \"int256\"\n },\n {\n \"name\": \"originalSender\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"appAddress\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"scoreStoredContext\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n },\n {\n \"name\": \"scoreUnstoredContext\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ]\n }\n ],\n \"outputs\": [\n { \"name\": \"metadata\", \"type\": \"bytes\", \"internalType\": \"bytes\" }\n ],\n \"stateMutability\": \"payable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"feeBps\",\n \"inputs\": [],\n \"outputs\": [{ \"name\": \"\", \"type\": \"uint256\", \"internalType\": \"uint256\" }],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"owner\",\n \"inputs\": [],\n \"outputs\": [{ \"name\": \"\", \"type\": \"address\", \"internalType\": \"address\" }],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"renounceOwnership\",\n \"inputs\": [],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setFeeBps\",\n \"inputs\": [\n { \"name\": \"newFeeBps\", \"type\": \"uint256\", \"internalType\": \"uint256\" }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setUpvotePrice\",\n \"inputs\": [\n {\n \"name\": \"newUpvotePrice\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transferOwnership\",\n \"inputs\": [\n { \"name\": \"newOwner\", \"type\": \"address\", \"internalType\": \"address\" }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"upvotePrice\",\n \"inputs\": [],\n \"outputs\": [{ \"name\": \"\", \"type\": \"uint256\", \"internalType\": \"uint256\" }],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"withdrawETH\",\n \"inputs\": [{ \"name\": \"to\", \"type\": \"address\", \"internalType\": \"address\" }],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"withdrawErc20\",\n \"inputs\": [\n { \"name\": \"to\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"token\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"amount\", \"type\": \"uint256\", \"internalType\": \"uint256\" }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"event\",\n \"name\": \"OwnershipTransferred\",\n \"inputs\": [\n {\n \"name\": \"previousOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"error\",\n \"name\": \"IncorrectEthAmount\",\n \"inputs\": [\n { \"name\": \"sent\", \"type\": \"uint256\", \"internalType\": \"uint256\" },\n { \"name\": \"expected\", \"type\": \"uint256\", \"internalType\": \"uint256\" }\n ]\n },\n { \"type\": \"error\", \"name\": \"NegativeUpvotesNotSupported\", \"inputs\": [] },\n { \"type\": \"error\", \"name\": \"NoTokensToWithdraw\", \"inputs\": [] },\n {\n \"type\": \"error\",\n \"name\": \"OwnableInvalidOwner\",\n \"inputs\": [\n { \"name\": \"owner\", \"type\": \"address\", \"internalType\": \"address\" }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"OwnableUnauthorizedAccount\",\n \"inputs\": [\n { \"name\": \"account\", \"type\": \"address\", \"internalType\": \"address\" }\n ]\n },\n { \"type\": \"error\", \"name\": \"ReentrancyGuardReentrantCall\", \"inputs\": [] },\n {\n \"type\": \"error\",\n \"name\": \"Slot0ReadFailed\",\n \"inputs\": [{ \"name\": \"pool\", \"type\": \"address\", \"internalType\": \"address\" }]\n },\n {\n \"type\": \"error\",\n \"name\": \"UnauthorizedCaller\",\n \"inputs\": [\n { \"name\": \"caller\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"expected\", \"type\": \"address\", \"internalType\": \"address\" }\n ]\n },\n { \"type\": \"error\", \"name\": \"WithdrawFailed\", \"inputs\": [] }\n]\n","[\n { \"type\": \"constructor\", \"inputs\": [], \"stateMutability\": \"nonpayable\" },\n { \"type\": \"receive\", \"stateMutability\": \"payable\" },\n {\n \"type\": \"function\",\n \"name\": \"executeScoreStrategy\",\n \"inputs\": [\n {\n \"name\": \"params\",\n \"type\": \"tuple\",\n \"internalType\": \"struct IScoreStrategy.ScoreStrategyParams\",\n \"components\": [\n {\n \"name\": \"scoreKey\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"scoreDelta\",\n \"type\": \"int256\",\n \"internalType\": \"int256\"\n },\n {\n \"name\": \"originalSender\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"appAddress\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"scoreStoredContext\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n },\n {\n \"name\": \"scoreUnstoredContext\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ]\n }\n ],\n \"outputs\": [\n { \"name\": \"metadata\", \"type\": \"bytes\", \"internalType\": \"bytes\" }\n ],\n \"stateMutability\": \"payable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"feeBps\",\n \"inputs\": [],\n \"outputs\": [{ \"name\": \"\", \"type\": \"uint256\", \"internalType\": \"uint256\" }],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"owner\",\n \"inputs\": [],\n \"outputs\": [{ \"name\": \"\", \"type\": \"address\", \"internalType\": \"address\" }],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"renounceOwnership\",\n \"inputs\": [],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setFeeBps\",\n \"inputs\": [\n { \"name\": \"newFeeBps\", \"type\": \"uint256\", \"internalType\": \"uint256\" }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setUpvotePrice\",\n \"inputs\": [\n {\n \"name\": \"newUpvotePrice\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transferOwnership\",\n \"inputs\": [\n { \"name\": \"newOwner\", \"type\": \"address\", \"internalType\": \"address\" }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"upvotePrice\",\n \"inputs\": [],\n \"outputs\": [{ \"name\": \"\", \"type\": \"uint256\", \"internalType\": \"uint256\" }],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"withdrawETH\",\n \"inputs\": [{ \"name\": \"to\", \"type\": \"address\", \"internalType\": \"address\" }],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"withdrawErc20\",\n \"inputs\": [\n { \"name\": \"to\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"token\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"amount\", \"type\": \"uint256\", \"internalType\": \"uint256\" }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"event\",\n \"name\": \"OwnershipTransferred\",\n \"inputs\": [\n {\n \"name\": \"previousOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"error\",\n \"name\": \"IncorrectEthAmount\",\n \"inputs\": [\n { \"name\": \"sent\", \"type\": \"uint256\", \"internalType\": \"uint256\" },\n { \"name\": \"expected\", \"type\": \"uint256\", \"internalType\": \"uint256\" }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"InvalidPoolKeyForRouting\",\n \"inputs\": [\n { \"name\": \"fee\", \"type\": \"uint24\", \"internalType\": \"uint24\" },\n { \"name\": \"tickSpacing\", \"type\": \"int24\", \"internalType\": \"int24\" },\n { \"name\": \"hooks\", \"type\": \"address\", \"internalType\": \"address\" }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"InvalidTokenPair\",\n \"inputs\": [\n { \"name\": \"tokenIn\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"tokenOut\", \"type\": \"address\", \"internalType\": \"address\" }\n ]\n },\n { \"type\": \"error\", \"name\": \"NegativeUpvotesNotSupported\", \"inputs\": [] },\n { \"type\": \"error\", \"name\": \"NoTokensToWithdraw\", \"inputs\": [] },\n {\n \"type\": \"error\",\n \"name\": \"OwnableInvalidOwner\",\n \"inputs\": [\n { \"name\": \"owner\", \"type\": \"address\", \"internalType\": \"address\" }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"OwnableUnauthorizedAccount\",\n \"inputs\": [\n { \"name\": \"account\", \"type\": \"address\", \"internalType\": \"address\" }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"PoolNotFound\",\n \"inputs\": [\n { \"name\": \"tokenA\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"tokenB\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"feeTier\", \"type\": \"uint24\", \"internalType\": \"uint24\" }\n ]\n },\n { \"type\": \"error\", \"name\": \"ReentrancyGuardReentrantCall\", \"inputs\": [] },\n {\n \"type\": \"error\",\n \"name\": \"Slot0ReadFailed\",\n \"inputs\": [{ \"name\": \"pool\", \"type\": \"address\", \"internalType\": \"address\" }]\n },\n {\n \"type\": \"error\",\n \"name\": \"StringsInsufficientHexLength\",\n \"inputs\": [\n { \"name\": \"value\", \"type\": \"uint256\", \"internalType\": \"uint256\" },\n { \"name\": \"length\", \"type\": \"uint256\", \"internalType\": \"uint256\" }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"UnauthorizedCaller\",\n \"inputs\": [\n { \"name\": \"caller\", \"type\": \"address\", \"internalType\": \"address\" },\n { \"name\": \"expected\", \"type\": \"address\", \"internalType\": \"address\" }\n ]\n },\n { \"type\": \"error\", \"name\": \"WithdrawFailed\", \"inputs\": [] }\n]\n","[\n {\n \"type\": \"constructor\",\n \"inputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"receive\",\n \"stateMutability\": \"payable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"executeScoreStrategy\",\n \"inputs\": [\n {\n \"name\": \"params\",\n \"type\": \"tuple\",\n \"internalType\": \"struct IScoreStrategy.ScoreStrategyParams\",\n \"components\": [\n {\n \"name\": \"scoreKey\",\n \"type\": \"bytes32\",\n \"internalType\": \"bytes32\"\n },\n {\n \"name\": \"scoreDelta\",\n \"type\": \"int256\",\n \"internalType\": \"int256\"\n },\n {\n \"name\": \"originalSender\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"appAddress\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"scoreStoredContext\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n },\n {\n \"name\": \"scoreUnstoredContext\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ]\n }\n ],\n \"outputs\": [\n {\n \"name\": \"metadata\",\n \"type\": \"bytes\",\n \"internalType\": \"bytes\"\n }\n ],\n \"stateMutability\": \"payable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"feeBps\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"owner\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"renounceOwnership\",\n \"inputs\": [],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setFeeBps\",\n \"inputs\": [\n {\n \"name\": \"newFeeBps\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setTokenSplitBps\",\n \"inputs\": [\n {\n \"name\": \"newTokenSplitBps\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"setUpvotePrice\",\n \"inputs\": [\n {\n \"name\": \"newUpvotePrice\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"tokenSplitBps\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"transferOwnership\",\n \"inputs\": [\n {\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"upvotePrice\",\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"stateMutability\": \"view\"\n },\n {\n \"type\": \"function\",\n \"name\": \"withdrawETH\",\n \"inputs\": [\n {\n \"name\": \"to\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"function\",\n \"name\": \"withdrawErc20\",\n \"inputs\": [\n {\n \"name\": \"to\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"token\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"amount\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ],\n \"outputs\": [],\n \"stateMutability\": \"nonpayable\"\n },\n {\n \"type\": \"event\",\n \"name\": \"OwnershipTransferred\",\n \"inputs\": [\n {\n \"name\": \"previousOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n },\n {\n \"name\": \"newOwner\",\n \"type\": \"address\",\n \"indexed\": true,\n \"internalType\": \"address\"\n }\n ],\n \"anonymous\": false\n },\n {\n \"type\": \"error\",\n \"name\": \"IncorrectEthAmount\",\n \"inputs\": [\n {\n \"name\": \"sent\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"expected\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"InvalidFeeBps\",\n \"inputs\": [\n {\n \"name\": \"bps\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"InvalidPoolKeyForRouting\",\n \"inputs\": [\n {\n \"name\": \"fee\",\n \"type\": \"uint24\",\n \"internalType\": \"uint24\"\n },\n {\n \"name\": \"tickSpacing\",\n \"type\": \"int24\",\n \"internalType\": \"int24\"\n },\n {\n \"name\": \"hooks\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"InvalidTokenPair\",\n \"inputs\": [\n {\n \"name\": \"tokenIn\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"tokenOut\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"InvalidTokenSplitBps\",\n \"inputs\": [\n {\n \"name\": \"bps\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"NegativeUpvotesNotSupported\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"NoTokensToWithdraw\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"OwnableInvalidOwner\",\n \"inputs\": [\n {\n \"name\": \"owner\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"OwnableUnauthorizedAccount\",\n \"inputs\": [\n {\n \"name\": \"account\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"PoolNotFound\",\n \"inputs\": [\n {\n \"name\": \"tokenA\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"tokenB\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"feeTier\",\n \"type\": \"uint24\",\n \"internalType\": \"uint24\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"ReentrancyGuardReentrantCall\",\n \"inputs\": []\n },\n {\n \"type\": \"error\",\n \"name\": \"Slot0ReadFailed\",\n \"inputs\": [\n {\n \"name\": \"pool\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"StringsInsufficientHexLength\",\n \"inputs\": [\n {\n \"name\": \"value\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n },\n {\n \"name\": \"length\",\n \"type\": \"uint256\",\n \"internalType\": \"uint256\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"UnauthorizedCaller\",\n \"inputs\": [\n {\n \"name\": \"caller\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n },\n {\n \"name\": \"expected\",\n \"type\": \"address\",\n \"internalType\": \"address\"\n }\n ]\n },\n {\n \"type\": \"error\",\n \"name\": \"WithdrawFailed\",\n \"inputs\": []\n }\n]\n","import type { Abi, Address } from \"viem\";\nimport scoreAbi from \"./abis/score.json\";\nimport upvoteAppAbi from \"./abis/upvote-app.json\";\nimport upvoteStorageAppAbi from \"./abis/upvote-storage-app.json\";\nimport pureAlphaStrategyAbi from \"./abis/pure-alpha-strategy.json\";\nimport univ234PoolsStrategyAbi from \"./abis/univ234-pools-strategy.json\";\nimport dynamicSplitStrategyAbi from \"./abis/dynamic-split-strategy.json\";\n\n// Score core contract (v2 strategy)\nexport const SCORE_CONTRACT = {\n address: \"0x0000000fa09b022e5616e5a173b4b67fa2fbcf28\" as Address,\n abi: scoreAbi as Abi,\n} as const;\n\n// UpvoteApp contract\nexport const UPVOTE_APP = {\n address: \"0x00000001f0b8173316a016a5067ad74e8cea47bf\" as Address,\n abi: upvoteAppAbi as Abi,\n} as const;\n\n// UpvoteStorageApp contract\nexport const UPVOTE_STORAGE_APP = {\n address: \"0x000000060CEB69D023227DF64CfB75eC37c75B62\" as Address,\n abi: upvoteStorageAppAbi as Abi,\n} as const;\n\n// UpvotePureAlphaStrategy contract\nexport const PURE_ALPHA_STRATEGY = {\n address: \"0x00000001b1bcdeddeafd5296aaf4f3f3e21ae876\" as Address,\n abi: pureAlphaStrategyAbi as Abi,\n} as const;\n\n// UpvoteUniv234PoolsStrategy (handles Uniswap V2, V3, V4 pools)\nexport const UNIV234_POOLS_STRATEGY = {\n address: \"0x000000063f84e07a3e7a7ee578b42704ee6d22c9\" as Address,\n abi: univ234PoolsStrategyAbi as Abi,\n} as const;\n\n// UpvoteDynamicSplitUniv234PoolsStrategy (configurable token/alpha split for Uni V2/V3/V4 pools)\nexport const DYNAMIC_SPLIT_STRATEGY = {\n address: \"0x0000000869160f0b2a213adefb46a7ea7e62ac7a\" as Address,\n abi: dynamicSplitStrategyAbi as Abi,\n} as const;\n\n// All strategy addresses for batch queries\nexport const ALL_STRATEGY_ADDRESSES: Address[] = [\n UNIV234_POOLS_STRATEGY.address,\n PURE_ALPHA_STRATEGY.address,\n DYNAMIC_SPLIT_STRATEGY.address,\n];\n\n// Legacy upvote contract addresses (v1 and v2, before Score system)\nexport const LEGACY_UPVOTE_V1_ADDRESS =\n \"0x0ada882dbbdc12388a1f9ca85d2d847088f747df\" as Address;\n\nexport const LEGACY_UPVOTE_V2_ADDRESS =\n \"0x9027dcad0a3dca5835895e14fbc022a1e5ea909b\" as Address;\n\n// Chains where the Score system is deployed\nexport const SUPPORTED_SCORE_CHAINS = [8453] as const;\n","import { decodeAbiParameters, type Address } from \"viem\";\nimport {\n PURE_ALPHA_STRATEGY,\n UNIV234_POOLS_STRATEGY,\n DYNAMIC_SPLIT_STRATEGY,\n} from \"../constants\";\nimport type {\n PureAlphaMetadata,\n PoolStrategyMetadata,\n DecodedStrategyMetadata,\n PoolKey,\n} from \"../types\";\n\n/**\n * Convert token address to bytes32 upvote key.\n */\nexport const encodeUpvoteKey = (tokenAddress: string): `0x${string}` => {\n return `0x${BigInt(`0x${tokenAddress.slice(2)}`)\n .toString(16)\n .padStart(64, \"0\")}`;\n};\n\n/**\n * Convert token address to upvote key string format.\n * Strips leading zeros to match Solidity's Strings.toHexString(uint256(scoreKey)).\n */\nexport function tokenAddressToUpvoteKeyString(tokenAddress: string): string {\n const lower = tokenAddress.toLowerCase();\n const withoutPrefix = lower.slice(2);\n const stripped = withoutPrefix.replace(/^0+/, \"\") || \"0\";\n return \"0x\" + stripped;\n}\n\n/**\n * Check if a topic string represents a strategy message.\n */\nexport function isStrategyMessage(topic: string): boolean {\n return topic.startsWith(\"s\") && topic.length > 43;\n}\n\n/**\n * Check if a topic string represents a user upvote message.\n */\nexport function isUserUpvoteMessage(topic: string): boolean {\n return topic.startsWith(\"t\");\n}\n\n/**\n * Extracts strategy address from topic string.\n * Handles both new format and legacy format.\n */\nexport function extractStrategyAddress(topic: string): string {\n try {\n if (topic.startsWith(\"t\")) {\n return topic.slice(1);\n }\n\n if (topic.startsWith(\"s\")) {\n return topic.slice(1, 43);\n }\n\n if (topic.startsWith(\"t-\")) {\n return topic.slice(2);\n }\n\n const parts = topic.split(\"-\");\n if (parts.length >= 2) {\n return parts[0];\n }\n\n return \"\";\n } catch {\n return \"\";\n }\n}\n\nexport function isPureAlphaStrategy(strategyAddress: string): boolean {\n return (\n strategyAddress.toLowerCase() ===\n PURE_ALPHA_STRATEGY.address.toLowerCase()\n );\n}\n\nexport function isUniv234PoolsStrategy(strategyAddress: string): boolean {\n return (\n strategyAddress.toLowerCase() ===\n UNIV234_POOLS_STRATEGY.address.toLowerCase()\n );\n}\n\nexport function isDynamicSplitStrategy(strategyAddress: string): boolean {\n return (\n strategyAddress.toLowerCase() ===\n DYNAMIC_SPLIT_STRATEGY.address.toLowerCase()\n );\n}\n\n/**\n * Decode strategy-specific metadata from ABI-encoded bytes.\n */\nexport const decodeStrategyMetadata = (\n metadata: `0x${string}`,\n strategyAddress: string\n): DecodedStrategyMetadata => {\n try {\n if (isPureAlphaStrategy(strategyAddress)) {\n const [alphaAmount, alphaWethPrice, wethUsdcPrice, userAlphaBalance] =\n decodeAbiParameters(\n [\n { type: \"uint256\" },\n { type: \"uint256\" },\n { type: \"uint256\" },\n { type: \"uint256\" },\n ],\n metadata\n );\n return {\n alphaAmount,\n alphaWethPrice,\n wethUsdcPrice,\n userAlphaBalance,\n } as PureAlphaMetadata;\n } else if (\n isUniv234PoolsStrategy(strategyAddress) ||\n isDynamicSplitStrategy(strategyAddress)\n ) {\n const [\n tokenAmount,\n tokenWethPrice,\n wethUsdcPrice,\n alphaWethPrice,\n userTokenBalance,\n ] = decodeAbiParameters(\n [\n { type: \"uint256\" },\n { type: \"uint256\" },\n { type: \"uint256\" },\n { type: \"uint256\" },\n { type: \"uint256\" },\n ],\n metadata\n );\n return {\n tokenAmount,\n tokenWethPrice,\n wethUsdcPrice,\n alphaWethPrice,\n userTokenBalance,\n } as PoolStrategyMetadata;\n } else {\n return null;\n }\n } catch {\n return null;\n }\n};\n\n/**\n * Decode the full Score storage blob.\n */\nexport const decodeUpvoteStorageBlob = (value: `0x${string}`) => {\n try {\n const [\n scoreKey,\n scoreDelta,\n originalSender,\n appAddress,\n strategyAddress,\n timestamp,\n scoreStoredContext,\n scoreUnstoredContext,\n metadata,\n ] = decodeAbiParameters(\n [\n { type: \"bytes32\" },\n { type: \"int256\" },\n { type: \"address\" },\n { type: \"address\" },\n { type: \"address\" },\n { type: \"uint256\" },\n { type: \"bytes\" },\n { type: \"bytes\" },\n { type: \"bytes\" },\n ],\n value\n );\n\n const decodedMetadata = decodeStrategyMetadata(\n metadata as `0x${string}`,\n strategyAddress as string\n );\n\n return {\n scoreKey: scoreKey as `0x${string}`,\n scoreDelta: Number(scoreDelta),\n originalSender: originalSender as Address,\n appAddress: appAddress as Address,\n strategyAddress: strategyAddress as Address,\n timestamp: Number(timestamp),\n scoreStoredContext: scoreStoredContext as `0x${string}`,\n scoreUnstoredContext: scoreUnstoredContext as `0x${string}`,\n decodedMetadata,\n };\n } catch {\n return null;\n }\n};\n\n/**\n * Select the appropriate strategy based on pool key validity.\n * Returns PURE_ALPHA if no valid pool key; DYNAMIC_SPLIT otherwise.\n */\nexport const selectStrategy = (poolKey?: PoolKey | null): Address => {\n if (!poolKey || !isValidPoolKey(poolKey)) {\n return PURE_ALPHA_STRATEGY.address;\n }\n return DYNAMIC_SPLIT_STRATEGY.address;\n};\n\nfunction isValidPoolKey(poolKey: PoolKey): boolean {\n return (\n poolKey.fee !== undefined ||\n poolKey.tickSpacing !== undefined ||\n poolKey.currency0 !== undefined\n );\n}\n\n/**\n * Decode an upvote message from Net protocol into a consistent format.\n * Handles both legacy and strategy message formats.\n */\nexport function decodeUpvoteMessage(msg: {\n topic: string;\n data: `0x${string}`;\n text: string;\n}) {\n try {\n if (msg.topic === \"t\") {\n if (!msg.data || msg.data === \"0x\" || msg.data.length < 32) {\n return null;\n }\n\n try {\n const [\n numUpvotesDecoded,\n tokenWethPrice,\n wethUsdcPrice,\n alphaWethPrice,\n userTokenBalance,\n ] = decodeAbiParameters(\n [\n { type: \"uint256\" },\n { type: \"uint256\" },\n { type: \"uint256\" },\n { type: \"uint256\" },\n { type: \"uint256\" },\n ],\n msg.data\n );\n\n return {\n scoreDelta: Number(numUpvotesDecoded),\n tokenWethPrice: Number(tokenWethPrice),\n wethUsdcPrice: Number(wethUsdcPrice),\n alphaWethPrice: Number(alphaWethPrice),\n userTokenBalance: Number(userTokenBalance),\n tokenAddress: msg.text,\n messageType: \"legacy\" as const,\n };\n } catch {\n return null;\n }\n } else if (\n (msg.topic.startsWith(\"0x\") && msg.topic.length === 42) ||\n msg.topic.startsWith(\"p-\")\n ) {\n const [\n numUpvotesDecoded,\n tokenWethPrice,\n wethUsdcPrice,\n alphaWethPrice,\n userTokenBalance,\n ] = decodeAbiParameters(\n [\n { type: \"uint256\" },\n { type: \"uint256\" },\n { type: \"uint256\" },\n { type: \"uint256\" },\n { type: \"uint256\" },\n ],\n msg.data\n );\n\n return {\n scoreDelta: Number(numUpvotesDecoded),\n tokenWethPrice: Number(tokenWethPrice),\n wethUsdcPrice: Number(wethUsdcPrice),\n alphaWethPrice: Number(alphaWethPrice),\n userTokenBalance: Number(userTokenBalance),\n tokenAddress: msg.topic,\n messageType: \"legacy\" as const,\n };\n } else if (msg.topic.startsWith(\"app-\") && msg.topic.endsWith(\"-first\")) {\n const topicParts = msg.topic.split(\"-\");\n\n if (topicParts.length === 3) {\n // \"app-{addr}-first\"\n return {\n appAddress: topicParts[1],\n messageType: \"app-first\" as const,\n };\n } else if (topicParts.length === 5 && topicParts[2] === \"strategy\") {\n // \"app-{addr}-strategy-{strat}-first\"\n return {\n appAddress: topicParts[1],\n strategyAddress: topicParts[3],\n messageType: \"app-strategy-first\" as const,\n };\n } else if (topicParts.length === 5 && topicParts[2] === \"user\") {\n // \"app-{addr}-user-{user}-first\"\n return {\n appAddress: topicParts[1],\n userAddress: topicParts[3],\n tokenAddress: msg.text,\n messageType: \"app-user-first\" as const,\n };\n } else if (\n topicParts.length === 7 &&\n topicParts[2] === \"strategy\" &&\n topicParts[4] === \"user\"\n ) {\n // \"app-{addr}-strategy-{strat}-user-{user}-first\"\n return {\n appAddress: topicParts[1],\n strategyAddress: topicParts[3],\n userAddress: topicParts[5],\n tokenAddress: msg.text,\n messageType: \"app-strategy-user-first\" as const,\n };\n }\n }\n\n return null;\n } catch {\n return null;\n }\n}\n","import {\n type Address,\n encodeAbiParameters,\n keccak256,\n encodePacked,\n getAddress,\n} from \"viem\";\nimport { getStorageKeyBytes } from \"@net-protocol/storage\";\nimport { encodeUpvoteKey } from \"./strategyUtils\";\nimport type { ScoreItem, FeedMessage } from \"../types\";\n\n/**\n * Generate score key for token upvotes.\n * Pads the token address into a bytes32 value.\n */\nexport const getTokenScoreKey = (tokenAddress: string): `0x${string}` => {\n return encodeUpvoteKey(tokenAddress);\n};\n\n/**\n * Generate score key for storage upvotes.\n * keccak256(encodePacked(storageKeyBytes32, operatorAddress))\n */\nexport const getStorageScoreKey = (\n operatorAddress: string,\n storageKey: string\n): `0x${string}` => {\n const bytes32Key = getStorageKeyBytes(storageKey) as `0x${string}`;\n return keccak256(\n encodePacked(\n [\"bytes32\", \"address\"],\n [bytes32Key, operatorAddress as Address]\n )\n );\n};\n\n/**\n * Generate content-based key for feed posts.\n * Uses all message content to create a unique identifier that's\n * independent of query filter (works regardless of how messages are fetched).\n *\n * Two messages with identical content will share the same key (and upvotes),\n * which is semantically correct - they are the same content.\n */\nexport const getFeedContentKey = (message: FeedMessage): `0x${string}` => {\n return keccak256(\n encodePacked(\n [\"address\", \"string\", \"address\", \"uint256\", \"string\", \"bytes\"],\n [\n message.app,\n message.topic,\n message.sender,\n message.timestamp,\n message.text,\n message.data,\n ]\n )\n );\n};\n\n/**\n * Get score key for any ScoreItem type.\n */\nexport const getScoreKey = (item: ScoreItem): `0x${string}` => {\n switch (item.type) {\n case \"token\":\n return getTokenScoreKey(item.tokenAddress);\n case \"storage\":\n return getStorageScoreKey(item.operatorAddress, item.storageKey);\n case \"feed\": {\n const contentKey = getFeedContentKey(item.message);\n return getStorageScoreKey(\n item.message.sender,\n contentKey\n );\n }\n }\n};\n\n/**\n * Check if a score key represents a token upvote (zero-padded address)\n * vs a hash-based key (storage/feed).\n */\nexport const isTokenScoreKey = (scoreKey: string): boolean => {\n return scoreKey.startsWith(\"0x000000000000000000000000\");\n};\n\n/**\n * Extract and validate token address from a token score key.\n * Returns the checksummed address or null if invalid.\n */\nexport const extractTokenAddressFromScoreKey = (\n scoreKey: string\n): string | null => {\n if (!isTokenScoreKey(scoreKey)) {\n return null;\n }\n\n const tokenAddress = `0x${scoreKey.slice(26)}`;\n\n if (tokenAddress.startsWith(\"0x\") && tokenAddress.length === 42) {\n try {\n return getAddress(tokenAddress);\n } catch {\n return null;\n }\n }\n\n return null;\n};\n\n/**\n * Generate upvote stored context for storage upvotes.\n * ABI-encodes (bytes32 storageKeyBytes, address operatorAddress).\n */\nexport const getStorageUpvoteContext = (\n operatorAddress: string,\n storageKey: string\n): `0x${string}` => {\n const bytes32Key = getStorageKeyBytes(storageKey) as `0x${string}`;\n return encodeAbiParameters(\n [{ type: \"bytes32\" }, { type: \"address\" }],\n [bytes32Key, operatorAddress as Address]\n );\n};\n","import { type Address, type PublicClient } from \"viem\";\nimport { readContract } from \"viem/actions\";\nimport { getPublicClient } from \"@net-protocol/core\";\nimport {\n SCORE_CONTRACT,\n UPVOTE_APP,\n ALL_STRATEGY_ADDRESSES,\n} from \"../constants\";\nimport { getScoreKey } from \"../utils/scoreKeyUtils\";\nimport type {\n ScoreClientOptions,\n GetUpvotesOptions,\n GetUpvotesForItemsOptions,\n GetStrategyKeyScoresOptions,\n GetAppKeyScoresOptions,\n} from \"../types\";\n\n/**\n * ScoreClient - Client for interacting with Net protocol scoring/upvote system\n *\n * **Pattern for client methods:**\n * - Client methods never require `chainId` in their parameters\n * - All methods use `this.client` internally (created during construction)\n * - This ensures consistency: the client's chain is the single source of truth\n */\nexport class ScoreClient {\n private client: PublicClient;\n private scoreAddress: Address;\n private upvoteAppAddress: Address;\n\n constructor(params: ScoreClientOptions) {\n this.client = getPublicClient({\n chainId: params.chainId,\n rpcUrl: params.overrides?.rpcUrls,\n });\n this.scoreAddress =\n params.overrides?.scoreAddress ?? SCORE_CONTRACT.address;\n this.upvoteAppAddress =\n params.overrides?.upvoteAppAddress ?? UPVOTE_APP.address;\n }\n\n /**\n * Get upvote counts for score keys via UpvoteApp.getUpvotesWithLegacy.\n * Returns an array of counts, one per score key.\n */\n async getUpvotesWithLegacy({\n scoreKeys,\n strategies = ALL_STRATEGY_ADDRESSES,\n }: GetUpvotesOptions): Promise<number[]> {\n const data = await readContract(this.client, {\n address: this.upvoteAppAddress,\n abi: UPVOTE_APP.abi,\n functionName: \"getUpvotesWithLegacy\",\n args: [scoreKeys, strategies],\n });\n\n if (Array.isArray(data)) {\n return data.map(Number);\n }\n return [];\n }\n\n /**\n * Get upvote counts for ScoreItem array.\n * Converts items to score keys, then calls getUpvotesWithLegacy.\n */\n async getUpvotesForItems({\n items,\n strategies,\n }: GetUpvotesForItemsOptions): Promise<number[]> {\n const scoreKeys = items.map((item) => getScoreKey(item));\n return this.getUpvotesWithLegacy({ scoreKeys, strategies });\n }\n\n /**\n * Read scores for keys from a specific strategy on the Score contract.\n * Uses the batch getAppStrategyKeyScores function for efficiency.\n */\n async getStrategyKeyScores({\n strategy,\n scoreKeys,\n }: GetStrategyKeyScoresOptions): Promise<number[]> {\n const data = await readContract(this.client, {\n address: this.scoreAddress,\n abi: SCORE_CONTRACT.abi,\n functionName: \"getAppStrategyKeyScores\",\n args: [this.upvoteAppAddress, strategy, scoreKeys],\n });\n\n if (Array.isArray(data)) {\n return data.map(Number);\n }\n return [];\n }\n\n /**\n * Read scores for keys from a specific app on the Score contract.\n * Uses the batch getAppKeyScores function for efficiency.\n */\n async getAppKeyScores({\n app,\n scoreKeys,\n }: GetAppKeyScoresOptions): Promise<number[]> {\n const data = await readContract(this.client, {\n address: this.scoreAddress,\n abi: SCORE_CONTRACT.abi,\n functionName: \"getAppKeyScores\",\n args: [app, scoreKeys],\n });\n\n if (Array.isArray(data)) {\n return data.map(Number);\n }\n return [];\n }\n}\n","import { encodeAbiParameters, type Address } from \"viem\";\nimport type { PoolKey } from \"../types\";\n\n/**\n * Encode a PoolKey struct to bytes for scoreStoredContext.\n * Returns \"0x\" for invalid or missing pool keys.\n */\nexport const encodePoolKey = (poolKey?: PoolKey | null): `0x${string}` => {\n if (!poolKey || !isValidPoolKey(poolKey)) {\n return \"0x\";\n }\n\n try {\n return encodeAbiParameters(\n [\n {\n type: \"tuple\",\n components: [\n { name: \"currency0\", type: \"address\" },\n { name: \"currency1\", type: \"address\" },\n { name: \"fee\", type: \"uint24\" },\n { name: \"tickSpacing\", type: \"int24\" },\n { name: \"hooks\", type: \"address\" },\n ],\n },\n ],\n [\n {\n currency0: poolKey.currency0 as Address,\n currency1: poolKey.currency1 as Address,\n fee: poolKey.fee,\n tickSpacing: poolKey.tickSpacing,\n hooks: poolKey.hooks as Address,\n },\n ]\n );\n } catch {\n return \"0x\";\n }\n};\n\nfunction isValidPoolKey(poolKey: PoolKey): boolean {\n return (\n poolKey.fee !== undefined ||\n poolKey.tickSpacing !== undefined ||\n poolKey.currency0 !== undefined\n );\n}\n"]}