@boostxyz/sdk 6.0.2 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,20 +1,20 @@
1
- import { f as C, bW as x, bX as P, bY as $, bZ as B, b_ as k, b$ as F, c0 as q, c1 as G, c2 as L, c3 as M, c4 as U, c5 as j, c6 as z, c7 as O, c8 as S, y as v, c9 as W, ca as X, cb as Y, cc as H, cd as Q, ce as Z, cf as J, cg as K, ch as f0, ci as a0, cj as b0, ck as e0, cl as d0, cm as c0, cn as t0, co as s0, cp as i0, cq as r0 } from "./generated-CElkFqkY.js";
1
+ import { f as C, bW as x, bX as P, bY as $, bZ as B, b_ as k, b$ as F, c0 as q, c1 as G, c2 as L, c3 as M, c4 as z, c5 as U, c6 as j, c7 as O, c8 as S, y as v, c9 as H, ca as W, cb as X, cc as Y, cd as Q, ce as Z, cf as J, cg as K, ch as f0, ci as a0, cj as b0, ck as e0, cl as d0, cm as c0, cn as t0, co as s0, cp as i0, cq as r0 } from "./generated-CElkFqkY.js";
2
2
  import { g as n0, h as o0, i as l0, j as m0, k as u0, l as g0, m as h0, n as y0 } from "./componentInterfaces-5Ezh3Pvx.js";
3
3
  import { getTransactionReceipt as p0, getTransaction as w0, readContract as A0 } from "@wagmi/core";
4
4
  import { NoMatchingLogsError as I, DecodedArgsError as u, InvalidCriteriaTypeError as C0, IncentiveCriteriaNotFoundError as v0, InvalidComponentInterfaceError as I0 } from "./errors.js";
5
5
  import { AllowListIncentive as V0 } from "./Incentives/AllowListIncentive.js";
6
6
  import { CGDAIncentive as R0 } from "./Incentives/CGDAIncentive.js";
7
7
  import { ERC20Incentive as _0 } from "./Incentives/ERC20Incentive.js";
8
- import { encodeAbiParameters as l, zeroAddress as t, decodeAbiParameters as o, parseEventLogs as D0, decodeFunctionData as N0, parseEther as V } from "viem";
9
- import { g as E0, h as T0 } from "./deployments-3RHH-eW7.js";
8
+ import { encodeAbiParameters as l, zeroAddress as t, decodeAbiParameters as o, parseEventLogs as D0, decodeFunctionData as N0, zeroHash as E0, parseEther as V } from "viem";
9
+ import { g as T0, h as x0 } from "./deployments-3RHH-eW7.js";
10
10
  import { DeployableTarget as E } from "./Deployable/DeployableTarget.js";
11
11
  import { prepareClaimPayload as g } from "./claiming.js";
12
- import { RegistryType as T, CheatCodes as x0 } from "./utils.js";
12
+ import { RegistryType as T, CheatCodes as P0 } from "./utils.js";
13
13
  import { SignatureType as R } from "./Actions/EventAction.js";
14
- import { ERC20VariableCriteriaIncentive as P0 } from "./Incentives/ERC20VariableCriteriaIncentive.js";
15
- import { ERC20VariableIncentive as $0 } from "./Incentives/ERC20VariableIncentive.js";
16
- import { PointsIncentive as B0 } from "./Incentives/PointsIncentive.js";
17
- const k0 = "0x6080604052348015600e575f80fd5b5060156019565b6078565b63409feecd198054600181161560365763f92ee8a95f526004601cfd5b8160c01c808260011c146073578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b611ce6806100855f395ff3fe60806040526004361061025d575f3560e01c8063547d18641161014b578063c884ef83116100c6578063ec87621c1161007c578063f2fde38b11610062578063f2fde38b146106b8578063fe9fbb80146106cb578063fee81cf4146106ea575f80fd5b8063ec87621c14610691578063f04e283e146106a5575f80fd5b8063db09da12116100ac578063db09da121461063e578063dcc213611461065d578063dcc59b6f1461067c575f80fd5b8063c884ef83146105fb578063d54ad2a114610629575f80fd5b80638da5cb5b1161011b578063a4d66daf11610101578063a4d66daf146105a8578063bb1757cf146105bd578063be4994f8146105dc575f80fd5b80638da5cb5b146105665780639214fa4d1461057e575f80fd5b8063547d18641461052d57806354d1f13d14610542578063715018a61461054a57806375b238fc14610552575f80fd5b80632de94807116101db578063439fab91116101ab5780634a4ee7b1116101915780634a4ee7b1146104b95780634e7165a2146104cc578063514e62fc146104f8575f80fd5b8063439fab9114610451578063474f5a4414610470575f80fd5b80632de94807146103b657806330db555f146103e757806338d52e0f146104065780634359d28a14610432575f80fd5b80631cd64df411610230578063228cb73311610216578063228cb73314610360578063256929621461037457806328d6183b1461037c575f80fd5b80631cd64df4146102da5780631f1cb62b1461030f575f80fd5b806301ffc9a71461026157806307621eca14610295578063183a4f6e146102b25780631c10893f146102c7575b5f80fd5b34801561026c575f80fd5b5061028061027b366004611641565b61071b565b60405190151581526020015b60405180910390f35b3480156102a0575f80fd5b505f545b60405190815260200161028c565b6102c56102c0366004611680565b610776565b005b6102c56102d53660046116bf565b610783565b3480156102e5575f80fd5b506102806102f43660046116bf565b638b78c6d8600c9081525f9290925260209091205481161490565b34801561031a575f80fd5b5060075461033b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161028c565b34801561036b575f80fd5b506102a45f5481565b6102c5610799565b348015610387575f80fd5b506040517f5658633800000000000000000000000000000000000000000000000000000000815260200161028c565b3480156103c1575f80fd5b506102a46103d03660046116e7565b638b78c6d8600c9081525f91909152602090205490565b3480156103f2575f80fd5b506102c5610401366004611680565b6107e6565b348015610411575f80fd5b5060035461033b9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561043d575f80fd5b506102c561044c366004611748565b6108a2565b34801561045c575f80fd5b506102c561046b3660046117f2565b61099c565b34801561047b575f80fd5b5061048f61048a3660046117f2565b610c39565b6040805192835273ffffffffffffffffffffffffffffffffffffffff90911660208301520161028c565b6102c56104c73660046116bf565b610d9b565b3480156104d7575f80fd5b506104eb6104e63660046117f2565b610dad565b60405161028c919061187d565b348015610503575f80fd5b506102806105123660046116bf565b638b78c6d8600c9081525f9290925260209091205416151590565b348015610538575f80fd5b506102a460025481565b6102c5610e47565b6102c5610e80565b34801561055d575f80fd5b506102a4600281565b348015610571575f80fd5b50638b78c6d8195461033b565b348015610589575f80fd5b5060075473ffffffffffffffffffffffffffffffffffffffff1661033b565b3480156105b3575f80fd5b506102a460055481565b3480156105c8575f80fd5b506102806105d736600461188f565b610e93565b3480156105e7575f80fd5b506102c56105f6366004611748565b611071565b348015610606575f80fd5b506102806106153660046116e7565b60016020525f908152604090205460ff1681565b348015610634575f80fd5b506102a460065481565b348015610649575f80fd5b5061028061065836600461188f565b61110f565b348015610668575f80fd5b506102c5610677366004611748565b61114e565b348015610687575f80fd5b506102a460045481565b34801561069c575f80fd5b506102a4600181565b6102c56106b33660046116e7565b6111ec565b6102c56106c63660046116e7565b611226565b3480156106d6575f80fd5b506102806106e53660046116e7565b61124c565b3480156106f5575f80fd5b506102a46107043660046116e7565b63389a75e1600c9081525f91909152602090205490565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f565863380000000000000000000000000000000000000000000000000000000014806107705750610770826112ab565b92915050565b6107803382611300565b50565b61078b61130b565b6107958282611325565b5050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60016107f181611331565b815f0361082a576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035461084f9073ffffffffffffffffffffffffffffffffffffffff16333085611362565b8160055f828254610860919061190b565b909155505060408051338152602081018490527fa64c2da41decbd538f8629e54c8fa0b7362c9102b691386a0fb6a1797454e9c6910160405180910390a15050565b60026108ad81611331565b8382146108e6576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610994575f8484838181106109035761090361191e565b9050602002016020810190610918919061194b565b905080151560010361095a576109558787848181106109395761093961191e565b905060200201602081019061094e91906116e7565b6001611325565b61098b565b61098b87878481811061096f5761096f61191e565b905060200201602081019061098491906116e7565b6001611300565b506001016108e8565b505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf60113280546003825580156109ed5760018160011c14303b106109e45763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f6109fb838501856119c0565b905080604001515f1480610a1157506060810151155b15610a48576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081015181515f90610a719073ffffffffffffffffffffffffffffffffffffffff16306113ba565b905081811015610ada5782516040517f5c54305e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018290526044810183905260640160405180910390fd5b82516003805473ffffffffffffffffffffffffffffffffffffffff9283167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560208501516007805491909316911617905560408301515f556060830151600555610b4a336113ed565b610b5983608001516001611435565b826020015173ffffffffffffffffffffffffffffffffffffffff16835f015173ffffffffffffffffffffffffffffffffffffffff167fd20715546497e6d32bc9b61b35416a25a8cc41d2fb7f389a1bb26dc040213a3b856040015186606001518760800151604051610bf493929190928352602083019190915273ffffffffffffffffffffffffffffffffffffffff16604082015260600190565b60405180910390a35050508015610c34576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f806001610c4681611331565b5f610c5385870187611ae9565b90505f8160200151806020019051810190610c6e9190611b66565b90508060055f828254610c819190611b7d565b90915550508151600354610cae9173ffffffffffffffffffffffffffffffffffffffff9091169083611476565b81516003546040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606092831b811660208301529183901b90911660348201526048810183905273ffffffffffffffffffffffffffffffffffffffff909116907f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d390606801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610d6c9161187d565b60405180910390a260035490945073ffffffffffffffffffffffffffffffffffffffff16925050509250929050565b610da361130b565b6107958282611300565b60605f610dbc838501856119c0565b6060818101516040805160808101825260018152845173ffffffffffffffffffffffffffffffffffffffff16602080830191909152308284015282518082018452849052825180820185905283518082038301815290840184529482019490945290519394509092610e2e9201611b90565b6040516020818303038152906040529250505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610e8861130b565b610e915f6114bf565b565b5f610e9c61130b565b5f610ea983850185611c33565b90505f8160200151806020019051810190610ec49190611b66565b9050610ed08682611509565b610f06576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60055481600654610f17919061190b565b1115610f4f576040517f360e42e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060065f828254610f60919061190b565b92505081905550600160045f828254610f79919061190b565b9091555050600354610fa29073ffffffffffffffffffffffffffffffffffffffff168783611476565b6003546040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606092831b811660208301529188901b90911660348201526048810182905273ffffffffffffffffffffffffffffffffffffffff8716907f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d390606801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905261105d9161187d565b60405180910390a250600195945050505050565b600261107c81611331565b8382146110b5576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610994576111078686838181106110d4576110d461191e565b90506020020160208101906110e991906116e7565b8585848181106110fb576110fb61191e565b90506020020135611325565b6001016110b7565b5f8061111d83850185611c33565b90505f81602001518060200190518101906111389190611b66565b90506111448682611509565b9695505050505050565b600261115981611331565b838214611192576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610994576111e48686838181106111b1576111b161191e565b90506020020160208101906111c691906116e7565b8585848181106111d8576111d861191e565b90506020020135611300565b600101611194565b6111f461130b565b63389a75e1600c52805f526020600c20805442111561121a57636f5e88185f526004601cfd5b5f9055610780816114bf565b61122e61130b565b8060601b61124357637448fbae5f526004601cfd5b610780816114bf565b5f8173ffffffffffffffffffffffffffffffffffffffff16611271638b78c6d8195490565b73ffffffffffffffffffffffffffffffffffffffff1614806107705750638b78c6d8600c9081525f83905260209020546003161515610770565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fa9216705000000000000000000000000000000000000000000000000000000001480610770575061077082611554565b61079582825f6115ea565b638b78c6d819543314610e91576382b429005f526004601cfd5b610795828260016115ea565b638b78c6d81954331461078057638b78c6d8600c52335f52806020600c205416610780576382b429005f526004601cfd5b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f511417166113ad57637939f4245f526004601cfd5b5f60605260405250505050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b73ffffffffffffffffffffffffffffffffffffffff16638b78c6d819819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f511417166114b6576390b8ec185f526004601cfd5b5f603452505050565b638b78c6d819805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526001602052604081205460ff1615801561154d57506005548260065461154a919061190b565b11155b9392505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f6ab67a0d00000000000000000000000000000000000000000000000000000000148061077057507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610770565b638b78c6d8600c52825f526020600c2080548381178361160b575080841681185b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f60208284031215611651575f80fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461154d575f80fd5b5f60208284031215611690575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff811681146116ba575f80fd5b919050565b5f80604083850312156116d0575f80fd5b6116d983611697565b946020939093013593505050565b5f602082840312156116f7575f80fd5b61154d82611697565b5f8083601f840112611710575f80fd5b50813567ffffffffffffffff811115611727575f80fd5b6020830191508360208260051b8501011115611741575f80fd5b9250929050565b5f805f806040858703121561175b575f80fd5b843567ffffffffffffffff811115611771575f80fd5b61177d87828801611700565b909550935050602085013567ffffffffffffffff81111561179c575f80fd5b6117a887828801611700565b95989497509550505050565b5f8083601f8401126117c4575f80fd5b50813567ffffffffffffffff8111156117db575f80fd5b602083019150836020828501011115611741575f80fd5b5f8060208385031215611803575f80fd5b823567ffffffffffffffff811115611819575f80fd5b611825858286016117b4565b90969095509350505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f61154d6020830184611831565b5f805f604084860312156118a1575f80fd5b6118aa84611697565b9250602084013567ffffffffffffffff8111156118c5575f80fd5b6118d1868287016117b4565b9497909650939450505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820180821115610770576107706118de565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6020828403121561195b575f80fd5b8135801515811461154d575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff811182821017156119ba576119ba61196a565b60405290565b5f60a08284031280156119d1575f80fd5b5060405160a0810167ffffffffffffffff811182821017156119f5576119f561196a565b604052611a0183611697565b8152611a0f60208401611697565b60208201526040838101359082015260608084013590820152611a3460808401611697565b60808201529392505050565b5f82601f830112611a4f575f80fd5b813567ffffffffffffffff811115611a6957611a6961196a565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810167ffffffffffffffff81118282101715611ab657611ab661196a565b604052818152838201602001851015611acd575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611af9575f80fd5b813567ffffffffffffffff811115611b0f575f80fd5b820160408185031215611b20575f80fd5b611b28611997565b611b3182611697565b8152602082013567ffffffffffffffff811115611b4c575f80fd5b611b5886828501611a40565b602083015250949350505050565b5f60208284031215611b76575f80fd5b5051919050565b81810381811115610770576107706118de565b602081525f825160038110611bcc577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b8060208401525073ffffffffffffffffffffffffffffffffffffffff602084015116604083015273ffffffffffffffffffffffffffffffffffffffff60408401511660608301526060830151608080840152611c2b60a0840182611831565b949350505050565b5f60208284031215611c43575f80fd5b813567ffffffffffffffff811115611c59575f80fd5b820160408185031215611c6a575f80fd5b611c72611997565b813567ffffffffffffffff811115611c88575f80fd5b611c9486828501611a40565b825250602082013567ffffffffffffffff811115611b4c575f80fdfea2646970667358221220353e16b7caa31db12baf52becbdae02891331e0552614c2e96ac6c694315780464736f6c634300081a0033", h = class h extends E {
14
+ import { ERC20VariableCriteriaIncentive as $0 } from "./Incentives/ERC20VariableCriteriaIncentive.js";
15
+ import { ERC20VariableIncentive as B0 } from "./Incentives/ERC20VariableIncentive.js";
16
+ import { PointsIncentive as k0 } from "./Incentives/PointsIncentive.js";
17
+ const F0 = "0x6080604052348015600e575f80fd5b5060156019565b6078565b63409feecd198054600181161560365763f92ee8a95f526004601cfd5b8160c01c808260011c146073578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b611ce6806100855f395ff3fe60806040526004361061025d575f3560e01c8063547d18641161014b578063c884ef83116100c6578063ec87621c1161007c578063f2fde38b11610062578063f2fde38b146106b8578063fe9fbb80146106cb578063fee81cf4146106ea575f80fd5b8063ec87621c14610691578063f04e283e146106a5575f80fd5b8063db09da12116100ac578063db09da121461063e578063dcc213611461065d578063dcc59b6f1461067c575f80fd5b8063c884ef83146105fb578063d54ad2a114610629575f80fd5b80638da5cb5b1161011b578063a4d66daf11610101578063a4d66daf146105a8578063bb1757cf146105bd578063be4994f8146105dc575f80fd5b80638da5cb5b146105665780639214fa4d1461057e575f80fd5b8063547d18641461052d57806354d1f13d14610542578063715018a61461054a57806375b238fc14610552575f80fd5b80632de94807116101db578063439fab91116101ab5780634a4ee7b1116101915780634a4ee7b1146104b95780634e7165a2146104cc578063514e62fc146104f8575f80fd5b8063439fab9114610451578063474f5a4414610470575f80fd5b80632de94807146103b657806330db555f146103e757806338d52e0f146104065780634359d28a14610432575f80fd5b80631cd64df411610230578063228cb73311610216578063228cb73314610360578063256929621461037457806328d6183b1461037c575f80fd5b80631cd64df4146102da5780631f1cb62b1461030f575f80fd5b806301ffc9a71461026157806307621eca14610295578063183a4f6e146102b25780631c10893f146102c7575b5f80fd5b34801561026c575f80fd5b5061028061027b366004611641565b61071b565b60405190151581526020015b60405180910390f35b3480156102a0575f80fd5b505f545b60405190815260200161028c565b6102c56102c0366004611680565b610776565b005b6102c56102d53660046116bf565b610783565b3480156102e5575f80fd5b506102806102f43660046116bf565b638b78c6d8600c9081525f9290925260209091205481161490565b34801561031a575f80fd5b5060075461033b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161028c565b34801561036b575f80fd5b506102a45f5481565b6102c5610799565b348015610387575f80fd5b506040517f5658633800000000000000000000000000000000000000000000000000000000815260200161028c565b3480156103c1575f80fd5b506102a46103d03660046116e7565b638b78c6d8600c9081525f91909152602090205490565b3480156103f2575f80fd5b506102c5610401366004611680565b6107e6565b348015610411575f80fd5b5060035461033b9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561043d575f80fd5b506102c561044c366004611748565b6108a2565b34801561045c575f80fd5b506102c561046b3660046117f2565b61099c565b34801561047b575f80fd5b5061048f61048a3660046117f2565b610c39565b6040805192835273ffffffffffffffffffffffffffffffffffffffff90911660208301520161028c565b6102c56104c73660046116bf565b610d9b565b3480156104d7575f80fd5b506104eb6104e63660046117f2565b610dad565b60405161028c919061187d565b348015610503575f80fd5b506102806105123660046116bf565b638b78c6d8600c9081525f9290925260209091205416151590565b348015610538575f80fd5b506102a460025481565b6102c5610e47565b6102c5610e80565b34801561055d575f80fd5b506102a4600281565b348015610571575f80fd5b50638b78c6d8195461033b565b348015610589575f80fd5b5060075473ffffffffffffffffffffffffffffffffffffffff1661033b565b3480156105b3575f80fd5b506102a460055481565b3480156105c8575f80fd5b506102806105d736600461188f565b610e93565b3480156105e7575f80fd5b506102c56105f6366004611748565b611071565b348015610606575f80fd5b506102806106153660046116e7565b60016020525f908152604090205460ff1681565b348015610634575f80fd5b506102a460065481565b348015610649575f80fd5b5061028061065836600461188f565b61110f565b348015610668575f80fd5b506102c5610677366004611748565b61114e565b348015610687575f80fd5b506102a460045481565b34801561069c575f80fd5b506102a4600181565b6102c56106b33660046116e7565b6111ec565b6102c56106c63660046116e7565b611226565b3480156106d6575f80fd5b506102806106e53660046116e7565b61124c565b3480156106f5575f80fd5b506102a46107043660046116e7565b63389a75e1600c9081525f91909152602090205490565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f565863380000000000000000000000000000000000000000000000000000000014806107705750610770826112ab565b92915050565b6107803382611300565b50565b61078b61130b565b6107958282611325565b5050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60016107f181611331565b815f0361082a576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035461084f9073ffffffffffffffffffffffffffffffffffffffff16333085611362565b8160055f828254610860919061190b565b909155505060408051338152602081018490527fa64c2da41decbd538f8629e54c8fa0b7362c9102b691386a0fb6a1797454e9c6910160405180910390a15050565b60026108ad81611331565b8382146108e6576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610994575f8484838181106109035761090361191e565b9050602002016020810190610918919061194b565b905080151560010361095a576109558787848181106109395761093961191e565b905060200201602081019061094e91906116e7565b6001611325565b61098b565b61098b87878481811061096f5761096f61191e565b905060200201602081019061098491906116e7565b6001611300565b506001016108e8565b505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf60113280546003825580156109ed5760018160011c14303b106109e45763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f6109fb838501856119c0565b905080604001515f1480610a1157506060810151155b15610a48576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081015181515f90610a719073ffffffffffffffffffffffffffffffffffffffff16306113ba565b905081811015610ada5782516040517f5c54305e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018290526044810183905260640160405180910390fd5b82516003805473ffffffffffffffffffffffffffffffffffffffff9283167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560208501516007805491909316911617905560408301515f556060830151600555610b4a336113ed565b610b5983608001516001611435565b826020015173ffffffffffffffffffffffffffffffffffffffff16835f015173ffffffffffffffffffffffffffffffffffffffff167fd20715546497e6d32bc9b61b35416a25a8cc41d2fb7f389a1bb26dc040213a3b856040015186606001518760800151604051610bf493929190928352602083019190915273ffffffffffffffffffffffffffffffffffffffff16604082015260600190565b60405180910390a35050508015610c34576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f806001610c4681611331565b5f610c5385870187611ae9565b90505f8160200151806020019051810190610c6e9190611b66565b90508060055f828254610c819190611b7d565b90915550508151600354610cae9173ffffffffffffffffffffffffffffffffffffffff9091169083611476565b81516003546040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606092831b811660208301529183901b90911660348201526048810183905273ffffffffffffffffffffffffffffffffffffffff909116907f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d390606801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610d6c9161187d565b60405180910390a260035490945073ffffffffffffffffffffffffffffffffffffffff16925050509250929050565b610da361130b565b6107958282611300565b60605f610dbc838501856119c0565b6060818101516040805160808101825260018152845173ffffffffffffffffffffffffffffffffffffffff16602080830191909152308284015282518082018452849052825180820185905283518082038301815290840184529482019490945290519394509092610e2e9201611b90565b6040516020818303038152906040529250505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610e8861130b565b610e915f6114bf565b565b5f610e9c61130b565b5f610ea983850185611c33565b90505f8160200151806020019051810190610ec49190611b66565b9050610ed08682611509565b610f06576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60055481600654610f17919061190b565b1115610f4f576040517f360e42e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060065f828254610f60919061190b565b92505081905550600160045f828254610f79919061190b565b9091555050600354610fa29073ffffffffffffffffffffffffffffffffffffffff168783611476565b6003546040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606092831b811660208301529188901b90911660348201526048810182905273ffffffffffffffffffffffffffffffffffffffff8716907f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d390606801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905261105d9161187d565b60405180910390a250600195945050505050565b600261107c81611331565b8382146110b5576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610994576111078686838181106110d4576110d461191e565b90506020020160208101906110e991906116e7565b8585848181106110fb576110fb61191e565b90506020020135611325565b6001016110b7565b5f8061111d83850185611c33565b90505f81602001518060200190518101906111389190611b66565b90506111448682611509565b9695505050505050565b600261115981611331565b838214611192576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610994576111e48686838181106111b1576111b161191e565b90506020020160208101906111c691906116e7565b8585848181106111d8576111d861191e565b90506020020135611300565b600101611194565b6111f461130b565b63389a75e1600c52805f526020600c20805442111561121a57636f5e88185f526004601cfd5b5f9055610780816114bf565b61122e61130b565b8060601b61124357637448fbae5f526004601cfd5b610780816114bf565b5f8173ffffffffffffffffffffffffffffffffffffffff16611271638b78c6d8195490565b73ffffffffffffffffffffffffffffffffffffffff1614806107705750638b78c6d8600c9081525f83905260209020546003161515610770565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fa9216705000000000000000000000000000000000000000000000000000000001480610770575061077082611554565b61079582825f6115ea565b638b78c6d819543314610e91576382b429005f526004601cfd5b610795828260016115ea565b638b78c6d81954331461078057638b78c6d8600c52335f52806020600c205416610780576382b429005f526004601cfd5b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f511417166113ad57637939f4245f526004601cfd5b5f60605260405250505050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b73ffffffffffffffffffffffffffffffffffffffff16638b78c6d819819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f511417166114b6576390b8ec185f526004601cfd5b5f603452505050565b638b78c6d819805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526001602052604081205460ff1615801561154d57506005548260065461154a919061190b565b11155b9392505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f6ab67a0d00000000000000000000000000000000000000000000000000000000148061077057507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610770565b638b78c6d8600c52825f526020600c2080548381178361160b575080841681185b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f60208284031215611651575f80fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461154d575f80fd5b5f60208284031215611690575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff811681146116ba575f80fd5b919050565b5f80604083850312156116d0575f80fd5b6116d983611697565b946020939093013593505050565b5f602082840312156116f7575f80fd5b61154d82611697565b5f8083601f840112611710575f80fd5b50813567ffffffffffffffff811115611727575f80fd5b6020830191508360208260051b8501011115611741575f80fd5b9250929050565b5f805f806040858703121561175b575f80fd5b843567ffffffffffffffff811115611771575f80fd5b61177d87828801611700565b909550935050602085013567ffffffffffffffff81111561179c575f80fd5b6117a887828801611700565b95989497509550505050565b5f8083601f8401126117c4575f80fd5b50813567ffffffffffffffff8111156117db575f80fd5b602083019150836020828501011115611741575f80fd5b5f8060208385031215611803575f80fd5b823567ffffffffffffffff811115611819575f80fd5b611825858286016117b4565b90969095509350505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f61154d6020830184611831565b5f805f604084860312156118a1575f80fd5b6118aa84611697565b9250602084013567ffffffffffffffff8111156118c5575f80fd5b6118d1868287016117b4565b9497909650939450505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820180821115610770576107706118de565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6020828403121561195b575f80fd5b8135801515811461154d575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040805190810167ffffffffffffffff811182821017156119ba576119ba61196a565b60405290565b5f60a08284031280156119d1575f80fd5b5060405160a0810167ffffffffffffffff811182821017156119f5576119f561196a565b604052611a0183611697565b8152611a0f60208401611697565b60208201526040838101359082015260608084013590820152611a3460808401611697565b60808201529392505050565b5f82601f830112611a4f575f80fd5b813567ffffffffffffffff811115611a6957611a6961196a565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810167ffffffffffffffff81118282101715611ab657611ab661196a565b604052818152838201602001851015611acd575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611af9575f80fd5b813567ffffffffffffffff811115611b0f575f80fd5b820160408185031215611b20575f80fd5b611b28611997565b611b3182611697565b8152602082013567ffffffffffffffff811115611b4c575f80fd5b611b5886828501611a40565b602083015250949350505050565b5f60208284031215611b76575f80fd5b5051919050565b81810381811115610770576107706118de565b602081525f825160038110611bcc577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b8060208401525073ffffffffffffffffffffffffffffffffffffffff602084015116604083015273ffffffffffffffffffffffffffffffffffffffff60408401511660608301526060830151608080840152611c2b60a0840182611831565b949350505050565b5f60208284031215611c43575f80fd5b813567ffffffffffffffff811115611c59575f80fd5b820160408185031215611c6a575f80fd5b611c72611997565b813567ffffffffffffffff811115611c88575f80fd5b611c9486828501611a40565b825250602082013567ffffffffffffffff811115611b4c575f80fdfea2646970667358221220353e16b7caa31db12baf52becbdae02891331e0552614c2e96ac6c694315780464736f6c634300081a0033", h = class h extends E {
18
18
  constructor() {
19
19
  super(...arguments), this.abi = C;
20
20
  }
@@ -191,7 +191,7 @@ const k0 = "0x6080604052348015600e575f80fd5b5060156019565b6078565b63409feecd1980
191
191
  ...a
192
192
  }
193
193
  );
194
- return { hash: await U(this._config, b), result: e };
194
+ return { hash: await z(this._config, b), result: e };
195
195
  }
196
196
  /**
197
197
  * Clawback assets from the incentive
@@ -215,7 +215,7 @@ const k0 = "0x6080604052348015600e575f80fd5b5060156019565b6078565b63409feecd1980
215
215
  * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the assets were successfully clawbacked
216
216
  */
217
217
  async clawbackRaw(f, a) {
218
- const { request: b, result: e } = await j(
218
+ const { request: b, result: e } = await U(
219
219
  this._config,
220
220
  {
221
221
  address: this.assertValidAddress(),
@@ -225,7 +225,7 @@ const k0 = "0x6080604052348015600e575f80fd5b5060156019565b6078565b63409feecd1980
225
225
  ...a
226
226
  }
227
227
  );
228
- return { hash: await z(this._config, b), result: e };
228
+ return { hash: await j(this._config, b), result: e };
229
229
  }
230
230
  /**
231
231
  * Check if an incentive is claimable.
@@ -312,7 +312,7 @@ const k0 = "0x6080604052348015600e575f80fd5b5060156019565b6078565b63409feecd1980
312
312
  );
313
313
  return {
314
314
  abi: C,
315
- bytecode: k0,
315
+ bytecode: F0,
316
316
  args: [_(b)],
317
317
  ...this.optionallyAttachAccount(e.account)
318
318
  };
@@ -390,7 +390,7 @@ const k0 = "0x6080604052348015600e575f80fd5b5060156019565b6078565b63409feecd1980
390
390
  };
391
391
  h.bases = {
392
392
  31337: void 0,
393
- ...E0
393
+ ...T0
394
394
  }, h.registryType = T.INCENTIVE;
395
395
  let p = h;
396
396
  function _({
@@ -411,7 +411,7 @@ function _({
411
411
  [r, f, a, b, e]
412
412
  );
413
413
  }
414
- const F0 = "0x6080604052348015600e575f80fd5b5060156019565b6078565b63409feecd198054600181161560365763f92ee8a95f526004601cfd5b8160c01c808260011c146073578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b61219f806100855f395ff3fe6080604052600436106102ab575f3560e01c8063715018a611610165578063c884ef83116100c6578063ec87621c1161007c578063f2fde38b11610062578063f2fde38b1461078d578063fe9fbb80146107a0578063fee81cf4146107bf575f80fd5b8063ec87621c14610766578063f04e283e1461077a575f80fd5b8063db09da12116100ac578063db09da1214610713578063dcc2136114610732578063dcc59b6f14610751575f80fd5b8063c884ef83146106d0578063d54ad2a1146106fe575f80fd5b8063a4d66daf1161011b578063bb1757cf11610101578063bb1757cf1461067e578063be4994f81461069d578063c213f3f9146106bc575f80fd5b8063a4d66daf14610648578063a871ced21461065d575f80fd5b8063775486871161014b57806377548687146105b45780638da5cb5b146106065780639214fa4d1461061e575f80fd5b8063715018a61461059857806375b238fc146105a0575f80fd5b806330db555f1161020f5780634a4ee7b1116101c5578063514e62fc116101ab578063514e62fc14610546578063547d18641461057b57806354d1f13d14610590575f80fd5b80634a4ee7b1146105075780634e7165a21461051a575f80fd5b80634359d28a116101f55780634359d28a14610480578063439fab911461049f578063474f5a44146104be575f80fd5b806330db555f1461043557806338d52e0f14610454575f80fd5b80631f1cb62b11610264578063256929621161024a57806325692962146103c257806328d6183b146103ca5780632de9480714610404575f80fd5b80631f1cb62b1461035d578063228cb733146103ae575f80fd5b8063183a4f6e11610294578063183a4f6e146103005780631c10893f146103155780631cd64df414610328575f80fd5b806301ffc9a7146102af57806307621eca146102e3575b5f80fd5b3480156102ba575f80fd5b506102ce6102c93660046118ea565b6107f0565b60405190151581526020015b60405180910390f35b3480156102ee575f80fd5b505f545b6040519081526020016102da565b61031361030e366004611930565b61084b565b005b61031361032336600461196f565b610858565b348015610333575f80fd5b506102ce61034236600461196f565b638b78c6d8600c9081525f9290925260209091205481161490565b348015610368575f80fd5b50600a546103899073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102da565b3480156103b9575f80fd5b506102f25f5481565b61031361086e565b3480156103d5575f80fd5b506040517ff60c99c90000000000000000000000000000000000000000000000000000000081526020016102da565b34801561040f575f80fd5b506102f261041e366004611997565b638b78c6d8600c9081525f91909152602090205490565b348015610440575f80fd5b5061031361044f366004611930565b6108bb565b34801561045f575f80fd5b506006546103899073ffffffffffffffffffffffffffffffffffffffff1681565b34801561048b575f80fd5b5061031361049a3660046119f8565b610977565b3480156104aa575f80fd5b506103136104b9366004611aa2565b610a71565b3480156104c9575f80fd5b506104dd6104d8366004611aa2565b610da1565b6040805192835273ffffffffffffffffffffffffffffffffffffffff9091166020830152016102da565b61031361051536600461196f565b610f03565b348015610525575f80fd5b50610539610534366004611aa2565b610f15565b6040516102da9190611b2d565b348015610551575f80fd5b506102ce61056036600461196f565b638b78c6d8600c9081525f9290925260209091205416151590565b348015610586575f80fd5b506102f260025481565b610313610faf565b610313610fe8565b3480156105ab575f80fd5b506102f2600281565b3480156105bf575f80fd5b506003546004546005546105f69260ff908116929190811690610100900473ffffffffffffffffffffffffffffffffffffffff1684565b6040516102da9493929190611b80565b348015610611575f80fd5b50638b78c6d81954610389565b348015610629575f80fd5b50600a5473ffffffffffffffffffffffffffffffffffffffff16610389565b348015610653575f80fd5b506102f260085481565b348015610668575f80fd5b50610671610ffb565b6040516102da9190611c08565b348015610689575f80fd5b506102ce610698366004611c16565b611095565b3480156106a8575f80fd5b506103136106b73660046119f8565b6112c2565b3480156106c7575f80fd5b50600b546102f2565b3480156106db575f80fd5b506102ce6106ea366004611997565b60016020525f908152604090205460ff1681565b348015610709575f80fd5b506102f260095481565b34801561071e575f80fd5b506102ce61072d366004611c16565b611360565b34801561073d575f80fd5b5061031361074c3660046119f8565b6113d3565b34801561075c575f80fd5b506102f260075481565b348015610771575f80fd5b506102f2600181565b610313610788366004611997565b611471565b61031361079b366004611997565b6114ab565b3480156107ab575f80fd5b506102ce6107ba366004611997565b6114d1565b3480156107ca575f80fd5b506102f26107d9366004611997565b63389a75e1600c9081525f91909152602090205490565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167ff60c99c9000000000000000000000000000000000000000000000000000000001480610845575061084582611530565b92915050565b6108553382611585565b50565b610860611590565b61086a82826115aa565b5050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60016108c6816115b6565b815f036108ff576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006546109249073ffffffffffffffffffffffffffffffffffffffff163330856115e7565b8160085f8282546109359190611c92565b909155505060408051338152602081018490527fa64c2da41decbd538f8629e54c8fa0b7362c9102b691386a0fb6a1797454e9c6910160405180910390a15050565b6002610982816115b6565b8382146109bb576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610a69575f8484838181106109d8576109d8611ca5565b90506020020160208101906109ed9190611cd2565b9050801515600103610a2f57610a2a878784818110610a0e57610a0e611ca5565b9050602002016020810190610a239190611997565b60016115aa565b610a60565b610a60878784818110610a4457610a44611ca5565b9050602002016020810190610a599190611997565b6001611585565b506001016109bd565b505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011328054600382558015610ac25760018160011c14303b10610ab95763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f610ad083850185611d8d565b905080606001515f03610b0f576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081015181515f90610b389073ffffffffffffffffffffffffffffffffffffffff163061163f565b905081811015610ba15782516040517f5c54305e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018290526044810183905260640160405180910390fd5b60c083015183516006805473ffffffffffffffffffffffffffffffffffffffff9283167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216179091556020860151600a805491909316911617905560408401515f55606084015160085560a0840151600b5580516003805483929082907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660018381811115610c5557610c55611b3f565b02179055506020820151600182015560408201516002909101805460609093015173ffffffffffffffffffffffffffffffffffffffff16610100027fffffffffffffffffffffff00000000000000000000000000000000000000000090931660ff90921691909117919091179055610ccc33611672565b610cdb846080015160016116ba565b836020015173ffffffffffffffffffffffffffffffffffffffff16845f015173ffffffffffffffffffffffffffffffffffffffff167fdc505a50c6f2c816d981a377c8177e2604d8302821a502bc9f742e0748f338428660400151876060015188608001518960a001518a60c00151604051610d5b959493929190611e86565b60405180910390a3505050508015610d9c576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f806001610dae816115b6565b5f610dbb85870187611f78565b90505f8160200151806020019051810190610dd69190611ff5565b90508060085f828254610de9919061200c565b90915550508151600654610e169173ffffffffffffffffffffffffffffffffffffffff90911690836116fb565b81516006546040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606092831b811660208301529183901b90911660348201526048810183905273ffffffffffffffffffffffffffffffffffffffff909116907f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d390606801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610ed491611b2d565b60405180910390a260065490945073ffffffffffffffffffffffffffffffffffffffff16925050509250929050565b610f0b611590565b61086a8282611585565b60605f610f2483850185611d8d565b6060818101516040805160808101825260018152845173ffffffffffffffffffffffffffffffffffffffff16602080830191909152308284015282518082018452849052825180820185905283518082038301815290840184529482019490945290519394509092610f96920161201f565b6040516020818303038152906040529250505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610ff0611590565b610ff95f611744565b565b604080516080810182525f808252602082018190529181018290526060810191909152604080516080810190915260038054829060ff16600181111561104357611043611b3f565b600181111561105457611054611b3f565b81526001820154602082015260029091015460ff81166040830152610100900473ffffffffffffffffffffffffffffffffffffffff16606090910152919050565b5f61109e611590565b5f6110ab8385018561209d565b90505f81602001518060200190518101906110c69190611ff5565b90505f80545f036110d85750806110fb565b670de0b6b3a7640000825f546110ee919061211a565b6110f89190612131565b90505b600b541580159061110d5750600b5481115b156111175750600b545b6111208161178e565b611156576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600854816009546111679190611c92565b111561119f576040517f360e42e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060095f8282546111b09190611c92565b92505081905550600160075f8282546111c99190611c92565b90915550506006546111f29073ffffffffffffffffffffffffffffffffffffffff1688836116fb565b6006546040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606092831b811660208301529189901b90911660348201526048810182905273ffffffffffffffffffffffffffffffffffffffff8816907f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d390606801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526112ad91611b2d565b60405180910390a25060019695505050505050565b60026112cd816115b6565b838214611306576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610a695761135886868381811061132557611325611ca5565b905060200201602081019061133a9190611997565b85858481811061134c5761134c611ca5565b905060200201356115aa565b600101611308565b5f808061136f8486018661209d565b90505f816020015180602001905181019061138a9190611ff5565b90505f545f0361139c578092506113bf565b670de0b6b3a7640000815f546113b2919061211a565b6113bc9190612131565b92505b6113c88361178e565b979650505050505050565b60026113de816115b6565b838214611417576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610a695761146986868381811061143657611436611ca5565b905060200201602081019061144b9190611997565b85858481811061145d5761145d611ca5565b90506020020135611585565b600101611419565b611479611590565b63389a75e1600c52805f526020600c20805442111561149f57636f5e88185f526004601cfd5b5f905561085581611744565b6114b3611590565b8060601b6114c857637448fbae5f526004601cfd5b61085581611744565b5f8173ffffffffffffffffffffffffffffffffffffffff166114f6638b78c6d8195490565b73ffffffffffffffffffffffffffffffffffffffff1614806108455750638b78c6d8600c9081525f83905260209020546003161515610845565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f565863380000000000000000000000000000000000000000000000000000000014806108455750610845826117a8565b61086a82825f6117fd565b638b78c6d819543314610ff9576382b429005f526004601cfd5b61086a828260016117fd565b638b78c6d81954331461085557638b78c6d8600c52335f52806020600c205416610855576382b429005f526004601cfd5b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f5114171661163257637939f4245f526004601cfd5b5f60605260405250505050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b73ffffffffffffffffffffffffffffffffffffffff16638b78c6d819819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f5114171661173b576390b8ec185f526004601cfd5b5f603452505050565b638b78c6d819805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b5f600854826009546117a09190611c92565b111592915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fa9216705000000000000000000000000000000000000000000000000000000001480610845575061084582611854565b638b78c6d8600c52825f526020600c2080548381178361181e575080841681185b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f6ab67a0d00000000000000000000000000000000000000000000000000000000148061084557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610845565b5f602082840312156118fa575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611929575f80fd5b9392505050565b5f60208284031215611940575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461196a575f80fd5b919050565b5f8060408385031215611980575f80fd5b61198983611947565b946020939093013593505050565b5f602082840312156119a7575f80fd5b61192982611947565b5f8083601f8401126119c0575f80fd5b50813567ffffffffffffffff8111156119d7575f80fd5b6020830191508360208260051b85010111156119f1575f80fd5b9250929050565b5f805f8060408587031215611a0b575f80fd5b843567ffffffffffffffff811115611a21575f80fd5b611a2d878288016119b0565b909550935050602085013567ffffffffffffffff811115611a4c575f80fd5b611a58878288016119b0565b95989497509550505050565b5f8083601f840112611a74575f80fd5b50813567ffffffffffffffff811115611a8b575f80fd5b6020830191508360208285010111156119f1575f80fd5b5f8060208385031215611ab3575f80fd5b823567ffffffffffffffff811115611ac9575f80fd5b611ad585828601611a64565b90969095509350505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f6119296020830184611ae1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60028110611b7c57611b7c611b3f565b9052565b60808101611b8e8287611b6c565b84602083015260ff8416604083015273ffffffffffffffffffffffffffffffffffffffff8316606083015295945050505050565b611bcd828251611b6c565b6020810151602083015260ff604082015116604083015273ffffffffffffffffffffffffffffffffffffffff60608201511660608301525050565b608081016108458284611bc2565b5f805f60408486031215611c28575f80fd5b611c3184611947565b9250602084013567ffffffffffffffff811115611c4c575f80fd5b611c5886828701611a64565b9497909650939450505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561084557610845611c65565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215611ce2575f80fd5b81358015158114611929575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160e0810167ffffffffffffffff81118282101715611d4157611d41611cf1565b60405290565b6040516080810167ffffffffffffffff81118282101715611d4157611d41611cf1565b6040805190810167ffffffffffffffff81118282101715611d4157611d41611cf1565b5f81830361014081128015611da0575f80fd5b50611da9611d1e565b611db284611947565b8152611dc060208501611947565b60208201526040848101359082015260608085013590820152611de560808501611947565b60808281019190915260a085810135908301527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4083011215611e25575f80fd5b611e2d611d47565b915060c084013560028110611e40575f80fd5b825260e0840135602083015261010084013560ff81168114611e60575f80fd5b6040830152611e726101208501611947565b606083015260c08101919091529392505050565b8581526020810185905273ffffffffffffffffffffffffffffffffffffffff84166040820152606081018390526101008101611ec56080830184611bc2565b9695505050505050565b5f82601f830112611ede575f80fd5b813567ffffffffffffffff811115611ef857611ef8611cf1565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810167ffffffffffffffff81118282101715611f4557611f45611cf1565b604052818152838201602001851015611f5c575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611f88575f80fd5b813567ffffffffffffffff811115611f9e575f80fd5b820160408185031215611faf575f80fd5b611fb7611d6a565b611fc082611947565b8152602082013567ffffffffffffffff811115611fdb575f80fd5b611fe786828501611ecf565b602083015250949350505050565b5f60208284031215612005575f80fd5b5051919050565b8181038181111561084557610845611c65565b602081525f82516003811061203657612036611b3f565b8060208401525073ffffffffffffffffffffffffffffffffffffffff602084015116604083015273ffffffffffffffffffffffffffffffffffffffff6040840151166060830152606083015160808084015261209560a0840182611ae1565b949350505050565b5f602082840312156120ad575f80fd5b813567ffffffffffffffff8111156120c3575f80fd5b8201604081850312156120d4575f80fd5b6120dc611d6a565b813567ffffffffffffffff8111156120f2575f80fd5b6120fe86828501611ecf565b825250602082013567ffffffffffffffff811115611fdb575f80fd5b808202811582820484141761084557610845611c65565b5f82612164577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea2646970667358221220517dc82bb1d91d6e0f6b7e55452e2fb8c283a4195077a47e957ae77da71227eb64736f6c634300081a0033", y = class y extends E {
414
+ const q0 = "0x6080604052348015600e575f80fd5b5060156019565b6078565b63409feecd198054600181161560365763f92ee8a95f526004601cfd5b8160c01c808260011c146073578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b61219f806100855f395ff3fe6080604052600436106102ab575f3560e01c8063715018a611610165578063c884ef83116100c6578063ec87621c1161007c578063f2fde38b11610062578063f2fde38b1461078d578063fe9fbb80146107a0578063fee81cf4146107bf575f80fd5b8063ec87621c14610766578063f04e283e1461077a575f80fd5b8063db09da12116100ac578063db09da1214610713578063dcc2136114610732578063dcc59b6f14610751575f80fd5b8063c884ef83146106d0578063d54ad2a1146106fe575f80fd5b8063a4d66daf1161011b578063bb1757cf11610101578063bb1757cf1461067e578063be4994f81461069d578063c213f3f9146106bc575f80fd5b8063a4d66daf14610648578063a871ced21461065d575f80fd5b8063775486871161014b57806377548687146105b45780638da5cb5b146106065780639214fa4d1461061e575f80fd5b8063715018a61461059857806375b238fc146105a0575f80fd5b806330db555f1161020f5780634a4ee7b1116101c5578063514e62fc116101ab578063514e62fc14610546578063547d18641461057b57806354d1f13d14610590575f80fd5b80634a4ee7b1146105075780634e7165a21461051a575f80fd5b80634359d28a116101f55780634359d28a14610480578063439fab911461049f578063474f5a44146104be575f80fd5b806330db555f1461043557806338d52e0f14610454575f80fd5b80631f1cb62b11610264578063256929621161024a57806325692962146103c257806328d6183b146103ca5780632de9480714610404575f80fd5b80631f1cb62b1461035d578063228cb733146103ae575f80fd5b8063183a4f6e11610294578063183a4f6e146103005780631c10893f146103155780631cd64df414610328575f80fd5b806301ffc9a7146102af57806307621eca146102e3575b5f80fd5b3480156102ba575f80fd5b506102ce6102c93660046118ea565b6107f0565b60405190151581526020015b60405180910390f35b3480156102ee575f80fd5b505f545b6040519081526020016102da565b61031361030e366004611930565b61084b565b005b61031361032336600461196f565b610858565b348015610333575f80fd5b506102ce61034236600461196f565b638b78c6d8600c9081525f9290925260209091205481161490565b348015610368575f80fd5b50600a546103899073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102da565b3480156103b9575f80fd5b506102f25f5481565b61031361086e565b3480156103d5575f80fd5b506040517ff60c99c90000000000000000000000000000000000000000000000000000000081526020016102da565b34801561040f575f80fd5b506102f261041e366004611997565b638b78c6d8600c9081525f91909152602090205490565b348015610440575f80fd5b5061031361044f366004611930565b6108bb565b34801561045f575f80fd5b506006546103899073ffffffffffffffffffffffffffffffffffffffff1681565b34801561048b575f80fd5b5061031361049a3660046119f8565b610977565b3480156104aa575f80fd5b506103136104b9366004611aa2565b610a71565b3480156104c9575f80fd5b506104dd6104d8366004611aa2565b610da1565b6040805192835273ffffffffffffffffffffffffffffffffffffffff9091166020830152016102da565b61031361051536600461196f565b610f03565b348015610525575f80fd5b50610539610534366004611aa2565b610f15565b6040516102da9190611b2d565b348015610551575f80fd5b506102ce61056036600461196f565b638b78c6d8600c9081525f9290925260209091205416151590565b348015610586575f80fd5b506102f260025481565b610313610faf565b610313610fe8565b3480156105ab575f80fd5b506102f2600281565b3480156105bf575f80fd5b506003546004546005546105f69260ff908116929190811690610100900473ffffffffffffffffffffffffffffffffffffffff1684565b6040516102da9493929190611b80565b348015610611575f80fd5b50638b78c6d81954610389565b348015610629575f80fd5b50600a5473ffffffffffffffffffffffffffffffffffffffff16610389565b348015610653575f80fd5b506102f260085481565b348015610668575f80fd5b50610671610ffb565b6040516102da9190611c08565b348015610689575f80fd5b506102ce610698366004611c16565b611095565b3480156106a8575f80fd5b506103136106b73660046119f8565b6112c2565b3480156106c7575f80fd5b50600b546102f2565b3480156106db575f80fd5b506102ce6106ea366004611997565b60016020525f908152604090205460ff1681565b348015610709575f80fd5b506102f260095481565b34801561071e575f80fd5b506102ce61072d366004611c16565b611360565b34801561073d575f80fd5b5061031361074c3660046119f8565b6113d3565b34801561075c575f80fd5b506102f260075481565b348015610771575f80fd5b506102f2600181565b610313610788366004611997565b611471565b61031361079b366004611997565b6114ab565b3480156107ab575f80fd5b506102ce6107ba366004611997565b6114d1565b3480156107ca575f80fd5b506102f26107d9366004611997565b63389a75e1600c9081525f91909152602090205490565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167ff60c99c9000000000000000000000000000000000000000000000000000000001480610845575061084582611530565b92915050565b6108553382611585565b50565b610860611590565b61086a82826115aa565b5050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60016108c6816115b6565b815f036108ff576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006546109249073ffffffffffffffffffffffffffffffffffffffff163330856115e7565b8160085f8282546109359190611c92565b909155505060408051338152602081018490527fa64c2da41decbd538f8629e54c8fa0b7362c9102b691386a0fb6a1797454e9c6910160405180910390a15050565b6002610982816115b6565b8382146109bb576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610a69575f8484838181106109d8576109d8611ca5565b90506020020160208101906109ed9190611cd2565b9050801515600103610a2f57610a2a878784818110610a0e57610a0e611ca5565b9050602002016020810190610a239190611997565b60016115aa565b610a60565b610a60878784818110610a4457610a44611ca5565b9050602002016020810190610a599190611997565b6001611585565b506001016109bd565b505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011328054600382558015610ac25760018160011c14303b10610ab95763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f610ad083850185611d8d565b905080606001515f03610b0f576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081015181515f90610b389073ffffffffffffffffffffffffffffffffffffffff163061163f565b905081811015610ba15782516040517f5c54305e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018290526044810183905260640160405180910390fd5b60c083015183516006805473ffffffffffffffffffffffffffffffffffffffff9283167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216179091556020860151600a805491909316911617905560408401515f55606084015160085560a0840151600b5580516003805483929082907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660018381811115610c5557610c55611b3f565b02179055506020820151600182015560408201516002909101805460609093015173ffffffffffffffffffffffffffffffffffffffff16610100027fffffffffffffffffffffff00000000000000000000000000000000000000000090931660ff90921691909117919091179055610ccc33611672565b610cdb846080015160016116ba565b836020015173ffffffffffffffffffffffffffffffffffffffff16845f015173ffffffffffffffffffffffffffffffffffffffff167fdc505a50c6f2c816d981a377c8177e2604d8302821a502bc9f742e0748f338428660400151876060015188608001518960a001518a60c00151604051610d5b959493929190611e86565b60405180910390a3505050508015610d9c576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f806001610dae816115b6565b5f610dbb85870187611f78565b90505f8160200151806020019051810190610dd69190611ff5565b90508060085f828254610de9919061200c565b90915550508151600654610e169173ffffffffffffffffffffffffffffffffffffffff90911690836116fb565b81516006546040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606092831b811660208301529183901b90911660348201526048810183905273ffffffffffffffffffffffffffffffffffffffff909116907f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d390606801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610ed491611b2d565b60405180910390a260065490945073ffffffffffffffffffffffffffffffffffffffff16925050509250929050565b610f0b611590565b61086a8282611585565b60605f610f2483850185611d8d565b6060818101516040805160808101825260018152845173ffffffffffffffffffffffffffffffffffffffff16602080830191909152308284015282518082018452849052825180820185905283518082038301815290840184529482019490945290519394509092610f96920161201f565b6040516020818303038152906040529250505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610ff0611590565b610ff95f611744565b565b604080516080810182525f808252602082018190529181018290526060810191909152604080516080810190915260038054829060ff16600181111561104357611043611b3f565b600181111561105457611054611b3f565b81526001820154602082015260029091015460ff81166040830152610100900473ffffffffffffffffffffffffffffffffffffffff16606090910152919050565b5f61109e611590565b5f6110ab8385018561209d565b90505f81602001518060200190518101906110c69190611ff5565b90505f80545f036110d85750806110fb565b670de0b6b3a7640000825f546110ee919061211a565b6110f89190612131565b90505b600b541580159061110d5750600b5481115b156111175750600b545b6111208161178e565b611156576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600854816009546111679190611c92565b111561119f576040517f360e42e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060095f8282546111b09190611c92565b92505081905550600160075f8282546111c99190611c92565b90915550506006546111f29073ffffffffffffffffffffffffffffffffffffffff1688836116fb565b6006546040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606092831b811660208301529189901b90911660348201526048810182905273ffffffffffffffffffffffffffffffffffffffff8816907f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d390606801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526112ad91611b2d565b60405180910390a25060019695505050505050565b60026112cd816115b6565b838214611306576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610a695761135886868381811061132557611325611ca5565b905060200201602081019061133a9190611997565b85858481811061134c5761134c611ca5565b905060200201356115aa565b600101611308565b5f808061136f8486018661209d565b90505f816020015180602001905181019061138a9190611ff5565b90505f545f0361139c578092506113bf565b670de0b6b3a7640000815f546113b2919061211a565b6113bc9190612131565b92505b6113c88361178e565b979650505050505050565b60026113de816115b6565b838214611417576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b84811015610a695761146986868381811061143657611436611ca5565b905060200201602081019061144b9190611997565b85858481811061145d5761145d611ca5565b90506020020135611585565b600101611419565b611479611590565b63389a75e1600c52805f526020600c20805442111561149f57636f5e88185f526004601cfd5b5f905561085581611744565b6114b3611590565b8060601b6114c857637448fbae5f526004601cfd5b61085581611744565b5f8173ffffffffffffffffffffffffffffffffffffffff166114f6638b78c6d8195490565b73ffffffffffffffffffffffffffffffffffffffff1614806108455750638b78c6d8600c9081525f83905260209020546003161515610845565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f565863380000000000000000000000000000000000000000000000000000000014806108455750610845826117a8565b61086a82825f6117fd565b638b78c6d819543314610ff9576382b429005f526004601cfd5b61086a828260016117fd565b638b78c6d81954331461085557638b78c6d8600c52335f52806020600c205416610855576382b429005f526004601cfd5b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f5114171661163257637939f4245f526004601cfd5b5f60605260405250505050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b73ffffffffffffffffffffffffffffffffffffffff16638b78c6d819819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b638b78c6d8600c52815f52806020600c205580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a35050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f5114171661173b576390b8ec185f526004601cfd5b5f603452505050565b638b78c6d819805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b5f600854826009546117a09190611c92565b111592915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fa9216705000000000000000000000000000000000000000000000000000000001480610845575061084582611854565b638b78c6d8600c52825f526020600c2080548381178361181e575080841681185b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f6ab67a0d00000000000000000000000000000000000000000000000000000000148061084557507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610845565b5f602082840312156118fa575f80fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611929575f80fd5b9392505050565b5f60208284031215611940575f80fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461196a575f80fd5b919050565b5f8060408385031215611980575f80fd5b61198983611947565b946020939093013593505050565b5f602082840312156119a7575f80fd5b61192982611947565b5f8083601f8401126119c0575f80fd5b50813567ffffffffffffffff8111156119d7575f80fd5b6020830191508360208260051b85010111156119f1575f80fd5b9250929050565b5f805f8060408587031215611a0b575f80fd5b843567ffffffffffffffff811115611a21575f80fd5b611a2d878288016119b0565b909550935050602085013567ffffffffffffffff811115611a4c575f80fd5b611a58878288016119b0565b95989497509550505050565b5f8083601f840112611a74575f80fd5b50813567ffffffffffffffff811115611a8b575f80fd5b6020830191508360208285010111156119f1575f80fd5b5f8060208385031215611ab3575f80fd5b823567ffffffffffffffff811115611ac9575f80fd5b611ad585828601611a64565b90969095509350505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f6119296020830184611ae1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60028110611b7c57611b7c611b3f565b9052565b60808101611b8e8287611b6c565b84602083015260ff8416604083015273ffffffffffffffffffffffffffffffffffffffff8316606083015295945050505050565b611bcd828251611b6c565b6020810151602083015260ff604082015116604083015273ffffffffffffffffffffffffffffffffffffffff60608201511660608301525050565b608081016108458284611bc2565b5f805f60408486031215611c28575f80fd5b611c3184611947565b9250602084013567ffffffffffffffff811115611c4c575f80fd5b611c5886828701611a64565b9497909650939450505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561084557610845611c65565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215611ce2575f80fd5b81358015158114611929575f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160e0810167ffffffffffffffff81118282101715611d4157611d41611cf1565b60405290565b6040516080810167ffffffffffffffff81118282101715611d4157611d41611cf1565b6040805190810167ffffffffffffffff81118282101715611d4157611d41611cf1565b5f81830361014081128015611da0575f80fd5b50611da9611d1e565b611db284611947565b8152611dc060208501611947565b60208201526040848101359082015260608085013590820152611de560808501611947565b60808281019190915260a085810135908301527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4083011215611e25575f80fd5b611e2d611d47565b915060c084013560028110611e40575f80fd5b825260e0840135602083015261010084013560ff81168114611e60575f80fd5b6040830152611e726101208501611947565b606083015260c08101919091529392505050565b8581526020810185905273ffffffffffffffffffffffffffffffffffffffff84166040820152606081018390526101008101611ec56080830184611bc2565b9695505050505050565b5f82601f830112611ede575f80fd5b813567ffffffffffffffff811115611ef857611ef8611cf1565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810167ffffffffffffffff81118282101715611f4557611f45611cf1565b604052818152838201602001851015611f5c575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611f88575f80fd5b813567ffffffffffffffff811115611f9e575f80fd5b820160408185031215611faf575f80fd5b611fb7611d6a565b611fc082611947565b8152602082013567ffffffffffffffff811115611fdb575f80fd5b611fe786828501611ecf565b602083015250949350505050565b5f60208284031215612005575f80fd5b5051919050565b8181038181111561084557610845611c65565b602081525f82516003811061203657612036611b3f565b8060208401525073ffffffffffffffffffffffffffffffffffffffff602084015116604083015273ffffffffffffffffffffffffffffffffffffffff6040840151166060830152606083015160808084015261209560a0840182611ae1565b949350505050565b5f602082840312156120ad575f80fd5b813567ffffffffffffffff8111156120c3575f80fd5b8201604081850312156120d4575f80fd5b6120dc611d6a565b813567ffffffffffffffff8111156120f2575f80fd5b6120fe86828501611ecf565b825250602082013567ffffffffffffffff811115611fdb575f80fd5b808202811582820484141761084557610845611c65565b5f82612164577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50049056fea2646970667358221220517dc82bb1d91d6e0f6b7e55452e2fb8c283a4195077a47e957ae77da71227eb64736f6c634300081a0033", y = class y extends E {
415
415
  constructor() {
416
416
  super(...arguments), this.abi = v;
417
417
  }
@@ -424,7 +424,7 @@ const F0 = "0x6080604052348015600e575f80fd5b5060156019565b6078565b63409feecd1980
424
424
  * @returns {Promise<Address>}
425
425
  */
426
426
  async owner(f) {
427
- return await W(this._config, {
427
+ return await H(this._config, {
428
428
  address: this.assertValidAddress(),
429
429
  args: [],
430
430
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
@@ -440,7 +440,7 @@ const F0 = "0x6080604052348015600e575f80fd5b5060156019565b6078565b63409feecd1980
440
440
  * @returns {Promise<bigint>} - The current reward
441
441
  */
442
442
  async currentReward(f) {
443
- return await X(
443
+ return await W(
444
444
  this._config,
445
445
  {
446
446
  address: this.assertValidAddress(),
@@ -459,7 +459,7 @@ const F0 = "0x6080604052348015600e575f80fd5b5060156019565b6078565b63409feecd1980
459
459
  * @returns {Promise<bigint>} The maximum reward amount per claim
460
460
  */
461
461
  async getMaxReward(f) {
462
- return await Y(this._config, {
462
+ return await X(this._config, {
463
463
  ...f,
464
464
  address: this.assertValidAddress()
465
465
  });
@@ -480,7 +480,7 @@ const F0 = "0x6080604052348015600e575f80fd5b5060156019565b6078565b63409feecd1980
480
480
  chainId: f,
481
481
  hash: a
482
482
  });
483
- if (d.fieldIndex === x0.GAS_REBATE_INCENTIVE)
483
+ if (d.fieldIndex === P0.GAS_REBATE_INCENTIVE)
484
484
  return s.gasUsed * s.effectiveGasPrice + // Normal gas cost
485
485
  (s.blobGasUsed ?? 0n) * (s.blobGasPrice ?? 0n);
486
486
  const n = s.logs;
@@ -542,7 +542,7 @@ const F0 = "0x6080604052348015600e575f80fd5b5060156019565b6078565b63409feecd1980
542
542
  * @returns {Promise<bigint>}
543
543
  */
544
544
  async claims(f) {
545
- return await H(this._config, {
545
+ return await Y(this._config, {
546
546
  address: this.assertValidAddress(),
547
547
  args: [],
548
548
  // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally
@@ -829,7 +829,7 @@ const F0 = "0x6080604052348015600e575f80fd5b5060156019565b6078565b63409feecd1980
829
829
  manager: ((d = this.payload) == null ? void 0 : d.manager) ?? t,
830
830
  criteria: ((c = this.payload) == null ? void 0 : c.criteria) ?? {
831
831
  criteriaType: 0,
832
- signature: t,
832
+ signature: E0,
833
833
  fieldIndex: 0,
834
834
  targetContract: t
835
835
  }
@@ -850,7 +850,7 @@ const F0 = "0x6080604052348015600e575f80fd5b5060156019565b6078565b63409feecd1980
850
850
  );
851
851
  return {
852
852
  abi: v,
853
- bytecode: F0,
853
+ bytecode: q0,
854
854
  args: [D(b)],
855
855
  ...this.optionallyAttachAccount(e.account)
856
856
  };
@@ -945,7 +945,7 @@ const F0 = "0x6080604052348015600e575f80fd5b5060156019565b6078565b63409feecd1980
945
945
  };
946
946
  y.bases = {
947
947
  31337: void 0,
948
- ...T0
948
+ ...x0
949
949
  }, y.registryType = T.INCENTIVE;
950
950
  let w = y;
951
951
  function D({
@@ -1001,17 +1001,17 @@ function D({
1001
1001
  );
1002
1002
  }
1003
1003
  const N = {
1004
- [n0]: B0,
1004
+ [n0]: k0,
1005
1005
  [o0]: _0,
1006
1006
  [l0]: w,
1007
1007
  [m0]: p,
1008
1008
  [u0]: V0,
1009
1009
  // [AERC1155Incentive as Hex]: ERC1155Incentive,
1010
1010
  [g0]: R0,
1011
- [h0]: $0,
1012
- [y0]: P0
1011
+ [h0]: B0,
1012
+ [y0]: $0
1013
1013
  };
1014
- async function K0(r, f, a) {
1014
+ async function ff(r, f, a) {
1015
1015
  const b = await A0(r.config, {
1016
1016
  abi: r0,
1017
1017
  functionName: "getComponentInterface",
@@ -1030,7 +1030,7 @@ export {
1030
1030
  N as I,
1031
1031
  w as a,
1032
1032
  D as b,
1033
- K0 as i,
1033
+ ff as i,
1034
1034
  _ as p
1035
1035
  };
1036
- //# sourceMappingURL=Incentive-DZLG6T1-.js.map
1036
+ //# sourceMappingURL=Incentive-D_NHLasu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Incentive-D_NHLasu.js","sources":["../src/Incentives/ERC20PeggedIncentive.ts","../src/Incentives/ERC20PeggedVariableCriteriaIncentive.ts","../src/Incentives/Incentive.ts"],"sourcesContent":["import {\n erc20PeggedIncentiveAbi,\n readErc20PeggedIncentiveAsset,\n readErc20PeggedIncentiveClaimed,\n readErc20PeggedIncentiveClaims,\n readErc20PeggedIncentiveCurrentReward,\n readErc20PeggedIncentiveGetPeg,\n readErc20PeggedIncentiveIsClaimable,\n readErc20PeggedIncentiveLimit,\n readErc20PeggedIncentiveOwner,\n readErc20PeggedIncentivePeg,\n readErc20PeggedIncentiveReward,\n readErc20PeggedIncentiveTotalClaimed,\n simulateErc20PeggedIncentiveClaim,\n simulateErc20PeggedIncentiveClawback,\n writeErc20PeggedIncentiveClaim,\n writeErc20PeggedIncentiveClawback,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/incentives/ERC20PeggedIncentive.sol/ERC20PeggedIncentive.json';\nimport {\n type Address,\n type ContractEventName,\n type Hex,\n decodeAbiParameters,\n encodeAbiParameters,\n zeroAddress,\n} from 'viem';\nimport { ERC20PeggedIncentive as ERC20PeggedIncentiveBases } from '../../dist/deployments.json';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport { DeployableTarget } from '../Deployable/DeployableTarget';\nimport { type ClaimPayload, prepareClaimPayload } from '../claiming';\nimport {\n type GenericLog,\n type ReadParams,\n RegistryType,\n type WriteParams,\n} from '../utils';\n\nexport { erc20PeggedIncentiveAbi };\n\n/**\n * The object representation of a `ERC20PeggedIncentive.InitPayload`\n *\n * @export\n * @interface ERC20PeggedIncentivePayload\n * @typedef {ERC20PeggedIncentivePayload}\n */\nexport interface ERC20PeggedIncentivePayload {\n /**\n * The address of the incentivized asset.\n *\n * @type {Address}\n */\n asset: Address;\n /**\n * The peg to normalize to.\n *\n * @type {Address}\n */\n peg: Address;\n /**\n * The amount of the asset to distribute.\n *\n * @type {bigint}\n */\n reward: bigint;\n /**\n * Total spend for the incentive.\n *\n * @type {bigint}\n */\n limit: bigint;\n /**\n * (Optional) The address of the entity that can managed the incentive.\n *\n * @type {Address}\n * @optional\n */\n manager?: Address;\n}\n\n/**\n * A generic `viem.Log` event with support for `ERC20PeggedIncentive` event types.\n *\n * @export\n * @typedef {ERC20PeggedIncentiveLog}\n * @template {ContractEventName<typeof erc20PeggedIncentiveAbi>} [event=ContractEventName<\n * typeof erc20PeggedIncentiveAbi\n * >]\n */\nexport type ERC20PeggedIncentiveLog<\n event extends ContractEventName<\n typeof erc20PeggedIncentiveAbi\n > = ContractEventName<typeof erc20PeggedIncentiveAbi>,\n> = GenericLog<typeof erc20PeggedIncentiveAbi, event>;\n\n/**\n * A simple ERC20 incentive implementation that allows claiming of tokens\n *\n * @export\n * @class ERC20PeggedIncentive\n * @typedef {ERC20PeggedIncentive}\n * @extends {DeployableTarget<ERC20PeggedIncentivePayload>}\n */\nexport class ERC20PeggedIncentive extends DeployableTarget<\n ERC20PeggedIncentivePayload,\n typeof erc20PeggedIncentiveAbi\n> {\n public override readonly abi = erc20PeggedIncentiveAbi;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {Record<number, Address>}\n */\n public static override bases: Record<number, Address> = {\n 31337: import.meta.env.VITE_ERC20_INCENTIVE_BASE,\n ...(ERC20PeggedIncentiveBases as Record<number, Address>),\n };\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {RegistryType}\n */\n public static override registryType: RegistryType = RegistryType.INCENTIVE;\n\n /**\n * The owner of the incentive\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<Address>}\n */\n public async owner(params?: ReadParams) {\n return await readErc20PeggedIncentiveOwner(this._config, {\n address: this.assertValidAddress(),\n args: [],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Calculates the current reward based on the time since the last claim. The reward is calculated based on the time since the last claim, the available budget, and the reward parameters. It increases linearly over time in the absence of claims, with each hour adding `rewardBoost` to the current reward, up to the available budget. For example, if there is one claim in the first hour, then no claims for three hours, the claimable reward would be `initialReward - rewardDecay + (rewardBoost * 3)`\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - The current reward\n */\n public async currentReward(params?: ReadParams) {\n return await readErc20PeggedIncentiveCurrentReward(this._config, {\n address: this.assertValidAddress(),\n args: [],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * The number of claims that have been made\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>}\n */\n public async claims(params?: ReadParams) {\n return await readErc20PeggedIncentiveClaims(this._config, {\n address: this.assertValidAddress(),\n args: [],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * The total amount of rewards claimed\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>}\n */\n public async totalClaimed(params?: ReadParams) {\n return await readErc20PeggedIncentiveTotalClaimed(this._config, {\n address: this.assertValidAddress(),\n args: [],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * A mapping of address to claim status\n *\n * @public\n * @async\n * @param {Address} address\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>}\n */\n public async claimed(address: Address, params?: ReadParams) {\n return await readErc20PeggedIncentiveClaimed(this._config, {\n address: this.assertValidAddress(),\n args: [address],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * The address of the ERC20-like token\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<Address>}\n */\n public async asset(params?: ReadParams) {\n return await readErc20PeggedIncentiveAsset(this._config, {\n address: this.assertValidAddress(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * The address of the pegged ERC20-like token\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<Address>}\n */\n public async peg(params?: ReadParams) {\n return await readErc20PeggedIncentivePeg(this._config, {\n address: this.assertValidAddress(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * The reward amount issued for each claim\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>}\n */\n public async reward(params?: ReadParams) {\n return await readErc20PeggedIncentiveReward(this._config, {\n address: this.assertValidAddress(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * The limit (max possible rewards payout in reward token)\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>}\n */\n public async limit(params?: ReadParams) {\n return await readErc20PeggedIncentiveLimit(this._config, {\n address: this.assertValidAddress(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Claim the incentive\n *\n * @public\n * @async\n * @param {ClaimPayload} payload\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - Returns true if successfully claimed\n */\n protected async claim(payload: ClaimPayload, params?: WriteParams) {\n return await this.awaitResult(this.claimRaw(payload, params));\n }\n\n /**\n * Claim the incentive\n *\n * @public\n * @async\n * @param {ClaimPayload} payload\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - Returns true if successfully claimed\n */\n protected async claimRaw(payload: ClaimPayload, params?: WriteParams) {\n const { request, result } = await simulateErc20PeggedIncentiveClaim(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [prepareClaimPayload(payload)],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeErc20PeggedIncentiveClaim(this._config, request);\n return { hash, result };\n }\n\n /**\n * Clawback assets from the incentive\n *\n * @public\n * @async\n * @param {ClaimPayload} payload\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if the assets were successfully clawbacked\n */\n public async clawback(payload: ClaimPayload, params?: WriteParams) {\n return await this.awaitResult(this.clawbackRaw(payload, params));\n }\n\n /**\n * Clawback assets from the incentive\n *\n * @public\n * @async\n * @param {ClaimPayload} payload\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the assets were successfully clawbacked\n */\n public async clawbackRaw(payload: ClaimPayload, params?: WriteParams) {\n const { request, result } = await simulateErc20PeggedIncentiveClawback(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [prepareClaimPayload(payload)],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n const hash = await writeErc20PeggedIncentiveClawback(this._config, request);\n return { hash, result };\n }\n\n /**\n * Check if an incentive is claimable.\n *\n * @public\n * @async\n * @param {ClaimPayload} payload\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} = True if the incentive is claimable based on the data payload\n */\n public async isClaimable(payload: ClaimPayload, params?: ReadParams) {\n return await readErc20PeggedIncentiveIsClaimable(this._config, {\n address: this.assertValidAddress(),\n args: [payload.target, payload.data],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * read the peg token for the incentive.\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<Address>} = The address of the token the reward is pegged to\n */\n public async getPeg(params?: ReadParams) {\n return await readErc20PeggedIncentiveGetPeg(this._config, {\n address: this.assertValidAddress(),\n args: [],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Get the maximum amount that can be claimed by this incentive. Useful when used in conjunction with `BoostCore.calculateProtocolFee`\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} = Return a bigint representing that maximum amount that can be distributed by this incentive.\n */\n public async getTotalBudget(params?: ReadParams) {\n return await this.limit(params);\n }\n\n /**\n * Check if any claims remain by comparing the incentive's total claims against its limit. Does not take requesting user's elligibility into account.\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} - True if total claims is less than limit\n */\n public async canBeClaimed(params?: ReadParams) {\n return (await this.getRemainingClaimPotential(params)) > 0n;\n }\n\n /**\n * Check how many claims remain by comparing the incentive's total claims against its limit. Does not take requesting user's elligibility into account.\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - True if total claims is less than limit\n */\n public async getRemainingClaimPotential(params?: ReadParams) {\n const [totalClaimed, limit] = await Promise.all([\n this.totalClaimed(params),\n this.limit(params),\n ]);\n return limit - totalClaimed;\n }\n\n /**\n * @inheritdoc\n *\n * @public\n * @param {?ERC20PeggedIncentivePayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: ERC20PeggedIncentivePayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [payload, options] = this.validateDeploymentConfig(\n _payload,\n _options,\n );\n return {\n abi: erc20PeggedIncentiveAbi,\n bytecode: bytecode as Hex,\n args: [prepareERC20PeggedIncentivePayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n\n /**\n * Encodes an amount to clawback from the incentive\n *\n * @public\n * @param {bigint} amount - How much of the asset to clawback\n * @returns {Hex} - Returns an encoded uint256\n */\n public buildClawbackData(amount: bigint) {\n return encodeAbiParameters([{ type: 'uint256' }], [amount]);\n }\n\n /**\n * Builds the claim data for the ERC20PeggedIncentive.\n *\n * @public\n * @param {bigint} rewardAmount\n * @returns {Hash} Returns the encoded claim data\n * @description This function returns the encoded claim data for the ERC20PeggedIncentive.\n */\n public buildClaimData(rewardAmount: bigint) {\n return encodeAbiParameters(\n [{ type: 'uint256', name: 'rewardAmount' }],\n [rewardAmount],\n );\n }\n /**\n * Generates a top-up payload for the ERC20PeggedIncentive contract by incrementing\n * the existing `limit` field by `netAmount`. The entire payload is then re-encoded\n * via `prepareERC20PeggedIncentivePayload(...)`.\n *\n * @public\n * @param {bigint} netAmount - The additional limit to add to this incentive.\n * @returns {Hex} The ABI-encoded payload with the updated `limit`.\n */\n public async getTopupPayload(netAmount: bigint): Promise<Hex> {\n return prepareERC20PeggedIncentivePayload({\n asset: (await this.asset()) ?? zeroAddress,\n peg: this.payload?.peg ?? zeroAddress,\n reward: this.payload?.reward ?? 0n,\n limit: netAmount,\n manager: this.payload?.manager ?? zeroAddress,\n });\n }\n\n /**\n * Decodes claim data for the ERC20PeggedIncentive, returning the claim amount.\n * Useful when deriving amount claimed from logs.\n *\n * @public\n * @param {Hex} claimData\n * @returns {BigInt} Returns the reward amount from a claim data payload\n */\n public decodeClaimData(claimData: Hex) {\n const boostClaimData = decodeAbiParameters(\n [\n {\n type: 'tuple',\n name: 'BoostClaimData',\n components: [\n { type: 'bytes', name: 'validatorData' },\n { type: 'bytes', name: 'incentiveData' },\n ],\n },\n ],\n claimData,\n );\n const signedAmount = decodeAbiParameters(\n [{ type: 'uint256' }],\n boostClaimData[0].incentiveData,\n )[0];\n return signedAmount;\n }\n}\n\n/**\n * Given a {@link ERC20PeggedIncentivePayload}, properly encode a `ERC20PeggedIncentive.InitPayload` for use with {@link ERC20PeggedIncentive} initialization.\n *\n * @param {ERC20PeggedIncentivePayload} param0\n * @param {Address} param0.asset - The address of the incentivized asset.\n * @param {Address} param0.peg - The peg to normalize to.\n * @param {bigint} param0.reward - The amount of the asset to distribute.\n * @param {bigint} param0.limit - How many times can this incentive be claimed.\n * @param {Address} [param0.manager=zeroAddress] - The entity that can manage the incentive.\n * @returns {Hex}\n */\nexport function prepareERC20PeggedIncentivePayload({\n asset,\n peg,\n reward,\n limit,\n manager = zeroAddress,\n}: ERC20PeggedIncentivePayload) {\n return encodeAbiParameters(\n [\n { type: 'address', name: 'asset' },\n { type: 'address', name: 'peg' },\n { type: 'uint256', name: 'reward' },\n { type: 'uint256', name: 'limit' },\n { type: 'address', name: 'manager' },\n ],\n [asset, peg, reward, limit, manager],\n );\n}\n","import {\n erc20PeggedVariableCriteriaIncentiveAbi,\n readErc20PeggedVariableCriteriaIncentiveAsset,\n readErc20PeggedVariableCriteriaIncentiveClaimed,\n readErc20PeggedVariableCriteriaIncentiveClaims,\n readErc20PeggedVariableCriteriaIncentiveCurrentReward,\n readErc20PeggedVariableCriteriaIncentiveGetIncentiveCriteria,\n readErc20PeggedVariableCriteriaIncentiveGetMaxReward,\n readErc20PeggedVariableCriteriaIncentiveGetPeg,\n readErc20PeggedVariableCriteriaIncentiveIsClaimable,\n readErc20PeggedVariableCriteriaIncentiveLimit,\n readErc20PeggedVariableCriteriaIncentiveOwner,\n readErc20PeggedVariableCriteriaIncentivePeg,\n readErc20PeggedVariableCriteriaIncentiveReward,\n readErc20PeggedVariableCriteriaIncentiveTotalClaimed,\n simulateErc20PeggedVariableCriteriaIncentiveClaim,\n simulateErc20PeggedVariableCriteriaIncentiveClawback,\n writeErc20PeggedVariableCriteriaIncentiveClaim,\n writeErc20PeggedVariableCriteriaIncentiveClawback,\n} from '@boostxyz/evm';\nimport { bytecode } from '@boostxyz/evm/artifacts/contracts/incentives/ERC20PeggedVariableCriteriaIncentive.sol/ERC20PeggedVariableCriteriaIncentive.json';\nimport { getTransaction, getTransactionReceipt } from '@wagmi/core';\nimport type { AbiEvent } from 'abitype';\nimport {\n type AbiFunction,\n type Address,\n type ContractEventName,\n type Hex,\n decodeAbiParameters,\n decodeFunctionData,\n encodeAbiParameters,\n parseEther,\n parseEventLogs,\n zeroAddress,\n zeroHash,\n} from 'viem';\nimport { ERC20PeggedVariableCriteriaIncentive as ERC20PeggedVariableCriteriaIncentiveBases } from '../../dist/deployments.json';\nimport { SignatureType } from '../Actions/EventAction';\nimport type {\n DeployableOptions,\n GenericDeployableParams,\n} from '../Deployable/Deployable';\nimport { DeployableTarget } from '../Deployable/DeployableTarget';\nimport { type ClaimPayload, prepareClaimPayload } from '../claiming';\nimport {\n DecodedArgsError,\n IncentiveCriteriaNotFoundError,\n InvalidCriteriaTypeError,\n NoMatchingLogsError,\n} from '../errors';\nimport {\n CheatCodes,\n type GenericLog,\n type ReadParams,\n RegistryType,\n type WriteParams,\n} from '../utils';\nimport type {\n GetIncentiveScalarParams,\n IncentiveCriteria,\n} from './ERC20VariableCriteriaIncentive';\n\nexport { erc20PeggedVariableCriteriaIncentiveAbi };\n\n/**\n * The object representation of a `Erc20PeggedVariableCriteriaIncentive.InitPayload`\n *\n * @export\n * @interface Erc20PeggedVariableCriteriaIncentive\n * @typedef {Erc20PeggedVariableCriteriaIncentive}\n */\nexport interface ERC20PeggedVariableCriteriaIncentivePayload {\n /**\n * The address of the incentivized asset.\n *\n * @type {Address}\n */\n asset: Address;\n /**\n * The peg to normalize to.\n *\n * @type {Address}\n */\n peg: Address;\n /**\n * The amount of the asset to distribute.\n *\n * @type {bigint}\n */\n reward: bigint;\n /**\n * Total spend for the incentive.\n *\n * @type {bigint}\n */\n limit: bigint;\n /**\n * Maximum reward each claim is elligible for.\n *\n * @type {bigint}\n */\n maxReward: bigint;\n /**\n * (Optional) The address of the entity that can managed the incentive.\n *\n * @type {Address}\n * @optional\n */\n manager?: Address;\n /**\n * The criteria for the incentive that determines how the reward is distributed.\n *\n * @type {IncentiveCriteria}\n */\n criteria: IncentiveCriteria;\n}\n\n/**\n * A generic `viem.Log` event with support for `Erc20PeggedVariableCriteriaIncentive` event types.\n *\n * @export\n * @typedef {Erc20PeggedVariableCriteriaIncentiveLog}\n * @template {ContractEventName<typeof erc20PeggedVariableCriteriaIncentiveAbi>} [event=ContractEventName<\n * typeof erc20PeggedVariableCriteriaIncentiveAbi\n * >]\n */\nexport type Erc20PeggedVariableCriteriaIncentiveLog<\n event extends ContractEventName<\n typeof erc20PeggedVariableCriteriaIncentiveAbi\n > = ContractEventName<typeof erc20PeggedVariableCriteriaIncentiveAbi>,\n> = GenericLog<typeof erc20PeggedVariableCriteriaIncentiveAbi, event>;\n\n/**\n * A simple ERC20 incentive implementation that allows claiming of tokens\n *\n * @export\n * @class Erc20PeggedVariableCriteriaIncentive\n * @typedef {ERC20PeggedVariableCriteriaIncentive}\n * @extends {DeployableTarget<ERC20PeggedVariableCriteriaIncentive>}\n */\nexport class ERC20PeggedVariableCriteriaIncentive extends DeployableTarget<\n ERC20PeggedVariableCriteriaIncentivePayload,\n typeof erc20PeggedVariableCriteriaIncentiveAbi\n> {\n public override readonly abi = erc20PeggedVariableCriteriaIncentiveAbi;\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {Record<number, Address>}\n */\n public static override bases: Record<number, Address> = {\n 31337: import.meta.env.VITE_ERC20_INCENTIVE_BASE,\n ...(ERC20PeggedVariableCriteriaIncentiveBases as Record<number, Address>),\n };\n /**\n * @inheritdoc\n *\n * @public\n * @static\n * @type {RegistryType}\n */\n public static override registryType: RegistryType = RegistryType.INCENTIVE;\n\n /**\n * The owner of the incentive\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<Address>}\n */\n public async owner(params?: ReadParams) {\n return await readErc20PeggedVariableCriteriaIncentiveOwner(this._config, {\n address: this.assertValidAddress(),\n args: [],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Calculates the current reward based on the time since the last claim. The reward is calculated based on the time since the last claim, the available budget, and the reward parameters. It increases linearly over time in the absence of claims, with each hour adding `rewardBoost` to the current reward, up to the available budget. For example, if there is one claim in the first hour, then no claims for three hours, the claimable reward would be `initialReward - rewardDecay + (rewardBoost * 3)`\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - The current reward\n */\n public async currentReward(params?: ReadParams) {\n return await readErc20PeggedVariableCriteriaIncentiveCurrentReward(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n }\n\n /**\n * Retrieves the maximum reward amount per claim.\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} The maximum reward amount per claim\n */\n public async getMaxReward(params?: ReadParams): Promise<bigint> {\n const maxReward =\n await readErc20PeggedVariableCriteriaIncentiveGetMaxReward(this._config, {\n ...params,\n address: this.assertValidAddress(),\n });\n\n return maxReward;\n }\n\n /**\n * Fetches the incentive scalar from a transaction hash\n *\n * @param {GetIncentiveScalarParams} params\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>}\n * @throws {InvalidCriteriaTypeError | NoMatchingLogsError | DecodedArgsError}\n */\n public async getIncentiveScalar(\n { chainId, hash, knownSignatures }: GetIncentiveScalarParams,\n params?: ReadParams,\n ): Promise<bigint> {\n const criteria = await this.getIncentiveCriteria(params);\n if (criteria.criteriaType === SignatureType.EVENT) {\n const transactionReceipt = await getTransactionReceipt(this._config, {\n chainId,\n hash,\n });\n if (criteria.fieldIndex === CheatCodes.GAS_REBATE_INCENTIVE) {\n const totalCost =\n transactionReceipt.gasUsed * transactionReceipt.effectiveGasPrice + // Normal gas cost\n (transactionReceipt.blobGasUsed ?? 0n) *\n (transactionReceipt.blobGasPrice ?? 0n); // Blob gas cost - account for potential undefined values\n return totalCost;\n }\n const logs = transactionReceipt.logs;\n\n if (logs.length === 0) {\n throw new NoMatchingLogsError(\n `No logs found for event signature ${criteria.signature}`,\n );\n }\n\n // Decode the event log\n try {\n // Decode function data\n const eventAbi = knownSignatures[criteria.signature] as AbiEvent;\n const decodedEvents = parseEventLogs({\n abi: [eventAbi],\n logs,\n });\n if (decodedEvents == undefined || decodedEvents.length === 0) {\n throw new NoMatchingLogsError(\n `No logs found for event signature ${criteria.signature}`,\n );\n }\n const scalarValue = (decodedEvents[0]?.args as string[])[\n criteria.fieldIndex\n ];\n\n if (scalarValue === undefined) {\n throw new DecodedArgsError(\n `Decoded argument at index ${criteria.fieldIndex} is undefined`,\n );\n }\n return BigInt(scalarValue);\n } catch (e) {\n throw new DecodedArgsError(\n `Failed to decode event log for signature ${criteria.signature}: ${(e as Error).message}`,\n );\n }\n } else if (criteria.criteriaType === SignatureType.FUNC) {\n // Fetch the transaction data\n const transaction = await getTransaction(this._config, {\n chainId,\n hash,\n });\n try {\n // Decode function data\n const func = knownSignatures[criteria.signature] as AbiFunction;\n const decodedFunction = decodeFunctionData({\n abi: [func],\n data: transaction.input,\n });\n const scalarValue = decodedFunction.args[criteria.fieldIndex] as string;\n if (scalarValue === undefined || scalarValue === null) {\n throw new DecodedArgsError(\n `Decoded argument at index ${criteria.fieldIndex} is undefined`,\n );\n }\n return BigInt(scalarValue);\n } catch (e) {\n throw new DecodedArgsError(\n `Failed to decode function data for signature ${criteria.signature}: ${(e as Error).message}`,\n );\n }\n } else {\n throw new InvalidCriteriaTypeError(\n `Invalid criteria type ${criteria.criteriaType}`,\n );\n }\n }\n\n /**\n * The number of claims that have been made\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>}\n */\n public async claims(params?: ReadParams) {\n return await readErc20PeggedVariableCriteriaIncentiveClaims(this._config, {\n address: this.assertValidAddress(),\n args: [],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * The total amount of rewards claimed\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>}\n */\n public async totalClaimed(params?: ReadParams) {\n return await readErc20PeggedVariableCriteriaIncentiveTotalClaimed(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n }\n\n /**\n * A mapping of address to claim status\n *\n * @public\n * @async\n * @param {Address} address\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>}\n */\n public async claimed(address: Address, params?: ReadParams) {\n return await readErc20PeggedVariableCriteriaIncentiveClaimed(this._config, {\n address: this.assertValidAddress(),\n args: [address],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * The address of the ERC20-like token\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<Address>}\n */\n public async asset(params?: ReadParams) {\n return await readErc20PeggedVariableCriteriaIncentiveAsset(this._config, {\n address: this.assertValidAddress(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * The address of the pegged ERC20-like token\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<Address>}\n */\n public async peg(params?: ReadParams) {\n return await readErc20PeggedVariableCriteriaIncentivePeg(this._config, {\n address: this.assertValidAddress(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * The reward amount issued for each claim\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>}\n */\n public async reward(params?: ReadParams) {\n return await readErc20PeggedVariableCriteriaIncentiveReward(this._config, {\n address: this.assertValidAddress(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * The limit (max possible rewards payout in reward token)\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>}\n */\n public async limit(params?: ReadParams) {\n return await readErc20PeggedVariableCriteriaIncentiveLimit(this._config, {\n address: this.assertValidAddress(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Claim the incentive\n *\n * @public\n * @async\n * @param {ClaimPayload} payload\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - Returns true if successfully claimed\n */\n protected async claim(payload: ClaimPayload, params?: WriteParams) {\n return await this.awaitResult(this.claimRaw(payload, params));\n }\n\n /**\n * Claim the incentive\n *\n * @public\n * @async\n * @param {ClaimPayload} payload\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - Returns true if successfully claimed\n */\n protected async claimRaw(payload: ClaimPayload, params?: WriteParams) {\n const { request, result } =\n await simulateErc20PeggedVariableCriteriaIncentiveClaim(this._config, {\n address: this.assertValidAddress(),\n args: [prepareClaimPayload(payload)],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n const hash = await writeErc20PeggedVariableCriteriaIncentiveClaim(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Clawback assets from the incentive\n *\n * @public\n * @async\n * @param {ClaimPayload} payload\n * @param {?WriteParams} [params]\n * @returns {Promise<boolean>} - True if the assets were successfully clawbacked\n */\n public async clawback(payload: ClaimPayload, params?: WriteParams) {\n return await this.awaitResult(this.clawbackRaw(payload, params));\n }\n\n /**\n * Clawback assets from the incentive\n *\n * @public\n * @async\n * @param {ClaimPayload} payload\n * @param {?WriteParams} [params]\n * @returns {Promise<{ hash: `0x${string}`; result: boolean; }>} - True if the assets were successfully clawbacked\n */\n public async clawbackRaw(payload: ClaimPayload, params?: WriteParams) {\n const { request, result } =\n await simulateErc20PeggedVariableCriteriaIncentiveClawback(this._config, {\n address: this.assertValidAddress(),\n args: [prepareClaimPayload(payload)],\n ...this.optionallyAttachAccount(),\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n const hash = await writeErc20PeggedVariableCriteriaIncentiveClawback(\n this._config,\n request,\n );\n return { hash, result };\n }\n\n /**\n * Check if an incentive is claimable.\n *\n * @public\n * @async\n * @param {ClaimPayload} payload\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} = True if the incentive is claimable based on the data payload\n */\n public async isClaimable(payload: ClaimPayload, params?: ReadParams) {\n return await readErc20PeggedVariableCriteriaIncentiveIsClaimable(\n this._config,\n {\n address: this.assertValidAddress(),\n args: [payload.target, payload.data],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n },\n );\n }\n\n /**\n * read the peg token for the incentive.\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<Address>} = The address of the token the reward is pegged to\n */\n public async getPeg(params?: ReadParams) {\n return await readErc20PeggedVariableCriteriaIncentiveGetPeg(this._config, {\n address: this.assertValidAddress(),\n args: [],\n // biome-ignore lint/suspicious/noExplicitAny: Accept any shape of valid wagmi/viem parameters, wagmi does the same thing internally\n ...(params as any),\n });\n }\n\n /**\n * Get the maximum amount that can be claimed by this incentive. Useful when used in conjunction with `BoostCore.calculateProtocolFee`\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} = Return a bigint representing that maximum amount that can be distributed by this incentive.\n */\n public async getTotalBudget(params?: ReadParams) {\n return await this.limit(params);\n }\n\n /**\n * Check if any claims remain by comparing the incentive's total claims against its limit. Does not take requesting user's elligibility into account.\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<boolean>} - True if total claims is less than limit\n */\n public async canBeClaimed(params?: ReadParams) {\n return (await this.getRemainingClaimPotential(params)) > 0n;\n }\n\n /**\n * Check how many claims remain by comparing the incentive's total claims against its limit. Does not take requesting user's elligibility into account.\n *\n * @public\n * @async\n * @param {?ReadParams} [params]\n * @returns {Promise<bigint>} - True if total claims is less than limit\n */\n public async getRemainingClaimPotential(params?: ReadParams) {\n const [totalClaimed, limit] = await Promise.all([\n this.totalClaimed(params),\n this.limit(params),\n ]);\n return limit - totalClaimed;\n }\n\n /**\n *Functions from the ERC20VariableIncentive contract\n */\n\n /**\n * Fetches the IncentiveCriteria struct from the contract\n *\n * @param {?ReadParams} [params]\n * @returns {Promise<IncentiveCriteria>} Incentive criteria structure\n * @throws {IncentiveCriteriaNotFoundError}\n */\n public async getIncentiveCriteria(\n params?: ReadParams,\n ): Promise<IncentiveCriteria> {\n try {\n const criteria =\n await readErc20PeggedVariableCriteriaIncentiveGetIncentiveCriteria(\n this._config,\n {\n ...params,\n address: this.assertValidAddress(),\n },\n );\n\n return criteria;\n } catch (e) {\n throw new IncentiveCriteriaNotFoundError(e as Error);\n }\n }\n\n /**\n * Generates a top-up payload for the ERC20PeggedIncentive contract by incrementing\n * the existing `limit` field by `netAmount`. The entire payload is then re-encoded\n * via `prepareERC20PeggedIncentivePayload(...)`.\n *\n * @public\n * @param {bigint} netAmount - The additional limit to add to this incentive.\n * @returns {Hex} The ABI-encoded payload with the updated `limit`.\n */\n public async getTopupPayload(netAmount: bigint): Promise<Hex> {\n return prepareERC20PeggedVariableCriteriaIncentivePayload({\n asset: (await this.asset()) ?? zeroAddress,\n peg: this.payload?.peg ?? zeroAddress,\n reward: this.payload?.reward ?? 0n,\n limit: netAmount,\n maxReward: this.payload?.maxReward ?? 0n,\n manager: this.payload?.manager ?? zeroAddress,\n criteria: this.payload?.criteria ?? {\n criteriaType: 0,\n signature: zeroHash,\n fieldIndex: 0,\n targetContract: zeroAddress,\n },\n });\n }\n\n /**\n * @inheritdoc\n *\n * @public\n * @param {?ERC20PeggedVariableCriteriaIncentivePayload} [_payload]\n * @param {?DeployableOptions} [_options]\n * @returns {GenericDeployableParams}\n */\n public override buildParameters(\n _payload?: ERC20PeggedVariableCriteriaIncentivePayload,\n _options?: DeployableOptions,\n ): GenericDeployableParams {\n const [payload, options] = this.validateDeploymentConfig(\n _payload,\n _options,\n );\n return {\n abi: erc20PeggedVariableCriteriaIncentiveAbi,\n bytecode: bytecode as Hex,\n args: [prepareERC20PeggedVariableCriteriaIncentivePayload(payload)],\n ...this.optionallyAttachAccount(options.account),\n };\n }\n\n /**\n * Encodes an amount to clawback from the incentive\n *\n * @public\n * @param {bigint} amount - How much of the asset to clawback\n * @returns {Hex} - Returns an encoded uint256\n */\n public buildClawbackData(amount: bigint) {\n return encodeAbiParameters([{ type: 'uint256' }], [amount]);\n }\n\n /**\n * Builds the claim data for the ERC20PeggedVariableCriteriaIncentivePayload.\n *\n * @public\n * @param {bigint} signedAmount\n * @returns {Hash} Returns the encoded claim data\n * @description This function returns the encoded claim data for the ERC20PeggedVariableCriteriaIncentivePayload.\n */\n public buildClaimData(signedAmount: bigint) {\n return encodeAbiParameters(\n [{ type: 'uint256', name: 'signedAmount' }],\n [signedAmount],\n );\n }\n\n /**\n * Decodes claim data for the ERC20PeggedVariableCriteriaIncentive, returning the claim amount.\n * Useful when deriving amount claimed from logs.\n *\n * @public\n * @param {Hex} claimData\n * @returns {BigInt} Returns the reward amount from a claim data payload\n */\n public async decodeClaimData(claimData: Hex) {\n const boostClaimData = decodeAbiParameters(\n [\n {\n type: 'tuple',\n name: 'BoostClaimData',\n components: [\n { type: 'bytes', name: 'validatorData' },\n { type: 'bytes', name: 'incentiveData' },\n ],\n },\n ],\n claimData,\n );\n const signedAmount = decodeAbiParameters(\n [{ type: 'uint256' }],\n boostClaimData[0].incentiveData,\n )[0];\n let claimAmount = signedAmount;\n const [reward, maxReward] = await Promise.all([\n this.reward(),\n this.getMaxReward(),\n ]);\n\n if (reward === 0n) {\n return claimAmount;\n } else {\n claimAmount = (reward * signedAmount) / parseEther('1');\n }\n\n if (maxReward !== 0n && claimAmount > maxReward) {\n claimAmount = maxReward;\n }\n\n return claimAmount;\n }\n\n /**\n * Decodes claim data for the ERC20PeggedVariableCriteriaIncentive, returning the claim amount.\n * Useful when deriving amount claimed from logs.\n * Use this function instead of `decodeClaimData` if you have reward details.\n *\n * @public\n * @param {Hex} claimData\n * @param {bigint} [reward]\n * @param {bigint} [maxReward]\n * @returns {BigInt} Returns the reward amount from a claim data payload\n */\n public decodeClaimDataWithRewardDetails(\n claimData: Hex,\n reward: bigint,\n maxReward: bigint,\n ) {\n const boostClaimData = decodeAbiParameters(\n [\n {\n type: 'tuple',\n name: 'BoostClaimData',\n components: [\n { type: 'bytes', name: 'validatorData' },\n { type: 'bytes', name: 'incentiveData' },\n ],\n },\n ],\n claimData,\n );\n const signedAmount = decodeAbiParameters(\n [{ type: 'uint256' }],\n boostClaimData[0].incentiveData,\n )[0];\n let claimAmount = signedAmount;\n\n if (reward === 0n) {\n return claimAmount;\n } else {\n claimAmount = (reward * signedAmount) / parseEther('1');\n }\n\n if (maxReward !== 0n && claimAmount > maxReward) {\n claimAmount = maxReward;\n }\n\n return claimAmount;\n }\n}\n\n/**\n * Given a {@link ERC20PeggedVariableCriteriaIncentivePayload}, properly encode a `ERC20PeggedVariableCriteriaIncentivePayload.InitPayload` for use with {@link ERC20PeggedVariableCriteriaIncentivePayload} initialization.\n *\n * @param {ERC20PeggedVariableCriteriaIncentivePayload} param0\n * @param {Address} param0.asset - The address of the incentivized asset.\n * @param {Address} param0.peg - The peg to normalize to.\n * @param {bigint} param0.reward - The amount of the asset to distribute.\n * @param {bigint} param0.limit - How many times can this incentive be claimed.\n * @param {Address} [param0.manager=zeroAddress] - The entity that can manage the incentive.\n * @param {IncentiveCriteria} param0.criteria - The incentive criteria for reward distribution.\n * @returns {Hex}\n */\nexport function prepareERC20PeggedVariableCriteriaIncentivePayload({\n asset,\n peg,\n reward,\n limit,\n maxReward = 0n,\n manager = zeroAddress,\n criteria,\n}: ERC20PeggedVariableCriteriaIncentivePayload) {\n return encodeAbiParameters(\n [\n {\n type: 'tuple',\n name: 'initPayloadExtended',\n components: [\n { type: 'address', name: 'asset' },\n { type: 'address', name: 'peg' },\n { type: 'uint256', name: 'reward' },\n { type: 'uint256', name: 'limit' },\n { type: 'address', name: 'manager' },\n { type: 'uint256', name: 'maxReward' },\n {\n type: 'tuple',\n name: 'criteria',\n components: [\n { type: 'uint8', name: 'criteriaType' },\n { type: 'bytes32', name: 'signature' },\n { type: 'uint8', name: 'fieldIndex' },\n { type: 'address', name: 'targetContract' },\n ],\n },\n ],\n },\n ],\n [\n {\n asset,\n peg,\n reward,\n limit,\n manager,\n maxReward,\n criteria: {\n criteriaType: criteria.criteriaType,\n signature: criteria.signature,\n fieldIndex: criteria.fieldIndex,\n targetContract: criteria.targetContract,\n },\n },\n ],\n );\n}\n","import { aIncentiveAbi } from '@boostxyz/evm';\nimport {\n AAllowListIncentive,\n ACGDAIncentive,\n AERC20Incentive,\n AERC20PeggedIncentive,\n AERC20PeggedVariableCriteriaIncentive,\n AERC20VariableCriteriaIncentive,\n AERC20VariableIncentive,\n // AERC20VariableCriteriaIncentive\n APointsIncentive,\n} from '@boostxyz/evm/deploys/componentInterfaces.json';\nimport { readContract } from '@wagmi/core';\nimport type { Address, Hex } from 'viem';\nimport type { DeployableOptions } from '../Deployable/Deployable';\nimport { InvalidComponentInterfaceError } from '../errors';\nimport type { ReadParams } from '../utils';\nimport { AllowListIncentive } from './AllowListIncentive';\nimport { CGDAIncentive } from './CGDAIncentive';\nimport { ERC20Incentive } from './ERC20Incentive';\nimport { ERC20PeggedIncentive } from './ERC20PeggedIncentive';\nimport { ERC20PeggedVariableCriteriaIncentive } from './ERC20PeggedVariableCriteriaIncentive';\nimport { ERC20VariableCriteriaIncentive } from './ERC20VariableCriteriaIncentive';\nimport { ERC20VariableIncentive } from './ERC20VariableIncentive';\n// import { ERC1155Incentive } from './ERC1155Incentive';\nimport { PointsIncentive } from './PointsIncentive';\n\nexport {\n AllowListIncentive,\n CGDAIncentive,\n // ERC1155Incentive,\n ERC20Incentive,\n ERC20PeggedIncentive,\n ERC20PeggedVariableCriteriaIncentive,\n PointsIncentive,\n ERC20VariableIncentive,\n ERC20VariableCriteriaIncentive,\n};\n\n/**\n * A union type representing all valid protocol Incentive implementations\n *\n * @export\n * @typedef {Incentive}\n */\nexport type Incentive =\n | AllowListIncentive\n | CGDAIncentive\n | ERC20Incentive\n // | ERC1155Incentive\n | ERC20PeggedIncentive\n | ERC20PeggedVariableCriteriaIncentive\n | PointsIncentive\n | ERC20VariableIncentive\n | ERC20VariableCriteriaIncentive;\n\n/**\n * A map of Incentive component interfaces to their constructors.\n *\n * @type {{ \"0xc5b24b8e\": typeof PointsIncentive; \"0x8c901437\": typeof ERC20Incentive; \"0x4414fbb4\": typeof ERC20PeggedIncentive; \"0xf60c99c9\": typeof ERC20PeggedVariableCriteriaIncentive; \"0x56586338\": typeof AllowListIncentive; \"0xa39e44d9\": typeof CGDAIncentive; \"0xa8e4af1e\": typeof ERC20VariableIncentive; \"0x90318111\": typeof ERC20VariableCriteriaIncentive }}\n */\nexport const IncentiveByComponentInterface = {\n [APointsIncentive as Hex]: PointsIncentive,\n [AERC20Incentive as Hex]: ERC20Incentive,\n [AERC20PeggedVariableCriteriaIncentive as Hex]:\n ERC20PeggedVariableCriteriaIncentive,\n [AERC20PeggedIncentive as Hex]: ERC20PeggedIncentive,\n [AAllowListIncentive]: AllowListIncentive,\n // [AERC1155Incentive as Hex]: ERC1155Incentive,\n [ACGDAIncentive as Hex]: CGDAIncentive,\n [AERC20VariableIncentive as Hex]: ERC20VariableIncentive,\n [AERC20VariableCriteriaIncentive as Hex]: ERC20VariableCriteriaIncentive,\n};\n\n/**\n * A function that will read a contract's component interface using `getComponentInterface` and return the correct instantiated instance.\n *\n * @export\n * @async\n * @param {DeployableOptions} options\n * @param {Address} address\n * @returns {Incentive}\n * @throws {@link InvalidComponentInterfaceError}\n */\nexport async function incentiveFromAddress(\n options: DeployableOptions,\n address: Address,\n params?: ReadParams,\n) {\n const interfaceId = (await readContract(options.config, {\n abi: aIncentiveAbi,\n functionName: 'getComponentInterface',\n address,\n ...params,\n })) as keyof typeof IncentiveByComponentInterface;\n const Ctor = IncentiveByComponentInterface[interfaceId];\n if (!Ctor) {\n throw new InvalidComponentInterfaceError(\n Object.keys(IncentiveByComponentInterface) as Hex[],\n interfaceId as Hex,\n );\n }\n return new Ctor(options, address);\n}\n"],"names":["_ERC20PeggedIncentive","DeployableTarget","erc20PeggedIncentiveAbi","params","readErc20PeggedIncentiveOwner","readErc20PeggedIncentiveCurrentReward","readErc20PeggedIncentiveClaims","readErc20PeggedIncentiveTotalClaimed","address","readErc20PeggedIncentiveClaimed","readErc20PeggedIncentiveAsset","readErc20PeggedIncentivePeg","readErc20PeggedIncentiveReward","readErc20PeggedIncentiveLimit","payload","request","result","simulateErc20PeggedIncentiveClaim","prepareClaimPayload","writeErc20PeggedIncentiveClaim","simulateErc20PeggedIncentiveClawback","writeErc20PeggedIncentiveClawback","readErc20PeggedIncentiveIsClaimable","readErc20PeggedIncentiveGetPeg","totalClaimed","limit","_payload","_options","options","bytecode","prepareERC20PeggedIncentivePayload","amount","encodeAbiParameters","rewardAmount","netAmount","zeroAddress","_a","_b","_c","claimData","boostClaimData","decodeAbiParameters","ERC20PeggedIncentiveBases","RegistryType","ERC20PeggedIncentive","asset","peg","reward","manager","_ERC20PeggedVariableCriteriaIncentive","erc20PeggedVariableCriteriaIncentiveAbi","readErc20PeggedVariableCriteriaIncentiveOwner","readErc20PeggedVariableCriteriaIncentiveCurrentReward","readErc20PeggedVariableCriteriaIncentiveGetMaxReward","chainId","hash","knownSignatures","criteria","SignatureType","transactionReceipt","getTransactionReceipt","CheatCodes","logs","NoMatchingLogsError","eventAbi","decodedEvents","parseEventLogs","scalarValue","DecodedArgsError","e","transaction","getTransaction","func","decodeFunctionData","InvalidCriteriaTypeError","readErc20PeggedVariableCriteriaIncentiveClaims","readErc20PeggedVariableCriteriaIncentiveTotalClaimed","readErc20PeggedVariableCriteriaIncentiveClaimed","readErc20PeggedVariableCriteriaIncentiveAsset","readErc20PeggedVariableCriteriaIncentivePeg","readErc20PeggedVariableCriteriaIncentiveReward","readErc20PeggedVariableCriteriaIncentiveLimit","simulateErc20PeggedVariableCriteriaIncentiveClaim","writeErc20PeggedVariableCriteriaIncentiveClaim","simulateErc20PeggedVariableCriteriaIncentiveClawback","writeErc20PeggedVariableCriteriaIncentiveClawback","readErc20PeggedVariableCriteriaIncentiveIsClaimable","readErc20PeggedVariableCriteriaIncentiveGetPeg","readErc20PeggedVariableCriteriaIncentiveGetIncentiveCriteria","IncentiveCriteriaNotFoundError","prepareERC20PeggedVariableCriteriaIncentivePayload","_d","_e","zeroHash","signedAmount","claimAmount","maxReward","parseEther","ERC20PeggedVariableCriteriaIncentiveBases","ERC20PeggedVariableCriteriaIncentive","IncentiveByComponentInterface","APointsIncentive","PointsIncentive","AERC20Incentive","ERC20Incentive","AERC20PeggedVariableCriteriaIncentive","AERC20PeggedIncentive","AAllowListIncentive","AllowListIncentive","ACGDAIncentive","CGDAIncentive","AERC20VariableIncentive","ERC20VariableIncentive","AERC20VariableCriteriaIncentive","ERC20VariableCriteriaIncentive","incentiveFromAddress","interfaceId","readContract","aIncentiveAbi","Ctor","InvalidComponentInterfaceError"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ERC20PeggedVariableCriteriaIncentive.d.ts","sourceRoot":"","sources":["../../src/Incentives/ERC20PeggedVariableCriteriaIncentive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ERC20PeggedVariableCriteriaIncentive.d.ts","sourceRoot":"","sources":["../../src/Incentives/ERC20PeggedVariableCriteriaIncentive.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../generated-BPiHi7W2.cjs");require("../componentInterfaces-Cm4Zfn1v.cjs");require("@wagmi/core");require("../errors.cjs");const n=require("./AllowListIncentive.cjs"),i=require("./CGDAIncentive.cjs"),t=require("./ERC20Incentive.cjs"),e=require("../Incentive-DvNdIJ_x.cjs"),r=require("./ERC20VariableCriteriaIncentive.cjs"),c=require("./ERC20VariableIncentive.cjs"),v=require("./PointsIncentive.cjs");exports.AllowListIncentive=n.AllowListIncentive;exports.CGDAIncentive=i.CGDAIncentive;exports.ERC20Incentive=t.ERC20Incentive;exports.ERC20PeggedIncentive=e.ERC20PeggedIncentive;exports.ERC20PeggedVariableCriteriaIncentive=e.ERC20PeggedVariableCriteriaIncentive;exports.IncentiveByComponentInterface=e.IncentiveByComponentInterface;exports.incentiveFromAddress=e.incentiveFromAddress;exports.ERC20VariableCriteriaIncentive=r.ERC20VariableCriteriaIncentive;exports.ERC20VariableIncentive=c.ERC20VariableIncentive;exports.PointsIncentive=v.PointsIncentive;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../generated-BPiHi7W2.cjs");require("../componentInterfaces-Cm4Zfn1v.cjs");require("@wagmi/core");require("../errors.cjs");const n=require("./AllowListIncentive.cjs"),i=require("./CGDAIncentive.cjs"),t=require("./ERC20Incentive.cjs"),e=require("../Incentive-Bkq1kdns.cjs"),r=require("./ERC20VariableCriteriaIncentive.cjs"),c=require("./ERC20VariableIncentive.cjs"),v=require("./PointsIncentive.cjs");exports.AllowListIncentive=n.AllowListIncentive;exports.CGDAIncentive=i.CGDAIncentive;exports.ERC20Incentive=t.ERC20Incentive;exports.ERC20PeggedIncentive=e.ERC20PeggedIncentive;exports.ERC20PeggedVariableCriteriaIncentive=e.ERC20PeggedVariableCriteriaIncentive;exports.IncentiveByComponentInterface=e.IncentiveByComponentInterface;exports.incentiveFromAddress=e.incentiveFromAddress;exports.ERC20VariableCriteriaIncentive=r.ERC20VariableCriteriaIncentive;exports.ERC20VariableIncentive=c.ERC20VariableIncentive;exports.PointsIncentive=v.PointsIncentive;
2
2
  //# sourceMappingURL=Incentive.cjs.map
@@ -5,7 +5,7 @@ import "../errors.js";
5
5
  import { AllowListIncentive as a } from "./AllowListIncentive.js";
6
6
  import { CGDAIncentive as p } from "./CGDAIncentive.js";
7
7
  import { ERC20Incentive as I } from "./ERC20Incentive.js";
8
- import { E as C, a as f, I as s, i as x } from "../Incentive-DZLG6T1-.js";
8
+ import { E as C, a as f, I as s, i as x } from "../Incentive-D_NHLasu.js";
9
9
  import { ERC20VariableCriteriaIncentive as l } from "./ERC20VariableCriteriaIncentive.js";
10
10
  import { ERC20VariableIncentive as d } from "./ERC20VariableIncentive.js";
11
11
  import { PointsIncentive as b } from "./PointsIncentive.js";
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../generated-BPiHi7W2.cjs"),d=require("viem"),n=require("../deployments-CIXw_WKk.cjs"),o=require("../Deployable/DeployableTarget.cjs"),l=require("../claiming.cjs"),u=require("../utils.cjs"),h="0x6080604052348015600e575f80fd5b5060156019565b6078565b63409feecd198054600181161560365763f92ee8a95f526004601cfd5b8160c01c808260011c146073578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b6113ca806100855f395ff3fe6080604052600436106101af575f3560e01c8063514e62fc116100e7578063c884ef8311610087578063ea3d508a11610062578063ea3d508a14610543578063f04e283e1461055c578063f2fde38b1461056f578063fee81cf414610582575f80fd5b8063c884ef83146104e1578063db09da121461050f578063dcc59b6f1461052e575f80fd5b80638da5cb5b116100c25780638da5cb5b1461044e578063a270a73714610481578063a4d66daf146104ad578063bb1757cf146104c2575f80fd5b8063514e62fc1461040957806354d1f13d1461043e578063715018a614610446575f80fd5b806328d6183b11610152578063439fab911161012d578063439fab9114610354578063474f5a44146103735780634a4ee7b1146103bc5780634e7165a2146103cf575f80fd5b806328d6183b1461027d5780632de94807146102dc57806338d52e0f1461030d575f80fd5b80631c10893f1161018d5780631c10893f146102195780631cd64df41461022c578063228cb733146102615780632569296214610275575f80fd5b806301ffc9a7146101b357806307621eca146101e7578063183a4f6e14610204575b5f80fd5b3480156101be575f80fd5b506101d26101cd36600461108b565b6105b3565b60405190151581526020015b60405180910390f35b3480156101f2575f80fd5b505f545b6040519081526020016101de565b6102176102123660046110ab565b61060e565b005b6102176102273660046110e3565b61061b565b348015610237575f80fd5b506101d26102463660046110e3565b638b78c6d8600c9081525f9290925260209091205481161490565b34801561026c575f80fd5b506101f65f5481565b610217610631565b348015610288575f80fd5b507f0d36a40d000000000000000000000000000000000000000000000000000000005b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016101de565b3480156102e7575f80fd5b506101f66102f636600461110d565b638b78c6d8600c9081525f91909152602090205490565b348015610318575f80fd5b5073deaddeaddeaddeaddeaddeaddeaddeaddeaddead5b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101de565b34801561035f575f80fd5b5061021761036e36600461116d565b61067e565b34801561037e575f80fd5b5061039261038d36600461116d565b610890565b6040805192835273ffffffffffffffffffffffffffffffffffffffff9091166020830152016101de565b6102176103ca3660046110e3565b6108c4565b3480156103da575f80fd5b506103fc6103e936600461116d565b5050604080515f81526020810190915290565b6040516101de91906111ac565b348015610414575f80fd5b506101d26104233660046110e3565b638b78c6d8600c9081525f9290925260209091205416151590565b6102176108d6565b61021761090f565b348015610459575f80fd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275461032f565b34801561048c575f80fd5b5060025461032f9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104b8575f80fd5b506101f660035481565b3480156104cd575f80fd5b506101d26104dc3660046111ff565b610922565b3480156104ec575f80fd5b506101d26104fb36600461110d565b60016020525f908152604090205460ff1681565b34801561051a575f80fd5b506101d26105293660046111ff565b610d52565b348015610539575f80fd5b506101f660055481565b34801561054e575f80fd5b506004546102ab9060e01b81565b61021761056a36600461110d565b610d64565b61021761057d36600461110d565b610d9e565b34801561058d575f80fd5b506101f661059c36600461110d565b63389a75e1600c9081525f91909152602090205490565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f0d36a40d000000000000000000000000000000000000000000000000000000001480610608575061060882610dc4565b92915050565b6106183382610e19565b50565b610623610e24565b61062d8282610e59565b5050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf60113280546003825580156106cf5760018160011c14303b106106c65763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f6106dd83850185611250565b905080604001515f14806106f357506060810151155b1561072a576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8051600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790556020810151600480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001660e09290921c91909117905560408101515f5560608101516003556107bf33610e65565b805f015173ffffffffffffffffffffffffffffffffffffffff167fef49c8fd80435c15980f0f55660ffaac9417e5843768f7f21566cfad2d19bfe782602001518360400151846060015160405161084d939291907fffffffff000000000000000000000000000000000000000000000000000000009390931683526020830191909152604082015260600190565b60405180910390a250801561088b576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f806040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108cc610e24565b61062d8282610e19565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610917610e24565b6109205f610ec8565b565b5f61092b610e24565b600254604080517f8da5cb5b000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9092169130918391638da5cb5b916004808201926020929091908290030181865afa15801561099d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c191906112e8565b73ffffffffffffffffffffffffffffffffffffffff1614158015610a7a57506040517f514e62fc0000000000000000000000000000000000000000000000000000000081523060048201526002602482015273ffffffffffffffffffffffffffffffffffffffff82169063514e62fc90604401602060405180830381865afa158015610a4f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a739190611303565b1515600114155b15610ab1576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610aba85610f2d565b610af0576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60058054905f610aff83611322565b909155505073ffffffffffffffffffffffffffffffffffffffff8581165f81815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690921790915560025460045483549251602481019590955260448501929092529193919091169160e09190911b90606401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051610c0a919061137e565b5f604051808303815f865af19150503d805f8114610c43576040519150601f19603f3d011682016040523d82523d5f602084013e610c48565b606091505b5050905080610c83576040517f360e42e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002545f546040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606093841b811660208301529289901b9092166034830152604882015273ffffffffffffffffffffffffffffffffffffffff8716907f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d390606801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610d3e916111ac565b60405180910390a250600195945050505050565b5f610d5c84610f2d565b949350505050565b610d6c610e24565b63389a75e1600c52805f526020600c208054421115610d9257636f5e88185f526004601cfd5b5f905561061881610ec8565b610da6610e24565b8060601b610dbb57637448fbae5f526004601cfd5b61061881610ec8565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fa9216705000000000000000000000000000000000000000000000000000000001480610608575061060882610f6a565b61062d82825f611000565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610920576382b429005f526004601cfd5b61062d82826001611000565b73ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001602052604081205460ff1615801561060857506003546005541092915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f6ab67a0d00000000000000000000000000000000000000000000000000000000148061060857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610608565b638b78c6d8600c52825f526020600c20805483811783611021575080841681185b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b80357fffffffff0000000000000000000000000000000000000000000000000000000081168114611086575f80fd5b919050565b5f6020828403121561109b575f80fd5b6110a482611057565b9392505050565b5f602082840312156110bb575f80fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610618575f80fd5b5f80604083850312156110f4575f80fd5b82356110ff816110c2565b946020939093013593505050565b5f6020828403121561111d575f80fd5b81356110a4816110c2565b5f8083601f840112611138575f80fd5b50813567ffffffffffffffff81111561114f575f80fd5b602083019150836020828501011115611166575f80fd5b9250929050565b5f806020838503121561117e575f80fd5b823567ffffffffffffffff811115611194575f80fd5b6111a085828601611128565b90969095509350505050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f805f60408486031215611211575f80fd5b833561121c816110c2565b9250602084013567ffffffffffffffff811115611237575f80fd5b61124386828701611128565b9497909650939450505050565b5f6080828403128015611261575f80fd5b506040516080810167ffffffffffffffff811182821017156112aa577f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405282356112b8816110c2565b81526112c660208401611057565b6020820152604083810135908201526060928301359281019290925250919050565b5f602082840312156112f8575f80fd5b81516110a4816110c2565b5f60208284031215611313575f80fd5b815180151581146110a4575f80fd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611377577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5060010190565b5f82518060208501845e5f92019182525091905056fea264697066735822122079bb08e80a9bd9117e174b7d6f5a63383597f9fcb4a121e18bc1685a513d4f3f64736f6c634300081a0033",c=class c extends o.DeployableTarget{constructor(){super(...arguments),this.abi=a.R}async claims(f){return await a.t0(this._config,{address:this.assertValidAddress(),args:[],...f})}async currentReward(f){return await a.a0(this._config,{address:this.assertValidAddress(),args:[],...f})}async reward(f){return await a.d0(this._config,{address:this.assertValidAddress(),args:[],...f})}async claimed(f,e){return await a.e0(this._config,{address:this.assertValidAddress(),args:[f],...e})}async venue(f){return await a.f0(this._config,{address:this.assertValidAddress(),...f})}async limit(f){return await a.p0(this._config,{address:this.assertValidAddress(),...f})}async selector(f){return await a.m0(this._config,{address:this.assertValidAddress(),...f})}async claim(f,e){return await this.awaitResult(this.claimRaw(f,e))}async claimRaw(f,e){const{request:b,result:s}=await a.z0(this._config,{address:this.assertValidAddress(),args:[l.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...e});return{hash:await a.T0(this._config,b),result:s}}async isClaimable(f,e){return await a.o0(this._config,{address:this.assertValidAddress(),args:[f.target,f.data],...e})}async canBeClaimed(f){return await this.getRemainingClaimPotential(f)>0n}async getRemainingClaimPotential(f){const[e,b]=await Promise.all([this.claims(f),this.limit(f)]);return b-e}buildParameters(f,e){const[b,s]=this.validateDeploymentConfig(f,e);return{abi:a.R,bytecode:h,args:[i(b)],...this.optionallyAttachAccount(s.account)}}getTopupPayload(f){var e,b;return d.encodeAbiParameters([{type:"address",name:"venue"},{type:"bytes4",name:"selector"},{type:"uint256",name:"amount"}],[((e=this.payload)==null?void 0:e.venue)??d.zeroHash,((b=this.payload)==null?void 0:b.selector)??d.zeroHash,f])}buildClaimData(){return d.zeroHash}};c.bases={31337:void 0,...n.PointsIncentive},c.registryType=u.RegistryType.INCENTIVE;let t=c;const i=({venue:r,selector:f,reward:e,limit:b})=>d.encodeAbiParameters([{type:"address",name:"venue"},{type:"bytes4",name:"selector"},{type:"uint256",name:"reward"},{type:"uint256",name:"limit"}],[r,f,e,b]);exports.pointsIncentiveAbi=a.R;exports.PointsIncentive=t;exports.preparePointsIncentivePayload=i;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../generated-BPiHi7W2.cjs"),d=require("viem"),n=require("../deployments-CIXw_WKk.cjs"),o=require("../Deployable/DeployableTarget.cjs"),l=require("../claiming.cjs"),u=require("../utils.cjs"),y="0x6080604052348015600e575f80fd5b5060156019565b6078565b63409feecd198054600181161560365763f92ee8a95f526004601cfd5b8160c01c808260011c146073578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b6113ca806100855f395ff3fe6080604052600436106101af575f3560e01c8063514e62fc116100e7578063c884ef8311610087578063ea3d508a11610062578063ea3d508a14610543578063f04e283e1461055c578063f2fde38b1461056f578063fee81cf414610582575f80fd5b8063c884ef83146104e1578063db09da121461050f578063dcc59b6f1461052e575f80fd5b80638da5cb5b116100c25780638da5cb5b1461044e578063a270a73714610481578063a4d66daf146104ad578063bb1757cf146104c2575f80fd5b8063514e62fc1461040957806354d1f13d1461043e578063715018a614610446575f80fd5b806328d6183b11610152578063439fab911161012d578063439fab9114610354578063474f5a44146103735780634a4ee7b1146103bc5780634e7165a2146103cf575f80fd5b806328d6183b1461027d5780632de94807146102dc57806338d52e0f1461030d575f80fd5b80631c10893f1161018d5780631c10893f146102195780631cd64df41461022c578063228cb733146102615780632569296214610275575f80fd5b806301ffc9a7146101b357806307621eca146101e7578063183a4f6e14610204575b5f80fd5b3480156101be575f80fd5b506101d26101cd36600461108b565b6105b3565b60405190151581526020015b60405180910390f35b3480156101f2575f80fd5b505f545b6040519081526020016101de565b6102176102123660046110ab565b61060e565b005b6102176102273660046110e3565b61061b565b348015610237575f80fd5b506101d26102463660046110e3565b638b78c6d8600c9081525f9290925260209091205481161490565b34801561026c575f80fd5b506101f65f5481565b610217610631565b348015610288575f80fd5b507f0d36a40d000000000000000000000000000000000000000000000000000000005b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016101de565b3480156102e7575f80fd5b506101f66102f636600461110d565b638b78c6d8600c9081525f91909152602090205490565b348015610318575f80fd5b5073deaddeaddeaddeaddeaddeaddeaddeaddeaddead5b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101de565b34801561035f575f80fd5b5061021761036e36600461116d565b61067e565b34801561037e575f80fd5b5061039261038d36600461116d565b610890565b6040805192835273ffffffffffffffffffffffffffffffffffffffff9091166020830152016101de565b6102176103ca3660046110e3565b6108c4565b3480156103da575f80fd5b506103fc6103e936600461116d565b5050604080515f81526020810190915290565b6040516101de91906111ac565b348015610414575f80fd5b506101d26104233660046110e3565b638b78c6d8600c9081525f9290925260209091205416151590565b6102176108d6565b61021761090f565b348015610459575f80fd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275461032f565b34801561048c575f80fd5b5060025461032f9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104b8575f80fd5b506101f660035481565b3480156104cd575f80fd5b506101d26104dc3660046111ff565b610922565b3480156104ec575f80fd5b506101d26104fb36600461110d565b60016020525f908152604090205460ff1681565b34801561051a575f80fd5b506101d26105293660046111ff565b610d52565b348015610539575f80fd5b506101f660055481565b34801561054e575f80fd5b506004546102ab9060e01b81565b61021761056a36600461110d565b610d64565b61021761057d36600461110d565b610d9e565b34801561058d575f80fd5b506101f661059c36600461110d565b63389a75e1600c9081525f91909152602090205490565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f0d36a40d000000000000000000000000000000000000000000000000000000001480610608575061060882610dc4565b92915050565b6106183382610e19565b50565b610623610e24565b61062d8282610e59565b5050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf60113280546003825580156106cf5760018160011c14303b106106c65763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f6106dd83850185611250565b905080604001515f14806106f357506060810151155b1561072a576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8051600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790556020810151600480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001660e09290921c91909117905560408101515f5560608101516003556107bf33610e65565b805f015173ffffffffffffffffffffffffffffffffffffffff167fef49c8fd80435c15980f0f55660ffaac9417e5843768f7f21566cfad2d19bfe782602001518360400151846060015160405161084d939291907fffffffff000000000000000000000000000000000000000000000000000000009390931683526020830191909152604082015260600190565b60405180910390a250801561088b576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f806040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108cc610e24565b61062d8282610e19565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610917610e24565b6109205f610ec8565b565b5f61092b610e24565b600254604080517f8da5cb5b000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9092169130918391638da5cb5b916004808201926020929091908290030181865afa15801561099d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c191906112e8565b73ffffffffffffffffffffffffffffffffffffffff1614158015610a7a57506040517f514e62fc0000000000000000000000000000000000000000000000000000000081523060048201526002602482015273ffffffffffffffffffffffffffffffffffffffff82169063514e62fc90604401602060405180830381865afa158015610a4f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a739190611303565b1515600114155b15610ab1576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610aba85610f2d565b610af0576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60058054905f610aff83611322565b909155505073ffffffffffffffffffffffffffffffffffffffff8581165f81815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690921790915560025460045483549251602481019590955260448501929092529193919091169160e09190911b90606401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051610c0a919061137e565b5f604051808303815f865af19150503d805f8114610c43576040519150601f19603f3d011682016040523d82523d5f602084013e610c48565b606091505b5050905080610c83576040517f360e42e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002545f546040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606093841b811660208301529289901b9092166034830152604882015273ffffffffffffffffffffffffffffffffffffffff8716907f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d390606801604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610d3e916111ac565b60405180910390a250600195945050505050565b5f610d5c84610f2d565b949350505050565b610d6c610e24565b63389a75e1600c52805f526020600c208054421115610d9257636f5e88185f526004601cfd5b5f905561061881610ec8565b610da6610e24565b8060601b610dbb57637448fbae5f526004601cfd5b61061881610ec8565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fa9216705000000000000000000000000000000000000000000000000000000001480610608575061060882610f6a565b61062d82825f611000565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610920576382b429005f526004601cfd5b61062d82826001611000565b73ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001602052604081205460ff1615801561060857506003546005541092915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f6ab67a0d00000000000000000000000000000000000000000000000000000000148061060857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610608565b638b78c6d8600c52825f526020600c20805483811783611021575080841681185b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b80357fffffffff0000000000000000000000000000000000000000000000000000000081168114611086575f80fd5b919050565b5f6020828403121561109b575f80fd5b6110a482611057565b9392505050565b5f602082840312156110bb575f80fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610618575f80fd5b5f80604083850312156110f4575f80fd5b82356110ff816110c2565b946020939093013593505050565b5f6020828403121561111d575f80fd5b81356110a4816110c2565b5f8083601f840112611138575f80fd5b50813567ffffffffffffffff81111561114f575f80fd5b602083019150836020828501011115611166575f80fd5b9250929050565b5f806020838503121561117e575f80fd5b823567ffffffffffffffff811115611194575f80fd5b6111a085828601611128565b90969095509350505050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f805f60408486031215611211575f80fd5b833561121c816110c2565b9250602084013567ffffffffffffffff811115611237575f80fd5b61124386828701611128565b9497909650939450505050565b5f6080828403128015611261575f80fd5b506040516080810167ffffffffffffffff811182821017156112aa577f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405282356112b8816110c2565b81526112c660208401611057565b6020820152604083810135908201526060928301359281019290925250919050565b5f602082840312156112f8575f80fd5b81516110a4816110c2565b5f60208284031215611313575f80fd5b815180151581146110a4575f80fd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611377577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5060010190565b5f82518060208501845e5f92019182525091905056fea264697066735822122079bb08e80a9bd9117e174b7d6f5a63383597f9fcb4a121e18bc1685a513d4f3f64736f6c634300081a0033",c=class c extends o.DeployableTarget{constructor(){super(...arguments),this.abi=a.R}async claims(f){return await a.t0(this._config,{address:this.assertValidAddress(),args:[],...f})}async currentReward(f){return await a.a0(this._config,{address:this.assertValidAddress(),args:[],...f})}async reward(f){return await a.d0(this._config,{address:this.assertValidAddress(),args:[],...f})}async claimed(f,e){return await a.e0(this._config,{address:this.assertValidAddress(),args:[f],...e})}async venue(f){return await a.f0(this._config,{address:this.assertValidAddress(),...f})}async limit(f){return await a.p0(this._config,{address:this.assertValidAddress(),...f})}async selector(f){return await a.m0(this._config,{address:this.assertValidAddress(),...f})}async claim(f,e){return await this.awaitResult(this.claimRaw(f,e))}async claimRaw(f,e){const{request:b,result:s}=await a.z0(this._config,{address:this.assertValidAddress(),args:[l.prepareClaimPayload(f)],...this.optionallyAttachAccount(),...e});return{hash:await a.T0(this._config,b),result:s}}async isClaimable(f,e){return await a.o0(this._config,{address:this.assertValidAddress(),args:[f.target,f.data],...e})}async canBeClaimed(f){return await this.getRemainingClaimPotential(f)>0n}async getRemainingClaimPotential(f){const[e,b]=await Promise.all([this.claims(f),this.limit(f)]);return b-e}buildParameters(f,e){const[b,s]=this.validateDeploymentConfig(f,e);return{abi:a.R,bytecode:y,args:[i(b)],...this.optionallyAttachAccount(s.account)}}getTopupPayload(f){var e,b;return d.encodeAbiParameters([{type:"address",name:"venue"},{type:"bytes4",name:"selector"},{type:"uint256",name:"amount"}],[((e=this.payload)==null?void 0:e.venue)??d.zeroAddress,((b=this.payload)==null?void 0:b.selector)??"0x00000000",f])}buildClaimData(){return d.zeroHash}};c.bases={31337:void 0,...n.PointsIncentive},c.registryType=u.RegistryType.INCENTIVE;let t=c;const i=({venue:r,selector:f,reward:e,limit:b})=>d.encodeAbiParameters([{type:"address",name:"venue"},{type:"bytes4",name:"selector"},{type:"uint256",name:"reward"},{type:"uint256",name:"limit"}],[r,f,e,b]);exports.pointsIncentiveAbi=a.R;exports.PointsIncentive=t;exports.preparePointsIncentivePayload=i;
2
2
  //# sourceMappingURL=PointsIncentive.cjs.map