@boostxyz/sdk 0.0.0-alpha.20 → 0.0.0-alpha.21
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.
- package/dist/Actions/Action.cjs +1 -1
- package/dist/Actions/Action.js +3 -3
- package/dist/Actions/EventAction.cjs +1 -1
- package/dist/Actions/EventAction.d.ts.map +1 -1
- package/dist/Actions/EventAction.js +3 -3
- package/dist/AllowLists/AllowList.cjs +1 -1
- package/dist/AllowLists/AllowList.js +3 -3
- package/dist/AllowLists/SimpleAllowList.cjs +1 -1
- package/dist/AllowLists/SimpleAllowList.js +13 -13
- package/dist/AllowLists/SimpleDenyList.cjs +1 -1
- package/dist/AllowLists/SimpleDenyList.js +3 -3
- package/dist/Auth/PassthroughAuth.cjs +1 -1
- package/dist/Auth/PassthroughAuth.js +1 -1
- package/dist/Boost.cjs +1 -1
- package/dist/Boost.cjs.map +1 -1
- package/dist/Boost.d.ts +5 -24
- package/dist/Boost.d.ts.map +1 -1
- package/dist/Boost.js +42 -44
- package/dist/Boost.js.map +1 -1
- package/dist/BoostCore-DolmDuXW.cjs +3 -0
- package/dist/BoostCore-DolmDuXW.cjs.map +1 -0
- package/dist/BoostCore-Z97KVu4V.js +1448 -0
- package/dist/BoostCore-Z97KVu4V.js.map +1 -0
- package/dist/BoostCore.cjs +1 -1
- package/dist/BoostCore.d.ts +633 -47
- package/dist/BoostCore.d.ts.map +1 -1
- package/dist/BoostCore.js +6 -6
- package/dist/BoostRegistry.cjs +1 -1
- package/dist/BoostRegistry.cjs.map +1 -1
- package/dist/BoostRegistry.d.ts +31 -3
- package/dist/BoostRegistry.d.ts.map +1 -1
- package/dist/BoostRegistry.js +68 -48
- package/dist/BoostRegistry.js.map +1 -1
- package/dist/Budgets/Budget.cjs +1 -1
- package/dist/Budgets/Budget.js +2 -2
- package/dist/Budgets/ManagedBudget.cjs +1 -1
- package/dist/Budgets/ManagedBudget.cjs.map +1 -1
- package/dist/Budgets/ManagedBudget.d.ts +34 -4
- package/dist/Budgets/ManagedBudget.d.ts.map +1 -1
- package/dist/Budgets/ManagedBudget.js +45 -45
- package/dist/Budgets/VestingBudget.d.ts +34 -4
- package/dist/Budgets/VestingBudget.d.ts.map +1 -1
- package/dist/Deployable/DeployableTarget.cjs +1 -1
- package/dist/Deployable/DeployableTarget.js +1 -1
- package/dist/Deployable/DeployableTargetWithRBAC.cjs +1 -1
- package/dist/Deployable/DeployableTargetWithRBAC.js +17 -17
- package/dist/EventAction-CBKzuNoN.cjs +2 -0
- package/dist/EventAction-CBKzuNoN.cjs.map +1 -0
- package/dist/{EventAction-CIPqmAoP.js → EventAction-DWuuc_Qy.js} +295 -217
- package/dist/EventAction-DWuuc_Qy.js.map +1 -0
- package/dist/Incentive-BxzEtN26.js +298 -0
- package/dist/Incentive-BxzEtN26.js.map +1 -0
- package/dist/Incentive-CrF3-ayL.cjs +2 -0
- package/dist/Incentive-CrF3-ayL.cjs.map +1 -0
- package/dist/Incentives/AllowListIncentive.cjs +1 -1
- package/dist/Incentives/AllowListIncentive.cjs.map +1 -1
- package/dist/Incentives/AllowListIncentive.d.ts +16 -2
- package/dist/Incentives/AllowListIncentive.d.ts.map +1 -1
- package/dist/Incentives/AllowListIncentive.js +13 -13
- package/dist/Incentives/AllowListIncentive.js.map +1 -1
- package/dist/Incentives/CGDAIncentive.cjs +1 -1
- package/dist/Incentives/CGDAIncentive.cjs.map +1 -1
- package/dist/Incentives/CGDAIncentive.d.ts +197 -4
- package/dist/Incentives/CGDAIncentive.d.ts.map +1 -1
- package/dist/Incentives/CGDAIncentive.js +31 -31
- package/dist/Incentives/CGDAIncentive.js.map +1 -1
- package/dist/Incentives/ERC1155Incentive.d.ts +192 -5
- package/dist/Incentives/ERC1155Incentive.d.ts.map +1 -1
- package/dist/Incentives/ERC20Incentive.cjs +1 -1
- package/dist/Incentives/ERC20Incentive.cjs.map +1 -1
- package/dist/Incentives/ERC20Incentive.d.ts +197 -4
- package/dist/Incentives/ERC20Incentive.d.ts.map +1 -1
- package/dist/Incentives/ERC20Incentive.js +17 -17
- package/dist/Incentives/ERC20Incentive.js.map +1 -1
- package/dist/Incentives/ERC20VariableCriteriaIncentive.d.ts +189 -2
- package/dist/Incentives/ERC20VariableCriteriaIncentive.d.ts.map +1 -1
- package/dist/Incentives/ERC20VariableIncentive.d.ts +197 -4
- package/dist/Incentives/ERC20VariableIncentive.d.ts.map +1 -1
- package/dist/Incentives/Incentive.cjs +1 -1
- package/dist/Incentives/Incentive.d.ts +1 -1
- package/dist/Incentives/Incentive.js +3 -3
- package/dist/Incentives/PointsIncentive.cjs +1 -1
- package/dist/Incentives/PointsIncentive.cjs.map +1 -1
- package/dist/Incentives/PointsIncentive.d.ts +16 -2
- package/dist/Incentives/PointsIncentive.d.ts.map +1 -1
- package/dist/Incentives/PointsIncentive.js +8 -8
- package/dist/Incentives/PointsIncentive.js.map +1 -1
- package/dist/{SimpleDenyList-BwfNjRsg.cjs → SimpleDenyList-BUR17Tt1.cjs} +2 -2
- package/dist/{SimpleDenyList-BwfNjRsg.cjs.map → SimpleDenyList-BUR17Tt1.cjs.map} +1 -1
- package/dist/{SimpleDenyList-Cn5WpNn0.js → SimpleDenyList-CGaWjuld.js} +15 -15
- package/dist/{SimpleDenyList-Cn5WpNn0.js.map → SimpleDenyList-CGaWjuld.js.map} +1 -1
- package/dist/Validators/SignerValidator.cjs +1 -1
- package/dist/Validators/SignerValidator.js +3 -3
- package/dist/Validators/Validator.cjs +1 -1
- package/dist/Validators/Validator.js +6 -6
- package/dist/componentInterfaces-BBCFkrZv.js +14 -0
- package/dist/componentInterfaces-BBCFkrZv.js.map +1 -0
- package/dist/componentInterfaces-DRI_dQ-P.cjs +2 -0
- package/dist/componentInterfaces-DRI_dQ-P.cjs.map +1 -0
- package/dist/deployments-DVXioW2i.cjs +2 -0
- package/dist/deployments-DVXioW2i.cjs.map +1 -0
- package/dist/deployments-oykLv3_Z.js +43 -0
- package/dist/deployments-oykLv3_Z.js.map +1 -0
- package/dist/deployments.json +16 -13
- package/dist/errors.cjs +1 -1
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.d.ts +18 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +16 -4
- package/dist/errors.js.map +1 -1
- package/dist/{generated-B7VaSah4.js → generated-CKt2yCQd.js} +1071 -447
- package/dist/generated-CKt2yCQd.js.map +1 -0
- package/dist/generated-CyTNlOwM.cjs +3 -0
- package/dist/generated-CyTNlOwM.cjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +79 -78
- package/package.json +4 -4
- package/src/Actions/EventAction.ts +24 -20
- package/src/Boost.ts +5 -27
- package/src/BoostCore.test.ts +113 -46
- package/src/BoostCore.ts +162 -171
- package/src/BoostRegistry.test.ts +53 -0
- package/src/BoostRegistry.ts +48 -3
- package/src/Budgets/ManagedBudget.test.ts +7 -7
- package/src/Incentives/CGDAIncentive.test.ts +4 -1
- package/src/Incentives/CGDAIncentive.ts +6 -0
- package/src/Incentives/ERC20Incentive.test.ts +3 -0
- package/src/Incentives/ERC20Incentive.ts +6 -0
- package/src/Incentives/ERC20VariableIncentive.test.ts +3 -0
- package/src/Incentives/ERC20VariableIncentive.ts +6 -0
- package/src/Incentives/Incentive.test.ts +3 -0
- package/src/Incentives/Incentive.ts +1 -1
- package/src/Incentives/PointsIncentive.test.ts +1 -2
- package/src/errors.ts +22 -0
- package/dist/BoostCore-3-U1xTQN.cjs +0 -3
- package/dist/BoostCore-3-U1xTQN.cjs.map +0 -1
- package/dist/BoostCore-DVGBUr2y.js +0 -1477
- package/dist/BoostCore-DVGBUr2y.js.map +0 -1
- package/dist/EventAction-CIPqmAoP.js.map +0 -1
- package/dist/EventAction-d-oeqZQs.cjs +0 -2
- package/dist/EventAction-d-oeqZQs.cjs.map +0 -1
- package/dist/Incentive-Bp8Sez7M.js +0 -298
- package/dist/Incentive-Bp8Sez7M.js.map +0 -1
- package/dist/Incentive-Djnzseoj.cjs +0 -2
- package/dist/Incentive-Djnzseoj.cjs.map +0 -1
- package/dist/componentInterfaces-D09mhzxO.cjs +0 -2
- package/dist/componentInterfaces-D09mhzxO.cjs.map +0 -1
- package/dist/componentInterfaces-RXBMI5yH.js +0 -14
- package/dist/componentInterfaces-RXBMI5yH.js.map +0 -1
- package/dist/deployments-BM42vImE.js +0 -43
- package/dist/deployments-BM42vImE.js.map +0 -1
- package/dist/deployments-CMdF5uEC.cjs +0 -2
- package/dist/deployments-CMdF5uEC.cjs.map +0 -1
- package/dist/generated-B0tk-c9b.cjs +0 -3
- package/dist/generated-B0tk-c9b.cjs.map +0 -1
- package/dist/generated-B7VaSah4.js.map +0 -1
package/dist/Boost.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { zeroAddress as H, encodeAbiParameters as U, parseAbiParameters as N } from "viem";
|
|
2
2
|
var O = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}, E = { exports: {} };
|
|
3
3
|
(function(h, l) {
|
|
4
|
-
(function(
|
|
5
|
-
h.exports =
|
|
6
|
-
})(typeof window < "u" ? window : O, function(
|
|
4
|
+
(function(m, g) {
|
|
5
|
+
h.exports = g(m, 1), l.LibZip = h.exports.LibZip, l.ERC1967Factory = h.exports.ERC1967Factory;
|
|
6
|
+
})(typeof window < "u" ? window : O, function(m, g) {
|
|
7
7
|
var y = {}, c = {};
|
|
8
8
|
y.LibZip = c;
|
|
9
9
|
function x(t) {
|
|
@@ -17,57 +17,57 @@ var O = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : ty
|
|
|
17
17
|
function b(t) {
|
|
18
18
|
return (t | 256).toString(16).slice(1);
|
|
19
19
|
}
|
|
20
|
-
function
|
|
21
|
-
return parseInt(t.substr(
|
|
20
|
+
function w(t, i) {
|
|
21
|
+
return parseInt(t.substr(i, 2), 16);
|
|
22
22
|
}
|
|
23
23
|
function L(t) {
|
|
24
|
-
for (var
|
|
25
|
-
return
|
|
24
|
+
for (var i = [], e = 0; e < t.length; e += 2) i.push(w(t, e));
|
|
25
|
+
return i;
|
|
26
26
|
}
|
|
27
27
|
function P(t) {
|
|
28
|
-
for (var
|
|
29
|
-
return
|
|
28
|
+
for (var i = "0x", e = 0; e < t.length; i += b(t[e++])) ;
|
|
29
|
+
return i;
|
|
30
30
|
}
|
|
31
31
|
c.flzCompress = function(t) {
|
|
32
|
-
var
|
|
32
|
+
var i = L(x(t)), e = i.length - 4, n = [], r = [], a = 0, o = 2, s = 0, f, v, S, p, z, u, F, Z, T, D;
|
|
33
33
|
function A(d) {
|
|
34
|
-
return
|
|
34
|
+
return i[d] | i[++d] << 8 | i[++d] << 16;
|
|
35
35
|
}
|
|
36
36
|
function B(d) {
|
|
37
37
|
return 2654435769 * d >> 19 & 8191;
|
|
38
38
|
}
|
|
39
39
|
function R(d, j) {
|
|
40
|
-
for (; d >= 32; ) for (
|
|
41
|
-
if (d) for (
|
|
40
|
+
for (; d >= 32; ) for (r[s++] = 31, f = 32; f--; d--) r[s++] = i[j++];
|
|
41
|
+
if (d) for (r[s++] = d - 1; d--; ) r[s++] = i[j++];
|
|
42
42
|
}
|
|
43
43
|
for (; o < e - 9; ) {
|
|
44
44
|
do
|
|
45
45
|
F = n[S = B(v = A(o))] || 0, z = (p = (n[S] = o) - F) < 8192 ? A(F) : 16777216;
|
|
46
46
|
while (o < e - 9 && o++ && v != z);
|
|
47
47
|
if (o >= e - 9) break;
|
|
48
|
-
for (--o > a && R(o - a, a), u = 0, Z = F + 3, T = o + 3, D = e - T; u < D; u++) D *=
|
|
49
|
-
for (o += u, --p; u > 262; u -= 262)
|
|
50
|
-
u < 7 ? (
|
|
48
|
+
for (--o > a && R(o - a, a), u = 0, Z = F + 3, T = o + 3, D = e - T; u < D; u++) D *= i[Z + u] === i[T + u];
|
|
49
|
+
for (o += u, --p; u > 262; u -= 262) r[s++] = 224 + (p >> 8), r[s++] = 253, r[s++] = p & 255;
|
|
50
|
+
u < 7 ? (r[s++] = (u << 5) + (p >> 8), r[s++] = p & 255) : (r[s++] = 224 + (p >> 8), r[s++] = u - 7, r[s++] = p & 255), n[B(A(o))] = o++, n[B(A(o))] = o++, a = o;
|
|
51
51
|
}
|
|
52
|
-
return R(e + 4 - a, a), P(
|
|
52
|
+
return R(e + 4 - a, a), P(r);
|
|
53
53
|
}, c.flzDecompress = function(t) {
|
|
54
|
-
for (var
|
|
55
|
-
if (o =
|
|
56
|
-
for (a = 256 * (
|
|
54
|
+
for (var i = L(x(t)), e = 0, n = 0, r, a, o, s, f = []; e < i.length; )
|
|
55
|
+
if (o = i[e] >> 5)
|
|
56
|
+
for (a = 256 * (i[e] & 31) + i[e + 2 - (o = o < 7)], r = o ? 2 + (i[e] >> 5) : 9 + i[e + 1], e = e + 3 - o, s = n - a - 1; r--; ) f[n++] = f[s++];
|
|
57
57
|
else
|
|
58
|
-
for (
|
|
58
|
+
for (r = 1 + i[e++]; r--; ) f[n++] = i[e++];
|
|
59
59
|
return P(f);
|
|
60
60
|
}, c.cdCompress = function(t) {
|
|
61
61
|
t = x(t);
|
|
62
|
-
var
|
|
62
|
+
var i = "0x", e = 0, n = 0, r = 0, a;
|
|
63
63
|
function o(f) {
|
|
64
|
-
|
|
64
|
+
i += b((i.length < 4 * 2 + 2) * 255 ^ f);
|
|
65
65
|
}
|
|
66
66
|
function s(f, v) {
|
|
67
67
|
o(0), o(v - 1 + f * 128);
|
|
68
68
|
}
|
|
69
|
-
for (;
|
|
70
|
-
if (a =
|
|
69
|
+
for (; r < t.length; r += 2) {
|
|
70
|
+
if (a = w(t, r), !a) {
|
|
71
71
|
n && (s(1, n), n = 0), ++e === 128 && (s(0, 128), e = 0);
|
|
72
72
|
continue;
|
|
73
73
|
}
|
|
@@ -77,24 +77,24 @@ var O = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : ty
|
|
|
77
77
|
}
|
|
78
78
|
n && (s(1, n), n = 0), e && (s(0, e), e = 0), o(a);
|
|
79
79
|
}
|
|
80
|
-
return n && (s(1, n), n = 0), e && (s(0, e), e = 0),
|
|
80
|
+
return n && (s(1, n), n = 0), e && (s(0, e), e = 0), i;
|
|
81
81
|
}, c.cdDecompress = function(t) {
|
|
82
82
|
t = x(t);
|
|
83
|
-
for (var
|
|
84
|
-
if (
|
|
85
|
-
for (
|
|
83
|
+
for (var i = "0x", e = 0, n, r, a; e < t.length; ) {
|
|
84
|
+
if (r = (e < 4 * 2) * 255 ^ w(t, e), e += 2, !r) {
|
|
85
|
+
for (r = (e < 4 * 2) * 255 ^ w(t, e), a = (r & 127) + 1, e += 2, n = 0; n < a; ++n) i += b((r >> 7 && n < 32) * 255);
|
|
86
86
|
continue;
|
|
87
87
|
}
|
|
88
|
-
|
|
88
|
+
i += b(r);
|
|
89
89
|
}
|
|
90
|
-
return
|
|
90
|
+
return i;
|
|
91
91
|
};
|
|
92
92
|
var C = {};
|
|
93
93
|
return y.ERC1967Factory = C, C.address = "0x0000000000006396FF2a80c067f99B3d2Ab4Df24", C.abi = JSON.parse('[{0:[],1:"DeploymentFailed"96"SaltDoesNotStartWithCaller"96"Unauthorized"96"UpgradeFailed",2:3959790,9791],1:"AdminChanged",2:10959790,9792,9791],1:"Deployed",2:10959790,9792],1:"Upgraded",2:10},{0:[{90],1:"adminOf",12:[{9199{0:[{90,{91],1:"changeAdmin",12:[],13:"nonpayable",2:15},{0:[{92,{91],1:"deploy",12:[{9098,{0:[{92,{91,{94],1:"deployAndCall",12:[{9098,{0:[{92,{91,{93],1:"deployDeterministic",12:[{9098,{0:[{92,{91,{93,{94],1:"deployDeterministicAndCall",12:[{9098,{0:[],1:"initCodeHash",12:[{6:19,1:"result",2:19}99{0:[{93],1:"predictDeterministicAddress",12:[{6:7,1:"predicted",2:7}99{0:[{90,{92],1:"upgrade",12:[98,{0:[{90,{92,{94],1:"upgradeAndCall",12:[98]'.replace(/9\d/g, function(t) {
|
|
94
94
|
return ["6:7,1:8,2:7}", "6:7,1:9,2:7}", "6:7,1:11,2:7}", "6:19,1:20,2:19}", "6:17,1:18,2:17}", "},{4:false,0:[", ",2:3},{0:[],1:", "{5:true,", "],13:16,2:15}", "],13:14,2:15},"][t - 90];
|
|
95
95
|
}).replace(/\d+/g, function(t) {
|
|
96
96
|
return '"' + "inputs,name,type,error,anonymous,indexed,internalType,address,proxy,admin,event,implementation,outputs,stateMutability,view,function,payable,bytes,data,bytes32,salt".split(",")[t] + '"';
|
|
97
|
-
})),
|
|
97
|
+
})), g || (m.solady = y), y;
|
|
98
98
|
});
|
|
99
99
|
})(E, E.exports);
|
|
100
100
|
var k = E.exports;
|
|
@@ -106,38 +106,36 @@ class G {
|
|
|
106
106
|
* @param {BoostConfig} config
|
|
107
107
|
*/
|
|
108
108
|
constructor(l) {
|
|
109
|
-
this.id = l.id, this.budget = l.budget, this.action = l.action, this.validator = l.validator, this.allowList = l.allowList, this.incentives = l.incentives, this.protocolFee = l.protocolFee || 0n, this.
|
|
109
|
+
this.id = l.id, this.budget = l.budget, this.action = l.action, this.validator = l.validator, this.allowList = l.allowList, this.incentives = l.incentives, this.protocolFee = l.protocolFee || 0n, this.maxParticipants = l.maxParticipants || 0n, this.owner = l.owner || H;
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
function I({
|
|
113
113
|
budget: h,
|
|
114
114
|
action: l,
|
|
115
|
-
validator:
|
|
116
|
-
allowList:
|
|
115
|
+
validator: m,
|
|
116
|
+
allowList: g,
|
|
117
117
|
incentives: y,
|
|
118
118
|
protocolFee: c = 0n,
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
owner: m
|
|
119
|
+
maxParticipants: x = 0n,
|
|
120
|
+
owner: b
|
|
122
121
|
}) {
|
|
123
122
|
return k.LibZip.cdCompress(
|
|
124
123
|
U(
|
|
125
124
|
N([
|
|
126
125
|
"BoostPayload payload",
|
|
127
|
-
"struct BoostPayload { address budget; Target action; Target validator; Target allowList; Target[] incentives; uint64 protocolFee;
|
|
126
|
+
"struct BoostPayload { address budget; Target action; Target validator; Target allowList; Target[] incentives; uint64 protocolFee; uint256 maxParticipants; address owner; }",
|
|
128
127
|
"struct Target { bool isBase; address instance; bytes parameters; }"
|
|
129
128
|
]),
|
|
130
129
|
[
|
|
131
130
|
{
|
|
132
131
|
budget: h,
|
|
133
132
|
action: l,
|
|
134
|
-
validator:
|
|
135
|
-
allowList:
|
|
133
|
+
validator: m,
|
|
134
|
+
allowList: g,
|
|
136
135
|
incentives: y,
|
|
137
136
|
protocolFee: c,
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
owner: m
|
|
137
|
+
maxParticipants: x,
|
|
138
|
+
owner: b
|
|
141
139
|
}
|
|
142
140
|
]
|
|
143
141
|
)
|
package/dist/Boost.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Boost.js","sources":["../../../node_modules/.pnpm/solady@0.0.208/node_modules/solady/js/solady.js","../src/Boost.ts"],"sourcesContent":["/**\n * Accompanying JavaScript library for Solady.\n *\n * To install:\n * \n * ```\n * npm install solady\n * ```\n *\n * Module exports:\n * \n * - `LibZip`\n * - `flzCompress(data)`: Compresses hex encoded data with FastLZ.\n * - `flzDecompress(data)`: Decompresses hex encoded data with FastLZ.\n * - `cdCompress(data)`: Compresses hex encoded calldata.\n * - `cdDecompress(data)`: Decompresses hex encoded calldata.\n * \n * - `ERC1967Factory`\n * - `address`: Canonical address of Solady's ERC1967Factory.\n * - `abi`: ABI of Solady's ERC1967Factory.\n *\n * @module solady\n */\n(function(global, factory) {\n\n \"use strict\";\n\n if (typeof module === \"object\" && typeof module.exports === \"object\") {\n module.exports = factory(global, 1);\n if (typeof exports === \"object\") {\n exports.LibZip = module.exports.LibZip;\n exports.ERC1967Factory = module.exports.ERC1967Factory;\n }\n } else {\n factory(global);\n }\n\n})(typeof window !== \"undefined\" ? window : this, function(window, noGlobal) {\n\n \"use strict\";\n\n var solady = {};\n\n /*============================================================*/\n /* LibZip Operations */\n /*============================================================*/\n\n // See: https://github.com/vectorized/solady/blob/main/src/utils/LibZip.sol\n\n /**\n * FastLZ and calldata compression / decompression functions.\n * @namespace\n * @alias module:solady.LibZip\n */\n var LibZip = {};\n\n solady.LibZip = LibZip;\n\n function hexString(data) {\n if (typeof data === \"string\" || data instanceof String) {\n if (data = data.match(/^[\\s\\uFEFF\\xA0]*(0[Xx])?([0-9A-Fa-f]*)[\\s\\uFEFF\\xA0]*$/)) {\n if (data[2].length % 2) {\n throw new Error(\"Hex string length must be a multiple of 2.\");\n }\n return data[2];\n }\n }\n throw new Error(\"Data must be a hex string.\");\n }\n\n function byteToString(b) {\n return (b | 0x100).toString(16).slice(1);\n }\n\n function parseByte(data, i) {\n return parseInt(data.substr(i, 2), 16);\n }\n\n function hexToBytes(data) {\n var a = [], i = 0;\n for (; i < data.length; i += 2) a.push(parseByte(data, i));\n return a;\n }\n\n function bytesToHex(a) {\n var o = \"0x\", i = 0;\n for (; i < a.length; o += byteToString(a[i++])) ;\n return o;\n }\n\n /**\n * Compresses hex encoded data with the FastLZ LZ77 algorithm.\n * @param {string} data A hex encoded string representing the original data.\n * @returns {string} The compressed result as a hex encoded string.\n */\n LibZip.flzCompress = function(data) {\n var ib = hexToBytes(hexString(data)), b = ib.length - 4;\n var ht = [], ob = [], a = 0, i = 2, o = 0, j, s, h, d, c, l, r, p, q, e;\n\n function u24(i) {\n return ib[i] | (ib[++i] << 8) | (ib[++i] << 16);\n }\n\n function hash(x) {\n return ((2654435769 * x) >> 19) & 8191;\n }\n\n function literals(r, s) {\n while (r >= 32) for (ob[o++] = 31, j = 32; j--; r--) ob[o++] = ib[s++];\n if (r) for (ob[o++] = r - 1; r--; ) ob[o++] = ib[s++];\n }\n\n while (i < b - 9) {\n do {\n r = ht[h = hash(s = u24(i))] || 0;\n c = (d = (ht[h] = i) - r) < 8192 ? u24(r) : 0x1000000;\n } while (i < b - 9 && i++ && s != c);\n if (i >= b - 9) break;\n if (--i > a) literals(i - a, a);\n for (l = 0, p = r + 3, q = i + 3, e = b - q; l < e; l++) e *= ib[p + l] === ib[q + l];\n i += l;\n for (--d; l > 262; l -= 262) ob[o++] = 224 + (d >> 8), ob[o++] = 253, ob[o++] = d & 255;\n if (l < 7) ob[o++] = (l << 5) + (d >> 8), ob[o++] = d & 255;\n else ob[o++] = 224 + (d >> 8), ob[o++] = l - 7, ob[o++] = d & 255;\n ht[hash(u24(i))] = i++, ht[hash(u24(i))] = i++, a = i;\n }\n literals(b + 4 - a, a);\n return bytesToHex(ob);\n }\n\n /**\n * Decompresses hex encoded data with the FastLZ LZ77 algorithm.\n * @param {string} data A hex encoded string representing the compressed data.\n * @returns {string} The decompressed result as a hex encoded string.\n */\n LibZip.flzDecompress = function(data) {\n var ib = hexToBytes(hexString(data)), i = 0, o = 0, l, f, t, r, h, ob = [];\n while (i < ib.length) {\n if (!(t = ib[i] >> 5)) {\n for (l = 1 + ib[i++]; l--;) ob[o++] = ib[i++];\n } else {\n f = 256 * (ib[i] & 31) + ib[i + 2 - (t = t < 7)];\n l = t ? 2 + (ib[i] >> 5) : 9 + ib[i + 1];\n i = i + 3 - t;\n r = o - f - 1;\n while (l--) ob[o++] = ob[r++];\n }\n }\n return bytesToHex(ob);\n }\n\n /**\n * Compresses hex encoded calldata.\n * @param {string} data A hex encoded string representing the original data.\n * @returns {string} The compressed result as a hex encoded string.\n */\n LibZip.cdCompress = function(data) {\n data = hexString(data);\n var o = \"0x\", z = 0, y = 0, i = 0, c;\n\n function pushByte(b) {\n o += byteToString(((o.length < 4 * 2 + 2) * 0xff) ^ b);\n }\n\n function rle(v, d) {\n pushByte(0x00);\n pushByte(d - 1 + v * 0x80);\n }\n\n for (; i < data.length; i += 2) {\n c = parseByte(data, i);\n if (!c) {\n if (y) rle(1, y), y = 0;\n if (++z === 0x80) rle(0, 0x80), z = 0;\n continue;\n }\n if (c === 0xff) {\n if (z) rle(0, z), z = 0;\n if (++y === 0x20) rle(1, 0x20), y = 0;\n continue;\n }\n if (y) rle(1, y), y = 0;\n if (z) rle(0, z), z = 0;\n pushByte(c);\n }\n if (y) rle(1, y), y = 0;\n if (z) rle(0, z), z = 0;\n return o;\n }\n\n /**\n * Decompresses hex encoded calldata.\n * @param {string} data A hex encoded string representing the compressed data.\n * @returns {string} The decompressed result as a hex encoded string.\n */\n LibZip.cdDecompress = function(data) {\n data = hexString(data);\n var o = \"0x\", i = 0, j, c, s;\n\n while (i < data.length) {\n c = ((i < 4 * 2) * 0xff) ^ parseByte(data, i);\n i += 2;\n if (!c) {\n c = ((i < 4 * 2) * 0xff) ^ parseByte(data, i);\n s = (c & 0x7f) + 1;\n i += 2;\n for (j = 0; j < s; ++j) o += byteToString((c >> 7 && j < 32) * 0xff);\n continue;\n }\n o += byteToString(c);\n }\n return o;\n }\n\n /*============================================================*/\n /* ERC1967Factory */\n /*============================================================*/\n\n // See: https://github.com/vectorized/solady/blob/main/src/utils/ERC1967Factory.sol\n\n /**\n * ERC1967Factory canonical address and ABI.\n * @namespace\n * @alias module:solady.ERC1967Factory\n */\n var ERC1967Factory = {};\n\n solady.ERC1967Factory = ERC1967Factory;\n\n /**\n * Canonical address of Solady's ERC1967Factory.\n * @type {string}\n */\n ERC1967Factory.address = \"0x0000000000006396FF2a80c067f99B3d2Ab4Df24\";\n\n /**\n * ABI of Solady's ERC1967Factory.\n * @type {Object}\n */\n ERC1967Factory.abi = JSON.parse('[{0:[],1:\"DeploymentFailed\"96\"SaltDoesNotStartWithCaller\"96\"Unauthorized\"96\"UpgradeFailed\",2:3959790,9791],1:\"AdminChanged\",2:10959790,9792,9791],1:\"Deployed\",2:10959790,9792],1:\"Upgraded\",2:10},{0:[{90],1:\"adminOf\",12:[{9199{0:[{90,{91],1:\"changeAdmin\",12:[],13:\"nonpayable\",2:15},{0:[{92,{91],1:\"deploy\",12:[{9098,{0:[{92,{91,{94],1:\"deployAndCall\",12:[{9098,{0:[{92,{91,{93],1:\"deployDeterministic\",12:[{9098,{0:[{92,{91,{93,{94],1:\"deployDeterministicAndCall\",12:[{9098,{0:[],1:\"initCodeHash\",12:[{6:19,1:\"result\",2:19}99{0:[{93],1:\"predictDeterministicAddress\",12:[{6:7,1:\"predicted\",2:7}99{0:[{90,{92],1:\"upgrade\",12:[98,{0:[{90,{92,{94],1:\"upgradeAndCall\",12:[98]'.replace(/9\\d/g, function (m) { return [\"6:7,1:8,2:7}\",\"6:7,1:9,2:7}\",\"6:7,1:11,2:7}\",\"6:19,1:20,2:19}\",\"6:17,1:18,2:17}\",\"},{4:false,0:[\",\",2:3},{0:[],1:\",\"{5:true,\",\"],13:16,2:15}\",\"],13:14,2:15},\"][m-90] }).replace(/\\d+/g, function (m) { return '\"' + (\"inputs,name,type,error,anonymous,indexed,internalType,address,proxy,admin,event,implementation,outputs,stateMutability,view,function,payable,bytes,data,bytes32,salt\".split(\",\")[m]) + '\"' }));\n\n /*--------------------------- END ----------------------------*/\n\n if (typeof define === \"function\" && define.amd) {\n define(\"solady\", [], function() {\n return solady\n });\n }\n\n if (!noGlobal) {\n window.solady = solady;\n }\n\n return solady;\n});\n","import { LibZip } from 'solady';\nimport {\n type Address,\n type Hex,\n encodeAbiParameters,\n parseAbiParameters,\n zeroAddress,\n} from 'viem';\nimport type { Action } from './Actions/Action';\nimport type { AllowList } from './AllowLists/AllowList';\nimport type { Budget } from './Budgets/Budget';\nimport type { Incentive } from './Incentives/Incentive';\nimport type { Validator } from './Validators/Validator';\n\n/**\n * Interface representing a `BoostLib.Boost` on-chain struct\n *\n * @export\n * @interface BoostPayload\n * @typedef {BoostPayload}\n */\nexport interface RawBoost {\n action: Address;\n validator: Address;\n allowList: Address;\n budget: Address;\n incentives: readonly Address[];\n protocolFee: bigint;\n referralFee: bigint;\n maxParticipants: bigint;\n owner: Address;\n}\n\n/**\n * Configuration used to instantiate a `Boost` instance.\n *\n * @export\n * @interface BoostPayload\n * @typedef {BoostPayload}\n */\nexport interface BoostConfig {\n /**\n *\n * @type {bigint}\n */\n id: bigint;\n /**\n *\n * @type {Budget}\n */\n budget: Budget;\n /**\n *\n * @type {Action}\n */\n action: Action;\n /**\n *\n * @type {Validator}\n */\n validator: Validator;\n /**\n *\n * @type {AllowList}\n */\n allowList: AllowList;\n /**\n *\n * @type {Array<Incentive>}\n */\n incentives: Array<Incentive>;\n /**\n *\n * @type {?bigint}\n */\n protocolFee?: bigint;\n /**\n *\n * @type {?bigint}\n */\n referralFee?: bigint;\n /**\n *\n * @type {?bigint}\n */\n maxParticipants?: bigint;\n /**\n *\n * @type {?Address}\n */\n owner?: Address;\n}\n\n/**\n * A struct representing a single Boost. Typically you would not construct this directly, rather get an instance from `BoostCore.createBoost` or `BoostCore.getBoost`\n *\n * @export\n * @class Boost\n * @typedef {Boost}\n */\nexport class Boost {\n /**\n *\n * @readonly\n * @type {bigint}\n */\n readonly id: bigint;\n /**\n *\n * @readonly\n * @type {Budget}\n */\n readonly budget: Budget;\n /**\n *\n * @readonly\n * @type {Action}\n */\n readonly action: Action;\n /**\n *\n * @readonly\n * @type {Validator}\n */\n readonly validator: Validator;\n /**\n *\n * @readonly\n * @type {AllowList}\n */\n readonly allowList: AllowList;\n /**\n *\n * @readonly\n * @type {Array<Incentive>}\n */\n readonly incentives: Array<Incentive>;\n /**\n *\n * @readonly\n * @type {bigint}\n */\n readonly protocolFee: bigint;\n /**\n *\n * @readonly\n * @type {bigint}\n */\n readonly referralFee: bigint;\n /**\n *\n * @readonly\n * @type {bigint}\n */\n readonly maxParticipants: bigint;\n /**\n *\n * @readonly\n * @type {Address}\n */\n readonly owner: Address;\n\n /**\n * Creates an instance of Boost.\n *\n * @constructor\n * @param {BoostConfig} config\n */\n constructor(config: BoostConfig) {\n this.id = config.id;\n this.budget = config.budget;\n this.action = config.action;\n this.validator = config.validator;\n this.allowList = config.allowList;\n this.incentives = config.incentives;\n this.protocolFee = config.protocolFee || 0n;\n this.referralFee = config.referralFee || 0n;\n this.maxParticipants = config.maxParticipants || 0n;\n this.owner = config.owner || zeroAddress;\n }\n}\n\n/**\n * Object representation of `BoostLib.Target` struct. Used for low level Boost creation operations.\n * This is used to pass the base contract and its initialization parameters in an efficient manner\n *\n * @export\n * @typedef {Target}\n */\nexport type Target = {\n isBase: boolean;\n instance: Address;\n parameters: Hex;\n};\n\n/**\n * Object representation of `BoostCore.InitPayload` struct.\n *\n * @export\n * @interface BoostPayload\n * @typedef {BoostPayload}\n */\nexport interface BoostPayload {\n /**\n * Address to valid budget.\n *\n * @type {Address}\n */\n budget: Address;\n /**\n * Target for existing action, or base with initialization payload.\n *\n * @type {Target}\n */\n action: Target;\n /**\n * Target for existing validator, or base with initialization payload.\n *\n * @type {Target}\n */\n validator: Target;\n /**\n * Target for existing allowList, or base with initialization payload.\n *\n * @type {Target}\n */\n allowList: Target;\n /**\n * Targets for new incentives, with initialization payloads.\n *\n * @type {Target[]}\n */\n incentives: Target[];\n /**\n * The base protocol fee (in bps)\n *\n * @type {?bigint}\n */\n protocolFee?: bigint;\n /**\n * The base referral fee (in bps)\n *\n * @type {?bigint}\n */\n referralFee?: bigint;\n /**\n * Optional maximum amount of participants in the Boost.\n *\n * @type {?bigint}\n */\n maxParticipants?: bigint;\n /**\n * The owner of the Boost.\n *\n * @type {Address}\n */\n owner: Address;\n}\n\n/**\n * Given a valid {@link BoostPayload}, properly encode and compress the payload for use with `createBoost`\n *\n * @export\n * @param {BoostPayload} param0\n * @param {Address} param0.budget - Address to valid budget.\n * @param {Target} param0.action - Target for existing action, or base with initialization payload.\n * @param {Target} param0.validator - Target for existing validator, or base with initialization payload.\n * @param {Target} param0.allowList - Target for existing allowList, or base with initialization payload.\n * @param {Target[]} param0.incentives - Targets for new incentives, with initialization payloads.\n * @param {bigint} [param0.protocolFee=0n] - The base protocol fee (in bps)\n * @param {bigint} [param0.referralFee=0n] - The base referral fee (in bps)\n * @param {bigint} [param0.maxParticipants=0n] - Optional maximum amount of participants in the Boost.\n * @param {Address} param0.owner - The owner of the Boost.\n * @returns {Hex}\n */\nexport function prepareBoostPayload({\n budget,\n action,\n validator,\n allowList,\n incentives,\n protocolFee = 0n,\n referralFee = 0n,\n maxParticipants = 0n,\n owner,\n}: BoostPayload): Hex {\n return LibZip.cdCompress(\n encodeAbiParameters(\n parseAbiParameters([\n 'BoostPayload payload',\n 'struct BoostPayload { address budget; Target action; Target validator; Target allowList; Target[] incentives; uint64 protocolFee; uint64 referralFee; uint256 maxParticipants; address owner; }',\n 'struct Target { bool isBase; address instance; bytes parameters; }',\n ]),\n [\n {\n budget,\n action,\n validator,\n allowList,\n incentives,\n protocolFee,\n referralFee,\n maxParticipants,\n owner,\n },\n ],\n ),\n ) as Hex;\n}\n"],"names":["global","factory","module","exports","this","window","noGlobal","solady","LibZip","hexString","data","byteToString","b","parseByte","i","hexToBytes","a","bytesToHex","o","ib","ht","ob","j","s","h","d","c","l","r","p","q","e","u24","hash","x","literals","f","t","z","y","pushByte","rle","v","ERC1967Factory","m","Boost","config","zeroAddress","prepareBoostPayload","budget","action","validator","allowList","incentives","protocolFee","referralFee","maxParticipants","owner","encodeAbiParameters","parseAbiParameters"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"Boost.js","sources":["../../../node_modules/.pnpm/solady@0.0.208/node_modules/solady/js/solady.js","../src/Boost.ts"],"sourcesContent":["/**\n * Accompanying JavaScript library for Solady.\n *\n * To install:\n * \n * ```\n * npm install solady\n * ```\n *\n * Module exports:\n * \n * - `LibZip`\n * - `flzCompress(data)`: Compresses hex encoded data with FastLZ.\n * - `flzDecompress(data)`: Decompresses hex encoded data with FastLZ.\n * - `cdCompress(data)`: Compresses hex encoded calldata.\n * - `cdDecompress(data)`: Decompresses hex encoded calldata.\n * \n * - `ERC1967Factory`\n * - `address`: Canonical address of Solady's ERC1967Factory.\n * - `abi`: ABI of Solady's ERC1967Factory.\n *\n * @module solady\n */\n(function(global, factory) {\n\n \"use strict\";\n\n if (typeof module === \"object\" && typeof module.exports === \"object\") {\n module.exports = factory(global, 1);\n if (typeof exports === \"object\") {\n exports.LibZip = module.exports.LibZip;\n exports.ERC1967Factory = module.exports.ERC1967Factory;\n }\n } else {\n factory(global);\n }\n\n})(typeof window !== \"undefined\" ? window : this, function(window, noGlobal) {\n\n \"use strict\";\n\n var solady = {};\n\n /*============================================================*/\n /* LibZip Operations */\n /*============================================================*/\n\n // See: https://github.com/vectorized/solady/blob/main/src/utils/LibZip.sol\n\n /**\n * FastLZ and calldata compression / decompression functions.\n * @namespace\n * @alias module:solady.LibZip\n */\n var LibZip = {};\n\n solady.LibZip = LibZip;\n\n function hexString(data) {\n if (typeof data === \"string\" || data instanceof String) {\n if (data = data.match(/^[\\s\\uFEFF\\xA0]*(0[Xx])?([0-9A-Fa-f]*)[\\s\\uFEFF\\xA0]*$/)) {\n if (data[2].length % 2) {\n throw new Error(\"Hex string length must be a multiple of 2.\");\n }\n return data[2];\n }\n }\n throw new Error(\"Data must be a hex string.\");\n }\n\n function byteToString(b) {\n return (b | 0x100).toString(16).slice(1);\n }\n\n function parseByte(data, i) {\n return parseInt(data.substr(i, 2), 16);\n }\n\n function hexToBytes(data) {\n var a = [], i = 0;\n for (; i < data.length; i += 2) a.push(parseByte(data, i));\n return a;\n }\n\n function bytesToHex(a) {\n var o = \"0x\", i = 0;\n for (; i < a.length; o += byteToString(a[i++])) ;\n return o;\n }\n\n /**\n * Compresses hex encoded data with the FastLZ LZ77 algorithm.\n * @param {string} data A hex encoded string representing the original data.\n * @returns {string} The compressed result as a hex encoded string.\n */\n LibZip.flzCompress = function(data) {\n var ib = hexToBytes(hexString(data)), b = ib.length - 4;\n var ht = [], ob = [], a = 0, i = 2, o = 0, j, s, h, d, c, l, r, p, q, e;\n\n function u24(i) {\n return ib[i] | (ib[++i] << 8) | (ib[++i] << 16);\n }\n\n function hash(x) {\n return ((2654435769 * x) >> 19) & 8191;\n }\n\n function literals(r, s) {\n while (r >= 32) for (ob[o++] = 31, j = 32; j--; r--) ob[o++] = ib[s++];\n if (r) for (ob[o++] = r - 1; r--; ) ob[o++] = ib[s++];\n }\n\n while (i < b - 9) {\n do {\n r = ht[h = hash(s = u24(i))] || 0;\n c = (d = (ht[h] = i) - r) < 8192 ? u24(r) : 0x1000000;\n } while (i < b - 9 && i++ && s != c);\n if (i >= b - 9) break;\n if (--i > a) literals(i - a, a);\n for (l = 0, p = r + 3, q = i + 3, e = b - q; l < e; l++) e *= ib[p + l] === ib[q + l];\n i += l;\n for (--d; l > 262; l -= 262) ob[o++] = 224 + (d >> 8), ob[o++] = 253, ob[o++] = d & 255;\n if (l < 7) ob[o++] = (l << 5) + (d >> 8), ob[o++] = d & 255;\n else ob[o++] = 224 + (d >> 8), ob[o++] = l - 7, ob[o++] = d & 255;\n ht[hash(u24(i))] = i++, ht[hash(u24(i))] = i++, a = i;\n }\n literals(b + 4 - a, a);\n return bytesToHex(ob);\n }\n\n /**\n * Decompresses hex encoded data with the FastLZ LZ77 algorithm.\n * @param {string} data A hex encoded string representing the compressed data.\n * @returns {string} The decompressed result as a hex encoded string.\n */\n LibZip.flzDecompress = function(data) {\n var ib = hexToBytes(hexString(data)), i = 0, o = 0, l, f, t, r, h, ob = [];\n while (i < ib.length) {\n if (!(t = ib[i] >> 5)) {\n for (l = 1 + ib[i++]; l--;) ob[o++] = ib[i++];\n } else {\n f = 256 * (ib[i] & 31) + ib[i + 2 - (t = t < 7)];\n l = t ? 2 + (ib[i] >> 5) : 9 + ib[i + 1];\n i = i + 3 - t;\n r = o - f - 1;\n while (l--) ob[o++] = ob[r++];\n }\n }\n return bytesToHex(ob);\n }\n\n /**\n * Compresses hex encoded calldata.\n * @param {string} data A hex encoded string representing the original data.\n * @returns {string} The compressed result as a hex encoded string.\n */\n LibZip.cdCompress = function(data) {\n data = hexString(data);\n var o = \"0x\", z = 0, y = 0, i = 0, c;\n\n function pushByte(b) {\n o += byteToString(((o.length < 4 * 2 + 2) * 0xff) ^ b);\n }\n\n function rle(v, d) {\n pushByte(0x00);\n pushByte(d - 1 + v * 0x80);\n }\n\n for (; i < data.length; i += 2) {\n c = parseByte(data, i);\n if (!c) {\n if (y) rle(1, y), y = 0;\n if (++z === 0x80) rle(0, 0x80), z = 0;\n continue;\n }\n if (c === 0xff) {\n if (z) rle(0, z), z = 0;\n if (++y === 0x20) rle(1, 0x20), y = 0;\n continue;\n }\n if (y) rle(1, y), y = 0;\n if (z) rle(0, z), z = 0;\n pushByte(c);\n }\n if (y) rle(1, y), y = 0;\n if (z) rle(0, z), z = 0;\n return o;\n }\n\n /**\n * Decompresses hex encoded calldata.\n * @param {string} data A hex encoded string representing the compressed data.\n * @returns {string} The decompressed result as a hex encoded string.\n */\n LibZip.cdDecompress = function(data) {\n data = hexString(data);\n var o = \"0x\", i = 0, j, c, s;\n\n while (i < data.length) {\n c = ((i < 4 * 2) * 0xff) ^ parseByte(data, i);\n i += 2;\n if (!c) {\n c = ((i < 4 * 2) * 0xff) ^ parseByte(data, i);\n s = (c & 0x7f) + 1;\n i += 2;\n for (j = 0; j < s; ++j) o += byteToString((c >> 7 && j < 32) * 0xff);\n continue;\n }\n o += byteToString(c);\n }\n return o;\n }\n\n /*============================================================*/\n /* ERC1967Factory */\n /*============================================================*/\n\n // See: https://github.com/vectorized/solady/blob/main/src/utils/ERC1967Factory.sol\n\n /**\n * ERC1967Factory canonical address and ABI.\n * @namespace\n * @alias module:solady.ERC1967Factory\n */\n var ERC1967Factory = {};\n\n solady.ERC1967Factory = ERC1967Factory;\n\n /**\n * Canonical address of Solady's ERC1967Factory.\n * @type {string}\n */\n ERC1967Factory.address = \"0x0000000000006396FF2a80c067f99B3d2Ab4Df24\";\n\n /**\n * ABI of Solady's ERC1967Factory.\n * @type {Object}\n */\n ERC1967Factory.abi = JSON.parse('[{0:[],1:\"DeploymentFailed\"96\"SaltDoesNotStartWithCaller\"96\"Unauthorized\"96\"UpgradeFailed\",2:3959790,9791],1:\"AdminChanged\",2:10959790,9792,9791],1:\"Deployed\",2:10959790,9792],1:\"Upgraded\",2:10},{0:[{90],1:\"adminOf\",12:[{9199{0:[{90,{91],1:\"changeAdmin\",12:[],13:\"nonpayable\",2:15},{0:[{92,{91],1:\"deploy\",12:[{9098,{0:[{92,{91,{94],1:\"deployAndCall\",12:[{9098,{0:[{92,{91,{93],1:\"deployDeterministic\",12:[{9098,{0:[{92,{91,{93,{94],1:\"deployDeterministicAndCall\",12:[{9098,{0:[],1:\"initCodeHash\",12:[{6:19,1:\"result\",2:19}99{0:[{93],1:\"predictDeterministicAddress\",12:[{6:7,1:\"predicted\",2:7}99{0:[{90,{92],1:\"upgrade\",12:[98,{0:[{90,{92,{94],1:\"upgradeAndCall\",12:[98]'.replace(/9\\d/g, function (m) { return [\"6:7,1:8,2:7}\",\"6:7,1:9,2:7}\",\"6:7,1:11,2:7}\",\"6:19,1:20,2:19}\",\"6:17,1:18,2:17}\",\"},{4:false,0:[\",\",2:3},{0:[],1:\",\"{5:true,\",\"],13:16,2:15}\",\"],13:14,2:15},\"][m-90] }).replace(/\\d+/g, function (m) { return '\"' + (\"inputs,name,type,error,anonymous,indexed,internalType,address,proxy,admin,event,implementation,outputs,stateMutability,view,function,payable,bytes,data,bytes32,salt\".split(\",\")[m]) + '\"' }));\n\n /*--------------------------- END ----------------------------*/\n\n if (typeof define === \"function\" && define.amd) {\n define(\"solady\", [], function() {\n return solady\n });\n }\n\n if (!noGlobal) {\n window.solady = solady;\n }\n\n return solady;\n});\n","import { LibZip } from 'solady';\nimport {\n type Address,\n type Hex,\n encodeAbiParameters,\n parseAbiParameters,\n zeroAddress,\n} from 'viem';\nimport type { Action } from './Actions/Action';\nimport type { AllowList } from './AllowLists/AllowList';\nimport type { Budget } from './Budgets/Budget';\nimport type { Incentive } from './Incentives/Incentive';\nimport type { Validator } from './Validators/Validator';\n\n/**\n * Interface representing a `BoostLib.Boost` on-chain struct\n *\n * @export\n * @interface RawBoost\n * @typedef {RawBoost}\n */\nexport interface RawBoost {\n action: Address;\n validator: Address;\n allowList: Address;\n budget: Address;\n incentives: readonly Address[];\n protocolFee: bigint;\n maxParticipants: bigint;\n owner: Address;\n}\n\n/**\n * Configuration used to instantiate a `Boost` instance.\n *\n * @export\n * @interface BoostConfig\n * @typedef {BoostConfig}\n */\nexport interface BoostConfig {\n /**\n *\n * @type {bigint}\n */\n id: bigint;\n /**\n *\n * @type {Budget}\n */\n budget: Budget;\n /**\n *\n * @type {Action}\n */\n action: Action;\n /**\n *\n * @type {Validator}\n */\n validator: Validator;\n /**\n *\n * @type {AllowList}\n */\n allowList: AllowList;\n /**\n *\n * @type {Array<Incentive>}\n */\n incentives: Array<Incentive>;\n /**\n *\n * @type {?bigint}\n */\n protocolFee?: bigint;\n /**\n *\n * @type {?bigint}\n */\n maxParticipants?: bigint;\n /**\n *\n * @type {?Address}\n */\n owner?: Address;\n}\n\n/**\n * A struct representing a single Boost. Typically you would not construct this directly, rather get an instance from `BoostCore.createBoost` or `BoostCore.getBoost`\n *\n * @export\n * @class Boost\n * @typedef {Boost}\n */\nexport class Boost {\n /**\n *\n * @readonly\n * @type {bigint}\n */\n readonly id: bigint;\n /**\n *\n * @readonly\n * @type {Budget}\n */\n readonly budget: Budget;\n /**\n *\n * @readonly\n * @type {Action}\n */\n readonly action: Action;\n /**\n *\n * @readonly\n * @type {Validator}\n */\n readonly validator: Validator;\n /**\n *\n * @readonly\n * @type {AllowList}\n */\n readonly allowList: AllowList;\n /**\n *\n * @readonly\n * @type {Array<Incentive>}\n */\n readonly incentives: Array<Incentive>;\n /**\n *\n * @readonly\n * @type {bigint}\n */\n readonly protocolFee: bigint;\n /**\n *\n * @readonly\n * @type {bigint}\n */\n readonly maxParticipants: bigint;\n /**\n *\n * @readonly\n * @type {Address}\n */\n readonly owner: Address;\n\n /**\n * Creates an instance of Boost.\n *\n * @constructor\n * @param {BoostConfig} config\n */\n constructor(config: BoostConfig) {\n this.id = config.id;\n this.budget = config.budget;\n this.action = config.action;\n this.validator = config.validator;\n this.allowList = config.allowList;\n this.incentives = config.incentives;\n this.protocolFee = config.protocolFee || 0n;\n this.maxParticipants = config.maxParticipants || 0n;\n this.owner = config.owner || zeroAddress;\n }\n}\n\n/**\n * Object representation of `BoostLib.Target` struct. Used for low level Boost creation operations.\n * This is used to pass the base contract and its initialization parameters in an efficient manner\n *\n * @export\n * @typedef {Target}\n */\nexport type Target = {\n isBase: boolean;\n instance: Address;\n parameters: Hex;\n};\n\n/**\n * Object representation of `BoostCore.InitPayload` struct.\n *\n * @export\n * @interface BoostPayload\n * @typedef {BoostPayload}\n */\nexport interface BoostPayload {\n /**\n * Address to valid budget.\n *\n * @type {Address}\n */\n budget: Address;\n /**\n * Target for existing action, or base with initialization payload.\n *\n * @type {Target}\n */\n action: Target;\n /**\n * Target for existing validator, or base with initialization payload.\n *\n * @type {Target}\n */\n validator: Target;\n /**\n * Target for existing allowList, or base with initialization payload.\n *\n * @type {Target}\n */\n allowList: Target;\n /**\n * Targets for new incentives, with initialization payloads.\n *\n * @type {Target[]}\n */\n incentives: Target[];\n /**\n * The base protocol fee (in bps)\n *\n * @type {?bigint}\n */\n protocolFee?: bigint;\n /**\n * Optional maximum amount of participants in the Boost.\n *\n * @type {?bigint}\n */\n maxParticipants?: bigint;\n /**\n * The owner of the Boost.\n *\n * @type {Address}\n */\n owner: Address;\n}\n\n/**\n * Given a valid {@link BoostPayload}, properly encode and compress the payload for use with `createBoost`\n *\n * @export\n * @param {BoostPayload} param0\n * @param {Address} param0.budget - Address to valid budget.\n * @param {Target} param0.action - Target for existing action, or base with initialization payload.\n * @param {Target} param0.validator - Target for existing validator, or base with initialization payload.\n * @param {Target} param0.allowList - Target for existing allowList, or base with initialization payload.\n * @param {Target[]} param0.incentives - Targets for new incentives, with initialization payloads.\n * @param {bigint} [param0.protocolFee=0n] - The base protocol fee (in bps)\n * @param {bigint} [param0.maxParticipants=0n] - Optional maximum amount of participants in the Boost.\n * @param {Address} param0.owner - The owner of the Boost.\n * @returns {Hex}\n */\nexport function prepareBoostPayload({\n budget,\n action,\n validator,\n allowList,\n incentives,\n protocolFee = 0n,\n maxParticipants = 0n,\n owner,\n}: BoostPayload): Hex {\n return LibZip.cdCompress(\n encodeAbiParameters(\n parseAbiParameters([\n 'BoostPayload payload',\n 'struct BoostPayload { address budget; Target action; Target validator; Target allowList; Target[] incentives; uint64 protocolFee; uint256 maxParticipants; address owner; }',\n 'struct Target { bool isBase; address instance; bytes parameters; }',\n ]),\n [\n {\n budget,\n action,\n validator,\n allowList,\n incentives,\n protocolFee,\n maxParticipants,\n owner,\n },\n ],\n ),\n ) as Hex;\n}\n"],"names":["global","factory","module","exports","this","window","noGlobal","solady","LibZip","hexString","data","byteToString","b","parseByte","hexToBytes","a","i","bytesToHex","o","ib","ht","ob","j","s","h","d","c","l","r","p","q","e","u24","hash","x","literals","f","t","z","y","pushByte","rle","v","ERC1967Factory","m","Boost","config","zeroAddress","prepareBoostPayload","budget","action","validator","allowList","incentives","protocolFee","maxParticipants","owner","encodeAbiParameters","parseAbiParameters"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";const u=require("./generated-CyTNlOwM.cjs"),I=require("@wagmi/core"),i=require("viem"),R=require("./deployments-DVXioW2i.cjs"),U=require("./Actions/Action.cjs"),A=require("./EventAction-CBKzuNoN.cjs"),S=require("./AllowLists/AllowList.cjs"),G=require("./AllowLists/SimpleAllowList.cjs"),k=require("./SimpleDenyList-BUR17Tt1.cjs"),W=require("./Auth/PassthroughAuth.cjs"),B=require("./Boost.cjs"),K=require("./Budgets/Budget.cjs"),X=require("./Budgets/ManagedBudget.cjs"),Y=require("./Deployable/Deployable.cjs"),J=require("./Incentives/AllowListIncentive.cjs"),Q=require("./Incentives/CGDAIncentive.cjs"),Z=require("./Incentives/ERC20Incentive.cjs"),ff=require("./Deployable/DeployableTarget.cjs"),g=require("./errors.cjs"),L=require("./Incentive-CrF3-ayL.cjs"),bf=require("./Incentives/PointsIncentive.cjs"),ef=require("./Validators/SignerValidator.cjs"),af=require("./Validators/Validator.cjs"),l=require("./utils.cjs"),O=require("viem/actions"),V=require("viem/utils"),cf="0x60806040526103e8600360146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555034801561003a575f80fd5b50604051615301380380615301833981810160405281019061005c919061026b565b61006b336100f260201b60201c565b8160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506102a9565b6101006101ce60201b60201c565b15610178577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561013a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506101cb565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f90565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101ff826101d6565b9050919050565b5f610210826101f5565b9050919050565b61022081610206565b811461022a575f80fd5b50565b5f8151905061023b81610217565b92915050565b61024a816101f5565b8114610254575f80fd5b50565b5f8151905061026581610241565b92915050565b5f8060408385031215610281576102806101d2565b5b5f61028e8582860161022d565b925050602061029f85828601610257565b9150509250929050565b61504b806102b65f395ff3fe60806040526004361061014a575f3560e01c80637b103999116100b5578063dd98558c1161006e578063dd98558c146103fa578063e21ff73114610437578063eccc19a614610473578063f04e283e1461049b578063f2fde38b146104b7578063fee81cf4146104d35761014a565b80637b1039991461030c5780638da5cb5b146103365780638fe4f52314610360578063a92647dc1461037c578063b0e21e8a146103a6578063d73792a9146103d05761014a565b806354d1f13d1161010757806354d1f13d1461024a5780635edb9eb0146102545780635f32c23e1461027e57806360777795146102a6578063715018a6146102e6578063730f9c57146102f05761014a565b80630250e72b1461014e57806313c8e2de1461018a57806325692962146101c657806339a51be5146101d057806343bc42d3146101fa57806346877b1a14610222575b5f80fd5b348015610159575f80fd5b50610174600480360381019061016f91906137f5565b61050f565b6040516101819190613950565b60405180910390f35b348015610195575f80fd5b506101b060048036038101906101ab9190613993565b6105e6565b6040516101bd9190613c21565b60405180910390f35b6101ce61088e565b005b3480156101db575f80fd5b506101e46108df565b6040516101f19190613c50565b60405180910390f35b348015610205575f80fd5b50610220600480360381019061021b9190613c93565b610904565b005b34801561022d575f80fd5b5061024860048036038101906102439190613ce8565b610938565b005b610252610983565b005b34801561025f575f80fd5b506102686109bc565b6040516102759190613d22565b60405180910390f35b348015610289575f80fd5b506102a4600480360381019061029f9190613d3b565b6109c7565b005b3480156102b1575f80fd5b506102cc60048036038101906102c791906137f5565b610b53565b6040516102dd959493929190613d88565b60405180910390f35b6102ee610bb0565b005b61030a60048036038101906103059190613e3a565b610bc3565b005b348015610317575f80fd5b50610320611104565b60405161032d9190613ef0565b60405180910390f35b348015610341575f80fd5b5061034a611129565b6040516103579190613c50565b60405180910390f35b61037a60048036038101906103759190613f09565b611151565b005b348015610387575f80fd5b50610390611166565b60405161039d9190613fad565b60405180910390f35b3480156103b1575f80fd5b506103ba61118b565b6040516103c79190613fd5565b60405180910390f35b3480156103db575f80fd5b506103e46111a5565b6040516103f19190613fd5565b60405180910390f35b348015610405575f80fd5b50610420600480360381019061041b9190613fee565b6111ab565b60405161042e92919061405f565b60405180910390f35b348015610442575f80fd5b5061045d60048036038101906104589190614086565b6118af565b60405161046a9190613c21565b60405180910390f35b34801561047e575f80fd5b5061049960048036038101906104949190613ce8565b61229d565b005b6104b560048036038101906104b09190613ce8565b6122e8565b005b6104d160048036038101906104cc9190613ce8565b612326565b005b3480156104de575f80fd5b506104f960048036038101906104f49190613ce8565b61234f565b6040516105069190613d22565b60405180910390f35b610517613607565b60045f8381526020019081526020015f206040518060a00160405290815f82015f9054906101000a900460ff16600281111561055657610555613820565b5b600281111561056857610567613820565b5b81526020015f820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481526020016003820154815250509050919050565b6105ee613659565b5f8281548110610601576106006140d1565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600482018054806020026020016040519081016040528092919081815260200182805480156107ee57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116107a5575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b5f610897612368565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61090c612372565b80600360146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b610940612372565b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f8080549050905090565b3068929eee149b4bd2126854036109e55763ab143c065f526004601cfd5b3068929eee149b4bd21268555f6109fc83836123a9565b90505f60045f8381526020019081526020015f2090505f816002015461271067ffffffffffffffff168360010154610a34919061412b565b610a3e9190614199565b90505f610a4a836123db565b905081811115610b3f575f8282610a6191906141c9565b90505f61271067ffffffffffffffff16856002015483610a81919061412b565b610a8b9190614199565b9050610a9785826125e1565b80856001015410610ac15780856001015f828254610ab591906141c9565b92505081905550610acb565b5f85600101819055505b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1687897f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b1784604051610b349190613d22565b60405180910390a450505b505050503868929eee149b4bd21268555050565b6004602052805f5260405f205f91509050805f015f9054906101000a900460ff1690805f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154905085565b610bb8612372565b610bc15f6127c2565b565b3068929eee149b4bd212685403610be15763ab143c065f526004601cfd5b3068929eee149b4bd21268555f808781548110610c0157610c006140d1565b5b905f5260205f20906008020190505f610c1a88886123a9565b90505f60045f8381526020019081526020015f209050826002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e3f756de8588886040518463ffffffff1660e01b8152600401610c9093929190614256565b602060405180830381865afa158015610cab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccf91906142bb565b610d05576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663703b69008a8a878a8a6040518663ffffffff1660e01b8152600401610d699594939291906142e6565b6020604051808303815f875af1158015610d85573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da991906142bb565b610ddf576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16825f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610e3c575f610e46565b610e45826123db565b5b9050836004018981548110610e5e57610e5d6140d1565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb1757cf8689896040518463ffffffff1660e01b8152600401610ec293929190614256565b6020604051808303815f875af1158015610ede573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0291906142bb565b610f47578487876040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610f3e93929190614256565b60405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff16835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610fa4575f610fae565b610fad836123db565b5b90505f818311610fbe575f610fcb565b8183610fca91906141c9565b5b90505f61271067ffffffffffffffff16856002015483610feb919061412b565b610ff59190614199565b90505f8111156110955761100985826125e1565b80856001015f82825461101c91906141c9565b9250508190555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168c8e7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b178460405161108c9190613d22565b60405180910390a45b8773ffffffffffffffffffffffffffffffffffffffff168c8e7f0f29bbf4ce25d2346bbeb8a898e24e5d6d7d1d19bb895e71faecac833b2595478e8e8e6040516110e193929190614256565b60405180910390a4505050505050503868929eee149b4bd2126855505050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b61115f858585858533610bc3565b5050505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360149054906101000a900467ffffffffffffffff1681565b61271081565b5f803068929eee149b4bd2126854036111cb5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f8085815481106111eb576111ea6140d1565b5b905f5260205f209060080201604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600482018054806020026020016040519081016040528092919081815260200182805480156113d857602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161138f575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050806060015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114dc576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6114e786866123a9565b90505f60045f8381526020019081526020015f2090505f898981019061150d91906144bd565b90505f81602001518060200190518101906115289190614518565b90505f61271067ffffffffffffffff16846002015483611548919061412b565b6115529190614199565b90505f81111561176f57600160028111156115705761156f613820565b5b845f015f9054906101000a900460ff16600281111561159257611591613820565b5b14806115d057505f60028111156115ac576115ab613820565b5b845f015f9054906101000a900460ff1660028111156115ce576115cd613820565b5b145b1561162b57611626835f015182865f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166128889092919063ffffffff16565b6116fd565b60028081111561163e5761163d613820565b5b845f015f9054906101000a900460ff1660028111156116605761165f613820565b5b036116fc57835f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30855f01518760030154856040518563ffffffff1660e01b81526004016116ce9493929190614566565b5f604051808303815f87803b1580156116e5575f80fd5b505af11580156116f7573d5f803e3d5ffd5b505050505b5b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16898b7f42ca2b02f2bdb76fff6e99ea9a7b4d9767b45bdd42d6be831eeb9f3d5cb20b17846040516117669190613d22565b60405180910390a45b5f8087608001518b81518110611788576117876140d1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663474f5a44866040516020016117bc9190614656565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016117e791906146ae565b60408051808303815f875af1158015611802573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061182691906146e2565b915091505f820361187257338e8e6040517f9ecd71a900000000000000000000000000000000000000000000000000000000815260040161186993929190614256565b60405180910390fd5b82866001015f82825461188591906141c9565b9250508190555081819950995050505050505050503868929eee149b4bd212685594509492505050565b6118b7613659565b335f73ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156119ab575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80826040518263ffffffff1660e01b815260040161196a9190613c50565b602060405180830381865afa158015611985573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119a991906142bb565b155b156119e2576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3068929eee149b4bd212685403611a005763ab143c065f526004601cfd5b3068929eee149b4bd21268555f611a5985858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050506128d1565b806020019051810190611a6c9190614a80565b9050611a7a815f015161296a565b5f8060018160018154018082558091505003905f5260205f20906008020190508160e00151816007015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550815f0151816003015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160a00151600360149054906101000a900467ffffffffffffffff16611b4b9190614ac7565b816005015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160c001518160060181905550611bb17fe67157950000000000000000000000000000000000000000000000000000000083602001516001612a45565b815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611c217fe2089f790000000000000000000000000000000000000000000000000000000083606001516001612a45565b816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611c738260800151835f0151612a67565b816004019080519060200190611c8a92919061370f565b505f73ffffffffffffffffffffffffffffffffffffffff1682604001516020015173ffffffffffffffffffffffffffffffffffffffff1614611cfb57611cf67f5912b89c0000000000000000000000000000000000000000000000000000000083604001516001612a45565b611de4565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f5912b89c000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401611d769190614b3c565b602060405180830381865afa158015611d91573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611db591906142bb565b611dbf575f611de3565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b5b816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff16816001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611eda577f5912b89c000000000000000000000000000000000000000000000000000000005f6040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401611ed1929190614b55565b60405180910390fd5b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660015f80549050611f5e91906141c9565b7f116812d3ad4507d72f2c428b63246d594ca055a1dc119394285504c23d1f34cd8460040180549050856001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876003015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516120039493929190614b7c565b60405180910390a480604051806101000160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600482018054806020026020016040519081016040528092919081815260200182805480156121ed57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116121a4575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050935050503868929eee149b4bd21268555092915050565b6122a5612372565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6122f0612372565b63389a75e1600c52805f526020600c20805442111561231657636f5e88185f526004601cfd5b5f815550612323816127c2565b50565b61232e612372565b8060601b61234357637448fbae5f526004601cfd5b61234c816127c2565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146123a7576382b429005f526004601cfd5b565b5f82826040516020016123bd929190614bdf565b60405160208183030381529060405280519060200120905092915050565b5f600160028111156123f0576123ef613820565b5b825f015f9054906101000a900460ff16600281111561241257612411613820565b5b148061245057505f600281111561242c5761242b613820565b5b825f015f9054906101000a900460ff16600281111561244e5761244d613820565b5b145b156124f757815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016124b19190613c50565b602060405180830381865afa1580156124cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124f09190614518565b90506125dc565b60028081111561250a57612509613820565b5b825f015f9054906101000a900460ff16600281111561252c5761252b613820565b5b036125d857815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e3084600301546040518363ffffffff1660e01b8152600401612592929190614c0a565b602060405180830381865afa1580156125ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125d19190614518565b90506125dc565b5f90505b919050565b600160028111156125f5576125f4613820565b5b825f015f9054906101000a900460ff16600281111561261757612616613820565b5b148061265557505f600281111561263157612630613820565b5b825f015f9054906101000a900460ff16600281111561265357612652613820565b5b145b156126ce576126c960035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682845f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166128889092919063ffffffff16565b6127be565b6002808111156126e1576126e0613820565b5b825f015f9054906101000a900460ff16600281111561270357612702613820565b5b036127bd57815f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a3060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168560030154856040518563ffffffff1660e01b815260040161278f9493929190614566565b5f604051808303815f87803b1580156127a6575f80fd5b505af11580156127b8573d5f803e3d5ffd5b505050505b5b5050565b6127ca612f75565b1561282f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550612885565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f511417166128c8576390b8ec185f526004601cfd5b5f603452505050565b60608151156129655760405190506020810160048301805184518501811983525b8086101561294b576001860195508551601f1a8061293b576001870196508651601f1a5f198652607f811161292957600181013887395b6001607f821601860195505050612946565b808553600185019450505b6128f2565b81835260208501840385525f845260208401604052505050505b919050565b6129947fe49cedd70000000000000000000000000000000000000000000000000000000082612f79565b8073ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80336040518263ffffffff1660e01b81526004016129cd9190613c50565b602060405180830381865afa1580156129e8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a0c91906142bb565b612a42576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b5f612a54848460200151612f79565b612a5e8383613070565b90509392505050565b6060825167ffffffffffffffff811115612a8457612a83614336565b5b604051908082528060200260200182016040528015612ab25781602001602082028036833780820191505090505b5090505f5b8351811015612f6e57612b087fa921670500000000000000000000000000000000000000000000000000000000858381518110612af757612af66140d1565b5b602002602001015160200151612f79565b838181518110612b1b57612b1a6140d1565b5b60200260200101515f0151612ba7577fa921670500000000000000000000000000000000000000000000000000000000848281518110612b5e57612b5d6140d1565b5b6020026020010151602001516040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401612b9e929190614b55565b60405180910390fd5b612bec7fa921670500000000000000000000000000000000000000000000000000000000858381518110612bde57612bdd6140d1565b5b60200260200101515f612a45565b828281518110612bff57612bfe6140d1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f828281518110612c4d57612c4c6140d1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16634e7165a2868481518110612c8357612c826140d1565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401612cab91906146ae565b5f60405180830381865afa158015612cc5573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190612ced9190614c31565b90505f815114612ec2575f80612d028361312c565b915091508573ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1836040518263ffffffff1660e01b8152600401612d3f91906146ae565b6020604051808303815f875af1158015612d5b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d7f91906142bb565b612db5576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1846040518263ffffffff1660e01b8152600401612dee91906146ae565b6020604051808303815f875af1158015612e0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e2e91906142bb565b612e64576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f83806020019051810190612e799190614d2c565b9050612ebe60015f80549050612e8f91906141c9565b86836020015185855f01518d8b81518110612ead57612eac6140d1565b5b602002602001015160400151613428565b5050505b828281518110612ed557612ed46140d1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663439fab91868481518110612f0b57612f0a6140d1565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401612f3391906146ae565b5f604051808303815f87803b158015612f4a575f80fd5b505af1158015612f5c573d5f803e3d5ffd5b50505050508080600101915050612ab7565b5092915050565b5f90565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16148061302857508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a7836040518263ffffffff1660e01b8152600401612fe79190614b3c565b602060405180830381865afa158015613002573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061302691906142bb565b155b1561306c5781816040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401613063929190614b55565b60405180910390fd5b5050565b5f825f01516130835782602001516130a7565b6130a6836020015173ffffffffffffffffffffffffffffffffffffffff166135a4565b5b9050825f015180156130b65750815b15613126578073ffffffffffffffffffffffffffffffffffffffff1663439fab9184604001516040518263ffffffff1660e01b81526004016130f891906146ae565b5f604051808303815f87803b15801561310f575f80fd5b505af1158015613121573d5f803e3d5ffd5b505050505b92915050565b60605f80838060200190518101906131449190614d2c565b90506001600281111561315a57613159613820565b5b815f015160028111156131705761316f613820565b5b14806131a257505f600281111561318a57613189613820565b5b815f015160028111156131a05761319f613820565b5b145b156132ab575f81606001518060200190518101906131c09190614dac565b90505f61271067ffffffffffffffff16600360149054906101000a900467ffffffffffffffff1667ffffffffffffffff16835f01516131ff919061412b565b6132099190614199565b90505f60405180602001604052808381525090508060405160200161322e9190614df1565b604051602081830303815290604052846060018190525030846040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508360405160200161328e9190614e6a565b604051602081830303815290604052829550955050505050613423565b6002808111156132be576132bd613820565b5b815f015160028111156132d4576132d3613820565b5b036133f1575f81606001518060200190518101906132f29190614f07565b90505f61271067ffffffffffffffff16600360149054906101000a900467ffffffffffffffff1667ffffffffffffffff168360200151613332919061412b565b61333c9190614199565b90505f6040518060600160405280845f0151815260200183815260200184604001518152509050806040516020016133749190614f9b565b604051602081830303815290604052846060018190525030846040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050836040516020016133d49190614e6a565b604051602081830303815290604052829550955050505050613423565b6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b915091565b60605f60028081111561343e5761343d613820565b5b84600281111561345157613450613820565b5b03613474578280602001905181019061346a9190614fbb565b5080915050613478565b8291505b5f6040518060a0016040528086600281111561349757613496613820565b5b81526020018873ffffffffffffffffffffffffffffffffffffffff168152602001878152602001600360149054906101000a900467ffffffffffffffff1667ffffffffffffffff1681526020018381525090508060045f6134f88c8c6123a9565b81526020019081526020015f205f820151815f015f6101000a81548160ff0219169083600281111561352d5761352c613820565b5b02179055506020820151815f0160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600101556060820151816002015560808201518160030155905050505050505050505050565b5f6135af5f836135b6565b9050919050565b5f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f09050806135fd5763301164255f526004601cfd5b5f60215292915050565b6040518060a001604052805f600281111561362557613624613820565b5b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f81526020015f81526020015f81525090565b6040518061010001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b828054828255905f5260205f20908101928215613785579160200282015b82811115613784578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019061372d565b5b5090506137929190613796565b5090565b5b808211156137ad575f815f905550600101613797565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b6137d4816137c2565b81146137de575f80fd5b50565b5f813590506137ef816137cb565b92915050565b5f6020828403121561380a576138096137ba565b5b5f613817848285016137e1565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6003811061385e5761385d613820565b5b50565b5f81905061386e8261384d565b919050565b5f61387d82613861565b9050919050565b61388d81613873565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6138bc82613893565b9050919050565b6138cc816138b2565b82525050565b5f819050919050565b6138e4816138d2565b82525050565b60a082015f8201516138fe5f850182613884565b50602082015161391160208501826138c3565b50604082015161392460408501826138db565b50606082015161393760608501826138db565b50608082015161394a60808501826138db565b50505050565b5f60a0820190506139635f8301846138ea565b92915050565b613972816138d2565b811461397c575f80fd5b50565b5f8135905061398d81613969565b92915050565b5f602082840312156139a8576139a76137ba565b5b5f6139b58482850161397f565b91505092915050565b5f819050919050565b5f6139e16139dc6139d784613893565b6139be565b613893565b9050919050565b5f6139f2826139c7565b9050919050565b5f613a03826139e8565b9050919050565b613a13816139f9565b82525050565b5f613a23826139e8565b9050919050565b613a3381613a19565b82525050565b5f613a43826139e8565b9050919050565b613a5381613a39565b82525050565b5f613a63826139c7565b9050919050565b5f613a7482613a59565b9050919050565b613a8481613a6a565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f613abd826139e8565b9050919050565b613acd81613ab3565b82525050565b5f613ade8383613ac4565b60208301905092915050565b5f602082019050919050565b5f613b0082613a8a565b613b0a8185613a94565b9350613b1583613aa4565b805f5b83811015613b45578151613b2c8882613ad3565b9750613b3783613aea565b925050600181019050613b18565b5085935050505092915050565b5f67ffffffffffffffff82169050919050565b613b6e81613b52565b82525050565b5f61010083015f830151613b8a5f860182613a0a565b506020830151613b9d6020860182613a2a565b506040830151613bb06040860182613a4a565b506060830151613bc36060860182613a7b565b5060808301518482036080860152613bdb8282613af6565b91505060a0830151613bf060a0860182613b65565b5060c0830151613c0360c08601826138db565b5060e0830151613c1660e08601826138c3565b508091505092915050565b5f6020820190508181035f830152613c398184613b74565b905092915050565b613c4a816138b2565b82525050565b5f602082019050613c635f830184613c41565b92915050565b613c7281613b52565b8114613c7c575f80fd5b50565b5f81359050613c8d81613c69565b92915050565b5f60208284031215613ca857613ca76137ba565b5b5f613cb584828501613c7f565b91505092915050565b613cc7816138b2565b8114613cd1575f80fd5b50565b5f81359050613ce281613cbe565b92915050565b5f60208284031215613cfd57613cfc6137ba565b5b5f613d0a84828501613cd4565b91505092915050565b613d1c816138d2565b82525050565b5f602082019050613d355f830184613d13565b92915050565b5f8060408385031215613d5157613d506137ba565b5b5f613d5e8582860161397f565b9250506020613d6f8582860161397f565b9150509250929050565b613d8281613873565b82525050565b5f60a082019050613d9b5f830188613d79565b613da86020830187613c41565b613db56040830186613d13565b613dc26060830185613d13565b613dcf6080830184613d13565b9695505050505050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112613dfa57613df9613dd9565b5b8235905067ffffffffffffffff811115613e1757613e16613ddd565b5b602083019150836001820283011115613e3357613e32613de1565b5b9250929050565b5f805f805f8060a08789031215613e5457613e536137ba565b5b5f613e6189828a0161397f565b9650506020613e7289828a0161397f565b9550506040613e8389828a01613cd4565b945050606087013567ffffffffffffffff811115613ea457613ea36137be565b5b613eb089828a01613de5565b93509350506080613ec389828a01613cd4565b9150509295509295509295565b5f613eda826139e8565b9050919050565b613eea81613ed0565b82525050565b5f602082019050613f035f830184613ee1565b92915050565b5f805f805f60808688031215613f2257613f216137ba565b5b5f613f2f8882890161397f565b9550506020613f408882890161397f565b9450506040613f5188828901613cd4565b935050606086013567ffffffffffffffff811115613f7257613f716137be565b5b613f7e88828901613de5565b92509250509295509295909350565b5f613f97826139e8565b9050919050565b613fa781613f8d565b82525050565b5f602082019050613fc05f830184613f9e565b92915050565b613fcf81613b52565b82525050565b5f602082019050613fe85f830184613fc6565b92915050565b5f805f8060608587031215614006576140056137ba565b5b5f85013567ffffffffffffffff811115614023576140226137be565b5b61402f87828801613de5565b945094505060206140428782880161397f565b92505060406140538782880161397f565b91505092959194509250565b5f6040820190506140725f830185613d13565b61407f6020830184613c41565b9392505050565b5f806020838503121561409c5761409b6137ba565b5b5f83013567ffffffffffffffff8111156140b9576140b86137be565b5b6140c585828601613de5565b92509250509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f614135826138d2565b9150614140836138d2565b925082820261414e816138d2565b91508282048414831517614165576141646140fe565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6141a3826138d2565b91506141ae836138d2565b9250826141be576141bd61416c565b5b828204905092915050565b5f6141d3826138d2565b91506141de836138d2565b92508282039050818111156141f6576141f56140fe565b5b92915050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f61423583856141fc565b935061424283858461420c565b61424b8361421a565b840190509392505050565b5f6040820190506142695f830186613c41565b818103602083015261427c81848661422a565b9050949350505050565b5f8115159050919050565b61429a81614286565b81146142a4575f80fd5b50565b5f815190506142b581614291565b92915050565b5f602082840312156142d0576142cf6137ba565b5b5f6142dd848285016142a7565b91505092915050565b5f6080820190506142f95f830188613d13565b6143066020830187613d13565b6143136040830186613c41565b818103606083015261432681848661422a565b90509695505050505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61436c8261421a565b810181811067ffffffffffffffff8211171561438b5761438a614336565b5b80604052505050565b5f61439d6137b1565b90506143a98282614363565b919050565b5f80fd5b5f80fd5b5f67ffffffffffffffff8211156143d0576143cf614336565b5b6143d98261421a565b9050602081019050919050565b5f6143f86143f3846143b6565b614394565b905082815260208101848484011115614414576144136143b2565b5b61441f84828561420c565b509392505050565b5f82601f83011261443b5761443a613dd9565b5b813561444b8482602086016143e6565b91505092915050565b5f6040828403121561446957614468614332565b5b6144736040614394565b90505f61448284828501613cd4565b5f83015250602082013567ffffffffffffffff8111156144a5576144a46143ae565b5b6144b184828501614427565b60208301525092915050565b5f602082840312156144d2576144d16137ba565b5b5f82013567ffffffffffffffff8111156144ef576144ee6137be565b5b6144fb84828501614454565b91505092915050565b5f8151905061451281613969565b92915050565b5f6020828403121561452d5761452c6137ba565b5b5f61453a84828501614504565b91505092915050565b50565b5f6145515f836141fc565b915061455c82614543565b5f82019050919050565b5f60a0820190506145795f830187613c41565b6145866020830186613c41565b6145936040830185613d13565b6145a06060830184613d13565b81810360808301526145b181614546565b905095945050505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6145ee826145bc565b6145f881856145c6565b93506146088185602086016145d6565b6146118161421a565b840191505092915050565b5f604083015f8301516146315f8601826138c3565b506020830151848203602086015261464982826145e4565b9150508091505092915050565b5f6020820190508181035f83015261466e818461461c565b905092915050565b5f614680826145bc565b61468a81856141fc565b935061469a8185602086016145d6565b6146a38161421a565b840191505092915050565b5f6020820190508181035f8301526146c68184614676565b905092915050565b5f815190506146dc81613cbe565b92915050565b5f80604083850312156146f8576146f76137ba565b5b5f61470585828601614504565b9250506020614716858286016146ce565b9150509250929050565b5f61472a82613893565b9050919050565b5f61473b82614720565b9050919050565b61474b81614731565b8114614755575f80fd5b50565b5f8151905061476681614742565b92915050565b5f61477e614779846143b6565b614394565b90508281526020810184848401111561479a576147996143b2565b5b6147a58482856145d6565b509392505050565b5f82601f8301126147c1576147c0613dd9565b5b81516147d184826020860161476c565b91505092915050565b5f606082840312156147ef576147ee614332565b5b6147f96060614394565b90505f614808848285016142a7565b5f83015250602061481b848285016146ce565b602083015250604082015167ffffffffffffffff81111561483f5761483e6143ae565b5b61484b848285016147ad565b60408301525092915050565b5f67ffffffffffffffff82111561487157614870614336565b5b602082029050602081019050919050565b5f61489461488f84614857565b614394565b905080838252602082019050602084028301858111156148b7576148b6613de1565b5b835b818110156148fe57805167ffffffffffffffff8111156148dc576148db613dd9565b5b8086016148e989826147da565b855260208501945050506020810190506148b9565b5050509392505050565b5f82601f83011261491c5761491b613dd9565b5b815161492c848260208601614882565b91505092915050565b5f8151905061494381613c69565b92915050565b5f610100828403121561495f5761495e614332565b5b61496a610100614394565b90505f61497984828501614758565b5f83015250602082015167ffffffffffffffff81111561499c5761499b6143ae565b5b6149a8848285016147da565b602083015250604082015167ffffffffffffffff8111156149cc576149cb6143ae565b5b6149d8848285016147da565b604083015250606082015167ffffffffffffffff8111156149fc576149fb6143ae565b5b614a08848285016147da565b606083015250608082015167ffffffffffffffff811115614a2c57614a2b6143ae565b5b614a3884828501614908565b60808301525060a0614a4c84828501614935565b60a08301525060c0614a6084828501614504565b60c08301525060e0614a74848285016146ce565b60e08301525092915050565b5f60208284031215614a9557614a946137ba565b5b5f82015167ffffffffffffffff811115614ab257614ab16137be565b5b614abe84828501614949565b91505092915050565b5f614ad182613b52565b9150614adc83613b52565b9250828201905067ffffffffffffffff811115614afc57614afb6140fe565b5b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b614b3681614b02565b82525050565b5f602082019050614b4f5f830184614b2d565b92915050565b5f604082019050614b685f830185614b2d565b614b756020830184613c41565b9392505050565b5f608082019050614b8f5f830187613d13565b614b9c6020830186613c41565b614ba96040830185613c41565b614bb66060830184613c41565b95945050505050565b5f819050919050565b614bd9614bd4826138d2565b614bbf565b82525050565b5f614bea8285614bc8565b602082019150614bfa8284614bc8565b6020820191508190509392505050565b5f604082019050614c1d5f830185613c41565b614c2a6020830184613d13565b9392505050565b5f60208284031215614c4657614c456137ba565b5b5f82015167ffffffffffffffff811115614c6357614c626137be565b5b614c6f848285016147ad565b91505092915050565b60038110614c84575f80fd5b50565b5f81519050614c9581614c78565b92915050565b5f60808284031215614cb057614caf614332565b5b614cba6080614394565b90505f614cc984828501614c87565b5f830152506020614cdc848285016146ce565b6020830152506040614cf0848285016146ce565b604083015250606082015167ffffffffffffffff811115614d1457614d136143ae565b5b614d20848285016147ad565b60608301525092915050565b5f60208284031215614d4157614d406137ba565b5b5f82015167ffffffffffffffff811115614d5e57614d5d6137be565b5b614d6a84828501614c9b565b91505092915050565b5f60208284031215614d8857614d87614332565b5b614d926020614394565b90505f614da184828501614504565b5f8301525092915050565b5f60208284031215614dc157614dc06137ba565b5b5f614dce84828501614d73565b91505092915050565b602082015f820151614deb5f8501826138db565b50505050565b5f602082019050614e045f830184614dd7565b92915050565b5f608083015f830151614e1f5f860182613884565b506020830151614e3260208601826138c3565b506040830151614e4560408601826138c3565b5060608301518482036060860152614e5d82826145e4565b9150508091505092915050565b5f6020820190508181035f830152614e828184614e0a565b905092915050565b5f60608284031215614e9f57614e9e614332565b5b614ea96060614394565b90505f614eb884828501614504565b5f830152506020614ecb84828501614504565b602083015250604082015167ffffffffffffffff811115614eef57614eee6143ae565b5b614efb848285016147ad565b60408301525092915050565b5f60208284031215614f1c57614f1b6137ba565b5b5f82015167ffffffffffffffff811115614f3957614f386137be565b5b614f4584828501614e8a565b91505092915050565b5f606083015f830151614f635f8601826138db565b506020830151614f7660208601826138db565b5060408301518482036040860152614f8e82826145e4565b9150508091505092915050565b5f6020820190508181035f830152614fb38184614f4e565b905092915050565b5f8060408385031215614fd157614fd06137ba565b5b5f614fde85828601614504565b925050602083015167ffffffffffffffff811115614fff57614ffe6137be565b5b61500b858286016147ad565b915050925092905056fea26469706673582212203580a1d8ccee15c9bebb899877d678d5be9a5409bd783ba5aada109aa42bf6cc64736f6c634300081a0033";function z(c){const b=c.state.current,f=c.state.connections.get(b),e=f==null?void 0:f.accounts,a=e==null?void 0:e[0],d=c.chains.find(n=>n.id===(f==null?void 0:f.chainId)),t=c.state.status;switch(t){case"connected":return{address:a,addresses:e,chain:d,chainId:f==null?void 0:f.chainId,connector:f==null?void 0:f.connector,isConnected:!0,isConnecting:!1,isDisconnected:!1,isReconnecting:!1,status:t};case"reconnecting":return{address:a,addresses:e,chain:d,chainId:f==null?void 0:f.chainId,connector:f==null?void 0:f.connector,isConnected:!!a,isConnecting:!1,isDisconnected:!1,isReconnecting:!0,status:t};case"connecting":return{address:a,addresses:e,chain:d,chainId:f==null?void 0:f.chainId,connector:f==null?void 0:f.connector,isConnected:!1,isConnecting:!0,isDisconnected:!1,isReconnecting:!1,status:t};case"disconnected":return{address:void 0,addresses:void 0,chain:void 0,chainId:void 0,connector:void 0,isConnected:!1,isConnecting:!1,isDisconnected:!0,isReconnecting:!1,status:t}}}function df(c){return c.state.chainId}function x(c,b,f){const e=c[b.name];if(typeof e=="function")return e;const a=c[f];return typeof a=="function"?a:d=>b(c,d)}const tf="2.13.8",nf=()=>`@wagmi/core@${tf}`;var $=function(c,b,f,e){if(f==="a"&&!e)throw new TypeError("Private accessor was defined without a getter");if(typeof b=="function"?c!==b||!e:!b.has(c))throw new TypeError("Cannot read private member from an object whose class did not declare it");return f==="m"?e:f==="a"?e.call(c):e?e.value:b.get(c)},P,N;class y extends Error{get docsBaseUrl(){return"https://wagmi.sh/core"}get version(){return nf()}constructor(b,f={}){var d;super(),P.add(this),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"WagmiCoreError"});const e=f.cause instanceof y?f.cause.details:(d=f.cause)!=null&&d.message?f.cause.message:f.details,a=f.cause instanceof y&&f.cause.docsPath||f.docsPath;this.message=[b||"An error occurred.","",...f.metaMessages?[...f.metaMessages,""]:[],...a?[`Docs: ${this.docsBaseUrl}${a}.html${f.docsSlug?`#${f.docsSlug}`:""}`]:[],...e?[`Details: ${e}`]:[],`Version: ${this.version}`].join(`
|
|
2
|
+
`),f.cause&&(this.cause=f.cause),this.details=e,this.docsPath=a,this.metaMessages=f.metaMessages,this.shortMessage=b}walk(b){return $(this,P,"m",N).call(this,this,b)}}P=new WeakSet,N=function c(b,f){return f!=null&&f(b)?b:b.cause?$(this,P,"m",c).call(this,b.cause,f):b};class sf extends y{constructor(){super("Connector not connected."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorNotConnectedError"})}}class rf extends y{constructor({address:b,connector:f}){super(`Account "${b}" not found for connector "${f.name}".`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorAccountNotFoundError"})}}class of extends y{constructor({connectionChainId:b,connectorChainId:f}){super(`The current chain of the connector (id: ${f}) does not match the connection's chain (id: ${b}).`,{metaMessages:[`Current Chain ID: ${f}`,`Expected Chain ID: ${b}`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorChainMismatchError"})}}class uf extends y{constructor({connector:b}){super(`Connector "${b.name}" unavailable while reconnecting.`,{details:["During the reconnection step, the only connector methods guaranteed to be available are: `id`, `name`, `type`, `uuid`.","All other methods are not guaranteed to be available until reconnection completes and connectors are fully restored.","This error commonly occurs for connectors that asynchronously inject after reconnection has already started."].join(" ")}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ConnectorUnavailableReconnectingError"})}}async function M(c,b={}){let f;if(b.connector){const{connector:s}=b;if(c.state.status==="reconnecting"&&!s.getAccounts&&!s.getChainId)throw new uf({connector:s});const[C,v]=await Promise.all([s.getAccounts(),s.getChainId()]);f={accounts:C,chainId:v,connector:s}}else f=c.state.connections.get(c.state.current);if(!f)throw new sf;const e=b.chainId??f.chainId,a=await f.connector.getChainId();if(a!==f.chainId)throw new of({connectionChainId:f.chainId,connectorChainId:a});const d=f.connector;if(d.getClient)return d.getClient({chainId:e});const t=V.parseAccount(b.account??f.accounts[0]);if(t.address=V.getAddress(t.address),b.account&&!f.accounts.some(s=>s.toLowerCase()===t.address.toLowerCase()))throw new rf({address:t.address,connector:d});const n=c.chains.find(s=>s.id===e),r=await f.connector.getProvider({chainId:e});return i.createClient({account:t,chain:n,name:"Connector Client",transport:s=>i.custom(r)({...s,retryCount:0})})}async function lf(c,b){const{abi:f,chainId:e,connector:a,...d}=b;let t;b.account?t=b.account:t=(await M(c,{chainId:e,connector:a})).account;const n=c.getClient({chainId:e}),r=x(n,O.simulateContract,"simulateContract"),{result:s,request:C}=await r({...d,abi:f,account:t});return{chainId:n.chain.id,result:s,request:{__mode:"prepared",...C,chainId:e}}}async function T(c,b){const{account:f,chainId:e,connector:a,__mode:d,...t}=b;let n;typeof f=="object"&&f.type==="local"?n=c.getClient({chainId:e}):n=await M(c,{account:f,chainId:e,connector:a});const{connector:r}=z(c);let s;if(d==="prepared"||r!=null&&r.supportsSimulation)s=t;else{const{request:o}=await lf(c,{...t,account:f,chainId:e});s=o}return await x(n,O.writeContract,"writeContract")({...s,...f?{account:f}:{},chain:e?{id:e}:null})}function hf(c){return c.address!==void 0&&typeof c.address=="object"?(b,f)=>{var t;const e=df(b),a=z(b);let d;return f.chainId?d=f.chainId:f.account&&f.account===a.address||f.account===void 0?d=a.chainId:d=e,T(b,{...f,...c.functionName?{functionName:c.functionName}:{},address:d?(t=c.address)==null?void 0:t[d]:void 0,abi:c.abi})}:(b,f)=>T(b,{...f,...c.address?{address:c.address}:{},...c.functionName?{functionName:c.functionName}:{},abi:c.abi})}const gf="0x608060405273deaddeaddeaddeaddeaddeaddeaddeaddeaddead5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015610062575f80fd5b5061007161007660201b60201c565b61010b565b5f6100856100e260201b60201c565b90508054600181161561009f5763f92ee8a95f526004601cfd5b8160c01c808260011c146100dd578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b612b11806101185f395ff3fe608060405260043610610203575f3560e01c8063715018a611610117578063d54ad2a11161009f578063ec87621c1161006e578063ec87621c14610707578063f04e283e14610731578063f2fde38b1461074d578063fe9fbb8014610769578063fee81cf4146107a557610203565b8063d54ad2a11461064f578063db09da1214610679578063dcc59b6f146106b5578063e6670829146106df57610203565b80638da5cb5b116100e65780638da5cb5b14610559578063a4d66daf14610583578063a871ced2146105ad578063bb1757cf146105d7578063c884ef831461061357610203565b8063715018a6146104d057806375b238fc146104da578063775486871461050457806380fd60051461053157610203565b80632de948071161019a578063474f5a4411610169578063474f5a44146103f55780634a4ee7b1146104325780634e7165a21461044e578063514e62fc1461048a57806354d1f13d146104c657610203565b80632de948071461033f57806338d52e0f1461037b5780634359d28a146103a5578063439fab91146103cd57610203565b80631cd64df4116101d65780631cd64df4146102a5578063228cb733146102e1578063256929621461030b57806328d6183b1461031557610203565b806301ffc9a71461020757806307621eca14610243578063183a4f6e1461026d5780631c10893f14610289575b5f80fd5b348015610212575f80fd5b5061022d60048036038101906102289190611abd565b6107e1565b60405161023a9190611b02565b60405180910390f35b34801561024e575f80fd5b5061025761085a565b6040516102649190611b33565b60405180910390f35b61028760048036038101906102829190611b76565b610863565b005b6102a3600480360381019061029e9190611bfb565b610870565b005b3480156102b0575f80fd5b506102cb60048036038101906102c69190611bfb565b610886565b6040516102d89190611b02565b60405180910390f35b3480156102ec575f80fd5b506102f561089c565b6040516103029190611b33565b60405180910390f35b6103136108a2565b005b348015610320575f80fd5b506103296108f3565b6040516103369190611c48565b60405180910390f35b34801561034a575f80fd5b5061036560048036038101906103609190611c61565b61091a565b6040516103729190611b33565b60405180910390f35b348015610386575f80fd5b5061038f610933565b60405161039c9190611c9b565b60405180910390f35b3480156103b0575f80fd5b506103cb60048036038101906103c69190611d6a565b610956565b005b3480156103d8575f80fd5b506103f360048036038101906103ee9190611e3d565b610a64565b005b348015610400575f80fd5b5061041b60048036038101906104169190611e3d565b610ccc565b604051610429929190611e88565b60405180910390f35b61044c60048036038101906104479190611bfb565b610e30565b005b348015610459575f80fd5b50610474600480360381019061046f9190611e3d565b610e46565b6040516104819190611f1f565b60405180910390f35b348015610495575f80fd5b506104b060048036038101906104ab9190611bfb565b610f14565b6040516104bd9190611b02565b60405180910390f35b6104ce610f2b565b005b6104d8610f64565b005b3480156104e5575f80fd5b506104ee610f77565b6040516104fb9190611b33565b60405180910390f35b34801561050f575f80fd5b50610518610f7c565b6040516105289493929190611fe5565b60405180910390f35b34801561053c575f80fd5b506105576004803603810190610552919061207d565b610fd1565b005b348015610564575f80fd5b5061056d611087565b60405161057a9190611c9b565b60405180910390f35b34801561058e575f80fd5b506105976110af565b6040516105a49190611b33565b60405180910390f35b3480156105b8575f80fd5b506105c16110b5565b6040516105ce919061218a565b60405180910390f35b3480156105e2575f80fd5b506105fd60048036038101906105f891906121a3565b611184565b60405161060a9190611b02565b60405180910390f35b34801561061e575f80fd5b5061063960048036038101906106349190611c61565b611378565b6040516106469190611b02565b60405180910390f35b34801561065a575f80fd5b50610663611395565b6040516106709190611b33565b60405180910390f35b348015610684575f80fd5b5061069f600480360381019061069a91906121a3565b61139b565b6040516106ac9190611b02565b60405180910390f35b3480156106c0575f80fd5b506106c96113ae565b6040516106d69190611b33565b60405180910390f35b3480156106ea575f80fd5b506107056004803603810190610700919061207d565b6113b4565b005b348015610712575f80fd5b5061071b61146a565b6040516107289190611b33565b60405180910390f35b61074b60048036038101906107469190611c61565b61146f565b005b61076760048036038101906107629190611c61565b6114ad565b005b348015610774575f80fd5b5061078f600480360381019061078a9190611c61565b6114d6565b60405161079c9190611b02565b60405180910390f35b3480156107b0575f80fd5b506107cb60048036038101906107c69190611c61565b611529565b6040516107d89190611b33565b60405180910390f35b5f7f90318111000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610853575061085282611542565b5b9050919050565b5f600254905090565b61086d33826115bb565b50565b6108786115ca565b6108828282611601565b5050565b5f81826108928561091a565b1614905092915050565b60025481565b5f6108ab611611565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f9031811100000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026109618161161b565b8282905085859050146109a0576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b85859050811015610a5c575f8484838181106109c1576109c0612200565b5b90506020020160208101906109d69190612257565b90506001151581151503610a1b57610a168787848181106109fa576109f9612200565b5b9050602002016020810190610a0f9190611c61565b6001611601565b610a4e565b610a4d878784818110610a3157610a30612200565b5b9050602002016020810190610a469190611c61565b60016115bb565b5b5080806001019150506109a2565b505050505050565b5f610a6d611650565b90508054600382558015610a9f5760018160011c14303b10610a965763f92ee8a95f526004601cfd5b818160ff1b1b91505b50610aa933611679565b5f8383810190610ab99190612463565b90505f815f015190505f826020015190505f836040015190505f846060015190505f8203610b13576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610b3d308673ffffffffffffffffffffffffffffffffffffffff1661174f90919063ffffffff16565b905082811015610b8b57855f015181846040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401610b829392919061248e565b60405180910390fd5b845f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600281905550826004819055505f6005819055508160065f820151815f015f6101000a81548160ff02191690836001811115610c0a57610c09611f3f565b5b0217905550602082015181600101556040820151816002015f6101000a81548160ff021916908360ff16021790555060608201518160020160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050610c8c33611679565b5050505050508015610cc7576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f806001610cd981611782565b5f8585810190610ce991906125dc565b90505f8160200151806020019051810190610d049190612637565b90508060045f828254610d17919061268f565b92505081905550610d6b825f0151825f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117a99092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d35f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f015184604051602001610ddd93929190612727565b604051602081830303815290604052604051610df99190611f1f565b60405180910390a2805f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16945094505050509250929050565b610e386115ca565b610e4282826115bb565b5050565b60605f808484810190610e59919061279e565b9250509150604051806080016040528060016002811115610e7d57610e7c611f3f565b5b81526020018373ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001604051806020016040528084815250604051602001610ed99190612817565b604051602081830303815290604052815250604051602001610efb919061291e565b6040516020818303038152906040529250505092915050565b5f8082610f208561091a565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610f6c6115ca565b610f755f6117f2565b565b600281565b6006805f015f9054906101000a900460ff1690806001015490806002015f9054906101000a900460ff16908060020160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084565b6002610fdc8161161b565b82829050858590501461101b576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8585905081101561107f5761107286868381811061103e5761103d612200565b5b90506020020160208101906110539190611c61565b85858481811061106657611065612200565b5b905060200201356115bb565b808060010191505061101d565b505050505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60045481565b6110bd611a05565b60066040518060800160405290815f82015f9054906101000a900460ff1660018111156110ed576110ec611f3f565b5b60018111156110ff576110fe611f3f565b5b815260200160018201548152602001600282015f9054906101000a900460ff1660ff1660ff1681526020016002820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050905090565b5f61118d6115ca565b5f838381019061119d91906129c3565b90505f81602001518060200190518101906111b89190612637565b90505f6111c4876118b8565b6111fa576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6002540361120b5781905061122f565b670de0b6b3a7640000826002546112229190612a0a565b61122c9190612a78565b90505b600454816005546112409190612aa8565b1115611278576040517f360e42e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060055f8282546112899190612aa8565b925050819055506112da87825f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117a99092919063ffffffff16565b8673ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d35f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16898460405160200161134693929190612727565b6040516020818303038152906040526040516113629190611f1f565b60405180910390a2600193505050509392505050565b6003602052805f5260405f205f915054906101000a900460ff1681565b60055481565b5f6113a5846118b8565b90509392505050565b60015481565b60026113bf8161161b565b8282905085859050146113fe576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b858590508110156114625761145586868381811061142157611420612200565b5b90506020020160208101906114369190611c61565b85858481811061144957611448612200565b5b90506020020135611601565b8080600101915050611400565b505050505050565b600181565b6114776115ca565b63389a75e1600c52805f526020600c20805442111561149d57636f5e88185f526004601cfd5b5f8155506114aa816117f2565b50565b6114b56115ca565b8060601b6114ca57637448fbae5f526004601cfd5b6114d3816117f2565b50565b5f8173ffffffffffffffffffffffffffffffffffffffff166114f6611087565b73ffffffffffffffffffffffffffffffffffffffff1614806115225750611521826002600117610f14565b5b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fa9216705000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806115b457506115b3826118c7565b5b9050919050565b6115c682825f611940565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146115ff576382b429005f526004601cfd5b565b61160d82826001611940565b5050565b5f6202a300905090565b638b78c6d81954331461164d57638b78c6d8600c52335f52806020600c20541661164c576382b429005f526004601cfd5b5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b611681611998565b156116f9577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156116bb57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061174c565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b638b78c6d8600c52335f52806020600c2054166117a6576382b429005f526004601cfd5b50565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f511417166117e9576390b8ec185f526004601cfd5b5f603452505050565b6117fa611998565b1561185f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506118b5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f600454600554109050919050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061193957506119388261199c565b5b9050919050565b638b78c6d8600c52825f526020600c2080548381178361196257848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60405180608001604052805f6001811115611a2357611a22611f3f565b5b81526020015f80191681526020015f60ff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611a9c81611a68565b8114611aa6575f80fd5b50565b5f81359050611ab781611a93565b92915050565b5f60208284031215611ad257611ad1611a60565b5b5f611adf84828501611aa9565b91505092915050565b5f8115159050919050565b611afc81611ae8565b82525050565b5f602082019050611b155f830184611af3565b92915050565b5f819050919050565b611b2d81611b1b565b82525050565b5f602082019050611b465f830184611b24565b92915050565b611b5581611b1b565b8114611b5f575f80fd5b50565b5f81359050611b7081611b4c565b92915050565b5f60208284031215611b8b57611b8a611a60565b5b5f611b9884828501611b62565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611bca82611ba1565b9050919050565b611bda81611bc0565b8114611be4575f80fd5b50565b5f81359050611bf581611bd1565b92915050565b5f8060408385031215611c1157611c10611a60565b5b5f611c1e85828601611be7565b9250506020611c2f85828601611b62565b9150509250929050565b611c4281611a68565b82525050565b5f602082019050611c5b5f830184611c39565b92915050565b5f60208284031215611c7657611c75611a60565b5b5f611c8384828501611be7565b91505092915050565b611c9581611bc0565b82525050565b5f602082019050611cae5f830184611c8c565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611cd557611cd4611cb4565b5b8235905067ffffffffffffffff811115611cf257611cf1611cb8565b5b602083019150836020820283011115611d0e57611d0d611cbc565b5b9250929050565b5f8083601f840112611d2a57611d29611cb4565b5b8235905067ffffffffffffffff811115611d4757611d46611cb8565b5b602083019150836020820283011115611d6357611d62611cbc565b5b9250929050565b5f805f8060408587031215611d8257611d81611a60565b5b5f85013567ffffffffffffffff811115611d9f57611d9e611a64565b5b611dab87828801611cc0565b9450945050602085013567ffffffffffffffff811115611dce57611dcd611a64565b5b611dda87828801611d15565b925092505092959194509250565b5f8083601f840112611dfd57611dfc611cb4565b5b8235905067ffffffffffffffff811115611e1a57611e19611cb8565b5b602083019150836001820283011115611e3657611e35611cbc565b5b9250929050565b5f8060208385031215611e5357611e52611a60565b5b5f83013567ffffffffffffffff811115611e7057611e6f611a64565b5b611e7c85828601611de8565b92509250509250929050565b5f604082019050611e9b5f830185611b24565b611ea86020830184611c8c565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611ef182611eaf565b611efb8185611eb9565b9350611f0b818560208601611ec9565b611f1481611ed7565b840191505092915050565b5f6020820190508181035f830152611f378184611ee7565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60028110611f7d57611f7c611f3f565b5b50565b5f819050611f8d82611f6c565b919050565b5f611f9c82611f80565b9050919050565b611fac81611f92565b82525050565b5f819050919050565b611fc481611fb2565b82525050565b5f60ff82169050919050565b611fdf81611fca565b82525050565b5f608082019050611ff85f830187611fa3565b6120056020830186611fbb565b6120126040830185611fd6565b61201f6060830184611c8c565b95945050505050565b5f8083601f84011261203d5761203c611cb4565b5b8235905067ffffffffffffffff81111561205a57612059611cb8565b5b60208301915083602082028301111561207657612075611cbc565b5b9250929050565b5f805f806040858703121561209557612094611a60565b5b5f85013567ffffffffffffffff8111156120b2576120b1611a64565b5b6120be87828801611cc0565b9450945050602085013567ffffffffffffffff8111156120e1576120e0611a64565b5b6120ed87828801612028565b925092505092959194509250565b61210481611f92565b82525050565b61211381611fb2565b82525050565b61212281611fca565b82525050565b61213181611bc0565b82525050565b608082015f82015161214b5f8501826120fb565b50602082015161215e602085018261210a565b5060408201516121716040850182612119565b5060608201516121846060850182612128565b50505050565b5f60808201905061219d5f830184612137565b92915050565b5f805f604084860312156121ba576121b9611a60565b5b5f6121c786828701611be7565b935050602084013567ffffffffffffffff8111156121e8576121e7611a64565b5b6121f486828701611de8565b92509250509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b61223681611ae8565b8114612240575f80fd5b50565b5f813590506122518161222d565b92915050565b5f6020828403121561226c5761226b611a60565b5b5f61227984828501612243565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6122bc82611ed7565b810181811067ffffffffffffffff821117156122db576122da612286565b5b80604052505050565b5f6122ed611a57565b90506122f982826122b3565b919050565b5f80fd5b6002811061230e575f80fd5b50565b5f8135905061231f81612302565b92915050565b61232e81611fb2565b8114612338575f80fd5b50565b5f8135905061234981612325565b92915050565b61235881611fca565b8114612362575f80fd5b50565b5f813590506123738161234f565b92915050565b5f6080828403121561238e5761238d612282565b5b61239860806122e4565b90505f6123a784828501612311565b5f8301525060206123ba8482850161233b565b60208301525060406123ce84828501612365565b60408301525060606123e284828501611be7565b60608301525092915050565b5f60e0828403121561240357612402612282565b5b61240d60806122e4565b90505f61241c84828501611be7565b5f83015250602061242f84828501611b62565b602083015250604061244384828501611b62565b604083015250606061245784828501612379565b60608301525092915050565b5f60e0828403121561247857612477611a60565b5b5f612485848285016123ee565b91505092915050565b5f6060820190506124a15f830186611c8c565b6124ae6020830185611b24565b6124bb6040830184611b24565b949350505050565b5f80fd5b5f67ffffffffffffffff8211156124e1576124e0612286565b5b6124ea82611ed7565b9050602081019050919050565b828183375f83830152505050565b5f612517612512846124c7565b6122e4565b905082815260208101848484011115612533576125326124c3565b5b61253e8482856124f7565b509392505050565b5f82601f83011261255a57612559611cb4565b5b813561256a848260208601612505565b91505092915050565b5f6040828403121561258857612587612282565b5b61259260406122e4565b90505f6125a184828501611be7565b5f83015250602082013567ffffffffffffffff8111156125c4576125c36122fe565b5b6125d084828501612546565b60208301525092915050565b5f602082840312156125f1576125f0611a60565b5b5f82013567ffffffffffffffff81111561260e5761260d611a64565b5b61261a84828501612573565b91505092915050565b5f8151905061263181611b4c565b92915050565b5f6020828403121561264c5761264b611a60565b5b5f61265984828501612623565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61269982611b1b565b91506126a483611b1b565b92508282039050818111156126bc576126bb612662565b5b92915050565b5f8160601b9050919050565b5f6126d8826126c2565b9050919050565b5f6126e9826126ce565b9050919050565b6127016126fc82611bc0565b6126df565b82525050565b5f819050919050565b61272161271c82611b1b565b612707565b82525050565b5f61273282866126f0565b60148201915061274282856126f0565b6014820191506127528284612710565b602082019150819050949350505050565b5f61276d82611ba1565b9050919050565b61277d81612763565b8114612787575f80fd5b50565b5f8135905061279881612774565b92915050565b5f805f606084860312156127b5576127b4611a60565b5b5f6127c28682870161278a565b93505060206127d386828701611b62565b92505060406127e486828701611b62565b9150509250925092565b6127f781611b1b565b82525050565b602082015f8201516128115f8501826127ee565b50505050565b5f60208201905061282a5f8301846127fd565b92915050565b6003811061284157612840611f3f565b5b50565b5f81905061285182612830565b919050565b5f61286082612844565b9050919050565b61287081612856565b82525050565b5f82825260208201905092915050565b5f61289082611eaf565b61289a8185612876565b93506128aa818560208601611ec9565b6128b381611ed7565b840191505092915050565b5f608083015f8301516128d35f860182612867565b5060208301516128e66020860182612128565b5060408301516128f96040860182612128565b50606083015184820360608601526129118282612886565b9150508091505092915050565b5f6020820190508181035f83015261293681846128be565b905092915050565b5f6040828403121561295357612952612282565b5b61295d60406122e4565b90505f82013567ffffffffffffffff81111561297c5761297b6122fe565b5b61298884828501612546565b5f83015250602082013567ffffffffffffffff8111156129ab576129aa6122fe565b5b6129b784828501612546565b60208301525092915050565b5f602082840312156129d8576129d7611a60565b5b5f82013567ffffffffffffffff8111156129f5576129f4611a64565b5b612a018482850161293e565b91505092915050565b5f612a1482611b1b565b9150612a1f83611b1b565b9250828202612a2d81611b1b565b91508282048414831517612a4457612a43612662565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612a8282611b1b565b9150612a8d83611b1b565b925082612a9d57612a9c612a4b565b5b828204905092915050565b5f612ab282611b1b565b9150612abd83611b1b565b9250828201905080821115612ad557612ad4612662565b5b9291505056fea2646970667358221220ba55e60a6a2fc2b8adce3a15e2d9022755a6bff864a799f9c63dbf918ad37c5264736f6c634300081a0033",D=class D extends ff.DeployableTarget{constructor(){super(...arguments),this.abi=u.m}async getIncentiveCriteria(){try{return await u.Ew(this._config,{address:this.assertValidAddress()})}catch(b){throw new g.IncentiveCriteriaNotFoundError(b)}}async getIncentiveScalar({hash:b}){var a;const f=await this.getIncentiveCriteria(),e=await I.getTransaction(this._config,{hash:b});if(f.criteriaType===A.SignatureType.EVENT){const t=(await I.getTransactionReceipt(this._config,{hash:b})).logs;if(t.length===0)throw new g.NoMatchingLogsError(`No logs found for event signature ${f.signature}`);try{const n=A.events.abi[f.signature],r=i.parseEventLogs({abi:[n],logs:t});if(r==null||r.length===0)throw new g.NoMatchingLogsError(`No logs found for event signature ${f.signature}`);const s=((a=r[0])==null?void 0:a.args)[f.fieldIndex];if(s===void 0)throw new g.DecodedArgsError(`Decoded argument at index ${f.fieldIndex} is undefined`);return BigInt(s)}catch(n){throw new g.DecodedArgsError(`Failed to decode event log for signature ${f.signature}: ${n.message}`)}}else if(f.criteriaType===A.SignatureType.FUNC)try{const d=A.functions.abi[f.signature],n=i.decodeFunctionData({abi:[d],data:e.input}).args[f.fieldIndex];if(n==null)throw new g.DecodedArgsError(`Decoded argument at index ${f.fieldIndex} is undefined`);return BigInt(n)}catch(d){throw new g.DecodedArgsError(`Failed to decode function data for signature ${f.signature}: ${d.message}`)}else throw new g.InvalidCriteriaTypeError(`Invalid criteria type ${f.criteriaType}`)}buildParameters(b,f){const[e,a]=this.validateDeploymentConfig(b,f);return{abi:u.m,bytecode:gf,args:[H(e)],...this.optionallyAttachAccount(a.account)}}};D.bases={...R.ERC20VariableCriteriaIncentive};let E=D;function H({asset:c,reward:b,limit:f,criteria:e}){return i.encodeAbiParameters([{type:"tuple",name:"initPayloadExtended",components:[{type:"address",name:"asset"},{type:"uint256",name:"reward"},{type:"uint256",name:"limit"},{type:"tuple",name:"criteria",components:[{type:"uint8",name:"criteriaType"},{type:"bytes32",name:"signature"},{type:"uint8",name:"fieldIndex"},{type:"address",name:"targetContract"}]}]}],[{asset:c,reward:b,limit:f,criteria:{criteriaType:e.criteriaType,signature:e.signature,fieldIndex:e.fieldIndex,targetContract:e.targetContract}}])}const wf=i.parseEther("0.000075"),Cf=R.BoostCore[11155111],m={...R.BoostCore,31337:void 0};function vf(c){return c.address}function yf(c){return c.registryAddress&&c.protocolFeeReceiver}const F=class F extends Y.Deployable{get addresses(){return this.constructor.addresses}constructor({config:b,account:f,...e}){if(vf(e)&&e.address)super({account:f,config:b},e.address);else if(yf(e))super({account:f,config:b},[e.registryAddress,e.protocolFeeReceiver]);else{const{address:a}=l.assertValidAddressByChainId(b,m);super({account:f,config:b},a)}this.abi=u.T}async createBoost(b,f){var q;const[e,a]=this.validateDeploymentConfig(b,f),d=((q=f==null?void 0:f.chain)==null?void 0:q.id)||(f==null?void 0:f.chainId),{chainId:t,address:n}=l.assertValidAddressByChainId(a.config,this.addresses,d),r=hf({abi:u.T,functionName:"createBoost",address:n}),s=await this.prepareCreateBoostPayload(n,t,e,a),C=await r(a.config,{...this.optionallyAttachAccount(a.account),...f,chainId:t,args:[B.prepareBoostPayload(s)]}),v=await I.waitForTransactionReceipt(a.config,{hash:C}),o=i.parseEventLogs({abi:u.T,eventName:"BoostCreated",logs:v.logs}).at(0);let w=0n;if(!o)throw new g.BoostCoreNoIdentifierEmitted;w=o==null?void 0:o.args.boostId;const h=await this.readBoost(w);return new B.Boost({id:w,budget:e.budget.at(h.budget),action:e.action.at(h.action),validator:e.validator.at(h.validator),allowList:e.allowList.at(h.allowList),incentives:e.incentives.map((j,p)=>j.at(h.incentives.at(p))),protocolFee:h.protocolFee,maxParticipants:h.maxParticipants,owner:h.owner})}async simulateCreateBoost(b,f){var s;const[e,a]=this.validateDeploymentConfig(b,f),d=((s=f==null?void 0:f.chain)==null?void 0:s.id)||(f==null?void 0:f.chainId),{chainId:t,address:n}=l.assertValidAddressByChainId(a.config,this.addresses,d),r=await this.prepareCreateBoostPayload(n,t,e,a);return await u.Oc(this._config,{...this.optionallyAttachAccount(),...f,address:n,chainId:t,args:[B.prepareBoostPayload(r)]})}async prepareCreateBoostPayload(b,f,e,a){var v;if(!e.owner&&(e.owner=((v=this._account)==null?void 0:v.address)||I.getAccount(a.config).address||i.zeroAddress,e.owner===i.zeroAddress))throw new g.DeployableUnknownOwnerProvidedError;e.validator||(e.validator=this.SignerValidator({signers:[e.owner],validatorCaller:b}));let d=i.zeroAddress;if(e.budget.address){if(d=e.budget.address,!await e.budget.isAuthorized(b))throw new g.BudgetMustAuthorizeBoostCore(b)}else throw new g.MustInitializeBudgetError;let t={instance:i.zeroAddress,isBase:!0,parameters:i.zeroHash};if(e.action.address){const o=e.action.isBase;t={isBase:o,instance:e.action.address,parameters:o&&e.action.buildParameters(void 0,a).args.at(0)||i.zeroHash}}else t.parameters=e.action.buildParameters(void 0,a).args.at(0)||i.zeroHash,t.instance=l.assertValidAddressByChainId(a.config,e.action.bases,f).address;let n={instance:i.zeroAddress,isBase:!0,parameters:i.zeroHash};if(e.validator.address){const o=e.validator.isBase;n={isBase:o,instance:e.validator.address,parameters:o&&e.validator.buildParameters(void 0,a).args.at(0)||i.zeroHash}}else n.parameters=e.validator.buildParameters(void 0,a).args.at(0)||i.zeroHash,n.instance=l.assertValidAddressByChainId(a.config,e.validator.bases,f).address;let r={instance:i.zeroAddress,isBase:!0,parameters:i.zeroHash};if(e.allowList.address){const o=e.allowList.isBase;r={isBase:o,instance:e.allowList.address,parameters:i.zeroHash}}else r.parameters=e.allowList.buildParameters(void 0,a).args.at(0)||i.zeroHash,r.instance=l.assertValidAddressByChainId(a.config,e.allowList.bases,f).address;const s=e.incentives.map(()=>({instance:i.zeroAddress,isBase:!0,parameters:i.zeroHash}));for(let o=0;o<e.incentives.length;o++){const w=e.incentives.at(o);if(w.address){const h=w.isBase;if(!h)throw new g.IncentiveNotCloneableError(w);s[o]={isBase:h,instance:w.address,parameters:h&&w.buildParameters(void 0,a).args.at(0)||i.zeroHash}}else s[o].parameters=w.buildParameters(void 0,a).args.at(0)||i.zeroHash,s[o].instance=l.assertValidAddressByChainId(a.config,w.bases,f).address}return{budget:d,action:t,validator:n,allowList:r,incentives:s,protocolFee:e.protocolFee||0n,maxParticipants:e.maxParticipants||0n,owner:e.owner}}async claimIncentive(b,f,e,a,d){return await this.awaitResult(this.claimIncentiveRaw(b,f,e,a,d))}async claimIncentiveRaw(b,f,e,a,d){var s;const{request:t,result:n}=await u.Nc(this._config,{...l.assertValidAddressByChainId(this._config,this.addresses,((s=d==null?void 0:d.chain)==null?void 0:s.id)||(d==null?void 0:d.chainId)),args:[b,f,e,a],...this.optionallyAttachAccount(),...d});return{hash:await u.uc(this._config,t),result:n}}async claimIncentiveFor(b,f,e,a,d,t){return await this.awaitResult(this.claimIncentiveForRaw(b,f,e,a,d,t))}async claimIncentiveForRaw(b,f,e,a,d,t){var C;const{request:n,result:r}=await u.gc(this._config,{...l.assertValidAddressByChainId(this._config,this.addresses,((C=t==null?void 0:t.chain)==null?void 0:C.id)||(t==null?void 0:t.chainId)),args:[b,f,e,a,d],...this.optionallyAttachAccount(),...t});return{hash:await u.lc(this._config,n),result:r}}async readBoost(b,f){var e;try{let a;return typeof b=="string"?a=BigInt(b):a=b,await u.Xd(this._config,{...l.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[a],...this.optionallyAttachAccount(),...f})}catch(a){throw(e=a==null?void 0:a.message)!=null&&e.includes("bounds")?new g.BoostNotFoundError(String(b)):a}}async getBoost(b,f){let e;typeof b=="string"?e=BigInt(b):e=b;const{protocolFee:a,maxParticipants:d,owner:t,...n}=await this.readBoost(e,f),r={config:this._config,account:this._account},[s,C,v,o,w]=await Promise.all([U.actionFromAddress(r,n.action),K.budgetFromAddress(r,n.budget),af.validatorFromAddress(r,n.validator),S.allowListFromAddress(r,n.allowList),Promise.all(n.incentives.map(h=>L.incentiveFromAddress(r,h)))]);return new B.Boost({id:e,action:s,budget:C,validator:v,allowList:o,incentives:w,protocolFee:a,maxParticipants:d,owner:t})}async getBoostCount(b){return await u.Yd(this._config,{...l.assertValidAddressByChainId(this._config,this.addresses,b==null?void 0:b.chainId),args:[],...this.optionallyAttachAccount(),...b})}async isAuthorized(b,f){const e=await this.createBoostAuth(f);return u.jI(this._config,{address:e,args:[b],...this.optionallyAttachAccount(),...f})}async createBoostAuth(b){return await u.Kd(this._config,{...l.assertValidAddressByChainId(this._config,this.addresses,b==null?void 0:b.chainId),args:[],...this.optionallyAttachAccount(),...b})}async setCreateBoostAuth(b,f){return await this.awaitResult(this.setCreateBoostAuthRaw(b.assertValidAddress(),{...f}))}async setCreateBoostAuthRaw(b,f){const{request:e,result:a}=await u.zc(this._config,{...l.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[b],...this.optionallyAttachAccount(),...f});return{hash:await u.fc(this._config,e),result:a}}async protocolFee(b){return await u.ic(this._config,{...l.assertValidAddressByChainId(this._config,this.addresses,b==null?void 0:b.chainId),args:[],...this.optionallyAttachAccount(),...b})}async protocolFeeReceiver(b){return await u.sc(this._config,{...l.assertValidAddressByChainId(this._config,this.addresses,b==null?void 0:b.chainId),args:[],...this.optionallyAttachAccount(),...b})}async setProcolFeeReceiver(b,f){return await this.awaitResult(this.setProcolFeeReceiverRaw(b,{...f}))}async setProcolFeeReceiverRaw(b,f){const{request:e,result:a}=await u.xc(this._config,{...l.assertValidAddressByChainId(this._config,this.addresses,f==null?void 0:f.chainId),args:[b],...this.optionallyAttachAccount(),...f});return{hash:await u.wc(this._config,e),result:a}}async getClaimFromTransaction(b){var a;const f=await I.getTransactionReceipt(this._config,b);return(a=i.parseEventLogs({abi:u.T,eventName:"BoostClaimed",logs:f.logs}).at(0))==null?void 0:a.args}PassthroughAuth(b){return new W.PassthroughAuth({config:this._config,account:this._account},b)}EventAction(b,f){return new A.EventAction({config:this._config,account:this._account},b,f)}OpenAllowList(b){return new S.OpenAllowList({config:this._config,account:this._account},void 0,b)}SimpleAllowList(b,f){return new G.SimpleAllowList({config:this._config,account:this._account},b,f)}SimpleDenyList(b,f){return new k.SimpleDenyList({config:this._config,account:this._account},b,f)}ManagedBudget(b){return new X.ManagedBudget({config:this._config,account:this._account},b)}AllowListIncentive(b){return new J.AllowListIncentive({config:this._config,account:this._account},b)}CGDAIncentive(b){return new Q.CGDAIncentive({config:this._config,account:this._account},b)}ERC20Incentive(b){return new Z.ERC20Incentive({config:this._config,account:this._account},b)}PointsIncentive(b){return new bf.PointsIncentive({config:this._config,account:this._account},b)}SignerValidator(b,f){return new ef.SignerValidator({config:this._config,account:this._account},b,f)}ERC20VariableCriteriaIncentive(b,f){return new E({config:this._config,account:this._account},b,f)}ERC20VariableIncentive(b,f){return new L.ERC20VariableIncentive({config:this._config,account:this._account},b,f)}buildParameters(b,f){const[e,a]=this.validateDeploymentConfig(b,f);return{abi:u.T,bytecode:cf,args:e,...this.optionallyAttachAccount(a.account)}}};F.addresses=m;let _=F;exports.BOOST_CORE_ADDRESS=Cf;exports.BOOST_CORE_ADDRESSES=m;exports.BOOST_CORE_CLAIM_FEE=wf;exports.BoostCore=_;exports.ERC20VariableCriteriaIncentive=E;exports.prepareERC20VariableCriteriaIncentivePayload=H;
|
|
3
|
+
//# sourceMappingURL=BoostCore-DolmDuXW.cjs.map
|