diff --git a/packages/affiliates/.gitignore b/packages/affiliates/.gitignore index 0b9c57490a..6c49bccaf1 100644 --- a/packages/affiliates/.gitignore +++ b/packages/affiliates/.gitignore @@ -5,3 +5,7 @@ artifacts # as a local/regenerable artifact. gas-rebate/rebates/*.audit.json gas-rebate/corrections/*.audit.json + +# Delegate rebate exclusion list is kept private. The monthly audit records only its SHA-256 and +# size, so payouts stay reproducible without committing the addresses. +gas-rebate/exclusions/ diff --git a/packages/affiliates/gas-rebate/VoterGasRebateV2.ts b/packages/affiliates/gas-rebate/VoterGasRebateV2.ts index 8524151c79..90523dd2d5 100644 --- a/packages/affiliates/gas-rebate/VoterGasRebateV2.ts +++ b/packages/affiliates/gas-rebate/VoterGasRebateV2.ts @@ -8,6 +8,7 @@ import "@nomiclabs/hardhat-ethers"; import { findBlockNumberAtTimestamp, getWeb3 } from "@uma/common"; import { getAddress } from "@uma/contracts-node"; import type { VotingV2 } from "@uma/contracts-node/dist/packages/contracts-node/typechain/core/ethers/VotingV2"; +import { createHash } from "crypto"; import fs from "fs"; import hre from "hardhat"; import moment from "moment"; @@ -24,10 +25,41 @@ const { MIN_STAKED_TOKENS, MAX_PRIORITY_FEE_GWEI, MAX_BLOCK_LOOK_BACK, + COMMIT_LOOKBACK_BLOCKS, + EXCLUSION_LIST_PATH, + IGNORE_EXCLUSION_LIST, } = process.env; const DEFAULT_MIN_STAKED_TOKENS = "1000"; const DEFAULT_MAX_PRIORITY_FEE_GWEI = "0.001"; +const DEFAULT_COMMIT_LOOKBACK_BLOCKS = 50000; + +// Addresses in this list receive no rebate, e.g. delegate voters. The audit +// records only the list's SHA-256 and size so the payout stays reproducible without publishing it. +// Set IGNORE_EXCLUSION_LIST=true to skip it entirely (used for the pre-policy portion of a month). +function loadExclusionList(): { addresses: Set; hash: string | null; size: number } { + if (IGNORE_EXCLUSION_LIST && /^(true|1|yes)$/i.test(IGNORE_EXCLUSION_LIST)) + return { addresses: new Set(), hash: null, size: 0 }; + + const listPath = EXCLUSION_LIST_PATH || path.join(__dirname, "exclusions", "rebate-exclusions.json"); + if (!fs.existsSync(listPath)) return { addresses: new Set(), hash: null, size: 0 }; + + const parsed = JSON.parse(fs.readFileSync(listPath, "utf8")); + const rawAddresses: unknown = Array.isArray(parsed) ? parsed : parsed?.addresses; + if (!Array.isArray(rawAddresses)) + throw new Error(`Exclusion list ${listPath} must be a JSON array of addresses or { "addresses": [...] }`); + + const addresses = new Set(); + for (const entry of rawAddresses) { + if (typeof entry !== "string" || !/^0x[0-9a-fA-F]{40}$/.test(entry.trim())) + throw new Error(`Exclusion list ${listPath} contains an invalid address: ${String(entry)}`); + addresses.add(entry.trim().toLowerCase()); + } + const hash = createHash("sha256") + .update(JSON.stringify([...addresses].sort())) + .digest("hex"); + return { addresses, hash, size: addresses.size }; +} export async function run(): Promise { console.log("Running UMA2.0 Gas rebate script! This script assumes you are running it for the previous month🍌."); @@ -61,6 +93,8 @@ export async function run(): Promise { "gwei" ); const maxBlockLookBack = MAX_BLOCK_LOOK_BACK ? Number(MAX_BLOCK_LOOK_BACK) : 250; + const commitLookbackBlocks = COMMIT_LOOKBACK_BLOCKS ? Number(COMMIT_LOOKBACK_BLOCKS) : DEFAULT_COMMIT_LOOKBACK_BLOCKS; + const exclusionList = loadExclusionList(); const retryConfig = { retries: MAX_RETRIES ? Number(MAX_RETRIES) : 10, delay: RETRY_DELAY ? Number(RETRY_DELAY) : 1000, @@ -76,7 +110,10 @@ export async function run(): Promise { minStakedTokens: ethers.utils.formatEther(minTokens), maxPriorityFeeGwei: maxPriorityFee ? ethers.utils.formatUnits(maxPriorityFee, "gwei") : null, maxBlockLookBack, + commitLookbackBlocks, transactionConcurrency, + exclusionListSize: exclusionList.size, + exclusionListHash: exclusionList.hash, }); // Fetch all commit and reveal events. @@ -90,6 +127,8 @@ export async function run(): Promise { maxBlockLookBack, transactionConcurrency, maxPriorityFee, + commitLookbackBlocks, + excludedAddresses: exclusionList.addresses, retryConfig, }); @@ -110,6 +149,12 @@ export async function run(): Promise { console.log("No priority fee cap applied"); } + console.log( + `Exclusion list: ${exclusionList.size} addresses (sha256 ${exclusionList.hash ?? "none"}); excluded ` + + `${rebateComputation.excludedVoterCount} voters removing ` + + `${ethers.utils.formatEther(rebateComputation.excludedRebateWei)} ETH` + ); + // Create a formatted output that is not bignumbers. const shareholderPayout: { [key: string]: number } = {}; for (const [key, value] of Object.entries(rebateComputation.shareholderPayoutWei)) @@ -148,12 +193,15 @@ export async function run(): Promise { maxPriorityFeeGwei: maxPriorityFee ? ethers.utils.formatUnits(maxPriorityFee, "gwei") : null, maxPriorityFeeWei: maxPriorityFee ? maxPriorityFee.toString() : null, maxBlockLookBack, + commitLookbackBlocks, transactionConcurrency, maxRetries: retryConfig.retries, retryDelay: retryConfig.delay, overrideFromBlockConfigured: Boolean(OVERRIDE_FROM_BLOCK), overrideToBlockConfigured: Boolean(OVERRIDE_TO_BLOCK), customNodeUrlConfigured: Boolean(process.env.CUSTOM_NODE_URL), + exclusionListHash: exclusionList.hash, + exclusionListSize: exclusionList.size, }, }); console.log("Monthly audit JSON written to", auditReports.jsonPath); diff --git a/packages/affiliates/gas-rebate/rebates/Rebate_69.audit.md b/packages/affiliates/gas-rebate/rebates/Rebate_69.audit.md new file mode 100644 index 0000000000..d993f9ab8a --- /dev/null +++ b/packages/affiliates/gas-rebate/rebates/Rebate_69.audit.md @@ -0,0 +1,50 @@ +# VotingV2 Monthly Gas Rebate Audit - Rebate 69 + +Generated at: 2026-07-14T11:01:34.442Z +Output rebate file: `/home/ubuntu/ghq/github.com/UMAprotocol/protocol/packages/affiliates/gas-rebate/rebates/Rebate_69.json` +VotingV2 contract: `0x004395edb43EFca9885CEdad51EC9fAf93Bd34ac` +Block range: 25218798-25326350 + +## Effective Config + +- Minimum staked tokens: 1000.0 UMA (1000000000000000000000 wei) +- Max priority fee: 0.001 gwei +- Max block lookback: 250 +- Commit lookback blocks: 50000 +- Transaction concurrency: 100 +- Max retries: 10 +- Retry delay: 1000 ms +- Override from block configured: true +- Override to block configured: true +- Custom node URL configured: true +- Exclusion list size: 0 +- Exclusion list SHA-256: none + +## Summary + +- Commit events: 86070 +- Reveal events: 104284 +- Eligible reveal events: 94764 +- Matched commit events: 76499 +- Transactions: 8857 +- Voters: 579 +- Excluded voters: 0 +- Total payout: 3664251413949599720 wei (3.66425141394959972 ETH) +- Excluded rebate: 0 wei (0.0 ETH) + +## Event Collection + +- Validation passed: true +- Chunk size: 250 +- Ranges queried: 631 +- Query attempts: 1262 +- Retry count: 0 +- Split count: 0 +- Validation failures: 0 +- Provider errors: 0 +- Receipt validations: 14533 +- Boundary commits recovered: 18265 + +## Anomalies + +- None diff --git a/packages/affiliates/gas-rebate/rebates/Rebate_69.json b/packages/affiliates/gas-rebate/rebates/Rebate_69.json new file mode 100644 index 0000000000..11560cd9de --- /dev/null +++ b/packages/affiliates/gas-rebate/rebates/Rebate_69.json @@ -0,0 +1,589 @@ +{ + "votingContractAddress": "0x004395edb43EFca9885CEdad51EC9fAf93Bd34ac", + "rebate": 69, + "fromBlock": 25218798, + "toBlock": 25326350, + "countVoters": 579, + "totalRebateAmount": 3.6642514139495996, + "shareholderPayout": { + "0x5071e6d385f584B5875166563c1670460905ad7B": 0.010073355520792316, + "0xB73812cCE6F5cB7ada40A134b4b16AefbDbB9472": 0.006460260519530449, + "0x2b379bFb86e900fE8f3A1434ee79097Aa5b883dc": 0.0094564727911556, + "0x2108a6d1f32D1A932431d64E3328D1d45bD0520f": 0.006000219562086189, + "0xAEf6a3580A365c524A5bC9aabeB2a13c2A1a7B7c": 0.008318694864162972, + "0x3F08eE117168Fd5E69cecF9a843c99e80d04f4CE": 0.006744321511295087, + "0x3b9fFD4CeFFd768DF16d79e7492A1BFfD087C44f": 0.007573344075344826, + "0x8E561b9823d9BF7067F5F64980aE26b6b9969e77": 0.008383346232269653, + "0xE5E7EB7B5E89866A6D852F55BFE363EFd50D2F19": 0.008487357065685952, + "0xb67a6E67072025C1db86e552dc17f7Bf9C296122": 0.006843424155486658, + "0x099aF188E9c68B91617EfE4b09Ee8CD90ba4c63d": 0.004217752949605678, + "0x3F180F32AeD8C10Ce46065e05185Abc69F1D70B8": 0.007807663439125938, + "0x9fDB970aEF60007FeE4EA132B5f4EBc376740aEa": 0.009098678432660405, + "0xC3Ac3355B2686Fa503246a92e34D0B7261b39d6B": 0.009360288106025643, + "0x9C9A11a94f95cd31c06E0252eD0cE908b90FBc0C": 0.003472914543979013, + "0xb93EFD0e79b769D2b3Df7aa64d89F983D2fd02FC": 0.003556920089859517, + "0xE08A026bAaC28a95041DB74Ba78CE93Fb6aC766b": 0.004737268759530204, + "0xC03808e0Af01563A739e408268d5517Dd7d710f3": 0.004723943283074368, + "0x47A40A367b3298BE3da3BdE3994c5342e26f368b": 0.012263025065972991, + "0xDB4D5A3e683dF965CE509ef191d979e77543bB4D": 0.003791623171150017, + "0x37c5db6F455F1CB3274ebE67582C92d04C4f6545": 0.003686177727942722, + "0xFEAB4fFA81BCd17dFdC2d7e906662527697915d4": 0.004794713646839653, + "0xa8B8f0B17Ed13a3663A8E3f169C42464aDddB984": 0.008799696725486323, + "0x3B7236C911F87fD75315c4Ed44A1D2EEd725Ad14": 0.007429316490740578, + "0xaCB4FA704c4A7092B3373D5c57443ed3261fDD18": 0.00777688656325374, + "0xcD6DbaC9cFd5b348744640D8ceF05f1B5245e2E0": 0.008182646916130914, + "0x3AbEBE2bFd423dbb6357674476D44E9bD178817d": 0.008508349368561078, + "0x3e1B1A4a8fbA26E80F4678d3eA3AC1DAcA78523e": 0.007362092140493058, + "0x02153ebE18bc66C57E540423E69A881a70823d40": 0.008626614688858555, + "0xB87000FF076e59EBBfD973008Dd21941Ff9D13b1": 0.007908612805393966, + "0xC573dDc59824F248D3688DF0474805F35C2C09c1": 0.00795442311851142, + "0xdCe31D9b0a5B0E2A40fcdf9A2ad73C3CE2071C15": 0.00780740634070217, + "0x81B73F850A76D405bdd976Db6744D85c65fe9330": 0.008323518994060754, + "0x2c26767989D49215d249e6D36F8e3FE2717f7DBd": 0.004476817142311727, + "0x24F16D0Cda8c2De21c762E0295C28d7249a972A4": 0.003408272835093012, + "0xa85160a81da205AE57F6d55F16C9C43d773c7438": 0.008669977386266839, + "0xcF2e28E5E57461254B8B254AE6D03c89d19BF743": 0.005384296351168115, + "0xca30cE2505F78e7B4f07b2d0A0F22eD62B19051B": 0.004008424466612844, + "0xFd0Be09AAADaAb67523e8c6a9A3c1D657aCB2B5A": 0.007057495386867908, + "0x76cC155EEE2e97A34AC53e8b89fc44690Da753a0": 0.006806143829528642, + "0x10282beB038378EF5cD112c0e1acAA4209F0CD16": 0.003232692960094215, + "0x948F052C6Ecb37aBf9f81b87c620Bb272E422155": 0.005577021838683365, + "0x36Ce63c738971B948Cf0Afb842b7617254C15BC0": 0.007052246107641907, + "0x88330D5c152A3A064b8883ddE2A8a2aa3e4680fb": 0.007689512239213734, + "0x935eFc16A75a6f0B59fa91CcD21Af633A117f97F": 0.00836159904733342, + "0x5EBC1D2809f4DfcA9Cb518EFd2307fDFFC36D55d": 0.007758259961684085, + "0x981387F73e94a173F9eE05a7906E299F99E23114": 0.007896633547131241, + "0x73cDE0e4F0480EA6B98Bfa292Ea936685716af4D": 0.006826195029820029, + "0x9a0705ab1Cb8C5139171911cF0a689DA2F54830d": 0.004200998016652323, + "0x803E38C54240244046545B421FfFE4e05BCD5D0B": 0.007606910847308835, + "0xd3addbb98D1C9B8C1c6ac6e73cf9cbd9390aEEFA": 0.003893746355200839, + "0xfb043BBaF380A06c01750ce0a6324e38eD11110c": 0.007083563124369924, + "0x126db3213b309A8D554594e591e614425cCaC78e": 0.004480050668499848, + "0x5DB732749c6871540f481c15eBF353fC03c225D3": 0.011327235719981944, + "0x49BA7fC7a31b6d49e0C7eDcFF76C1678078EC8F2": 0.003657035843641632, + "0xcA64E575083e0a8f9C73Ffc214D78027d98FC51b": 0.003143514020516459, + "0x0bB9f7c03eb9C1A31C25b3B7E61E2c503c30B81d": 0.003817096453025526, + "0x430C4E68894177ae43F52b4fd643fd2D6c7d2e5F": 0.0036725563250854, + "0x92BDD46aEbA9C2f4b55edDB522382261b62220EA": 0.003698142108580594, + "0xBB68400DaA7AE42392DE56026F9b5c1E6F923e3c": 0.003901441373270932, + "0x8E5FDb6A37f2389fa638b2E144809C7d7bc21E4A": 0.004082391385268447, + "0x50229CB8317ECF297E65cdDBCe88e0814eecdf9E": 0.008795884655023177, + "0x1D463047F4c954D70d2718AdF96c43f24aC19dEe": 0.008297787268835524, + "0x63d4E757AE3aa82751094BeF2Ce37dB0b303959E": 0.004002917170674291, + "0xeeD671a75689E7aFda9F658c8482B0939bEE2d34": 0.00789769669530041, + "0xd957f2298bEFD78E946643602fe04509f45Bd5bA": 0.008030041860429016, + "0x4d237f8E3364Ac5104765d287cDDFbD52b3C621f": 0.008346632043948737, + "0xe14B7Bcb3A2A9b2EeA0a53dCE0A60F1649660C4e": 0.008135853114539038, + "0x7c05dE20A59b43c0Fe27eA1B85A2872E9EA519dE": 0.008180574624362807, + "0xBFBcD879dd913255B32100a72A581C963e7b0ADC": 0.007896346503331845, + "0x78d964e9629fD6104F8F13d0DEC2485Bc1a43A2d": 0.00315819267346491, + "0xe36b79317a75b08384c33D21197c7e3273886873": 0.008219390724245315, + "0x64dbcD6e381a4833049cAFB83eb6f441349B2F48": 0.008421671161095027, + "0xE82C23a1084a4fB27ED46628c40301c0f63F0C40": 0.007903781393731142, + "0x342F40FC637e631f669a5b38fA4fc94Dcdd7DBED": 0.00799546928205304, + "0xf5bE8850b5758acCaD467dA86119Db517b8CDe0f": 0.0082319510992092, + "0x83f7321a05876f0bF973bEc3033858bb0b91e37f": 0.004432455002854704, + "0xb397dEe549E3FDF24C82b72707cb6FcD849d214f": 0.008232210496721517, + "0x75F223915302B9bA12eD8F5425f88b74379bE6aD": 0.007903135376658063, + "0x0914Bf3e3DB541a79f6587F83A921Eaa368CAeA3": 0.003220650711933735, + "0xA40ee0717533dE5b87D6f2054AEE815B8461126a": 0.007859199622003753, + "0x463bECEc49d10Dc785110031B9F6AfFbb84b6aAE": 0.00639801729622918, + "0xa4c8e8D8983e53381b25967659A368f8E108aca2": 0.008571777634669014, + "0x212df1ED15FB55607f180b8E26dA4A3db66b04d8": 0.003143936983224238, + "0x6B56fAecE16358B3e63b231837963465cB98A152": 0.008847896101276868, + "0x4Dfe8442Ad63763E7D143BBB40F6A9A76F86a551": 0.004010458385110877, + "0xcB4E72E300390B3E352f20787300CB741fCDE09E": 0.002941248165731776, + "0xe2A85879BE19fF727cDB79Bbee733b616e7c338d": 0.003895581907028181, + "0xDcdc4E48c3DA83109322E3fC507181D65687Ef84": 0.003948545099133359, + "0xA7e781E2EA7740177d9b9E13Dd2134A103f5833b": 0.004035741557141577, + "0x8d3450C45C789Cbb6E03baF1f939B8081ea41Ccd": 0.003947128247457638, + "0xfAEF14B594cae1666846daB2780E964df8557950": 0.003985525962118539, + "0x677350145860d4937CC04bbD29333C321862Cd19": 0.004023284414651738, + "0x6FeC2026e8E468825ED243445508f1bD1215059c": 0.00405593262916287, + "0xf2009F3E705e48cD9E1d29397fc19Fd7E4870cBF": 0.004046992391295888, + "0x402bED71F1B26a068664C12818ed721E37155A44": 0.002943045529177559, + "0x816a7FdeAA4B1Fd5CaCdD337d0A815347a5E714a": 0.00413970729177504, + "0x12abC23621Bc6a6217c8190Efc21Bce9e0cad459": 0.006209631489111309, + "0xBE71d84a622010A0C9709a443017FA53419706f5": 0.00924242170899579, + "0x3E59864442ff8e0043b5360Cb134F6Ca2d514152": 0.006101482398241483, + "0x41DeB171107fBdBb7290eB4a8E77142c4636C13A": 0.006244605554468388, + "0x32a27a34B002aDE54C21515f77593E2086f5E7d0": 0.004389218969672452, + "0xea03Af40FA59Ac9C311187Da0f9b979DA073C226": 0.00851955044703361, + "0xbf72eE28dc8627AD3e76bdA841247EB39837806F": 0.004177051082373675, + "0x90bd7028416753B38714F32acdE927aCBFD7D18B": 0.00873649556061489, + "0x42a786c945032Dd0AFaa89fECB659789b56B3FfC": 0.005749072450063697, + "0xF45E1A95ABCa5362844634106a1B0705CcCcfA23": 0.008202573113456697, + "0x0013Fec13D8e4bd86AF7a988087B697ca1057B88": 0.00344664803354673, + "0x9301580990202CA724E2d2d3F2Cde88fF50735c1": 0.005958923391606318, + "0x60CACe9B90E3A1E6e49b1EB16BdA5fA631cf23A4": 0.008477260383998543, + "0x5e4180eADCD9328c0dbFBDAFcFfa73c8eF831Ffa": 0.008349500891071648, + "0xC41A3d9ED9DD925fB057b7C1599249CDB4C6B66b": 0.008370130693459984, + "0xBC46980A01D8301D336fbf9377aAe711d34fF122": 0.008506034086488007, + "0x2a9437DE0cCD4FD7b7D98831213AcedeFC7a1092": 0.006313506694150506, + "0xe0b343b462aB6D0d3048644D1a85f287D46FC23d": 0.003853474045199316, + "0xA6A162FA210411Ef494feAAD1605c415f8fe0da6": 0.003508829831840188, + "0xA33c3B5Bd387B26F72E1c5e76bc1bb81e7935EE7": 0.007873293893615862, + "0x9A4B6F0839637769e14DdFC03D4E7c537d8e25Bf": 0.00759037568704255, + "0xc9B1B3Ad7546703a9AcfE2940287ae7F9CCAAB70": 0.003534108569297353, + "0x410fCF90a3805DFba3939827b0E75bD5fc2ef8B3": 0.003334688227193101, + "0x57b92dfC53d2D50135946b74C02f0E8c472A2f11": 0.003326178556263721, + "0x32006a2557954336E877Db126A25e4ac27897C86": 0.002424265444459745, + "0x841499f8F5F869c20886D581641DC181E9C6B672": 0.007488550195390428, + "0x58504a178E3A3B8B65E51a9014679550f1dC5a86": 0.007408936702072144, + "0x132DA096d35f9DeA0FD7F348232582DA4e551dA0": 0.007592515376706338, + "0x4442dD25DA06786c78d8874fB33381E706877FeB": 0.003197713473308989, + "0x72e1260FFa7e3e7F41eff646B24694F8c139c73d": 0.003130057434186763, + "0xC5c90045A5D097625634C7d4bb7dBfBb8E3310AB": 0.007753147049486083, + "0xc0FdAbeF949f28332f596e66eE8e06a13A103c02": 0.00337546393916228, + "0x86CC5e1e8fb20102Fa7A0fa4afeAf1Cbe1BE273D": 0.009806196810616966, + "0x610C6f79839DDA54E8a587e279E6e93a0BF589c8": 0.007541472288519442, + "0xB6e74e6fD559f9207679D128ddDBb35B9042A166": 0.007561992772445841, + "0xc73f65Ea9d3d3c165cC6Bf31dE607cb946B1e4C6": 0.00792518888372758, + "0x48767f20ec0aCA7f47b3dA2Cc32Bc06549470A9B": 0.003654401980402503, + "0xFfdBD837ADAe8558684111d4B5cf9Ca36F58569f": 0.008202440158992356, + "0x686c4D2ce918805D05FD93F109e279b0c3DC8Bfd": 0.002185374161275256, + "0xEBac3e24c3f59d50a713F2c79535acd381487486": 0.005543555925896869, + "0xc92f8051ae3786fe90CA5aB89361DAD6730c4Eee": 0.002485556028923895, + "0x8891E7796d54cF5b801F0A01966be79d7cC2a89A": 0.002142385277808139, + "0x422Db8FD3778343B595762417b62474919eFeD41": 0.008184649461754966, + "0xa33f0D43b87dDD418C029412b6dFcFA8a9C68074": 0.007947115443148686, + "0x4A2e4FD85Dfe564C5b14A134AcdFcD531a5BdB92": 0.007784672752312467, + "0x4241A9998720cacB5902cF887A5323Bb316E3166": 0.007692749136333845, + "0x59760d82C6c5B6B6F8865093820B74B5325d775f": 0.007795452392716037, + "0xB09080C5aC5adC483208DfBE22f8684eEc907c17": 0.008036213096288197, + "0x73fcB73D180D013ae1dbE306DFcD59C5Ff01b66a": 0.007898447063493496, + "0xCBcbDaa4209c955A79CD555C47a7501f10aA44aB": 0.002342147467838588, + "0xE154fb66fed34faFBF94Bfb5357fCE857C70Bb23": 0.008144204929670731, + "0xC87e43DbFEd879Ae5A0806d9CE7e6fDA27a1C6Ce": 0.003870487796993338, + "0xa37023933715Ae766f38689a75a525f351c50C1a": 0.00438765320876995, + "0x2f65CEBe19C44c036D9eFC0b0C7293b88CdF8b3a": 0.007746645107714019, + "0xD921DDB9f1595C37947C6c4D74B0AEC4cA56028F": 0.007413467996709038, + "0xd273f87e43851Fa7f0518E3B385c0d964621E3c6": 0.003580011811440282, + "0x85bd7174AFB1BA8685008f2d211752216A1D1416": 0.008032537994090882, + "0x7799dBaFb3089354B482819b9Ae85Fb7EAa34BBF": 0.00262981487889427, + "0x08Acd3c1E457873bcFf8eb39124Fc7cF4c552640": 0.007620515799229965, + "0xfbf775cb7f844eE63f7aD2E2e42934aBAfeF78C3": 0.008026992741934465, + "0xEcBe35DB18e6169c1Aef953D23D298828C10B88c": 0.002804222014517586, + "0x03A57cf2aA5D0E79E9653e1D1C776fFB999eeaEC": 0.003923573631362684, + "0xe189f94D42b53BBCc1765906d9E0011880C27684": 0.007713772032993238, + "0xad0B860664a781Cc164fc8Ea36f81567ebeC2c5f": 0.007610814667233651, + "0x9CF0Ea03C7e23f2C466d48f6BfA14A85EF7CF4c8": 0.003474507742339462, + "0x0F1C7F7d709265203De5C425aF62bB8664bC7944": 0.007595876587146528, + "0x1175BD59C3D206a07a0DF106600411bED00CEbe0": 0.007590919908989136, + "0x3135629C43A285214af2189bCf8e576c167f3373": 0.007802799687475214, + "0x59F2B08DE0985A98d0bdC2906FD76ff71745a680": 0.008044215145166556, + "0x0071A50BF1b9Eef91f893A81616C84CF87f9D628": 0.004306705994984846, + "0xF87D9a0536f4a726d37aE619F506f019FbC9C272": 0.007650551651355741, + "0x2f55877D6D8A42BD87e0325201cD15d63aBf5866": 0.003576150523390979, + "0x38F855e64542641f9e254f6e527351b55b560C0e": 0.007198613584420205, + "0xa1df756B063A867bfB3cf1fa611592Aa646bF4A8": 0.008446046670564795, + "0xc0Dc4010e76fbD53C82b19f8f8d7604e37289fB4": 0.002963084401065178, + "0x4010650464cc07e447ae10d3135F8c82554b2528": 0.003538105183002503, + "0x2EA989edfCac6531cd912d09A456f9809BaA5377": 0.008235134415597716, + "0x40bFe49745Df251fA0Ac7a3f983101FF170c389b": 0.003379025256516677, + "0x0Ab373B6D140dCF3919E17D277Ad1Cb818B1EA53": 0.007037278276704162, + "0x5060020e66031c324f77ae24F14Cfcea6A688Cb7": 0.003140512879335154, + "0x415106767827A7856D826458a486a87e0e15097C": 0.003289080103514228, + "0x336B9DE28D67D692C31DF93A9b8630B2Fa50d88f": 0.009573421071389181, + "0xA432B3e56A6F4dA4574cDF2f27bea9bbb5543011": 0.005814938478520111, + "0x3b84E3FFBe845c0349E258f243B5F00cA22Ba587": 0.003367215450435888, + "0x49135912edB24205E1b0E7b9eA71887edC59D50a": 0.003412562315688913, + "0xC590314dE55b52C96eb34eDbC4b55cf8Fc8cD510": 0.00335231223189203, + "0x0Fb0e2fF6739060A811190b94b6D7da786735be0": 0.005944549513550887, + "0xdE7250D923299e1EcEDc0743b159E95B945082d9": 0.003555310196298633, + "0xb4C907afdA8C362B58281B5c43A2e7b79f089D09": 0.003917896925938781, + "0x6748445D83259a6709e459873323324a54072d1B": 0.003764870246892383, + "0x3Bd0cbC96186Cc3eafB304111e6Ad20a4Ac92F8E": 0.003607143865986321, + "0x630A63523A4f079201fb548114695d8da1d742F5": 0.003584042340905007, + "0x26fd27a26a6C1EdE36214512ee4E56440a0cEbF5": 0.003500504870942971, + "0xd1Cd2FD35C63e27A33f0b5ECf9C92ba1AB9c6dF1": 0.003556364274249319, + "0xD8C3cd1A7576efC723357B7158318f0CeE0e30F6": 0.003447627846885769, + "0x216bf62B05246bf4a1694061E8769464A6BFD812": 0.003508882758428454, + "0x2f8320C2Dc28681Aa5BBF92e79C37BE656a7D5F1": 0.004319788453394153, + "0x28cCfB369Fb97929068Cd30A390D37fee0037C61": 0.002686691939468954, + "0xC4E70E97A54bbf4f9796099282fA47397da4b4D9": 0.003474758956966606, + "0xE7Ff7aD54492A38AfB99bb5d8B897C5f93A66f47": 0.003333021902711043, + "0x1f12254be217Cf9E9BE46960c36970390b07f16E": 0.003493798193273611, + "0xc42851d834037cA1f82668596233DcA69654867C": 0.003383066723352887, + "0xf0b7e13a31eC9D21c05fcD91f71CB82498864D5F": 0.003890301633740641, + "0xeC2Bae309d0A18D7dDfD4EA0f17a2f60817f4E9c": 0.003512405550910964, + "0x6137A7c745CE7ed7a6eC8cA4AA5B635fF17d5467": 0.002828054074677667, + "0xfA8cE8D44271201e9Ce37838ccb75BA482d597F6": 0.002817238899022524, + "0x4AF80E6414EfeD0B91FA19c0D19B46C381beCB7c": 0.003294791937236979, + "0x40fE8993df6f3915540aCE94E3a3d86a48829664": 0.005177909609036045, + "0x54d6390e19Ce818209bD3B53a5d0D2E0c6FaAe04": 0.003277113273479382, + "0x4241b7A1b190F97213cc092237833305af62f563": 0.003340413493675977, + "0x2F966072f36109F27539E5EdEfA741912206E491": 0.003350929328980058, + "0xA4635d0D583F6A5335Aa3CE39CA7D7c2e7a7D01C": 0.003325217136246387, + "0x58CFC8ee2132847AfcDc67CdeFA92b2D21eB5Ba9": 0.002522678331580909, + "0xF3C162C189341D024ee753223101612ABF6fCf9c": 0.003339723508228813, + "0x09a10823b87Aed0A3c348C0a20d69d3276192913": 0.003385952560063229, + "0x336701baB9Ee6a829a5d610A301E978ACed202C4": 0.003326399091141363, + "0x3895799b03759423C728Eed3aa0C0414F5179f79": 0.002006006902313654, + "0x5BC3D8339754B5D4455355B3C5CF2639fB943942": 0.002777727717040387, + "0xDb6D77A78b4da7286E3C1A6828EB83D9F0cCA527": 0.003236121245549662, + "0x3009e81f3b145c71A409313306Babb0AcC219aDb": 0.003387312572081762, + "0x496cdac4854423c66EB0Da89f9e96Ef9D8312ef8": 0.003441217739659806, + "0x8F559d9F555131932345C2A9546df023c54E096F": 0.002817473913578796, + "0xC8a4C0aA604f225aA006835672CCb68e661f7Dbe": 0.003556077821824142, + "0xadEF6E3234cA45D5bc3C2bdDD4bF427862c60335": 0.003556814072233928, + "0x92A5D7978E46759EDbAeF30012E4c60C8DEeE0A7": 0.003529928740237965, + "0xaB0Ea94509caa5703362EAaFd8087d205f97a340": 0.003464415510634204, + "0x3b59d6B33E8F8dDF9734917a40056D07548a4444": 0.003536276398903135, + "0xfD8355b24aB8815cA2d76d1E495DC29B4330241f": 0.01229555509158007, + "0x9BC114CbDf47021f15416e720bC71b5341120E87": 0.005106693675981497, + "0xaF4C815CF13Bc8671a2a12BdE62aABEC24651ccC": 0.005243057845701789, + "0x6147d56b02faBD35cd9fC2B80a60276cDf089521": 0.005170437422885211, + "0xFa93E76Bb7de1071D6f9C0f77Af883c2a944B2d1": 0.003694815259647363, + "0x1CEe194Da1eEfe344fb2e7f46faB7D3A65C078e5": 0.004400533377284979, + "0x393950505b160607F40D11AB956C9406DBe6e4ce": 0.004127903380914224, + "0x2EC20e5aA17F736060356f6B186208D5Ce0aB4b4": 0.005258238989391266, + "0xEB7dC12e0B2FddEdaE13F75C92D875F33c7bE950": 0.004062077372673822, + "0x69D0341d380a1229f4751a0A721345dBc716586C": 0.00783521793209131, + "0xe67d3b0BDfd1D853FBcE6C0898b464e332a67B18": 0.003688646236229906, + "0x99BcEa6bB0403927fB3c038163478D5b42082Fd9": 0.006708779207332469, + "0x05ef6560a7c9C2951B35AFea0868382487e9B77F": 0.005224195306534736, + "0x57c106cD365B436aC4a2Feb8690CC29FB32E8773": 0.00384747176468509, + "0xC636DA66cfa5c363C4785835069dcAF85ab91feB": 0.012610880654902944, + "0xE281665477e27e21Dd6e96e9736f1E6Af7Cbe999": 0.002807939156323428, + "0x8d47CD9B8b015B0F3865e8eE0b96b8125bb1F483": 0.004567128514903863, + "0xAAfA1bF92688084C3446fDC741c1453379cD72df": 0.004161072213845344, + "0x31C44F5af149d2C9374f6A4d7253d0Fd69b127C9": 0.004328042513032796, + "0xe98ED74D2AEd7b818FA01A839715A917D1341bC5": 0.004241966426987768, + "0x553E206F3F504c3E02258cdB93614e0115827D1d": 0.004358754286182364, + "0xc477F54B5ABBc255f366aC54FD924a896da5e6a3": 0.004914544811806177, + "0x56719d9844bb7968941fe7942462Fc38D7448896": 0.004179700675727242, + "0x4f49D938c3Ad2437c52eb314F9bD7Bdb7FA58Da9": 0.010200177677299228, + "0xe79464c19fe30E6Db25A74aECf65AABeb92A44dC": 0.005731152611773051, + "0xd0A530121747B005af6Bed69426092cB525713d5": 0.006018198249312288, + "0x41480568438D2e56Eb73afCbe24Fb1e845e78a1F": 0.004320872744608932, + "0xe6b5A31d8bb53D2C769864aC137fe25F4989f1fd": 0.010553399474165158, + "0x9D67dAd08931C39aaF619845Ec13f0c693f9575e": 0.005197535216448787, + "0x6B7f377bc115eEfA0c26bE99cA45CB126E52e4B7": 0.007731193537720248, + "0xbDe8AD308c95144A253866517BA0b19DBCE6ca87": 0.005014402387298443, + "0xD867304947F3601396D4a2e30B461161Da9A9585": 0.005889836655242269, + "0x293d1D1ecF84f3D4eDd869160791BC1d82f46Be1": 0.007691170219424891, + "0x1a2A36D8be052fFA7Ddcc1A6DA5C3b7F2E5362f8": 0.005193449254865927, + "0x54B74D49cbfb92343E4607F260BE721b208b4dfB": 0.005286992145703835, + "0x2B8C1aFE537c54E66b32b6751bE17F7fd4F57454": 0.006306266933936397, + "0xcA51c6db7fd913fe607452F49442b57B6B3b4966": 0.004966031647442665, + "0xc728B53E39F53868Cfeb1d2e7fe3d04E4A540C57": 0.006935851094866484, + "0xaB3F384F14fE2eCE015b02F5d3C997f13A23901c": 0.007031520574058542, + "0x56a59EDfD85704D19e378065c6386B0214f8b148": 0.005592596428899517, + "0x531369405A17CE52bA4DF95AaEDc45bFE5E66FD9": 0.006721456945989147, + "0x60359e2626f4A264a675b2810373CcFbc117d686": 0.006556645153033184, + "0xee3F0F2F30E32D573fc5a8645460393388637880": 0.006875696731492345, + "0x76a63B226c6e46c73E4b5b9F007C19e8c56BdD8C": 0.006641199527023537, + "0x0dD7762E2fe09c9eE2F5aCdeA19C102f7c16D8C2": 0.009376993812801847, + "0x61BB37660746466c34641C9Ec5412267E2dAAede": 0.005510261482349675, + "0x45d629afbdef2387670ca2E31210C7BD5EF4Ae26": 0.007402710510254291, + "0x80Eb0616c7FF368b5C3FE6ff4DbDAeCECD6f2369": 0.016287653373999646, + "0x96574f0C4b76aA6FdB9EC6FF09e4aAED6c50dAae": 0.005823553077609912, + "0x487Ad74b3480175a3dCe4D1450bEc3101a0D3A03": 0.006150302958449168, + "0x1E39dC3699206d82d50E23Ba96a6A0427A5E265D": 0.007595520047763677, + "0xe473C4D2539b3F8D7D41DE67094C93ade6a606a0": 0.008105297384797015, + "0xEe0542688F7843639e2EFafb2C3698DE7c16f9E1": 0.005929709764505644, + "0x89f071f769a664315228323Db67493492eFD2Eba": 0.006147293683042272, + "0x6d4a30dF22b53fB93A587DA3942722D614c05881": 0.008787191882018973, + "0x580CFA8C6BA6e7fd648C2DaabD1CB19497527361": 0.016674262175850666, + "0x007daC65ceC5acd3eB0B60a87Efe6D602676307b": 0.006401527870663502, + "0x4776A5C8c5e98c4a6553DA126EAF87BaFEa2bfC3": 0.005269822685946212, + "0x8A7290F8E67633338a97ca0fD6137776CE48C153": 0.007555816770483957, + "0xb8883077C6325A395747714980336574b901D50c": 0.009974138954987128, + "0xb1DC64B89aBfBb109Cb10881ED127984f719B7C3": 0.005941429074549323, + "0x647426f6eD6F87eD0Eab29bB32Ad75748EE2c56e": 0.005267580149508839, + "0x63c8D4763c6c2409894b9D60fC81af005E482716": 0.004575914862755641, + "0xE5415826fB82f6eD742DF1c7Cc1075A7f30B93dB": 0.006256553048068702, + "0xA1efE7ca0F41983019b9d2E2BF471493b5bAE714": 0.005834992637530053, + "0x9EBb9398051B3AB81516178fAF62F3dF2D16c0E7": 0.00582903228382976, + "0xDDa5Ef7389659e7D0cc22231D352d4F3610C6fD6": 0.009116367744779256, + "0x837B1f8e16f617983C973B54D55Be6e73C02D5f9": 0.005684729246382086, + "0xC87aEc1635dD19a70543503aaafc2AC3dAb312E0": 0.006289438387438538, + "0x1181F1cd832E54B0fbE9A7b43d2F886FCb6002Eb": 0.005813695731308062, + "0x8bd7B5E860998607715Da42944cc9DE3486A3Ae2": 0.003515730644108685, + "0x3CbcAB961C3E75d7261c0a69D47b348319c7e9A2": 0.004067292217248132, + "0x4F6D4456e2Ea5D0Accaa25a116869b7dCC99d56e": 0.005160663628153404, + "0x9Fe8b5fa0D713798A8309623486f0AF719527D14": 0.012486562507506068, + "0x20F56C9551156c6B67a66520BA233418356Fa4a2": 0.005970268907832699, + "0x9616354E4fc91c6109B5c7D28a27d98EB820f882": 0.004247009005620816, + "0x2E4377E5873E3Fb13b077c383A20fE8833045E52": 0.006795533381179473, + "0x8Cf35646c42DA86292aBDCf64bd0f7e7fC644a1c": 0.003780022215202934, + "0x906c1c221E36E7b4CD851877761DE04F370F80C6": 0.009732169949043072, + "0xc0B82892B3725F876382C97Fb172CB6f30d52342": 0.004859145031590613, + "0x2E09d6Cd3a4B886478be84471d6b84765d34Ebc2": 0.005062372883045576, + "0x77ba3a270911E240894120e6C7172BA87Ea066f1": 0.005466024435219321, + "0xA33f160202959f527F096D7B98cf6c3971661BB6": 0.006564549887990368, + "0xd63E8ebC524cE89d9aCB28cf24dC9654D8D718D5": 0.006414643403774203, + "0x9004d0B20DD00532DA4096758c8a49A45BDc25b2": 0.004709629855674871, + "0x87Ec7A89eDB07E9d06D216e6bB77DB275f926f97": 0.011792698097340067, + "0xEAd7892Ccd5d7dCD93875c359D07F4150926c092": 0.005743169670506806, + "0xA87697eE92E7c8694Fc6C5205557A91Ee0aD7F1D": 0.005287487730917445, + "0xDbde656775Bc18A6564d4344f647408bDB831cb4": 0.004609725211465247, + "0xfe1B06C65Da903d07CEbE7a744b97b9ab49c4974": 0.005568443398406504, + "0xDb76dB8445d85E225996EAED9D7850349B559605": 0.005356503063460388, + "0x5339365192474f45c60FCfDEE1f0737Bcf818899": 0.009622986004636715, + "0x5808d1681C49B3A8B8f201be47794962FdE158AF": 0.005619382978044666, + "0x14B6aC46b020aB806DdfD2b350d45515FC3CD7c6": 0.007050091976674102, + "0xCA7b7BB928913d7FcA6045114C1d4Bd4afc9C087": 0.005726347102709563, + "0x52299e67387be11d85E86507aB77ceE5CB3f652b": 0.006263458402446504, + "0x10f9E7964ab5B8F1010B74a24D72aA10a2508ad3": 0.010786506604119218, + "0x9E2A850Df640806F87F8fCa25ea3881Cb77a97c7": 0.004597267657176161, + "0xb6A927c68719c2e04CBA42e52aa980d9E151C770": 0.008675893328363507, + "0xaBb1B05EF4076F6aFAe5594a397c336169167d7A": 0.005081617705394718, + "0xc550d989FaA877bEdFA7Be17a2E9b25d183390dA": 0.007799557915527653, + "0xD72452ad1dd1c56C76194F785B2381ac29f828b6": 0.007218937391865069, + "0x129027F037195dA5E5aD2A5acFC65b267b593F5e": 0.004919158332580078, + "0x0eebD9C6Aa87db170fFF5894106B2177195dEAB2": 0.011249075807552715, + "0xF59051d8627fD3CB51Ee80af862E994FC66e34Ec": 0.005864299100122564, + "0x15F5255f4F00CeDeB2aBe37B15127E80623DF3bf": 0.00650683006138161, + "0x75e9aaf331c665d3977BCF6839f2Fd11F08C44c4": 0.005336839091943545, + "0x04a5031F8365C88B6b753C283d89513F59894d27": 0.00797737825836664, + "0x8eAe5686D373909Be71fF215D20f9100cFa0b923": 0.007082328223658884, + "0xbcCe94Ff07351d29F11Fc32ECD293Db61BB8b036": 0.00581125094738862, + "0xde5bA6191505E115557588Bd71Db020aCB0a019B": 0.006662056491726538, + "0x7b08d43fcF54a70D929931b40Eae8a012107325E": 0.010468754241550044, + "0x842a9f069436031cF7DAEC332b3F1844b68e95bC": 0.006890997601725178, + "0xD756835307c0347fb744865229dA5Db5810C2bf3": 0.004213486757594269, + "0xf6c180Da5a09e0BBc6E581295ee748EecfD97fda": 0.004728492865323019, + "0x28e7A6Cf69EAeAeBE6F8b3B5F0C7a19326E41C13": 0.007038435507233622, + "0xc219529b1A5b3FB276680f6483c9B23717F0a45A": 0.007267821806420755, + "0xDA4a958c4Be19CBDbAD87eCc0F7334eB850e80FA": 0.004996023483163523, + "0x24452b43aAFA4311441b6e8E062547A1c8Cb187d": 0.00572575725687457, + "0x1F9a88907bb04e5F4c72d729871C84829dF6D865": 0.005881410584247184, + "0xb53b4aeac59638b82637836F1607de00CbD8df65": 0.005088519654591334, + "0xFdCeF87286E0d856378Ee6540B689F89335b9bEa": 0.01479492234515951, + "0x7918BBee72dB1420A5096629442c8b04769f526b": 0.005723030847918572, + "0xE1A39c7F41c8cfF930fe22fA5C754a3bd8e817B2": 0.005438194527990265, + "0x877c0d5458E55837695Bf6a5C266aD576E9CB8e8": 0.008649218745864624, + "0x5A8Da82c5118E5E1246b51C480bf3A8d63be3AAB": 0.006190089019597628, + "0x736FdC52e70FBF89832C41b3d8Cc8f6A08071c8A": 0.005592320941341355, + "0xf40C69E2825EFA3134900F3760172413bfA7b1bF": 0.005178536375245815, + "0x80AA85AbbF2aDac39957463D04369b117Ee90558": 0.004947666966375843, + "0x3C66AF5d18CdAea0268555211bE521D65EEF788F": 0.005533578011847752, + "0xb9F9B1b0afAD3e44Ed1700cBC02Bc3518ba07e46": 0.005419644448605436, + "0x9e159E260516a00be5B5E79CC886c7b337a07919": 0.007691411391644075, + "0xC12Feb34d497B02c63DbE085276b36B2A96B42A5": 0.00725570307216618, + "0x0808fBae107ea4ed560C6Dd8A0ae7E3329361bA8": 0.008530347617902815, + "0xE17d773234Af63062F30F32168EB9BB1feb82868": 0.007302752886183907, + "0xfab8Dd85f2B64ac942689b6Ccd8088fb2De60828": 0.006447730183756111, + "0x920c4B0a5D6323e621aa3E2dB56C18680934948C": 0.006254979475496851, + "0xaB5f29fF202F82C6B2f633A7306a185690F5a23c": 0.005622863843390505, + "0x937FB0E5573091e7473539E351c94d3369877889": 0.005911831721018671, + "0xFC00eE11903cc2056baD298AF8281D8C0DAf10B1": 0.005105965535457133, + "0x0001ECCcC50Ec508E32A67391c44D6E4593A6216": 0.009178991702757692, + "0x1fFef2Ccb8a6fD9b4ad10B2Acb75CDB5217E21E5": 0.00519204098253097, + "0xFBf458E9C2b859C2C9f1178757f3661b28b916f1": 0.005479783152279708, + "0xB82cfbb67CfFa536310F0F3F0fBAFD82b76bd2B5": 0.007877273769055868, + "0x5D41C19A2Da44Fe8915b200827F20D0e3Bd1A0fE": 0.0134183281888758, + "0x78bD5d3a0E2d69F0B25d54Ce5293b4a651D3BE7b": 0.005370603331661291, + "0x179716C31cD24092f276F9f02FA85DC66cf93e3E": 0.005694317685438316, + "0xBf67CcE29322421e10755F464ba4f7A55CAB0755": 0.006257519642238358, + "0x79c8039C0cfBDC3cdF8d66eFB1AD2836E698ea3c": 0.004521522342231468, + "0x2E63285A34401b5A2Cb590823628087A73448d58": 0.006930654772580917, + "0x663A71Be0238a40DF4bD5760615dE07fe2b7b6Ac": 0.007670620558779298, + "0x68E3F28370B3d2916307A984F8f719dd398BEF3F": 0.005352744576720027, + "0x220f3EDeab311C3Edfc1841376d8F7f304809908": 0.013977930516105562, + "0x1874A6131c2Bf2a3Ef9766A6B715b72CB7e7CE66": 0.007342525290039876, + "0xAC59eB87Cafb364B02eF95060Af5cc3227218674": 0.005556214445670516, + "0xC5ff376cC56C589D9A297D1cCF07caDEFC524f92": 0.007342305144710229, + "0xa815EbfCA004D45d91AeC75375Cc93cf7B60b47b": 0.007774439548936584, + "0xA351461E0354557aFb4Dd7908B3f84Ba50AfCB5f": 0.006866004549066916, + "0xada1Ca2B1F0F649f4E5Fb2a0D7B6B35B31035D0F": 0.005540269323188639, + "0x4db21115b29E8Cb799ca91C296e179a1431CB7c6": 0.009406461705043551, + "0x31103af6CB9B2F306E10407DCa5E54Fdf35839A2": 0.005315893293210429, + "0xc7A37c32cEeE947FA4df30CcAa6587aFe3802E2B": 0.00452859093687165, + "0x907322123C93bde25805eaC8E00df879250C42e7": 0.005279177797126309, + "0x44A528e0D4a9c7475B7205CFD1d247276932935C": 0.006409030242244375, + "0xf0D212a392eFA7bb6A6213F538E443dCdD5dA72A": 0.006683211955753251, + "0x04c8D1b5cfccC34c7c0e9C6894f2eE8EB48485Bf": 0.01126689282203202, + "0x853577C67f6495C271782872DbC7E67A0561293B": 0.006015152702569722, + "0x192543002D23f5BcB575eB8Fd98c4ab4f8f38D35": 0.005326976808790305, + "0x92394a0fFb7D0fb2f87481Eb2386aE8D9b51b6eE": 0.006161726300962915, + "0x23B40F6f998BC1A73918C4c809f666EdC28F943B": 0.005638697515681257, + "0xfd50C84a322471Ef43ca6471770d162Eb63D94d7": 0.006017904344887333, + "0x61DA94BdC7C63d9e1f507794092EC017Dac5B4d5": 0.005102399412950444, + "0x6A044Ed4B502323BBCE9852E8377F955FCc5a879": 0.006117583094230365, + "0x7BAa3b328603535006d76D7B80aF7260FD8A946a": 0.003439708233326991, + "0xd61452A7E2b0DF16D3F323645d8B2DA742bad6EC": 0.010574486831796445, + "0x2E92fA840407afD3F8383CB5d15219A141bf1647": 0.004523887029978445, + "0x754A4C80B643AD881A0B4d4192dfBE56E6D0FD95": 0.011016808116563597, + "0x33964313eFDDc415D3BceFdb5Ba30cf4b9a35Aa8": 0.01375529130692973, + "0x81323Ebd3895062D441D4C59b52984515a2CE3F8": 0.006854989013983318, + "0x3DBeC4490aA615Bfef68F958aa0472841dC39575": 0.004776245285571956, + "0x838d1e12d0f54A4bFd5A144107466B56a2ddb63d": 0.008632041936148081, + "0x204b6Aa42673746e44d63519A4dCca4F1Ff0493c": 0.004446795650793548, + "0xb2653BC465F4834250AC2A118824281971943212": 0.004855167456084259, + "0x9463f147bd944EaFF67b1A5085EF44Aa07c30a8d": 0.00475998546349374, + "0xb774575969396048adE1CFBc95183DB9970Fd14a": 0.004703041449168198, + "0xfEEB23d7Ccd2f2c4546B0e648B7cA9C9944BbA55": 0.007143482474191038, + "0x5114c10056C995e976b7C30C3B8e038C65c1aF60": 0.0052608263496733, + "0x9f0dE0312D98D6ADA95C286cECEaFd4B5822a0b4": 0.007094771466295691, + "0xC4A798ee99b3A6b046aB3890cfEDA8313dCC0ccc": 0.005786251863156005, + "0x9B6bFD7Ebbb28653849b180c91e47FD708494b16": 0.005754249119338255, + "0xC6FF00A2434e5c7b76Fc433A450E99f2A18021f7": 0.006901343103438792, + "0x65d2f54E6Fcce2Cb4A5cac928b639C0ba3BbC5f8": 0.010680714151686041, + "0x13F0F09Df6A13f4e27726718959b758EdaCbb9A5": 0.007816898531963006, + "0xDB358049E4047372D1B61fF7fC545365e5abC8f2": 0.006218418369471789, + "0xB3837d1f993bfD8BDf73739e7dBbC25a88d77f45": 0.004782653602540552, + "0xA6Dd28B47044Eb8e5b5b31E868f87521a83845a1": 0.005070849855052923, + "0x18BA92da2C6548de0559f47292930e160BAAB915": 0.007240056327691888, + "0xD71A615356526C74f8Df8B0489E29e0ce903662c": 0.01090437659389871, + "0xEE9F7daD465396c800a1D834642Cbd33a9c457C1": 0.005306821149529622, + "0x87f177d5DcbA5E0243c6986585e4526ab9a53E0E": 0.007460153217697952, + "0x9fCC8765E51CC0f63aE592e74e90234f74f916cc": 0.010485069272999668, + "0x37B13b174cE62986dc01173ca56eA17dd65D2b3B": 0.01536878520613601, + "0x6386563A17afF59011b66cbFa4b1C0aA98b82BD8": 0.006911607277416331, + "0x385266390821237aBb50FA1416C0Ad1eDD821297": 0.009702203930226083, + "0x8a4b223fe38422673ac7fEf015a7Ffd8d4602111": 0.007070989064655335, + "0xF597c082E98917D9f7209592E640B85011d45605": 0.007720051344077108, + "0x283cb62BAA59AE1e91849dEAb323470797a369C1": 0.005080095146860375, + "0x80e315140990Cf27b2b1Fec9aa6281E4230C81c7": 0.005517889379529351, + "0x2A92De8B16DAad7016f8Caa15d7FE8E2c012bc4E": 0.007866370286721902, + "0x04F4554D4e7031F55fdb929954F713De9Ed11Ac4": 0.005570738935474062, + "0xD08c8A6163c3510E5aEaD801a32B985Df0480305": 0.005432317878439173, + "0xf58079148CBB5478eC96B59a48E0607A054Fd893": 0.004827016276481981, + "0x98f231dF15F9Ce204abB091e7048931D8FaA219C": 0.012241884776759498, + "0x72324D5642def7DCC2a393Bd99A8fd28a8063008": 0.006107797108682915, + "0x12E3273f570e1adA665780b0c7847d6fF34Fc9f2": 0.00624988561208396, + "0xd3A0a507a01A4f4b37d7135650da8407b1F52875": 0.007121566979920932, + "0x93974D5d0c3e08b21F446326E8CbaD996de0eD30": 0.004775022768204519, + "0xb65d4d37609f217495A6ba41b7A330E94Fa810f4": 0.01232286846372197, + "0x7B97Bd846B7B2A14ffAC625341471c83C5736416": 0.005577844839906661, + "0xd4fE9B37CB1a4B2dCb65FC891A078F4Ca18B7E66": 0.005631601605132333, + "0xB917Aa0B2dAb64a8807B7CC73054514b81DbB1f0": 0.012773981101526026, + "0x3AE8Bb6637796057A7F9aC43A11F0Bab2e511842": 0.00596323000848105, + "0xc835B9b8D11a4A4E7411382c993bc620f10aFc0a": 0.0079208118408947, + "0x11Dd21D375C91Be1fBEDcb3bC407Cc202bc1D703": 0.005645525422041134, + "0xea4843A9592ADaad223DdcC3a8F2E43F6e5FDb26": 0.007293698298757814, + "0x8c5270f1BF11D5e5c974b819824E9999f09AF6ff": 0.005051977451993444, + "0x8FCaA47e7DB0081027e1c494Bb715C3720c8BB41": 0.005175506364534124, + "0xF4EDd58890869c52bd3Cd266CD090eE71Ce4e1A2": 0.008628679700685198, + "0xDD7946a56efe8b70c95EBb5e689A05429d8fF5c5": 0.007275828364254887, + "0xc914dAABa5701E66b52e028a6a4Cfb9Cc1F3c7e7": 0.007868865969091808, + "0x211B5a05FF9792aD7cB5fe340A95D770f2F628F0": 0.011434625093865817, + "0xCab8e410C5042b8Dbb7704d0332A195AeC4B092E": 0.006644733640656601, + "0xfCfA494c13409172109f161C428499B39682fFa4": 0.004724251408498356, + "0xBFC30Ffd3a9fB40a06486636170dE5d0dDfe0b34": 0.005520432154617889, + "0x4cd017Bde8Df7eB3b1cDc721890812a7F3867fBE": 0.005843208773043431, + "0x601837dc857cd433424d9f2C3BcF8a0159123B06": 0.006543734387690921, + "0xDA110A01632D328787F51815a40d22B183010828": 0.006411054414688475, + "0x46fEbcE9CCDA36bbc2dAc12BACB7ba09D6Eb28dc": 0.006797032557838419, + "0x49b3fB1B5E6C6Ae2A0F15dE68F73F9e5Cf99Bd78": 0.004134966632454526, + "0x31BB1525F2F0d146bEC61cf51E20F729BE5d49AF": 0.006976112462550677, + "0x29f7E3256B4d954ac577AD22a03449CEac6a5b3d": 0.007832987792704077, + "0x8E4F838E3A2A90BF977bD35B8aaE60ABb395D8f9": 0.013279946546030014, + "0xcB0667F144C48f85257163fF1D77dC1D291705aB": 0.005872435122208085, + "0x52AF2a276a473fc39C9d941e157530Be067932f8": 0.005935899500606946, + "0xF979e82d831B6a87BC7a9276705e07d35F3F32FD": 0.00819880574172059, + "0xfa2f242B63e91bB996662C17BaFec940723a6e53": 0.006772361165722064, + "0x0f8fe8e8B7Ad38615904a08e821E875fa19d8b67": 0.005954841672042422, + "0x2D6ed76F969bBa92f396D92083Eb2bC2BD8545E8": 0.004593043392576918, + "0x10B49eBe2851636402F829444b34558628e9546a": 0.005110556495501676, + "0x8269BA24B05b661c3a7581124c951BF17F97E548": 0.006560132928734526, + "0x28B8A870Da607931f444776c1248bA09572BeA59": 0.00570737671543459, + "0xd22Fb88152DB9e92dba53aa1782eC4B3CB3Abc41": 0.006593021902185854, + "0x11AB7Cce0080b8472CA7f924fD3B1cc4cc962A40": 0.007096663259632217, + "0xF6a2692a00D32691F76A9d5D1c4f3C512dEe53b1": 0.007085046478706735, + "0xEbbf702859af1d2C14BF64E0aDE306280ad70676": 0.01041554722536658, + "0x9A4aA86aC0159a50b8c03A8C7F346D34D7158E40": 0.006225586885990453, + "0x6bb7DC87De0C792eeE6DFfA8085211871bEa1795": 0.016070629518901963, + "0x4D14c3b10f864A7Bcb18d59281abd6D6B4719140": 0.010835928372012213, + "0xEe96828bf0E2B597aA87B70dCd432C9cd2191Ac9": 0.014284480922384773, + "0x27459423cc0f816D965A97dCB90fa45774a18C3A": 0.004191297082842675, + "0xB8C8D5Ca07C82e7E4c73f0cE93E2a7dD08956cb2": 0.004061029707074156, + "0x08da2423c9De4FDe646cCADae7F9360B598fDe3e": 0.004965280304898827, + "0x06080E6dAc4Fdff338dc6d41E0D5C090f9b28B89": 0.007799910039872732, + "0xF5C14eE163B349ccC50eBe31500078f745500580": 0.006318512220483153, + "0x30b2DAEb3757B6C7462cd0D776828F8d7398BE50": 0.006250621121243669, + "0x744c2f5FadbC305d20Fc91274b71a6896d294946": 0.00758753031203001, + "0x52b88b1f9e4B0E8B3738c2f4AD0EcA5B73ab31F9": 0.001100424818626323, + "0x90DAeA825E9D43043C05725a4196382B881b1a73": 0.01041396983225791, + "0x8C386C860C757A44696D276B42a997FDf0cE1BB2": 0.005391517713011546, + "0xDbD9416f32c409b3c7A29655AA515bd717616470": 0.004513587092286364, + "0x9a4773EeEE73e34e1EE0E9A64E4b7453b0b04246": 0.006090871968257262, + "0x419d955a9C3dF6A1b9eB3EbF2d21a3C63A8d57ef": 0.013500821027815444, + "0x203F9674bE9782BC4B194625Ee9dC6800e65B2D8": 0.006989568949640381, + "0x240d2243D90E8968D0c8E807202bC8a2DE0dC53C": 0.009630789292679206, + "0x6DeB5c18F9d75d5D8128F8F42cEB225dD234F960": 0.006455027934954194, + "0x7643d5cA36aec928C15181F02A4263D9E1FF594B": 0.006819679614451323, + "0x9F9a6867d9Ed4630DAC6d3F9C125248600DF03BE": 0.007304355670008008, + "0x379570ffA1A60790A8B5955cf643F868D6ad4c9E": 0.008141367541854619, + "0x48d26F8F052d80E943694360899C4bB83344FdBC": 0.007833678744001066, + "0xC0Afc9BaEcE062D4cDbbb56eFBe33BBd827e560d": 0.007817789074501386, + "0xCB4bB9D616f27dc84a256b768B4C393fA8010caa": 0.009669127316224296, + "0xe35c3f0ad5972eC28773b31598527a9A0D0B22a6": 0.010556777510369443, + "0xf20737e48160A87Dc9D1B26D8B63C796d2F1EA91": 0.010849875418671388, + "0x27064Cc4FE5bd5a20d0e5A21390a45F5a44Bf7D3": 0.011201991152864996, + "0xB21bE96Dc75717272402eF97A5CC144544263E3c": 0.01523432702206329, + "0x28eC3b46262c614df6D5A3FF2726c9746F1d1675": 0.00876611194268589, + "0x95aFE39b111176629BA6eE5F2C1c86eF973226FC": 0.007925916604987792, + "0x773B42430376334c327831C1AaB73f44A379F58f": 0.017684047553581002, + "0xFC2ed2462f05608b6a21cf1A43bf24a6Ea08c4CD": 0.007748214009859319, + "0x636223B012C4d186153CDDd584F3f4F733257Df9": 0.006939483396623239, + "0x7975ae9ACd918f2c2F77a365e9077d098A102C86": 0.009208794069769682, + "0x314FDb3cE492ee03a0eb037De01Ef53757C73936": 0.009697957920329106, + "0x94478F8B27CeDD6177E238F48164A45245C854C1": 0.007877576818827082, + "0xa02B48ce476ADe8A3f635857dCaF9475F79AD6EB": 0.005749452763468721, + "0x574c891acEdddeB18d112DcE69F87241794307c7": 0.005933496752677928, + "0x64125D5e793b05F0290e4d322a5b05Fdd3EC2674": 0.007190274598892205, + "0xe2A2f2A338EB923454e331422e9b6ef872325Bb5": 0.007752517040042463, + "0x35A7f9DB799649908688826E06CA754Ea0153724": 0.006663340470984827, + "0x1D1C0E8394e6619Bf75C0F2e9321B3D324409283": 0.007441400319760217, + "0x967bE9835Ca02EDf7A8c7dfE26519763c1611277": 0.00798580810500319, + "0x114D4348265E8302980e7BA2db441FBF09EC3303": 0.008114154199095742, + "0xD25f7e77386F9f797b64E878A3D060956de99163": 0.011202914398647611, + "0x8b992B29e691058a1EDD32378dc11E6480E0eE24": 0.007357575953258013, + "0x53A30736a43c413Edf5C13F049D34d3Dd57B7128": 0.009103055310911443, + "0xd2Ad096Ed0757dc4954f66765dea737e5a687dfF": 0.006801153458978596, + "0x1D98cAEFaB4bb543d98Ec6136E1498c34AF32c85": 0.003579053372159181, + "0x340B8E5B52619c0ade021F806348e11274783740": 0.005823129049821186, + "0x84252729ed32fA0fa1b454b8f58B71758239d627": 0.006256151400588444, + "0x74C9DCb37E9eFb795d4696212E8ae4c68C4d3D1D": 0.006604410524779791, + "0x82074547555355BbE037e0E504d0D0C08EC4dBEA": 0.008364884841425713, + "0xDA6De31eB28a648884247708385a0B8027E6C4b3": 0.006288169003708793, + "0xe63757E3cD485C9b35b3a972fFFA2d91B8649483": 0.007143253589076595, + "0xd48010De315e10D071853b1466f0C273e766FA07": 0.007681896024590861, + "0xA8E20D1B16c2821c2E17A58eB9c92c2ec7699283": 0.009408810196149454, + "0x000000000000f8E4fE2a98574fa81C728e340764": 0.009915552782744363, + "0xB538544c0d0971dc6cdcc17a1Ac50A02bc0A8B0F": 0.006708314445069762, + "0xeF7220723E580F03A8f8b076Ee8623b1dF0103fa": 0.007543677997287257, + "0x96c00fDDa3f3129A55C0Bc9b48Ef504C3D5594e4": 0.00770562505579554, + "0x6573e30Ee0ad46BC9aFA0C2aDb0D3f147D658EFE": 0.006052790981638712, + "0x260D417fBD1716B1375CD311f8a6677c4a780B3A": 0.008882346332959193, + "0xF39695c39EaCdf81D146cE6667E81476Ea9b3fa7": 0.00880301809930017, + "0x4B8aef878255F6242606Fe5e73D659004F5A34fA": 0.008366904659485164, + "0x1DE746BB64222C304b38F84613745323cB6C7fC1": 0.02095969725236666, + "0xd17EB770E4E209C186cEDA0d7E09bFC03D792b36": 0.02005953943249301, + "0x3D65eD138686e2AD54006d4Db83aD4597D645370": 0.0145241652188876, + "0xdD2CB8c9b8FCCDc366AE60f4FE1c99813Ec0d18e": 0.005653829017848722, + "0xF17cACa52974d349C1c080331C77a358E4430d76": 0.006415821932149615, + "0xA882C04377ff264B776401aD7B5807F1eCB38A9C": 0.004399717902451433, + "0xb9eea291E3Ab7a432C0102Cc8Eb3bBb6E97660f7": 0.004032495478974833, + "0x7e05319D039b2F4Ba06Adad9939aC980224F2Dcd": 0.00559966322293453, + "0x0b52fEE7CF1A6d0dC2993C158eAF6B23B998150d": 0.004299778239643277, + "0x5fEF7B3AaFe2C4c2F415777DCd4E4bef9afe5465": 0.004285046563249169, + "0x60C26C2196100F38a78337BEE71BE31706C95eE7": 0.004176719602293762, + "0xD27122760634f46994815A2B5097FFF7b0e910D5": 0.001108644641308299, + "0xEFE1fcEDe58d10606e89Fdcf7539035686C7E2aD": 0.004597876854506135, + "0xB3983fd5997711935dC61118e684DDCA1CE3F8C7": 0.000887282113435615, + "0x36Ba943373FdE856457511ef8E8955323174331c": 0.001389453368813311, + "0x0024A67e0b91131d6978e1e0f72c94497bDBCc35": 0.000906057864963061, + "0xa4D849e3b972088F72ed2899f2945410Cd784Ba7": 0.00549985945196735, + "0x82aC3585ab4C876ACf7bC28CB6833A65Ba7EC7Db": 0.00558848754477128, + "0x7cA4b00a3aEc07F978D127E69bC16484a038619C": 0.00256512293098324, + "0x5d2150E5d88A30d5793c6C49959B8f7d350a36A5": 0.00263526575799369, + "0xF055cbe9B6b30D64AC1D7305cde7BA6c0993C86a": 0.002715042267115783, + "0x8Cd66785F2A1B5ADc3Cc81177D485A8395Fce2f2": 0.002574760591532633, + "0x18fEe6e511646B8ea2e4964277574F637Bc03f3b": 0.001411615476730876, + "0x9cDf01F751864333515c209B733501FA5bB14143": 0.001746547838702123, + "0x1B96E385806AABcB2A4702e9A09A2Ddd351dC1e1": 0.000581526384857486, + "0xb7351893B4108a62Cd765Cdaa8eD6e8544E9BBF2": 0.002369919757853442, + "0xf8e9af3a84D29678a26F08048Dd206Ad10CC6FE8": 0.000217557107162384, + "0x5D547923774921d7938349C1582239d19d5cCC4B": 0.000248298786843372, + "0xf5827F56d626d8c9Ea20F4A1606b2E3a749F12ae": 0.000127379634331128, + "0x668D123f7AaB549301D9444E582Ee4ccd379C4f9": 0.000498375874894991, + "0x590a8DaE6861CDc2b0300096ec6E4dc6cF2143F6": 0.000526506778165803, + "0xdB040b1bAD2941e02F6fea3a7f4a13D189E0beC4": 0.000485241410568026, + "0xA656bC9CB4Ac2a35f1E070450cd0C2B2CccD4433": 0.000786845893869527 + } +} \ No newline at end of file diff --git a/packages/affiliates/gas-rebate/rebates/Rebate_70.audit.md b/packages/affiliates/gas-rebate/rebates/Rebate_70.audit.md new file mode 100644 index 0000000000..1fce3eac9a --- /dev/null +++ b/packages/affiliates/gas-rebate/rebates/Rebate_70.audit.md @@ -0,0 +1,50 @@ +# VotingV2 Monthly Gas Rebate Audit - Rebate 70 + +Generated at: 2026-07-14T11:06:37.302Z +Output rebate file: `/home/ubuntu/ghq/github.com/UMAprotocol/protocol/packages/affiliates/gas-rebate/rebates/Rebate_70.json` +VotingV2 contract: `0x004395edb43EFca9885CEdad51EC9fAf93Bd34ac` +Block range: 25326351-25433938 + +## Effective Config + +- Minimum staked tokens: 1000.0 UMA (1000000000000000000000 wei) +- Max priority fee: 0.001 gwei +- Max block lookback: 250 +- Commit lookback blocks: 50000 +- Transaction concurrency: 100 +- Max retries: 10 +- Retry delay: 1000 ms +- Override from block configured: true +- Override to block configured: true +- Custom node URL configured: true +- Exclusion list size: 115 +- Exclusion list SHA-256: 9ddde4ac1a372cbd242dfca5e175372f2bb5ae2a7af0f03355c7896a9ae7694f + +## Summary + +- Commit events: 68266 +- Reveal events: 57561 +- Eligible reveal events: 52252 +- Matched commit events: 52252 +- Transactions: 7243 +- Voters: 481 +- Excluded voters: 47 +- Total payout: 1226035815163956121 wei (1.226035815163956121 ETH) +- Excluded rebate: 204407810922449467 wei (0.204407810922449467 ETH) + +## Event Collection + +- Validation passed: true +- Chunk size: 250 +- Ranges queried: 431 +- Query attempts: 862 +- Retry count: 0 +- Split count: 0 +- Validation failures: 0 +- Provider errors: 0 +- Receipt validations: 8903 +- Boundary commits recovered: 0 + +## Anomalies + +- None diff --git a/packages/affiliates/gas-rebate/rebates/Rebate_70.json b/packages/affiliates/gas-rebate/rebates/Rebate_70.json new file mode 100644 index 0000000000..346ea21f6d --- /dev/null +++ b/packages/affiliates/gas-rebate/rebates/Rebate_70.json @@ -0,0 +1,491 @@ +{ + "votingContractAddress": "0x004395edb43EFca9885CEdad51EC9fAf93Bd34ac", + "rebate": 70, + "fromBlock": 25326351, + "toBlock": 25433938, + "countVoters": 481, + "totalRebateAmount": 1.226035815163956, + "shareholderPayout": { + "0xca30cE2505F78e7B4f07b2d0A0F22eD62B19051B": 0.003915492072877342, + "0x24F16D0Cda8c2De21c762E0295C28d7249a972A4": 0.003724192442397241, + "0xB73812cCE6F5cB7ada40A134b4b16AefbDbB9472": 0.001580120659475954, + "0x2108a6d1f32D1A932431d64E3328D1d45bD0520f": 0.003937926097974587, + "0xE08A026bAaC28a95041DB74Ba78CE93Fb6aC766b": 0.001796829994677281, + "0x3F08eE117168Fd5E69cecF9a843c99e80d04f4CE": 0.00460263722050512, + "0x49b3fB1B5E6C6Ae2A0F15dE68F73F9e5Cf99Bd78": 0.002410556755101578, + "0x4f49D938c3Ad2437c52eb314F9bD7Bdb7FA58Da9": 0.002795566503625127, + "0x47A40A367b3298BE3da3BdE3994c5342e26f368b": 0.004296823247329082, + "0x74C9DCb37E9eFb795d4696212E8ae4c68C4d3D1D": 0.003137495643061024, + "0x82074547555355BbE037e0E504d0D0C08EC4dBEA": 0.001858280848498836, + "0x9C9A11a94f95cd31c06E0252eD0cE908b90FBc0C": 0.001945482717438186, + "0x40fE8993df6f3915540aCE94E3a3d86a48829664": 0.001725234739881768, + "0xb93EFD0e79b769D2b3Df7aa64d89F983D2fd02FC": 0.002003621093912404, + "0x126db3213b309A8D554594e591e614425cCaC78e": 0.003652391514117643, + "0xf8e9af3a84D29678a26F08048Dd206Ad10CC6FE8": 0.001540687546519878, + "0xC03808e0Af01563A739e408268d5517Dd7d710f3": 0.001600798546233967, + "0x948F052C6Ecb37aBf9f81b87c620Bb272E422155": 0.00225399488830023, + "0xF17cACa52974d349C1c080331C77a358E4430d76": 0.003259976247151352, + "0xFEAB4fFA81BCd17dFdC2d7e906662527697915d4": 0.001283483253620654, + "0x54B74D49cbfb92343E4607F260BE721b208b4dfB": 0.001556310731065566, + "0x5D547923774921d7938349C1582239d19d5cCC4B": 0.004284610659862755, + "0xDB4D5A3e683dF965CE509ef191d979e77543bB4D": 0.003229523846221386, + "0x37c5db6F455F1CB3274ebE67582C92d04C4f6545": 0.003261870474464351, + "0x336B9DE28D67D692C31DF93A9b8630B2Fa50d88f": 0.003526563533696272, + "0xf5827F56d626d8c9Ea20F4A1606b2E3a749F12ae": 0.001884679897912742, + "0xDbD9416f32c409b3c7A29655AA515bd717616470": 0.002676853538960586, + "0x099aF188E9c68B91617EfE4b09Ee8CD90ba4c63d": 0.001781740072919099, + "0x35A7f9DB799649908688826E06CA754Ea0153724": 0.004048883784983296, + "0x7BAa3b328603535006d76D7B80aF7260FD8A946a": 0.001532281643484111, + "0x393950505b160607F40D11AB956C9406DBe6e4ce": 0.004673783044880369, + "0xb9eea291E3Ab7a432C0102Cc8Eb3bBb6E97660f7": 0.001494101956903131, + "0xfD8355b24aB8815cA2d76d1E495DC29B4330241f": 0.006156609573206064, + "0xa31c2232842e631cCb2d2E4110B356Bab21E6020": 0.002391052929248109, + "0xF39695c39EaCdf81D146cE6667E81476Ea9b3fa7": 0.002639344713116299, + "0x260D417fBD1716B1375CD311f8a6677c4a780B3A": 0.002335367590351924, + "0x9fDB970aEF60007FeE4EA132B5f4EBc376740aEa": 0.001640039742684992, + "0x8E561b9823d9BF7067F5F64980aE26b6b9969e77": 0.002086398348859848, + "0x2EC20e5aA17F736060356f6B186208D5Ce0aB4b4": 0.00256885428150451, + "0xE5E7EB7B5E89866A6D852F55BFE363EFd50D2F19": 0.00243639334514295, + "0xcD6DbaC9cFd5b348744640D8ceF05f1B5245e2E0": 0.002400629328589841, + "0x2b379bFb86e900fE8f3A1434ee79097Aa5b883dc": 0.001952723808873131, + "0xa8B8f0B17Ed13a3663A8E3f169C42464aDddB984": 0.00226967559359902, + "0xEB7dC12e0B2FddEdaE13F75C92D875F33c7bE950": 0.002269515149063238, + "0xC3Ac3355B2686Fa503246a92e34D0B7261b39d6B": 0.002461701119533075, + "0x981387F73e94a173F9eE05a7906E299F99E23114": 0.001752301140906093, + "0x36Ce63c738971B948Cf0Afb842b7617254C15BC0": 0.001717080269918429, + "0xb67a6E67072025C1db86e552dc17f7Bf9C296122": 0.00262257409865304, + "0xaCB4FA704c4A7092B3373D5c57443ed3261fDD18": 0.00204778427824374, + "0xdCe31D9b0a5B0E2A40fcdf9A2ad73C3CE2071C15": 0.002383567780086491, + "0x69D0341d380a1229f4751a0A721345dBc716586C": 0.004534103460622499, + "0xb2653BC465F4834250AC2A118824281971943212": 0.001872733001294739, + "0x3B7236C911F87fD75315c4Ed44A1D2EEd725Ad14": 0.002320595742155883, + "0x11Dd21D375C91Be1fBEDcb3bC407Cc202bc1D703": 0.002491599392836557, + "0x007daC65ceC5acd3eB0B60a87Efe6D602676307b": 0.00207869383479195, + "0xA87697eE92E7c8694Fc6C5205557A91Ee0aD7F1D": 0.002411097752399164, + "0xfd50C84a322471Ef43ca6471770d162Eb63D94d7": 0.002322809966863306, + "0x2A92De8B16DAad7016f8Caa15d7FE8E2c012bc4E": 0.002072605334307024, + "0x7918BBee72dB1420A5096629442c8b04769f526b": 0.003053535919987186, + "0x2E09d6Cd3a4B886478be84471d6b84765d34Ebc2": 0.001967823239423398, + "0x7b08d43fcF54a70D929931b40Eae8a012107325E": 0.00199940616048016, + "0x8E4F838E3A2A90BF977bD35B8aaE60ABb395D8f9": 0.003547461900434624, + "0xD756835307c0347fb744865229dA5Db5810C2bf3": 0.001743379942000556, + "0x838d1e12d0f54A4bFd5A144107466B56a2ddb63d": 0.002492399171054683, + "0x89f071f769a664315228323Db67493492eFD2Eba": 0.005773448845526416, + "0x52299e67387be11d85E86507aB77ceE5CB3f652b": 0.002020584933553159, + "0xEe0542688F7843639e2EFafb2C3698DE7c16f9E1": 0.0021045607791148, + "0x3b9fFD4CeFFd768DF16d79e7492A1BFfD087C44f": 0.002651771127385287, + "0x10B49eBe2851636402F829444b34558628e9546a": 0.003241030038338053, + "0x853577C67f6495C271782872DbC7E67A0561293B": 0.002196886336332322, + "0xb1DC64B89aBfBb109Cb10881ED127984f719B7C3": 0.002929099007116819, + "0xF979e82d831B6a87BC7a9276705e07d35F3F32FD": 0.002571386443408545, + "0x9fCC8765E51CC0f63aE592e74e90234f74f916cc": 0.003511065089522203, + "0xCA7b7BB928913d7FcA6045114C1d4Bd4afc9C087": 0.001873236384137314, + "0x04F4554D4e7031F55fdb929954F713De9Ed11Ac4": 0.002026887680581299, + "0x129027F037195dA5E5aD2A5acFC65b267b593F5e": 0.001702361372510603, + "0xe6b5A31d8bb53D2C769864aC137fe25F4989f1fd": 0.002137612469317021, + "0x28B8A870Da607931f444776c1248bA09572BeA59": 0.005266994358043949, + "0x5071e6d385f584B5875166563c1670460905ad7B": 0.002893670045559655, + "0xAEf6a3580A365c524A5bC9aabeB2a13c2A1a7B7c": 0.002273706102567765, + "0xb8883077C6325A395747714980336574b901D50c": 0.002021587008353985, + "0xfab8Dd85f2B64ac942689b6Ccd8088fb2De60828": 0.001930158723775909, + "0x3e1B1A4a8fbA26E80F4678d3eA3AC1DAcA78523e": 0.002258207540978317, + "0x4db21115b29E8Cb799ca91C296e179a1431CB7c6": 0.001795041436434088, + "0x531369405A17CE52bA4DF95AaEDc45bFE5E66FD9": 0.001987841011942579, + "0x80AA85AbbF2aDac39957463D04369b117Ee90558": 0.002028532750397689, + "0xB82cfbb67CfFa536310F0F3F0fBAFD82b76bd2B5": 0.002176575035308829, + "0x9BC114CbDf47021f15416e720bC71b5341120E87": 0.004943397441394594, + "0x601837dc857cd433424d9f2C3BcF8a0159123B06": 0.001985659394514882, + "0x9463f147bd944EaFF67b1A5085EF44Aa07c30a8d": 0.001751299261408956, + "0xaF4C815CF13Bc8671a2a12BdE62aABEC24651ccC": 0.005059664498584216, + "0x6147d56b02faBD35cd9fC2B80a60276cDf089521": 0.004864075331672568, + "0x1181F1cd832E54B0fbE9A7b43d2F886FCb6002Eb": 0.002644365904782889, + "0x1a2A36D8be052fFA7Ddcc1A6DA5C3b7F2E5362f8": 0.002146595741346037, + "0x65d2f54E6Fcce2Cb4A5cac928b639C0ba3BbC5f8": 0.002005789312027399, + "0x92394a0fFb7D0fb2f87481Eb2386aE8D9b51b6eE": 0.002366553057645184, + "0xea4843A9592ADaad223DdcC3a8F2E43F6e5FDb26": 0.002371840200661813, + "0x29f7E3256B4d954ac577AD22a03449CEac6a5b3d": 0.002337241316590125, + "0xc835B9b8D11a4A4E7411382c993bc620f10aFc0a": 0.002935279572932065, + "0xfEEB23d7Ccd2f2c4546B0e648B7cA9C9944BbA55": 0.002304839231068552, + "0x9E2A850Df640806F87F8fCa25ea3881Cb77a97c7": 0.001758262979331944, + "0xfe1B06C65Da903d07CEbE7a744b97b9ab49c4974": 0.001661440850368687, + "0x63c8D4763c6c2409894b9D60fC81af005E482716": 0.002003543754150799, + "0x3AbEBE2bFd423dbb6357674476D44E9bD178817d": 0.002180649984410145, + "0xB87000FF076e59EBBfD973008Dd21941Ff9D13b1": 0.001798896577278896, + "0x5808d1681C49B3A8B8f201be47794962FdE158AF": 0.003038830830681492, + "0x8FCaA47e7DB0081027e1c494Bb715C3720c8BB41": 0.003150874838946751, + "0xF597c082E98917D9f7209592E640B85011d45605": 0.002685225163720139, + "0xA1efE7ca0F41983019b9d2E2BF471493b5bAE714": 0.001696032625301714, + "0x0eebD9C6Aa87db170fFF5894106B2177195dEAB2": 0.002420844368009627, + "0xDbde656775Bc18A6564d4344f647408bDB831cb4": 0.002129650930656775, + "0x754A4C80B643AD881A0B4d4192dfBE56E6D0FD95": 0.004392971563150193, + "0x56719d9844bb7968941fe7942462Fc38D7448896": 0.001659679520553355, + "0x45d629afbdef2387670ca2E31210C7BD5EF4Ae26": 0.002717629392263967, + "0xF6a2692a00D32691F76A9d5D1c4f3C512dEe53b1": 0.002912452909777137, + "0x96574f0C4b76aA6FdB9EC6FF09e4aAED6c50dAae": 0.001933360772592213, + "0x907322123C93bde25805eaC8E00df879250C42e7": 0.001738676230741081, + "0xaB5f29fF202F82C6B2f633A7306a185690F5a23c": 0.002243027123046801, + "0x56a59EDfD85704D19e378065c6386B0214f8b148": 0.003771163318537326, + "0x419d955a9C3dF6A1b9eB3EbF2d21a3C63A8d57ef": 0.005421829413731632, + "0xD72452ad1dd1c56C76194F785B2381ac29f828b6": 0.00221074471494357, + "0xee3F0F2F30E32D573fc5a8645460393388637880": 0.003849652195136718, + "0x2E4377E5873E3Fb13b077c383A20fE8833045E52": 0.002665205620282959, + "0x3CbcAB961C3E75d7261c0a69D47b348319c7e9A2": 0.001650901581435993, + "0xd61452A7E2b0DF16D3F323645d8B2DA742bad6EC": 0.001813805236787822, + "0x9616354E4fc91c6109B5c7D28a27d98EB820f882": 0.001946762224085783, + "0x10f9E7964ab5B8F1010B74a24D72aA10a2508ad3": 0.002970975749119359, + "0x4cd017Bde8Df7eB3b1cDc721890812a7F3867fBE": 0.002056064114863376, + "0x5114c10056C995e976b7C30C3B8e038C65c1aF60": 0.002249199113686254, + "0x87Ec7A89eDB07E9d06D216e6bB77DB275f926f97": 0.003161357378405888, + "0x220f3EDeab311C3Edfc1841376d8F7f304809908": 0.002324296914840471, + "0x4776A5C8c5e98c4a6553DA126EAF87BaFEa2bfC3": 0.001837058669867224, + "0xc914dAABa5701E66b52e028a6a4Cfb9Cc1F3c7e7": 0.002181330903651555, + "0x837B1f8e16f617983C973B54D55Be6e73C02D5f9": 0.00255905987055104, + "0xC12Feb34d497B02c63DbE085276b36B2A96B42A5": 0.002570478096608372, + "0xDDa5Ef7389659e7D0cc22231D352d4F3610C6fD6": 0.001968203213529758, + "0x02153ebE18bc66C57E540423E69A881a70823d40": 0.001886513365974715, + "0x81B73F850A76D405bdd976Db6744D85c65fe9330": 0.001893387234385373, + "0xC5ff376cC56C589D9A297D1cCF07caDEFC524f92": 0.002215719098051055, + "0xC573dDc59824F248D3688DF0474805F35C2C09c1": 0.002462175395924799, + "0x12E3273f570e1adA665780b0c7847d6fF34Fc9f2": 0.00246387600434537, + "0x5A8Da82c5118E5E1246b51C480bf3A8d63be3AAB": 0.002205916327197145, + "0x9A4aA86aC0159a50b8c03A8C7F346D34D7158E40": 0.002875847887215072, + "0x663A71Be0238a40DF4bD5760615dE07fe2b7b6Ac": 0.002764822295562487, + "0x88330D5c152A3A064b8883ddE2A8a2aa3e4680fb": 0.002116695274266213, + "0x61BB37660746466c34641C9Ec5412267E2dAAede": 0.001850635997156985, + "0x44A528e0D4a9c7475B7205CFD1d247276932935C": 0.002588332607846139, + "0x5DB732749c6871540f481c15eBF353fC03c225D3": 0.003070400436745264, + "0xa85160a81da205AE57F6d55F16C9C43d773c7438": 0.001718287544032891, + "0x2B8C1aFE537c54E66b32b6751bE17F7fd4F57454": 0.00233391314515997, + "0xF4EDd58890869c52bd3Cd266CD090eE71Ce4e1A2": 0.003551470725475379, + "0xB917Aa0B2dAb64a8807B7CC73054514b81DbB1f0": 0.003460267459974243, + "0xd4fE9B37CB1a4B2dCb65FC891A078F4Ca18B7E66": 0.001888928071643519, + "0xBf67CcE29322421e10755F464ba4f7A55CAB0755": 0.003086024228273646, + "0xde5bA6191505E115557588Bd71Db020aCB0a019B": 0.001792942418670988, + "0x9D67dAd08931C39aaF619845Ec13f0c693f9575e": 0.002045027310878641, + "0x23B40F6f998BC1A73918C4c809f666EdC28F943B": 0.002168556408543457, + "0xa815EbfCA004D45d91AeC75375Cc93cf7B60b47b": 0.001864535576788672, + "0x8Cf35646c42DA86292aBDCf64bd0f7e7fC644a1c": 0.001307889360450905, + "0x9Fe8b5fa0D713798A8309623486f0AF719527D14": 0.002057189990926889, + "0x04c8D1b5cfccC34c7c0e9C6894f2eE8EB48485Bf": 0.003196306251182651, + "0xc5C2441851D79859DcBD3A30cEE333FEc01a2b69": 0.000723543191126643, + "0x0808fBae107ea4ed560C6Dd8A0ae7E3329361bA8": 0.001829011792305918, + "0xA351461E0354557aFb4Dd7908B3f84Ba50AfCB5f": 0.002365498641720568, + "0xf0D212a392eFA7bb6A6213F538E443dCdD5dA72A": 0.00264571270916139, + "0x75e9aaf331c665d3977BCF6839f2Fd11F08C44c4": 0.002241335725715262, + "0xfa2f242B63e91bB996662C17BaFec940723a6e53": 0.003036468847995485, + "0x9EBb9398051B3AB81516178fAF62F3dF2D16c0E7": 0.003079933009940629, + "0x76a63B226c6e46c73E4b5b9F007C19e8c56BdD8C": 0.001890308958100768, + "0x30b2DAEb3757B6C7462cd0D776828F8d7398BE50": 0.003932928972592353, + "0x744c2f5FadbC305d20Fc91274b71a6896d294946": 0.00429002021910297, + "0xE5415826fB82f6eD742DF1c7Cc1075A7f30B93dB": 0.002080739050895121, + "0xEE9F7daD465396c800a1D834642Cbd33a9c457C1": 0.00182709435434377, + "0x385266390821237aBb50FA1416C0Ad1eDD821297": 0.002673342624040606, + "0xFd0Be09AAADaAb67523e8c6a9A3c1D657aCB2B5A": 0.002173032835990545, + "0x08da2423c9De4FDe646cCADae7F9360B598fDe3e": 0.002757000924171782, + "0x935eFc16A75a6f0B59fa91CcD21Af633A117f97F": 0.002368324258042765, + "0x76cC155EEE2e97A34AC53e8b89fc44690Da753a0": 0.001761908607125795, + "0xe67d3b0BDfd1D853FBcE6C0898b464e332a67B18": 0.002086906485358912, + "0x906c1c221E36E7b4CD851877761DE04F370F80C6": 0.002780461510499051, + "0xA33f160202959f527F096D7B98cf6c3971661BB6": 0.001697245905629146, + "0x0dD7762E2fe09c9eE2F5aCdeA19C102f7c16D8C2": 0.00418693339868185, + "0x78bD5d3a0E2d69F0B25d54Ce5293b4a651D3BE7b": 0.002853867607129667, + "0x580CFA8C6BA6e7fd648C2DaabD1CB19497527361": 0.002115504381733623, + "0x87f177d5DcbA5E0243c6986585e4526ab9a53E0E": 0.001626046093984024, + "0xd48010De315e10D071853b1466f0C273e766FA07": 0.002688410698092672, + "0xf6c180Da5a09e0BBc6E581295ee748EecfD97fda": 0.002316485322244625, + "0x5EBC1D2809f4DfcA9Cb518EFd2307fDFFC36D55d": 0.002575468710382712, + "0xf40C69E2825EFA3134900F3760172413bfA7b1bF": 0.002537650195321324, + "0xDB358049E4047372D1B61fF7fC545365e5abC8f2": 0.002659245595280388, + "0xc728B53E39F53868Cfeb1d2e7fe3d04E4A540C57": 0.002292904710477882, + "0x98f231dF15F9Ce204abB091e7048931D8FaA219C": 0.002892763889814343, + "0x293d1D1ecF84f3D4eDd869160791BC1d82f46Be1": 0.001994559739664688, + "0xEFE1fcEDe58d10606e89Fdcf7539035686C7E2aD": 0.003007120364445614, + "0x920c4B0a5D6323e621aa3E2dB56C18680934948C": 0.002514039964571351, + "0x81323Ebd3895062D441D4C59b52984515a2CE3F8": 0.001835000194923236, + "0xEe96828bf0E2B597aA87B70dCd432C9cd2191Ac9": 0.002251556683048407, + "0xDD7946a56efe8b70c95EBb5e689A05429d8fF5c5": 0.001693598501170026, + "0x8d47CD9B8b015B0F3865e8eE0b96b8125bb1F483": 0.002003864558087265, + "0x5D41C19A2Da44Fe8915b200827F20D0e3Bd1A0fE": 0.001679073812616587, + "0x9004d0B20DD00532DA4096758c8a49A45BDc25b2": 0.002500334662662412, + "0x77ba3a270911E240894120e6C7172BA87Ea066f1": 0.002682766264074122, + "0x68E3F28370B3d2916307A984F8f719dd398BEF3F": 0.002820122649446994, + "0x3DBeC4490aA615Bfef68F958aa0472841dC39575": 0.001860483910870576, + "0x877c0d5458E55837695Bf6a5C266aD576E9CB8e8": 0.002048791925980616, + "0xada1Ca2B1F0F649f4E5Fb2a0D7B6B35B31035D0F": 0.002720880278708769, + "0xcB0667F144C48f85257163fF1D77dC1D291705aB": 0.003498715741780207, + "0xb9F9B1b0afAD3e44Ed1700cBC02Bc3518ba07e46": 0.00226827792926723, + "0x6A044Ed4B502323BBCE9852E8377F955FCc5a879": 0.002201460317399873, + "0x2E92fA840407afD3F8383CB5d15219A141bf1647": 0.002439631599604938, + "0xd0A530121747B005af6Bed69426092cB525713d5": 0.00196288624580148, + "0x24452b43aAFA4311441b6e8E062547A1c8Cb187d": 0.001980610729916609, + "0x1fFef2Ccb8a6fD9b4ad10B2Acb75CDB5217E21E5": 0.003126459128130517, + "0x9e159E260516a00be5B5E79CC886c7b337a07919": 0.002697731125638408, + "0x52AF2a276a473fc39C9d941e157530Be067932f8": 0.003469358529670329, + "0xE17d773234Af63062F30F32168EB9BB1feb82868": 0.002385742250801048, + "0x1874A6131c2Bf2a3Ef9766A6B715b72CB7e7CE66": 0.001723360974893833, + "0x0001ECCcC50Ec508E32A67391c44D6E4593A6216": 0.002705279251893995, + "0x6bb7DC87De0C792eeE6DFfA8085211871bEa1795": 0.002577304709212131, + "0xd22Fb88152DB9e92dba53aa1782eC4B3CB3Abc41": 0.002226882991082361, + "0x9B6bFD7Ebbb28653849b180c91e47FD708494b16": 0.003273846142775289, + "0xFC00eE11903cc2056baD298AF8281D8C0DAf10B1": 0.00562890369132445, + "0x8a4b223fe38422673ac7fEf015a7Ffd8d4602111": 0.002268473895158049, + "0x2c26767989D49215d249e6D36F8e3FE2717f7DBd": 0.001704251957044974, + "0xC6FF00A2434e5c7b76Fc433A450E99f2A18021f7": 0.002525068033830699, + "0x7B97Bd846B7B2A14ffAC625341471c83C5736416": 0.001963433128904466, + "0xEbbf702859af1d2C14BF64E0aDE306280ad70676": 0.003216860351036911, + "0x192543002D23f5BcB575eB8Fd98c4ab4f8f38D35": 0.002036941618278949, + "0xc550d989FaA877bEdFA7Be17a2E9b25d183390dA": 0.001940311133881973, + "0xFBf458E9C2b859C2C9f1178757f3661b28b916f1": 0.003087769651049755, + "0x3C66AF5d18CdAea0268555211bE521D65EEF788F": 0.002383469179058243, + "0xAC59eB87Cafb364B02eF95060Af5cc3227218674": 0.002294083310537636, + "0x93974D5d0c3e08b21F446326E8CbaD996de0eD30": 0.002415734220835246, + "0xe473C4D2539b3F8D7D41DE67094C93ade6a606a0": 0.002656897374856424, + "0xb774575969396048adE1CFBc95183DB9970Fd14a": 0.002270922954326561, + "0xA6Dd28B47044Eb8e5b5b31E868f87521a83845a1": 0.004629956876262955, + "0xb53b4aeac59638b82637836F1607de00CbD8df65": 0.002840904595472547, + "0xc219529b1A5b3FB276680f6483c9B23717F0a45A": 0.00234452033366037, + "0x4D14c3b10f864A7Bcb18d59281abd6D6B4719140": 0.001885533806451908, + "0xC636DA66cfa5c363C4785835069dcAF85ab91feB": 0.002852715432303471, + "0xbDe8AD308c95144A253866517BA0b19DBCE6ca87": 0.002858706388131982, + "0xbcCe94Ff07351d29F11Fc32ECD293Db61BB8b036": 0.002374416067383082, + "0xaB3F384F14fE2eCE015b02F5d3C997f13A23901c": 0.002224409042031887, + "0x487Ad74b3480175a3dCe4D1450bEc3101a0D3A03": 0.002857060847489274, + "0xC87aEc1635dD19a70543503aaafc2AC3dAb312E0": 0.001847523032258428, + "0x33964313eFDDc415D3BceFdb5Ba30cf4b9a35Aa8": 0.002081215042683386, + "0xaBb1B05EF4076F6aFAe5594a397c336169167d7A": 0.00198125992618816, + "0x204b6Aa42673746e44d63519A4dCca4F1Ff0493c": 0.002434127591187453, + "0xcA51c6db7fd913fe607452F49442b57B6B3b4966": 0.002489717163428571, + "0x46fEbcE9CCDA36bbc2dAc12BACB7ba09D6Eb28dc": 0.002178137748936052, + "0x5339365192474f45c60FCfDEE1f0737Bcf818899": 0.004132302013022438, + "0xd3A0a507a01A4f4b37d7135650da8407b1F52875": 0.001968425506017181, + "0x8bd7B5E860998607715Da42944cc9DE3486A3Ae2": 0.001948964292711452, + "0x2E63285A34401b5A2Cb590823628087A73448d58": 0.002738743835806562, + "0x736FdC52e70FBF89832C41b3d8Cc8f6A08071c8A": 0.002183994565185911, + "0xB3837d1f993bfD8BDf73739e7dBbC25a88d77f45": 0.001744347753342834, + "0x37B13b174cE62986dc01173ca56eA17dd65D2b3B": 0.002061712205986289, + "0x3F180F32AeD8C10Ce46065e05185Abc69F1D70B8": 0.002378312987288703, + "0x8c5270f1BF11D5e5c974b819824E9999f09AF6ff": 0.001936630905632149, + "0x73cDE0e4F0480EA6B98Bfa292Ea936685716af4D": 0.001921885254952683, + "0x9a4773EeEE73e34e1EE0E9A64E4b7453b0b04246": 0.002004538747449745, + "0xD867304947F3601396D4a2e30B461161Da9A9585": 0.002117463828958347, + "0xDA110A01632D328787F51815a40d22B183010828": 0.002027062550642055, + "0x6d4a30dF22b53fB93A587DA3942722D614c05881": 0.002262833679110389, + "0x18BA92da2C6548de0559f47292930e160BAAB915": 0.00429988449247499, + "0x211B5a05FF9792aD7cB5fe340A95D770f2F628F0": 0.00203702156821147, + "0x6B7f377bc115eEfA0c26bE99cA45CB126E52e4B7": 0.001968488885299037, + "0xFdCeF87286E0d856378Ee6540B689F89335b9bEa": 0.004360581388191505, + "0x8eAe5686D373909Be71fF215D20f9100cFa0b923": 0.002281845117283963, + "0xF59051d8627fD3CB51Ee80af862E994FC66e34Ec": 0.002065974454525136, + "0x13F0F09Df6A13f4e27726718959b758EdaCbb9A5": 0.001746550675734873, + "0xD71A615356526C74f8Df8B0489E29e0ce903662c": 0.002370258403462476, + "0x72324D5642def7DCC2a393Bd99A8fd28a8063008": 0.001816268032283663, + "0x8A7290F8E67633338a97ca0fD6137776CE48C153": 0.002705020243189572, + "0x283cb62BAA59AE1e91849dEAb323470797a369C1": 0.002104612846654839, + "0x1F9a88907bb04e5F4c72d729871C84829dF6D865": 0.002654602193320772, + "0xb65d4d37609f217495A6ba41b7A330E94Fa810f4": 0.001851583822422721, + "0x179716C31cD24092f276F9f02FA85DC66cf93e3E": 0.001884210335679996, + "0xE1A39c7F41c8cfF930fe22fA5C754a3bd8e817B2": 0.002644649362198619, + "0x14B6aC46b020aB806DdfD2b350d45515FC3CD7c6": 0.003555617234322361, + "0xC4A798ee99b3A6b046aB3890cfEDA8313dCC0ccc": 0.003255094815968478, + "0x937FB0E5573091e7473539E351c94d3369877889": 0.003171151611411905, + "0xc7A37c32cEeE947FA4df30CcAa6587aFe3802E2B": 0.001969136438790425, + "0xc0B82892B3725F876382C97Fb172CB6f30d52342": 0.002218862048314844, + "0xfCfA494c13409172109f161C428499B39682fFa4": 0.002306816287439061, + "0xDb76dB8445d85E225996EAED9D7850349B559605": 0.003083071608354915, + "0x31BB1525F2F0d146bEC61cf51E20F729BE5d49AF": 0.002241173795053887, + "0x0f8fe8e8B7Ad38615904a08e821E875fa19d8b67": 0.00279180236763162, + "0x8269BA24B05b661c3a7581124c951BF17F97E548": 0.00197858729945255, + "0x28e7A6Cf69EAeAeBE6F8b3B5F0C7a19326E41C13": 0.002357902431376599, + "0x57c106cD365B436aC4a2Feb8690CC29FB32E8773": 0.002017195737994131, + "0xAAfA1bF92688084C3446fDC741c1453379cD72df": 0.002202679288357255, + "0x80Eb0616c7FF368b5C3FE6ff4DbDAeCECD6f2369": 0.002811987314524522, + "0x20F56C9551156c6B67a66520BA233418356Fa4a2": 0.002214660861233108, + "0xDA4a958c4Be19CBDbAD87eCc0F7334eB850e80FA": 0.002666566643783739, + "0x6386563A17afF59011b66cbFa4b1C0aA98b82BD8": 0.002077277718407388, + "0x61DA94BdC7C63d9e1f507794092EC017Dac5B4d5": 0.001966516967624927, + "0x80e315140990Cf27b2b1Fec9aa6281E4230C81c7": 0.002445806253357523, + "0x4F6D4456e2Ea5D0Accaa25a116869b7dCC99d56e": 0.002517207654268234, + "0x1E39dC3699206d82d50E23Ba96a6A0427A5E265D": 0.002373375152180697, + "0x31C44F5af149d2C9374f6A4d7253d0Fd69b127C9": 0.002874224764595135, + "0xe98ED74D2AEd7b818FA01A839715A917D1341bC5": 0.002346081131887372, + "0x9f0dE0312D98D6ADA95C286cECEaFd4B5822a0b4": 0.003336158965936036, + "0x6DeB5c18F9d75d5D8128F8F42cEB225dD234F960": 0.002349872021553751, + "0x05ef6560a7c9C2951B35AFea0868382487e9B77F": 0.002205789037540226, + "0xb6A927c68719c2e04CBA42e52aa980d9E151C770": 0.003637552107549585, + "0x60359e2626f4A264a675b2810373CcFbc117d686": 0.001778917256670033, + "0x553E206F3F504c3E02258cdB93614e0115827D1d": 0.002192347385653543, + "0xBFC30Ffd3a9fB40a06486636170dE5d0dDfe0b34": 0.002334357385007793, + "0xe79464c19fe30E6Db25A74aECf65AABeb92A44dC": 0.002261355269122045, + "0x842a9f069436031cF7DAEC332b3F1844b68e95bC": 0.004145496771057545, + "0x11AB7Cce0080b8472CA7f924fD3B1cc4cc962A40": 0.002910495575416164, + "0x04a5031F8365C88B6b753C283d89513F59894d27": 0.003683970373187025, + "0x31103af6CB9B2F306E10407DCa5E54Fdf35839A2": 0.002041991179854602, + "0xcF2e28E5E57461254B8B254AE6D03c89d19BF743": 0.002433666219770882, + "0xf58079148CBB5478eC96B59a48E0607A054Fd893": 0.003833681082359973, + "0x06080E6dAc4Fdff338dc6d41E0D5C090f9b28B89": 0.005930022454234095, + "0xCab8e410C5042b8Dbb7704d0332A195AeC4B092E": 0.003334900512549463, + "0x647426f6eD6F87eD0Eab29bB32Ad75748EE2c56e": 0.001782497155042061, + "0x15F5255f4F00CeDeB2aBe37B15127E80623DF3bf": 0.002289648289722499, + "0x3AE8Bb6637796057A7F9aC43A11F0Bab2e511842": 0.003801540904657012, + "0xEAd7892Ccd5d7dCD93875c359D07F4150926c092": 0.002354683478567358, + "0x8C386C860C757A44696D276B42a997FDf0cE1BB2": 0.002404947653439329, + "0x2D6ed76F969bBa92f396D92083Eb2bC2BD8545E8": 0.002458257962974371, + "0x53A30736a43c413Edf5C13F049D34d3Dd57B7128": 0.004272313703274993, + "0xcA64E575083e0a8f9C73Ffc214D78027d98FC51b": 0.001679989308882936, + "0x0bB9f7c03eb9C1A31C25b3B7E61E2c503c30B81d": 0.001597161701432717, + "0x430C4E68894177ae43F52b4fd643fd2D6c7d2e5F": 0.001668447649865182, + "0x92BDD46aEbA9C2f4b55edDB522382261b62220EA": 0.001808404346239205, + "0xBB68400DaA7AE42392DE56026F9b5c1E6F923e3c": 0.0018703412440221, + "0x8E5FDb6A37f2389fa638b2E144809C7d7bc21E4A": 0.001892662617702673, + "0x63d4E757AE3aa82751094BeF2Ce37dB0b303959E": 0.001805423384123942, + "0x48767f20ec0aCA7f47b3dA2Cc32Bc06549470A9B": 0.001907957502574773, + "0xd273f87e43851Fa7f0518E3B385c0d964621E3c6": 0.001935716072888589, + "0x27459423cc0f816D965A97dCB90fa45774a18C3A": 0.001578242434000651, + "0xB8C8D5Ca07C82e7E4c73f0cE93E2a7dD08956cb2": 0.002384046716524769, + "0x9CF0Ea03C7e23f2C466d48f6BfA14A85EF7CF4c8": 0.001957706971759749, + "0x2f55877D6D8A42BD87e0325201cD15d63aBf5866": 0.002048192473477306, + "0xc0Dc4010e76fbD53C82b19f8f8d7604e37289fB4": 0.002005055884954264, + "0x4010650464cc07e447ae10d3135F8c82554b2528": 0.001997217534238371, + "0x40bFe49745Df251fA0Ac7a3f983101FF170c389b": 0.001900372216153574, + "0x5060020e66031c324f77ae24F14Cfcea6A688Cb7": 0.001801859299699265, + "0x415106767827A7856D826458a486a87e0e15097C": 0.001938718628380324, + "0x7cA4b00a3aEc07F978D127E69bC16484a038619C": 0.001969395521992709, + "0x3b84E3FFBe845c0349E258f243B5F00cA22Ba587": 0.001528384079773807, + "0x49135912edB24205E1b0E7b9eA71887edC59D50a": 0.002026742324048479, + "0xC590314dE55b52C96eb34eDbC4b55cf8Fc8cD510": 0.00194934565473672, + "0xdE7250D923299e1EcEDc0743b159E95B945082d9": 0.002079697812107481, + "0x79c8039C0cfBDC3cdF8d66eFB1AD2836E698ea3c": 0.003797819094682142, + "0xb4C907afdA8C362B58281B5c43A2e7b79f089D09": 0.002097628399877404, + "0x6748445D83259a6709e459873323324a54072d1B": 0.002001752446904463, + "0x3Bd0cbC96186Cc3eafB304111e6Ad20a4Ac92F8E": 0.00204729036838602, + "0x630A63523A4f079201fb548114695d8da1d742F5": 0.002073425637650344, + "0x26fd27a26a6C1EdE36214512ee4E56440a0cEbF5": 0.002144074153475223, + "0xd1Cd2FD35C63e27A33f0b5ECf9C92ba1AB9c6dF1": 0.002094263944821631, + "0xD8C3cd1A7576efC723357B7158318f0CeE0e30F6": 0.002024377267106187, + "0x216bf62B05246bf4a1694061E8769464A6BFD812": 0.002073398094613247, + "0x28cCfB369Fb97929068Cd30A390D37fee0037C61": 0.002052479873496117, + "0x5d2150E5d88A30d5793c6C49959B8f7d350a36A5": 0.002034447795765214, + "0x803E38C54240244046545B421FfFE4e05BCD5D0B": 0.003265067297845923, + "0xC4E70E97A54bbf4f9796099282fA47397da4b4D9": 0.002154829032857608, + "0xE7Ff7aD54492A38AfB99bb5d8B897C5f93A66f47": 0.001910637050676174, + "0x1f12254be217Cf9E9BE46960c36970390b07f16E": 0.001943302394976296, + "0xc42851d834037cA1f82668596233DcA69654867C": 0.001879455523892957, + "0xeC2Bae309d0A18D7dDfD4EA0f17a2f60817f4E9c": 0.001767323860348901, + "0x6137A7c745CE7ed7a6eC8cA4AA5B635fF17d5467": 0.001872701278265619, + "0xfA8cE8D44271201e9Ce37838ccb75BA482d597F6": 0.001912939715765623, + "0x4AF80E6414EfeD0B91FA19c0D19B46C381beCB7c": 0.00217027694311853, + "0x54d6390e19Ce818209bD3B53a5d0D2E0c6FaAe04": 0.002120078319402806, + "0x4241b7A1b190F97213cc092237833305af62f563": 0.00178375674731106, + "0x2F966072f36109F27539E5EdEfA741912206E491": 0.001861805239858619, + "0xa4D849e3b972088F72ed2899f2945410Cd784Ba7": 0.004577354517040908, + "0xA4635d0D583F6A5335Aa3CE39CA7D7c2e7a7D01C": 0.002141863247990772, + "0x82aC3585ab4C876ACf7bC28CB6833A65Ba7EC7Db": 0.006395750574736568, + "0xF87D9a0536f4a726d37aE619F506f019FbC9C272": 0.004170088104519049, + "0x58CFC8ee2132847AfcDc67CdeFA92b2D21eB5Ba9": 0.002158001263614954, + "0xF3C162C189341D024ee753223101612ABF6fCf9c": 0.002049559564009603, + "0x09a10823b87Aed0A3c348C0a20d69d3276192913": 0.00210276480948007, + "0x336701baB9Ee6a829a5d610A301E978ACed202C4": 0.002083520760457772, + "0x90DAeA825E9D43043C05725a4196382B881b1a73": 0.001720786292808713, + "0x3895799b03759423C728Eed3aa0C0414F5179f79": 0.002305384599092174, + "0x240d2243D90E8968D0c8E807202bC8a2DE0dC53C": 0.004495392078712643, + "0x5BC3D8339754B5D4455355B3C5CF2639fB943942": 0.002467419637371387, + "0xDb6D77A78b4da7286E3C1A6828EB83D9F0cCA527": 0.002167530850958131, + "0x9cDf01F751864333515c209B733501FA5bB14143": 0.002185643464590769, + "0x3009e81f3b145c71A409313306Babb0AcC219aDb": 0.002191803422363282, + "0x496cdac4854423c66EB0Da89f9e96Ef9D8312ef8": 0.002159273865373886, + "0x27064Cc4FE5bd5a20d0e5A21390a45F5a44Bf7D3": 0.003961851138096293, + "0xC8a4C0aA604f225aA006835672CCb68e661f7Dbe": 0.002176373723890783, + "0xadEF6E3234cA45D5bc3C2bdDD4bF427862c60335": 0.002150676093126754, + "0x92A5D7978E46759EDbAeF30012E4c60C8DEeE0A7": 0.00207664854244389, + "0x8F559d9F555131932345C2A9546df023c54E096F": 0.00208396774457339, + "0xaB0Ea94509caa5703362EAaFd8087d205f97a340": 0.002154288547798738, + "0x3b59d6B33E8F8dDF9734917a40056D07548a4444": 0.002121351327755143, + "0xe63757E3cD485C9b35b3a972fFFA2d91B8649483": 0.002158707834076356, + "0xb7351893B4108a62Cd765Cdaa8eD6e8544E9BBF2": 0.004452796847633249, + "0xF5C14eE163B349ccC50eBe31500078f745500580": 0.003324348930730306, + "0x28eC3b46262c614df6D5A3FF2726c9746F1d1675": 0.003821695698421384, + "0x95aFE39b111176629BA6eE5F2C1c86eF973226FC": 0.003567666523845517, + "0xFC2ed2462f05608b6a21cf1A43bf24a6Ea08c4CD": 0.00249987438722986, + "0x18fEe6e511646B8ea2e4964277574F637Bc03f3b": 0.001190540713946702, + "0x64125D5e793b05F0290e4d322a5b05Fdd3EC2674": 0.002671203817386806, + "0xc477F54B5ABBc255f366aC54FD924a896da5e6a3": 0.002715969105011345, + "0xe2A2f2A338EB923454e331422e9b6ef872325Bb5": 0.002963949452858539, + "0x636223B012C4d186153CDDd584F3f4F733257Df9": 0.002688861179859361, + "0x48d26F8F052d80E943694360899C4bB83344FdBC": 0.002463012291026319, + "0xe35c3f0ad5972eC28773b31598527a9A0D0B22a6": 0.00675705009207018, + "0x94478F8B27CeDD6177E238F48164A45245C854C1": 0.003089336345702534, + "0xf20737e48160A87Dc9D1B26D8B63C796d2F1EA91": 0.006933872652300925, + "0xB21bE96Dc75717272402eF97A5CC144544263E3c": 0.005536440539501137, + "0x0Ab373B6D140dCF3919E17D277Ad1Cb818B1EA53": 0.003439729350619882, + "0x7643d5cA36aec928C15181F02A4263D9E1FF594B": 0.003943162056261515, + "0x8b992B29e691058a1EDD32378dc11E6480E0eE24": 0.003135312284061618, + "0xCB4bB9D616f27dc84a256b768B4C393fA8010caa": 0.002462612262059649, + "0xa1df756B063A867bfB3cf1fa611592Aa646bF4A8": 0.005852262357297845, + "0x84252729ed32fA0fa1b454b8f58B71758239d627": 0.002982647926700346, + "0x314FDb3cE492ee03a0eb037De01Ef53757C73936": 0.005114072827208679, + "0x4B8aef878255F6242606Fe5e73D659004F5A34fA": 0.004089210061009931, + "0x1CEe194Da1eEfe344fb2e7f46faB7D3A65C078e5": 0.002312788443234657, + "0xFa93E76Bb7de1071D6f9C0f77Af883c2a944B2d1": 0.002257010138525282, + "0x9F9a6867d9Ed4630DAC6d3F9C125248600DF03BE": 0.003073134783596081, + "0x38F855e64542641f9e254f6e527351b55b560C0e": 0.002825784332176653, + "0x2EA989edfCac6531cd912d09A456f9809BaA5377": 0.003807470505939431, + "0x1D1C0E8394e6619Bf75C0F2e9321B3D324409283": 0.001837957240841404, + "0xA432B3e56A6F4dA4574cDF2f27bea9bbb5543011": 0.002699356998973827, + "0xD08c8A6163c3510E5aEaD801a32B985Df0480305": 0.002407680382034125, + "0xd63E8ebC524cE89d9aCB28cf24dC9654D8D718D5": 0.002207238985490749, + "0x967bE9835Ca02EDf7A8c7dfE26519763c1611277": 0.004080085421279705, + "0xfb043BBaF380A06c01750ce0a6324e38eD11110c": 0.002746534282944276, + "0x99BcEa6bB0403927fB3c038163478D5b42082Fd9": 0.003252891646673789, + "0xa02B48ce476ADe8A3f635857dCaF9475F79AD6EB": 0.004454075480142402, + "0xDA6De31eB28a648884247708385a0B8027E6C4b3": 0.003440452333532066, + "0xf0b7e13a31eC9D21c05fcD91f71CB82498864D5F": 0.002373363679572276, + "0x1D463047F4c954D70d2718AdF96c43f24aC19dEe": 0.003092168172152354, + "0x6573e30Ee0ad46BC9aFA0C2aDb0D3f147D658EFE": 0.003519102055849112, + "0x0b52fEE7CF1A6d0dC2993C158eAF6B23B998150d": 0.001604261059495751, + "0xB538544c0d0971dc6cdcc17a1Ac50A02bc0A8B0F": 0.00222548514564387, + "0x379570ffA1A60790A8B5955cf643F868D6ad4c9E": 0.004721394901375098, + "0x0Fb0e2fF6739060A811190b94b6D7da786735be0": 0.002806999977882783, + "0x7e05319D039b2F4Ba06Adad9939aC980224F2Dcd": 0.001512891434415181, + "0xdD2CB8c9b8FCCDc366AE60f4FE1c99813Ec0d18e": 0.004259894827448128, + "0x000000000000f8E4fE2a98574fa81C728e340764": 0.002377264840457217, + "0xA8E20D1B16c2821c2E17A58eB9c92c2ec7699283": 0.002479691177114398, + "0x2f8320C2Dc28681Aa5BBF92e79C37BE656a7D5F1": 0.004294613479319184, + "0x574c891acEdddeB18d112DcE69F87241794307c7": 0.008062115864025662, + "0x50229CB8317ECF297E65cdDBCe88e0814eecdf9E": 0.003894596347874161, + "0x7975ae9ACd918f2c2F77a365e9077d098A102C86": 0.004988888145922164, + "0x340B8E5B52619c0ade021F806348e11274783740": 0.00457914558466472, + "0x203F9674bE9782BC4B194625Ee9dC6800e65B2D8": 0.004162245201320089, + "0x114D4348265E8302980e7BA2db441FBF09EC3303": 0.0094111791170941, + "0xd2Ad096Ed0757dc4954f66765dea737e5a687dfF": 0.002605715127893927, + "0xC0Afc9BaEcE062D4cDbbb56eFBe33BBd827e560d": 0.003202034319834164, + "0x3D65eD138686e2AD54006d4Db83aD4597D645370": 0.00193052380790342, + "0xd17EB770E4E209C186cEDA0d7E09bFC03D792b36": 0.002444532750045719, + "0x1DE746BB64222C304b38F84613745323cB6C7fC1": 0.002352447814896709, + "0x60C26C2196100F38a78337BEE71BE31706C95eE7": 0.001655752626636816, + "0x5fEF7B3AaFe2C4c2F415777DCd4E4bef9afe5465": 0.001585498804463263, + "0x86CC5e1e8fb20102Fa7A0fa4afeAf1Cbe1BE273D": 0.001941495645864825, + "0x10282beB038378EF5cD112c0e1acAA4209F0CD16": 0.001473011355999811, + "0x9a0705ab1Cb8C5139171911cF0a689DA2F54830d": 0.001395572431212953, + "0x83f7321a05876f0bF973bEc3033858bb0b91e37f": 0.001361576855563647, + "0xa37023933715Ae766f38689a75a525f351c50C1a": 0.001759039239254058, + "0x49BA7fC7a31b6d49e0C7eDcFF76C1678078EC8F2": 0.001356832011178362, + "0xd3addbb98D1C9B8C1c6ac6e73cf9cbd9390aEEFA": 0.001379564708619881, + "0x8112867DBBA81a7f4A2e1d8f6946FC269667a6d5": 0.003924009830067509, + "0x52b88b1f9e4B0E8B3738c2f4AD0EcA5B73ab31F9": 0.000454179915563843, + "0x96c00fDDa3f3129A55C0Bc9b48Ef504C3D5594e4": 0.001711550292186265, + "0xeF7220723E580F03A8f8b076Ee8623b1dF0103fa": 0.001624367887671144, + "0xD25f7e77386F9f797b64E878A3D060956de99163": 0.002348464183054942, + "0x1D98cAEFaB4bb543d98Ec6136E1498c34AF32c85": 0.002245807598398271, + "0xE281665477e27e21Dd6e96e9736f1E6Af7Cbe999": 0.000976429233287752, + "0xA882C04377ff264B776401aD7B5807F1eCB38A9C": 0.00014262328225746, + "0xd99654a8F38797dEDFAd7699B799D7d5ce9DfC2D": 0.001007709732030056, + "0xF055cbe9B6b30D64AC1D7305cde7BA6c0993C86a": 0.000928375080217465, + "0x773B42430376334c327831C1AaB73f44A379F58f": 0.001439888802245613, + "0x07Ff78e67279D89328508f2074f45A1eA9092926": 0.001513585161799744, + "0x1EdB50d83f76382480886597A3023fC318B2ca66": 0.000293263988443431, + "0x590a8DaE6861CDc2b0300096ec6E4dc6cF2143F6": 0.000172206060327732, + "0x59abe7667AaE173733E4B44024509D5523a88aC9": 0.000014255312625463, + "0xEBd0A5BbB54a6779ea429d6b2969704AfB627ec6": 0.000102336399453276, + "0x0Cd5f80B67a2E3A8144F49Fd8763Facf60957b2a": 0.00011707135715715 + } +} \ No newline at end of file diff --git a/packages/affiliates/gas-rebate/voterGasRebateV2Utils.ts b/packages/affiliates/gas-rebate/voterGasRebateV2Utils.ts index 73b871291f..bf9fad07c0 100644 --- a/packages/affiliates/gas-rebate/voterGasRebateV2Utils.ts +++ b/packages/affiliates/gas-rebate/voterGasRebateV2Utils.ts @@ -23,6 +23,13 @@ export interface CalculateVoterGasRebateV2Config { maxBlockLookBack: number; transactionConcurrency: number; maxPriorityFee: BigNumber | null; + // How many blocks before fromBlock to scan for commit transactions of reveals that straddle the + // month boundary (committed in the previous month, revealed at the start of this one). Set to 0 to + // disable the boundary lookback. + commitLookbackBlocks?: number; + // Lowercased addresses that must not receive a rebate (e.g. delegate voters). Transactions sent + // from these addresses are dropped from the payout. + excludedAddresses?: Set; retryConfig?: RetryConfig; } @@ -67,6 +74,7 @@ export interface EventCollectionStats { receiptValidationCount: number; commitEventCount: number; revealEventCount: number; + boundaryCommitEventsRecovered: number; validationPassed: boolean; } @@ -85,6 +93,8 @@ export interface RebateComputationResult { transactionsToRefund: TransactionReceipt[]; shareholderPayoutWei: { [address: string]: BigNumber }; totalRebateWei: BigNumber; + excludedVoterCount: number; + excludedRebateWei: BigNumber; transactionEvidence: RebateTransactionEvidence[]; eventCollectionStats: EventCollectionStats; anomalies: RebateAnomaly[]; @@ -96,12 +106,17 @@ export interface MonthlyAuditReportConfig { maxPriorityFeeGwei: string | null; maxPriorityFeeWei: string | null; maxBlockLookBack: number; + commitLookbackBlocks: number; transactionConcurrency: number; maxRetries: number; retryDelay: number; overrideFromBlockConfigured: boolean; overrideToBlockConfigured: boolean; customNodeUrlConfigured: boolean; + // SHA-256 of the sorted lowercased exclusion list (null when no list is applied). Recorded instead + // of the addresses so the audit stays reproducible without publishing the private list. + exclusionListHash: string | null; + exclusionListSize: number; } export interface MonthlyAuditReportOptions { @@ -129,10 +144,13 @@ export interface MonthlyAuditReport { matchedCommitEvents: number; transactions: number; voters: number; + excludedVoters: number; }; payout: { totalRebateWei: string; totalRebateEth: string; + excludedRebateWei: string; + excludedRebateEth: string; }; eventCollection: EventCollectionStats; validation: { @@ -394,10 +412,13 @@ export function buildMonthlyAuditReport( matchedCommitEvents: result.matchingCommitEvents.length, transactions: result.transactionsToRefund.length, voters: Object.keys(result.shareholderPayoutWei).length, + excludedVoters: result.excludedVoterCount, }, payout: { totalRebateWei: result.totalRebateWei.toString(), totalRebateEth: utils.formatEther(result.totalRebateWei), + excludedRebateWei: result.excludedRebateWei.toString(), + excludedRebateEth: utils.formatEther(result.excludedRebateWei), }, eventCollection: { ...result.eventCollectionStats, @@ -439,12 +460,15 @@ export function formatMonthlyAuditMarkdown(report: MonthlyAuditReport): string { `- Minimum staked tokens: ${config.minStakedTokens} UMA (${config.minStakedTokensWei} wei)`, `- Max priority fee: ${config.maxPriorityFeeGwei === null ? "none" : `${config.maxPriorityFeeGwei} gwei`}`, `- Max block lookback: ${config.maxBlockLookBack}`, + `- Commit lookback blocks: ${config.commitLookbackBlocks ?? 0}`, `- Transaction concurrency: ${config.transactionConcurrency}`, `- Max retries: ${config.maxRetries}`, `- Retry delay: ${config.retryDelay} ms`, `- Override from block configured: ${config.overrideFromBlockConfigured}`, `- Override to block configured: ${config.overrideToBlockConfigured}`, `- Custom node URL configured: ${config.customNodeUrlConfigured}`, + `- Exclusion list size: ${config.exclusionListSize ?? 0}`, + `- Exclusion list SHA-256: ${config.exclusionListHash ?? "none"}`, "", "## Summary", "", @@ -454,7 +478,9 @@ export function formatMonthlyAuditMarkdown(report: MonthlyAuditReport): string { `- Matched commit events: ${report.counts.matchedCommitEvents}`, `- Transactions: ${report.counts.transactions}`, `- Voters: ${report.counts.voters}`, + `- Excluded voters: ${report.counts.excludedVoters}`, `- Total payout: ${report.payout.totalRebateWei} wei (${report.payout.totalRebateEth} ETH)`, + `- Excluded rebate: ${report.payout.excludedRebateWei} wei (${report.payout.excludedRebateEth} ETH)`, "", "## Event Collection", "", @@ -467,6 +493,7 @@ export function formatMonthlyAuditMarkdown(report: MonthlyAuditReport): string { `- Validation failures: ${collection.validationFailures}`, `- Provider errors: ${collection.providerErrors}`, `- Receipt validations: ${collection.receiptValidationCount}`, + `- Boundary commits recovered: ${collection.boundaryCommitEventsRecovered ?? 0}`, "", "## Anomalies", "", @@ -572,6 +599,7 @@ function createEventCollectionStats(maxBlockLookBack: number): EventCollectionSt receiptValidationCount: 0, commitEventCount: 0, revealEventCount: 0, + boundaryCommitEventsRecovered: 0, validationPassed: false, }; } @@ -922,6 +950,104 @@ async function getTransactionsFromEvents( ); } +function mergeCollectionStats(target: EventCollectionStats, source: EventCollectionStats) { + target.rangesQueried += source.rangesQueried; + target.queryAttempts += source.queryAttempts; + target.retryCount += source.retryCount; + target.splitCount += source.splitCount; + target.validationFailures += source.validationFailures; + target.providerErrors += source.providerErrors; + target.receiptValidationCount += source.receiptValidationCount; + target.validationPassed = target.validationPassed && source.validationPassed; +} + +// Recovers the commit transactions for eligible reveals whose commit landed before fromBlock (votes +// committed in the previous month but revealed at the start of this one). Without this the commit gas +// is reimbursed by neither monthly payout: this month's range does not contain the commit, and the +// previous month never matched it because the reveal fell outside its range. A commit transaction is +// skipped when any of the votes it commits was eligibly revealed before fromBlock, since the previous +// month already reimbursed that transaction. Reveals whose commit is not found within the lookback +// window remain reported as reveal_missing_commit anomalies. +async function recoverBoundaryCommitEvents( + voting: VotingV2, + fromBlock: number, + commitLookbackBlocks: number, + minTokens: BigNumber, + maxBlockLookBack: number, + transactionConcurrency: number, + missingCommitRevealEvents: VoteRevealedEvent[], + receiptByTransactionHash: Map, + eventCollectionStats: EventCollectionStats, + anomalies: RebateAnomaly[], + retryConfig?: RetryConfig +): Promise { + const flagUnresolved = (revealEvents: VoteRevealedEvent[], toBlock: number) => + anomalies.push( + ...revealEvents.map((event) => ({ + type: "reveal_missing_commit" as const, + message: `Eligible reveal ${event.transactionHash} has no matching commit event in the collected block range`, + fromBlock, + toBlock, + transactionHash: event.transactionHash, + voter: event.args.voter, + })) + ); + + if (missingCommitRevealEvents.length === 0) return []; + + const lookbackToBlock = fromBlock - 1; + const lookbackFromBlock = Math.max(0, fromBlock - commitLookbackBlocks); + if (commitLookbackBlocks <= 0 || fromBlock <= 0 || lookbackFromBlock > lookbackToBlock) { + flagUnresolved(missingCommitRevealEvents, lookbackToBlock); + return []; + } + + const lookback = await collectVotingV2Events({ + voting, + fromBlock: lookbackFromBlock, + toBlock: lookbackToBlock, + maxBlockLookBack, + transactionConcurrency, + retryConfig, + }); + mergeCollectionStats(eventCollectionStats, lookback.eventCollectionStats); + anomalies.push(...lookback.anomalies); + for (const [transactionHash, receipt] of lookback.receiptByTransactionHash) { + receiptByTransactionHash.set(transactionHash, receipt); + } + + const lookbackUniqueCommitEvents = getUniqueCommitEvents(lookback.commitEvents); + + const priorMonthEligibleVoteKeys = new Set( + lookback.revealEvents.filter((event) => event.args.numTokens.gte(minTokens)).map(getVoteKey) + ); + const commitVoteKeysByTransaction = new Map(); + for (const event of lookback.commitEvents) { + const voteKeys = commitVoteKeysByTransaction.get(event.transactionHash) || []; + voteKeys.push(getVoteKey(event)); + commitVoteKeysByTransaction.set(event.transactionHash, voteKeys); + } + const priorMonthOwnedTransactions = new Set(); + for (const [transactionHash, voteKeys] of commitVoteKeysByTransaction) { + if (voteKeys.some((voteKey) => priorMonthEligibleVoteKeys.has(voteKey))) + priorMonthOwnedTransactions.add(transactionHash); + } + + const recoveredCommitEvents: VoteCommittedEvent[] = []; + const unresolvedRevealEvents: VoteRevealedEvent[] = []; + for (const revealEvent of missingCommitRevealEvents) { + const commitEvent = lookbackUniqueCommitEvents.get(getVoteKey(revealEvent)); + if (!commitEvent) { + unresolvedRevealEvents.push(revealEvent); + continue; + } + if (!priorMonthOwnedTransactions.has(commitEvent.transactionHash)) recoveredCommitEvents.push(commitEvent); + } + + flagUnresolved(unresolvedRevealEvents, lookbackToBlock); + return recoveredCommitEvents; +} + export async function calculateVoterGasRebateV2({ voting, fromBlock, @@ -930,6 +1056,8 @@ export async function calculateVoterGasRebateV2({ maxBlockLookBack, transactionConcurrency, maxPriorityFee, + commitLookbackBlocks = 50000, + excludedAddresses, retryConfig, }: CalculateVoterGasRebateV2Config): Promise { const eventCollection = await collectVotingV2Events({ @@ -948,20 +1076,24 @@ export async function calculateVoterGasRebateV2({ const matchingCommitEvents = getMatchingCommitEvents(uniqueCommitEvents, eligibleRevealEvents); const missingCommitRevealEvents = eligibleRevealEvents.filter((event) => !uniqueCommitEvents.has(getVoteKey(event))); - anomalies.push( - ...missingCommitRevealEvents.map((event) => ({ - type: "reveal_missing_commit" as const, - message: `Eligible reveal ${event.transactionHash} has no matching commit event in the collected block range`, - fromBlock, - toBlock, - transactionHash: event.transactionHash, - voter: event.args.voter, - })) + const recoveredCommitEvents = await recoverBoundaryCommitEvents( + voting, + fromBlock, + commitLookbackBlocks, + minTokens, + maxBlockLookBack, + transactionConcurrency, + missingCommitRevealEvents, + receiptByTransactionHash, + eventCollectionStats, + anomalies, + retryConfig ); + eventCollectionStats.boundaryCommitEventsRecovered = recoveredCommitEvents.length; const commitTransactions = await getTransactionsFromEvents( voting, - matchingCommitEvents, + [...matchingCommitEvents, ...recoveredCommitEvents], transactionConcurrency, retryConfig, receiptByTransactionHash @@ -1026,6 +1158,24 @@ export async function calculateVoterGasRebateV2({ }); } + // Apply the delegate exclusion list: excluded addresses (voter/caller of the transaction) receive + // no rebate. Filtering here keeps the payout, totals, and transaction evidence consistent. + let excludedVoterCount = 0; + let excludedRebateWei = BigNumber.from(0); + let filteredTransactionEvidence = transactionEvidence; + if (excludedAddresses && excludedAddresses.size > 0) { + for (const address of Object.keys(shareholderPayoutWei)) { + if (excludedAddresses.has(address.toLowerCase())) { + excludedRebateWei = excludedRebateWei.add(shareholderPayoutWei[address]); + excludedVoterCount++; + delete shareholderPayoutWei[address]; + } + } + filteredTransactionEvidence = transactionEvidence.filter( + (evidence) => !excludedAddresses.has(evidence.from.toLowerCase()) + ); + } + const totalRebateWei = Object.values(shareholderPayoutWei).reduce((a, b) => a.add(b), BigNumber.from(0)); return { @@ -1043,7 +1193,9 @@ export async function calculateVoterGasRebateV2({ transactionsToRefund, shareholderPayoutWei, totalRebateWei, - transactionEvidence, + excludedVoterCount, + excludedRebateWei, + transactionEvidence: filteredTransactionEvidence, eventCollectionStats, anomalies, }; diff --git a/packages/affiliates/test/mocha-local/gas-rebate/VoterGasRebateV2Utils.js b/packages/affiliates/test/mocha-local/gas-rebate/VoterGasRebateV2Utils.js index 4ce9b288e1..34f62d3f0e 100644 --- a/packages/affiliates/test/mocha-local/gas-rebate/VoterGasRebateV2Utils.js +++ b/packages/affiliates/test/mocha-local/gas-rebate/VoterGasRebateV2Utils.js @@ -93,12 +93,15 @@ function makeMonthlyAuditConfig(overrides = {}) { maxPriorityFeeGwei: "0.001", maxPriorityFeeWei: "1000000", maxBlockLookBack: 250, + commitLookbackBlocks: 50000, transactionConcurrency: 100, maxRetries: 10, retryDelay: 1000, overrideFromBlockConfigured: true, overrideToBlockConfigured: true, customNodeUrlConfigured: true, + exclusionListHash: null, + exclusionListSize: 0, ...overrides, }; } @@ -124,6 +127,8 @@ function makeMonthlyAuditResult(overrides = {}) { [voter]: BigNumber.from("1234567890000000000"), }, totalRebateWei: BigNumber.from("1234567890000000000"), + excludedVoterCount: 0, + excludedRebateWei: BigNumber.from(0), transactionEvidence: [ { transactionHash: "0xcommit1", @@ -150,6 +155,7 @@ function makeMonthlyAuditResult(overrides = {}) { receiptValidationCount: 345, commitEventCount: 2, revealEventCount: 3, + boundaryCommitEventsRecovered: 0, validationPassed: true, }, anomalies: [ @@ -426,6 +432,168 @@ describe("VoterGasRebateV2 utils", function () { } }); + it("recovers commit transactions for reveals whose commit landed before fromBlock", async function () { + const recipient = "0x00000000000000000000000000000000000000f1"; + const commit = makeEvent(90, 1, "0xcommitMay"); + const reveal = makeEvent(110, 1, "0xrevealJun"); + const voting = makeVoting({ + commitEvents: [commit], + revealEvents: [reveal], + receipts: { + "0xcommitMay": makeReceipt("0xcommitMay", recipient, 90, 100, 200, ["commit"]), + "0xrevealJun": makeReceipt("0xrevealJun", recipient, 110, 50, 200, ["reveal"]), + }, + blocks: { + 90: { baseFeePerGas: BigNumber.from(100) }, + 110: { baseFeePerGas: BigNumber.from(100) }, + }, + }); + + const result = await calculateVoterGasRebateV2({ + voting, + fromBlock: 100, + toBlock: 200, + minTokens: BigNumber.from(500), + maxBlockLookBack: 100, + transactionConcurrency: 2, + maxPriorityFee: null, + commitLookbackBlocks: 50, + }); + + assert.equal(result.eventCollectionStats.boundaryCommitEventsRecovered, 1); + assert.deepEqual( + result.transactionsToRefund.map((transaction) => transaction.transactionHash), + ["0xcommitMay", "0xrevealJun"] + ); + assert.isFalse(result.anomalies.some((anomaly) => anomaly.type === "reveal_missing_commit")); + // commit gas (100 * 200) + reveal gas (50 * 200) + assert.equal(result.shareholderPayoutWei[recipient].toString(), "30000"); + }); + + it("does not re-pay a boundary commit transaction already reimbursed by the previous month", async function () { + const recipient = "0x00000000000000000000000000000000000000f2"; + const round1 = makeVoteArgs({ roundId: BigNumber.from(1) }); + const round2 = makeVoteArgs({ roundId: BigNumber.from(2) }); + // A single commit transaction commits two votes; one is revealed in the previous month (in the + // lookback window) and one at the start of this month. + const commitRound1 = makeEvent(90, 1, "0xcommitMay", round1); + const commitRound2 = makeEvent(90, 2, "0xcommitMay", round2); + const revealPrevMonth = makeEvent(95, 1, "0xrevealMay", round1); + const revealThisMonth = makeEvent(110, 1, "0xrevealJun", round2); + const voting = makeVoting({ + commitEvents: [commitRound1, commitRound2], + revealEvents: [revealPrevMonth, revealThisMonth], + receipts: { + "0xcommitMay": makeReceipt("0xcommitMay", recipient, 90, 100, 200, ["commit", "commit"]), + "0xrevealMay": makeReceipt("0xrevealMay", recipient, 95, 40, 200, ["reveal"]), + "0xrevealJun": makeReceipt("0xrevealJun", recipient, 110, 50, 200, ["reveal"]), + }, + blocks: { + 110: { baseFeePerGas: BigNumber.from(100) }, + }, + }); + + const result = await calculateVoterGasRebateV2({ + voting, + fromBlock: 100, + toBlock: 200, + minTokens: BigNumber.from(500), + maxBlockLookBack: 100, + transactionConcurrency: 2, + maxPriorityFee: null, + commitLookbackBlocks: 50, + }); + + assert.equal(result.eventCollectionStats.boundaryCommitEventsRecovered, 0); + assert.deepEqual( + result.transactionsToRefund.map((transaction) => transaction.transactionHash), + ["0xrevealJun"] + ); + assert.isFalse(result.anomalies.some((anomaly) => anomaly.type === "reveal_missing_commit")); + // only the reveal gas (50 * 200); the commit tx was already paid by the previous month + assert.equal(result.shareholderPayoutWei[recipient].toString(), "10000"); + }); + + it("still reports reveal_missing_commit when the commit is older than the lookback window", async function () { + const recipient = "0x00000000000000000000000000000000000000f3"; + const commit = makeEvent(50, 1, "0xcommitOld"); + const reveal = makeEvent(110, 1, "0xrevealJun"); + const voting = makeVoting({ + commitEvents: [commit], + revealEvents: [reveal], + receipts: { + "0xrevealJun": makeReceipt("0xrevealJun", recipient, 110, 50, 200, ["reveal"]), + }, + blocks: { + 110: { baseFeePerGas: BigNumber.from(100) }, + }, + }); + + const result = await calculateVoterGasRebateV2({ + voting, + fromBlock: 100, + toBlock: 200, + minTokens: BigNumber.from(500), + maxBlockLookBack: 100, + transactionConcurrency: 2, + maxPriorityFee: null, + commitLookbackBlocks: 10, + }); + + assert.equal(result.eventCollectionStats.boundaryCommitEventsRecovered, 0); + assert.deepEqual( + result.transactionsToRefund.map((transaction) => transaction.transactionHash), + ["0xrevealJun"] + ); + assert.isTrue( + result.anomalies.some( + (anomaly) => anomaly.type === "reveal_missing_commit" && anomaly.transactionHash === "0xrevealJun" + ) + ); + }); + + it("drops excluded addresses from the payout while keeping others", async function () { + const kept = "0x00000000000000000000000000000000000000a1"; + const excluded = "0x00000000000000000000000000000000000000b2"; + const keptArgs = makeVoteArgs({ voter: kept, roundId: BigNumber.from(1) }); + const excludedArgs = makeVoteArgs({ voter: excluded, roundId: BigNumber.from(2) }); + const voting = makeVoting({ + commitEvents: [makeEvent(5, 1, "0xcommitKept", keptArgs), makeEvent(7, 1, "0xcommitExcluded", excludedArgs)], + revealEvents: [makeEvent(6, 2, "0xrevealKept", keptArgs), makeEvent(8, 2, "0xrevealExcluded", excludedArgs)], + receipts: { + "0xcommitKept": makeReceipt("0xcommitKept", kept, 5, 100, 200, ["commit"]), + "0xrevealKept": makeReceipt("0xrevealKept", kept, 6, 50, 200, ["reveal"]), + "0xcommitExcluded": makeReceipt("0xcommitExcluded", excluded, 7, 100, 200, ["commit"]), + "0xrevealExcluded": makeReceipt("0xrevealExcluded", excluded, 8, 40, 200, ["reveal"]), + }, + blocks: { + 5: { baseFeePerGas: BigNumber.from(100) }, + 6: { baseFeePerGas: BigNumber.from(100) }, + 7: { baseFeePerGas: BigNumber.from(100) }, + 8: { baseFeePerGas: BigNumber.from(100) }, + }, + }); + + const result = await calculateVoterGasRebateV2({ + voting, + fromBlock: 1, + toBlock: 20, + minTokens: BigNumber.from(500), + maxBlockLookBack: 100, + transactionConcurrency: 2, + maxPriorityFee: null, + excludedAddresses: new Set([excluded.toLowerCase()]), + }); + + assert.equal(result.excludedVoterCount, 1); + assert.equal(result.excludedRebateWei.toString(), "28000"); // 100*200 + 40*200 + assert.property(result.shareholderPayoutWei, kept); + assert.notProperty(result.shareholderPayoutWei, excluded); + assert.equal(result.shareholderPayoutWei[kept].toString(), "30000"); // 100*200 + 50*200 + assert.equal(result.totalRebateWei.toString(), "30000"); + assert.isFalse(result.transactionEvidence.some((evidence) => evidence.from === excluded)); + }); + it("builds monthly audit reports with required counts, config, validation, and exact wei totals", function () { const rpcUrl = "https://rpc.example.invalid/secret-key"; const report = buildMonthlyAuditReport(makeMonthlyAuditResult(), { @@ -446,9 +614,13 @@ describe("VoterGasRebateV2 utils", function () { matchedCommitEvents: 1, transactions: 2, voters: 1, + excludedVoters: 0, }); assert.equal(report.payout.totalRebateWei, "1234567890000000000"); assert.equal(report.payout.totalRebateEth, "1.23456789"); + assert.equal(report.payout.excludedRebateWei, "0"); + assert.equal(report.effectiveConfig.exclusionListSize, 0); + assert.equal(report.effectiveConfig.exclusionListHash, null); assert.equal(report.eventCollection.maxBlockLookBack, 250); assert.equal(report.eventCollection.retryCount, 1); assert.equal(report.eventCollection.splitCount, 2); @@ -475,9 +647,15 @@ describe("VoterGasRebateV2 utils", function () { assert.include(markdown, "- Eligible reveal events: 2"); assert.include(markdown, "- Matched commit events: 1"); assert.include(markdown, "- Total payout: 1234567890000000000 wei (1.23456789 ETH)"); + assert.include(markdown, "- Commit lookback blocks: 50000"); + assert.include(markdown, "- Exclusion list size: 0"); + assert.include(markdown, "- Exclusion list SHA-256: none"); + assert.include(markdown, "- Excluded voters: 0"); + assert.include(markdown, "- Excluded rebate: 0 wei (0.0 ETH)"); assert.include(markdown, "- Validation passed: true"); assert.include(markdown, "- Retry count: 1"); assert.include(markdown, "- Split count: 2"); + assert.include(markdown, "- Boundary commits recovered: 0"); assert.include(markdown, "- Custom node URL configured: true"); assert.notInclude(markdown, "secret-key"); });