@berachain/berajs 0.2.8-beta.1 → 0.2.8-beta.11
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/RequestError-BRIiJgHk.d.ts +144 -0
- package/dist/RequestError-DSUzJ1Iy.d.cts +144 -0
- package/dist/abi/exports.cjs.map +1 -1
- package/dist/abi/exports.mjs +1 -1
- package/dist/actions/exports.cjs +1 -1
- package/dist/actions/exports.cjs.map +1 -1
- package/dist/actions/exports.d.cts +22 -105
- package/dist/actions/exports.d.ts +22 -105
- package/dist/actions/exports.mjs +1 -1
- package/dist/actions/exports.mjs.map +1 -1
- package/dist/actions/governance/exports.cjs +2 -0
- package/dist/actions/governance/exports.cjs.map +1 -0
- package/dist/actions/governance/exports.d.cts +140 -0
- package/dist/actions/governance/exports.d.ts +140 -0
- package/dist/actions/governance/exports.mjs +2 -0
- package/dist/actions/governance/exports.mjs.map +1 -0
- package/dist/chunk-33XNWMPP.cjs +2 -0
- package/dist/chunk-33XNWMPP.cjs.map +1 -0
- package/dist/chunk-4TALWNXE.cjs +2 -0
- package/dist/chunk-4TALWNXE.cjs.map +1 -0
- package/dist/chunk-54BTOQE3.cjs +2 -0
- package/dist/chunk-54BTOQE3.cjs.map +1 -0
- package/dist/chunk-5QAFKFM5.mjs +2 -0
- package/dist/chunk-5QAFKFM5.mjs.map +1 -0
- package/dist/chunk-6DIA6PXV.cjs +2 -0
- package/dist/chunk-6DIA6PXV.cjs.map +1 -0
- package/dist/{chunk-NMH7LHPW.cjs → chunk-6JJIZCVY.cjs} +2 -2
- package/dist/chunk-6JJIZCVY.cjs.map +1 -0
- package/dist/chunk-BE6B4PQF.cjs +2 -0
- package/dist/chunk-BE6B4PQF.cjs.map +1 -0
- package/dist/chunk-CHFETMC6.cjs +4 -0
- package/dist/chunk-CHFETMC6.cjs.map +1 -0
- package/dist/{chunk-I7M43BB4.cjs → chunk-D6L7LTA2.cjs} +2 -2
- package/dist/chunk-D6L7LTA2.cjs.map +1 -0
- package/dist/chunk-DDEQFR3M.cjs.map +1 -1
- package/dist/chunk-ENT2OSXT.mjs +2 -0
- package/dist/chunk-ENT2OSXT.mjs.map +1 -0
- package/dist/{chunk-74QD4JAH.mjs → chunk-GXV2JA36.mjs} +2 -2
- package/dist/chunk-GXV2JA36.mjs.map +1 -0
- package/dist/chunk-H6ZO4SLB.mjs +4 -0
- package/dist/chunk-H6ZO4SLB.mjs.map +1 -0
- package/dist/chunk-JDDRTHFG.mjs +2 -0
- package/dist/chunk-JDDRTHFG.mjs.map +1 -0
- package/dist/{chunk-T5FSQ3YE.mjs → chunk-JDZGYU5T.mjs} +2 -2
- package/dist/{chunk-T5FSQ3YE.mjs.map → chunk-JDZGYU5T.mjs.map} +1 -1
- package/dist/chunk-JIPSTWKO.mjs +2 -0
- package/dist/{chunk-KI66MQ43.mjs.map → chunk-JIPSTWKO.mjs.map} +1 -1
- package/dist/chunk-JSTCUTXP.cjs +2 -0
- package/dist/chunk-JSTCUTXP.cjs.map +1 -0
- package/dist/{chunk-MJZHJFZO.mjs → chunk-JXM5S4IU.mjs} +2 -2
- package/dist/chunk-K5L2B4DU.mjs +2 -0
- package/dist/{chunk-EFG3OYYQ.mjs.map → chunk-K5L2B4DU.mjs.map} +1 -1
- package/dist/chunk-KUQEX7H3.mjs +2 -0
- package/dist/chunk-KUQEX7H3.mjs.map +1 -0
- package/dist/chunk-NXXMW2O7.mjs +2 -0
- package/dist/chunk-NXXMW2O7.mjs.map +1 -0
- package/dist/chunk-OIYXOKTT.cjs.map +1 -1
- package/dist/chunk-OUD27MU7.cjs.map +1 -1
- package/dist/chunk-PRLVZIKD.mjs +2 -0
- package/dist/chunk-PRLVZIKD.mjs.map +1 -0
- package/dist/chunk-QVIAMSZ6.cjs +2 -0
- package/dist/chunk-QVIAMSZ6.cjs.map +1 -0
- package/dist/chunk-RCWM55DE.cjs +2 -0
- package/dist/chunk-RCWM55DE.cjs.map +1 -0
- package/dist/chunk-REWME3FY.cjs +2 -0
- package/dist/chunk-REWME3FY.cjs.map +1 -0
- package/dist/chunk-RJN36GBU.mjs +2 -0
- package/dist/chunk-RJN36GBU.mjs.map +1 -0
- package/dist/chunk-RWOICHRW.cjs.map +1 -1
- package/dist/chunk-S4CDSVLK.cjs +2 -0
- package/dist/chunk-S4CDSVLK.cjs.map +1 -0
- package/dist/chunk-WLJHFHKF.mjs +2 -0
- package/dist/chunk-WLJHFHKF.mjs.map +1 -0
- package/dist/chunk-WRFDB3QJ.cjs.map +1 -1
- package/dist/chunk-XNJLSA6P.cjs.map +1 -1
- package/dist/chunk-XZC34BHM.cjs +2 -0
- package/dist/chunk-XZC34BHM.cjs.map +1 -0
- package/dist/chunk-Y2FETC6T.cjs +2 -0
- package/dist/chunk-Y2FETC6T.cjs.map +1 -0
- package/dist/chunk-ZW2N63FI.mjs +2 -0
- package/dist/chunk-ZW2N63FI.mjs.map +1 -0
- package/dist/contexts/exports.cjs +1 -1
- package/dist/contexts/exports.cjs.map +1 -1
- package/dist/contexts/exports.mjs +1 -1
- package/dist/contexts/exports.mjs.map +1 -1
- package/dist/enum/exports.cjs +1 -1
- package/dist/enum/exports.cjs.map +1 -1
- package/dist/enum/exports.d.cts +1 -1
- package/dist/enum/exports.d.ts +1 -1
- package/dist/enum/exports.mjs +1 -1
- package/dist/enum/exports.mjs.map +1 -1
- package/dist/enum/governance/exports.cjs +2 -0
- package/dist/enum/governance/exports.cjs.map +1 -0
- package/dist/enum/governance/exports.d.cts +60 -0
- package/dist/enum/governance/exports.d.ts +60 -0
- package/dist/enum/governance/exports.mjs +2 -0
- package/dist/enum/governance/exports.mjs.map +1 -0
- package/dist/errors/exports.cjs +1 -1
- package/dist/errors/exports.cjs.map +1 -1
- package/dist/errors/exports.d.cts +3 -89
- package/dist/errors/exports.d.ts +3 -89
- package/dist/errors/exports.mjs +1 -1
- package/dist/{getValidatorQueuedOperatorAddress-BQXkSFd9.d.cts → getValidatorQueuedOperatorAddress-CPuIw7n5.d.cts} +2 -2
- package/dist/{getValidatorQueuedOperatorAddress-DUZOmxLV.d.ts → getValidatorQueuedOperatorAddress-CbZQ0kv2.d.ts} +2 -2
- package/dist/{global.d-6aSWIkV_.d.cts → global.d-B9nLZ7ul.d.cts} +3 -239
- package/dist/{global.d-SU9Epq0M.d.ts → global.d-ylUk_etZ.d.ts} +3 -239
- package/dist/hooks/exports.cjs +3 -3
- package/dist/hooks/exports.cjs.map +1 -1
- package/dist/hooks/exports.d.cts +19 -198
- package/dist/hooks/exports.d.ts +19 -198
- package/dist/hooks/exports.mjs +3 -3
- package/dist/hooks/exports.mjs.map +1 -1
- package/dist/hooks/governance/exports.cjs +2 -0
- package/dist/hooks/governance/exports.cjs.map +1 -0
- package/dist/hooks/governance/exports.d.cts +181 -0
- package/dist/hooks/governance/exports.d.ts +181 -0
- package/dist/hooks/governance/exports.mjs +2 -0
- package/dist/hooks/governance/exports.mjs.map +1 -0
- package/dist/pol.d-o6Iw75bK.d.cts +134 -0
- package/dist/pol.d-qR8bGEP5.d.ts +134 -0
- package/dist/{txnEnum-CCuQUFlh.d.cts → txnEnum-CwAJN4zV.d.cts} +3 -60
- package/dist/{txnEnum-CCuQUFlh.d.ts → txnEnum-CwAJN4zV.d.ts} +3 -60
- package/dist/types/exports.cjs.map +1 -1
- package/dist/types/exports.d.cts +7 -7
- package/dist/types/exports.d.ts +7 -7
- package/dist/types/governance/exports.cjs +1 -0
- package/dist/types/governance/exports.cjs.map +1 -0
- package/dist/types/governance/exports.d.cts +109 -0
- package/dist/types/governance/exports.d.ts +109 -0
- package/dist/types/governance/exports.mjs +1 -0
- package/dist/types/governance/exports.mjs.map +1 -0
- package/dist/utils/exports.cjs +1 -1
- package/dist/utils/exports.cjs.map +1 -1
- package/dist/utils/exports.d.cts +10 -2
- package/dist/utils/exports.d.ts +10 -2
- package/dist/utils/exports.mjs +1 -1
- package/dist/utils/exports.mjs.map +1 -1
- package/package.json +49 -8
- package/src/actions/clients/BeraApolloClient.ts +9 -0
- package/src/actions/clients/getApolloClient.ts +23 -6
- package/src/actions/dex/getOnChainPool.ts +1 -1
- package/src/actions/enso/getBendMultiplyBundle.ts +9 -2
- package/src/actions/enso/util.ts +6 -8
- package/src/actions/exports.ts +1 -10
- package/src/actions/governance/checkProposalField.ts +108 -54
- package/src/actions/governance/computeActualStatus.ts +7 -3
- package/src/actions/governance/exports.ts +9 -0
- package/src/actions/governance/getAllProposals.ts +15 -8
- package/src/actions/governance/getBodyErrors.ts +13 -5
- package/src/actions/governance/getDecodedFunctionData.ts +31 -22
- package/src/actions/governance/getProposalDetails.ts +8 -4
- package/src/actions/governance/getProposalFromTx.ts +19 -10
- package/src/actions/governance/getProposalParams.ts +17 -17
- package/src/actions/governance/getProposalVotes.ts +7 -3
- package/src/actions/governance/getQuorum.ts +7 -7
- package/src/actions/governance/parseProposalBody.ts +19 -9
- package/src/actions/honey/getChartData.ts +5 -5
- package/src/actions/honey/getHoney24hVolume.ts +30 -0
- package/src/actions/honey/getHoneyPythPriceOracle.ts +1 -1
- package/src/actions/honey/getHoneyRootPriceOracle.ts +1 -1
- package/src/actions/pol/getEarnedStakedBeraVault.ts +12 -2
- package/src/actions/pol/getRewardVaultBeaconImplementation.ts +1 -1
- package/src/actions/pol/getRewardVaultIncentives.ts +2 -2
- package/src/actions/pol/getStakingDailyAssets.ts +7 -1
- package/src/actions/pol/getTotalStakedAmount.ts +1 -1
- package/src/actions/pol/getUserClaimableIncentives.ts +1 -1
- package/src/actions/pol/getUserVaultsReward.ts +1 -1
- package/src/actions/tokens/getTokenInformation.ts +8 -15
- package/src/actions/tokens/getUnderlyingToken.ts +1 -1
- package/src/actions/validators/getUserBoosts.ts +1 -1
- package/src/enum/exports.ts +0 -1
- package/src/enum/governance/exports.ts +1 -0
- package/src/enum/txnEnum.ts +2 -0
- package/src/errors/BeraError.ts +7 -2
- package/src/errors/RequestError.ts +2 -1
- package/src/hooks/dex/usePoolHistoricalData.ts +1 -1
- package/src/hooks/enso/useBendZapSupply.ts +1 -1
- package/src/hooks/exports.ts +1 -15
- package/src/hooks/governance/exports.ts +14 -0
- package/src/hooks/honey/useHoney24hVolume.ts +16 -0
- package/src/hooks/perps/usePythUpdateFee.ts +1 -1
- package/src/hooks/validators/useValidatorRewardAllocation.ts +1 -1
- package/src/types/exports.ts +0 -1
- package/src/types/governance/exports.ts +1 -0
- package/src/utils/beraFetch.ts +70 -15
- package/src/utils/getErrorResponse.ts +1 -1
- package/dist/RequestError-A8XJ6QR9.d.cts +0 -57
- package/dist/RequestError-Dk97z8rm.d.ts +0 -57
- package/dist/chunk-2EN6PPAW.cjs +0 -2
- package/dist/chunk-2EN6PPAW.cjs.map +0 -1
- package/dist/chunk-2YBHAMDV.cjs +0 -2
- package/dist/chunk-2YBHAMDV.cjs.map +0 -1
- package/dist/chunk-57RINXU6.cjs +0 -2
- package/dist/chunk-57RINXU6.cjs.map +0 -1
- package/dist/chunk-74QD4JAH.mjs.map +0 -1
- package/dist/chunk-74WA35RI.cjs +0 -2
- package/dist/chunk-74WA35RI.cjs.map +0 -1
- package/dist/chunk-7ITWLMO7.cjs +0 -4
- package/dist/chunk-7ITWLMO7.cjs.map +0 -1
- package/dist/chunk-BEKH5EYT.mjs +0 -2
- package/dist/chunk-BEKH5EYT.mjs.map +0 -1
- package/dist/chunk-DK42F2ZM.cjs +0 -2
- package/dist/chunk-DK42F2ZM.cjs.map +0 -1
- package/dist/chunk-EFG3OYYQ.mjs +0 -2
- package/dist/chunk-GO5E7UUD.cjs +0 -2
- package/dist/chunk-GO5E7UUD.cjs.map +0 -1
- package/dist/chunk-I7M43BB4.cjs.map +0 -1
- package/dist/chunk-IDFMLLDY.mjs +0 -2
- package/dist/chunk-IDFMLLDY.mjs.map +0 -1
- package/dist/chunk-JE5GI2OC.mjs +0 -4
- package/dist/chunk-JE5GI2OC.mjs.map +0 -1
- package/dist/chunk-KI66MQ43.mjs +0 -2
- package/dist/chunk-NMH7LHPW.cjs.map +0 -1
- package/dist/chunk-NVHV2LDK.cjs +0 -2
- package/dist/chunk-NVHV2LDK.cjs.map +0 -1
- package/dist/chunk-PLIH6KQM.mjs +0 -2
- package/dist/chunk-PLIH6KQM.mjs.map +0 -1
- package/dist/chunk-QRAIGQF2.mjs +0 -2
- package/dist/chunk-QRAIGQF2.mjs.map +0 -1
- package/src/actions/honey/getHoneyGlobalData.ts +0 -21
- package/src/hooks/honey/useHoneyGlobalData.ts +0 -23
- /package/dist/{chunk-MJZHJFZO.mjs.map → chunk-JXM5S4IU.mjs.map} +0 -0
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { AbiParameter, Address, PublicClient, AbiFunction, TransactionReceipt } from 'viem';
|
|
2
|
+
import { ProposalErrorCodes, ProposalState } from '../../enum/governance/exports.cjs';
|
|
3
|
+
import { ProposalStatus, ProposalSelectionFragment, Proposal_Filter, Proposal_OrderBy, OrderDirection, ProposalWithVotesFragment, GetProposalVotesQueryVariables, GetProposalVotesQuery } from '@berachain/graphql/governance';
|
|
4
|
+
import { CustomProposal, GovernanceTopic, CustomProposalErrors } from '../../types/governance/exports.cjs';
|
|
5
|
+
import graymatter from 'gray-matter';
|
|
6
|
+
|
|
7
|
+
type CheckProposalFieldResultMinimal = ProposalErrorCodes | null;
|
|
8
|
+
type CheckProposalFieldResult = ProposalErrorCodes | null | CheckProposalFieldResultMinimal[] | Record<string, CheckProposalFieldResultMinimal>;
|
|
9
|
+
/**
|
|
10
|
+
* Validates a single proposal field or ABI-typed value.
|
|
11
|
+
* Returns `null` if valid, or a `ProposalErrorCodes` value describing the problem.
|
|
12
|
+
*/
|
|
13
|
+
declare function checkProposalField(arg: {
|
|
14
|
+
fieldOrType: "address" | "hex" | "abi" | "string" | "bool" | `uint${string}` | `int${string}` | "action" | "title" | "forumLink" | "description" | "logoURI" | "url";
|
|
15
|
+
value: unknown;
|
|
16
|
+
required?: boolean;
|
|
17
|
+
baseUrl?: string;
|
|
18
|
+
components?: readonly (AbiParameter | readonly AbiParameter[])[];
|
|
19
|
+
}): CheckProposalFieldResultMinimal;
|
|
20
|
+
/**
|
|
21
|
+
* For tuple/tuple[] types, may return nested error structures.
|
|
22
|
+
*/
|
|
23
|
+
declare function checkProposalField(arg: {
|
|
24
|
+
fieldOrType: "tuple[]" | "tuple";
|
|
25
|
+
value: unknown;
|
|
26
|
+
required?: boolean;
|
|
27
|
+
baseUrl?: string;
|
|
28
|
+
components?: readonly (AbiParameter | readonly AbiParameter[])[];
|
|
29
|
+
}): CheckProposalFieldResult;
|
|
30
|
+
|
|
31
|
+
declare const MOCKED_PROPOSAL_STATUSES: readonly ProposalStatus[];
|
|
32
|
+
/**
|
|
33
|
+
* Derives the effective `ProposalStatus` by reconciling subgraph data with the
|
|
34
|
+
* on-chain contract state. Falls back to subgraph timestamps when the on-chain
|
|
35
|
+
* state is unavailable.
|
|
36
|
+
*/
|
|
37
|
+
declare function computeActualStatus(
|
|
38
|
+
/** Subgraph proposal data */
|
|
39
|
+
proposal: ProposalSelectionFragment,
|
|
40
|
+
/** Value returned by the `state` function of the governance contract */
|
|
41
|
+
proposalOnChainState?: ProposalState): ProposalStatus;
|
|
42
|
+
|
|
43
|
+
type GetAllProposalsArgs = BeraJS.BaseFunctionArgs & {
|
|
44
|
+
/** Subgraph filter applied to the proposals query */
|
|
45
|
+
where: Proposal_Filter;
|
|
46
|
+
/** Number of proposals to skip (for pagination) */
|
|
47
|
+
offset?: number;
|
|
48
|
+
/** Maximum proposals per page; must be ≤ 1000 */
|
|
49
|
+
perPage?: number;
|
|
50
|
+
orderBy?: Proposal_OrderBy;
|
|
51
|
+
orderDirection?: OrderDirection;
|
|
52
|
+
/** Full-text search query; switches to the search endpoint when provided */
|
|
53
|
+
text?: string;
|
|
54
|
+
};
|
|
55
|
+
/** Fetches a paginated list of governance proposals from the subgraph */
|
|
56
|
+
declare function getAllProposals({ where, orderBy, orderDirection, offset, perPage, text, ...args }: GetAllProposalsArgs): Promise<ProposalSelectionFragment[] | undefined>;
|
|
57
|
+
|
|
58
|
+
interface GetBodyErrorsArgs {
|
|
59
|
+
/** The proposal to validate */
|
|
60
|
+
proposal: CustomProposal;
|
|
61
|
+
/** The current governance topic, used for forum link base URL validation */
|
|
62
|
+
currentTopic: GovernanceTopic;
|
|
63
|
+
}
|
|
64
|
+
/** Validates the body fields (title, description, forum link) of a proposal */
|
|
65
|
+
declare function getBodyErrors({ proposal, currentTopic, }: GetBodyErrorsArgs): CustomProposalErrors;
|
|
66
|
+
|
|
67
|
+
interface GetDecodedFunctionDataArgs {
|
|
68
|
+
/** Contract address that emitted the calldata */
|
|
69
|
+
address: Address;
|
|
70
|
+
/** Raw calldata to decode */
|
|
71
|
+
callData: `0x${string}`;
|
|
72
|
+
/** @default defaultChainId */
|
|
73
|
+
chainId?: number;
|
|
74
|
+
publicClient: PublicClient;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Decodes the function data from a given contract address and calldata.
|
|
78
|
+
*
|
|
79
|
+
* Attempts to decode using a known set of ABIs first, then falls back to
|
|
80
|
+
* fetching the ABI from the block-explorer API.
|
|
81
|
+
*
|
|
82
|
+
* @returns An object with the decoded ABI item, function signature, function name, and arguments.
|
|
83
|
+
*/
|
|
84
|
+
declare function getDecodedFunctionData({ address, callData, chainId, publicClient, }: GetDecodedFunctionDataArgs): Promise<{
|
|
85
|
+
args: never[];
|
|
86
|
+
abiItem?: undefined;
|
|
87
|
+
functionSignature?: undefined;
|
|
88
|
+
functionName?: undefined;
|
|
89
|
+
} | {
|
|
90
|
+
abiItem: AbiFunction | undefined;
|
|
91
|
+
functionSignature: string | undefined;
|
|
92
|
+
functionName: string;
|
|
93
|
+
args: unknown[];
|
|
94
|
+
}>;
|
|
95
|
+
|
|
96
|
+
type GetProposalDetailsArgs = BeraJS.BaseFunctionArgs & {
|
|
97
|
+
/** On-chain proposal ID */
|
|
98
|
+
proposalId: string;
|
|
99
|
+
client?: PublicClient;
|
|
100
|
+
};
|
|
101
|
+
/** Fetches a single proposal with its vote data from the subgraph */
|
|
102
|
+
declare function getProposalDetails({ proposalId, ...args }: GetProposalDetailsArgs): Promise<ProposalWithVotesFragment | undefined>;
|
|
103
|
+
|
|
104
|
+
type GetProposalFromTxArgs = {
|
|
105
|
+
/** Viem public client used to fetch block and receipt data */
|
|
106
|
+
publicClient: PublicClient | undefined;
|
|
107
|
+
} & ({
|
|
108
|
+
/** Pre-fetched transaction receipt */
|
|
109
|
+
tx: TransactionReceipt;
|
|
110
|
+
} | {
|
|
111
|
+
/** Transaction hash to look up */
|
|
112
|
+
txHash: Address;
|
|
113
|
+
});
|
|
114
|
+
/**
|
|
115
|
+
* Reconstructs a `ProposalWithVotesFragment` from the `ProposalCreated` event
|
|
116
|
+
* emitted in a given transaction. Returns `null` if the event is not found.
|
|
117
|
+
*/
|
|
118
|
+
declare function getProposalFromTx(args: GetProposalFromTxArgs): Promise<ProposalWithVotesFragment | null>;
|
|
119
|
+
|
|
120
|
+
type GetProposalVotesArgs = BeraJS.BaseFunctionArgs & {
|
|
121
|
+
/** GraphQL variables forwarded to the GetProposalVotes query */
|
|
122
|
+
variables: GetProposalVotesQueryVariables;
|
|
123
|
+
};
|
|
124
|
+
/** Fetches the votes for a proposal from the subgraph */
|
|
125
|
+
declare function getProposalVotes({ variables, ...args }: GetProposalVotesArgs): Promise<{
|
|
126
|
+
data: GetProposalVotesQuery;
|
|
127
|
+
}>;
|
|
128
|
+
|
|
129
|
+
type ParseProposalBodyResult = graymatter.GrayMatterFile<string> & {
|
|
130
|
+
/** Whether the body uses YAML front-matter (true) or legacy heading format (false) */
|
|
131
|
+
isFrontMatter: boolean;
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Parses the body of a governance proposal into structured front-matter and content.
|
|
135
|
+
* Supports YAML front-matter format and a legacy heading-based format.
|
|
136
|
+
* Falls back to raw description on parse failure.
|
|
137
|
+
*/
|
|
138
|
+
declare function parseProposalBody(proposal?: Pick<ProposalSelectionFragment, "description">): ParseProposalBodyResult;
|
|
139
|
+
|
|
140
|
+
export { type GetAllProposalsArgs, type GetBodyErrorsArgs, type GetDecodedFunctionDataArgs, type GetProposalDetailsArgs, type GetProposalFromTxArgs, type GetProposalVotesArgs, MOCKED_PROPOSAL_STATUSES, type ParseProposalBodyResult, checkProposalField, computeActualStatus, getAllProposals, getBodyErrors, getDecodedFunctionData, getProposalDetails, getProposalFromTx, getProposalVotes, parseProposalBody };
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { AbiParameter, Address, PublicClient, AbiFunction, TransactionReceipt } from 'viem';
|
|
2
|
+
import { ProposalErrorCodes, ProposalState } from '../../enum/governance/exports.js';
|
|
3
|
+
import { ProposalStatus, ProposalSelectionFragment, Proposal_Filter, Proposal_OrderBy, OrderDirection, ProposalWithVotesFragment, GetProposalVotesQueryVariables, GetProposalVotesQuery } from '@berachain/graphql/governance';
|
|
4
|
+
import { CustomProposal, GovernanceTopic, CustomProposalErrors } from '../../types/governance/exports.js';
|
|
5
|
+
import graymatter from 'gray-matter';
|
|
6
|
+
|
|
7
|
+
type CheckProposalFieldResultMinimal = ProposalErrorCodes | null;
|
|
8
|
+
type CheckProposalFieldResult = ProposalErrorCodes | null | CheckProposalFieldResultMinimal[] | Record<string, CheckProposalFieldResultMinimal>;
|
|
9
|
+
/**
|
|
10
|
+
* Validates a single proposal field or ABI-typed value.
|
|
11
|
+
* Returns `null` if valid, or a `ProposalErrorCodes` value describing the problem.
|
|
12
|
+
*/
|
|
13
|
+
declare function checkProposalField(arg: {
|
|
14
|
+
fieldOrType: "address" | "hex" | "abi" | "string" | "bool" | `uint${string}` | `int${string}` | "action" | "title" | "forumLink" | "description" | "logoURI" | "url";
|
|
15
|
+
value: unknown;
|
|
16
|
+
required?: boolean;
|
|
17
|
+
baseUrl?: string;
|
|
18
|
+
components?: readonly (AbiParameter | readonly AbiParameter[])[];
|
|
19
|
+
}): CheckProposalFieldResultMinimal;
|
|
20
|
+
/**
|
|
21
|
+
* For tuple/tuple[] types, may return nested error structures.
|
|
22
|
+
*/
|
|
23
|
+
declare function checkProposalField(arg: {
|
|
24
|
+
fieldOrType: "tuple[]" | "tuple";
|
|
25
|
+
value: unknown;
|
|
26
|
+
required?: boolean;
|
|
27
|
+
baseUrl?: string;
|
|
28
|
+
components?: readonly (AbiParameter | readonly AbiParameter[])[];
|
|
29
|
+
}): CheckProposalFieldResult;
|
|
30
|
+
|
|
31
|
+
declare const MOCKED_PROPOSAL_STATUSES: readonly ProposalStatus[];
|
|
32
|
+
/**
|
|
33
|
+
* Derives the effective `ProposalStatus` by reconciling subgraph data with the
|
|
34
|
+
* on-chain contract state. Falls back to subgraph timestamps when the on-chain
|
|
35
|
+
* state is unavailable.
|
|
36
|
+
*/
|
|
37
|
+
declare function computeActualStatus(
|
|
38
|
+
/** Subgraph proposal data */
|
|
39
|
+
proposal: ProposalSelectionFragment,
|
|
40
|
+
/** Value returned by the `state` function of the governance contract */
|
|
41
|
+
proposalOnChainState?: ProposalState): ProposalStatus;
|
|
42
|
+
|
|
43
|
+
type GetAllProposalsArgs = BeraJS.BaseFunctionArgs & {
|
|
44
|
+
/** Subgraph filter applied to the proposals query */
|
|
45
|
+
where: Proposal_Filter;
|
|
46
|
+
/** Number of proposals to skip (for pagination) */
|
|
47
|
+
offset?: number;
|
|
48
|
+
/** Maximum proposals per page; must be ≤ 1000 */
|
|
49
|
+
perPage?: number;
|
|
50
|
+
orderBy?: Proposal_OrderBy;
|
|
51
|
+
orderDirection?: OrderDirection;
|
|
52
|
+
/** Full-text search query; switches to the search endpoint when provided */
|
|
53
|
+
text?: string;
|
|
54
|
+
};
|
|
55
|
+
/** Fetches a paginated list of governance proposals from the subgraph */
|
|
56
|
+
declare function getAllProposals({ where, orderBy, orderDirection, offset, perPage, text, ...args }: GetAllProposalsArgs): Promise<ProposalSelectionFragment[] | undefined>;
|
|
57
|
+
|
|
58
|
+
interface GetBodyErrorsArgs {
|
|
59
|
+
/** The proposal to validate */
|
|
60
|
+
proposal: CustomProposal;
|
|
61
|
+
/** The current governance topic, used for forum link base URL validation */
|
|
62
|
+
currentTopic: GovernanceTopic;
|
|
63
|
+
}
|
|
64
|
+
/** Validates the body fields (title, description, forum link) of a proposal */
|
|
65
|
+
declare function getBodyErrors({ proposal, currentTopic, }: GetBodyErrorsArgs): CustomProposalErrors;
|
|
66
|
+
|
|
67
|
+
interface GetDecodedFunctionDataArgs {
|
|
68
|
+
/** Contract address that emitted the calldata */
|
|
69
|
+
address: Address;
|
|
70
|
+
/** Raw calldata to decode */
|
|
71
|
+
callData: `0x${string}`;
|
|
72
|
+
/** @default defaultChainId */
|
|
73
|
+
chainId?: number;
|
|
74
|
+
publicClient: PublicClient;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Decodes the function data from a given contract address and calldata.
|
|
78
|
+
*
|
|
79
|
+
* Attempts to decode using a known set of ABIs first, then falls back to
|
|
80
|
+
* fetching the ABI from the block-explorer API.
|
|
81
|
+
*
|
|
82
|
+
* @returns An object with the decoded ABI item, function signature, function name, and arguments.
|
|
83
|
+
*/
|
|
84
|
+
declare function getDecodedFunctionData({ address, callData, chainId, publicClient, }: GetDecodedFunctionDataArgs): Promise<{
|
|
85
|
+
args: never[];
|
|
86
|
+
abiItem?: undefined;
|
|
87
|
+
functionSignature?: undefined;
|
|
88
|
+
functionName?: undefined;
|
|
89
|
+
} | {
|
|
90
|
+
abiItem: AbiFunction | undefined;
|
|
91
|
+
functionSignature: string | undefined;
|
|
92
|
+
functionName: string;
|
|
93
|
+
args: unknown[];
|
|
94
|
+
}>;
|
|
95
|
+
|
|
96
|
+
type GetProposalDetailsArgs = BeraJS.BaseFunctionArgs & {
|
|
97
|
+
/** On-chain proposal ID */
|
|
98
|
+
proposalId: string;
|
|
99
|
+
client?: PublicClient;
|
|
100
|
+
};
|
|
101
|
+
/** Fetches a single proposal with its vote data from the subgraph */
|
|
102
|
+
declare function getProposalDetails({ proposalId, ...args }: GetProposalDetailsArgs): Promise<ProposalWithVotesFragment | undefined>;
|
|
103
|
+
|
|
104
|
+
type GetProposalFromTxArgs = {
|
|
105
|
+
/** Viem public client used to fetch block and receipt data */
|
|
106
|
+
publicClient: PublicClient | undefined;
|
|
107
|
+
} & ({
|
|
108
|
+
/** Pre-fetched transaction receipt */
|
|
109
|
+
tx: TransactionReceipt;
|
|
110
|
+
} | {
|
|
111
|
+
/** Transaction hash to look up */
|
|
112
|
+
txHash: Address;
|
|
113
|
+
});
|
|
114
|
+
/**
|
|
115
|
+
* Reconstructs a `ProposalWithVotesFragment` from the `ProposalCreated` event
|
|
116
|
+
* emitted in a given transaction. Returns `null` if the event is not found.
|
|
117
|
+
*/
|
|
118
|
+
declare function getProposalFromTx(args: GetProposalFromTxArgs): Promise<ProposalWithVotesFragment | null>;
|
|
119
|
+
|
|
120
|
+
type GetProposalVotesArgs = BeraJS.BaseFunctionArgs & {
|
|
121
|
+
/** GraphQL variables forwarded to the GetProposalVotes query */
|
|
122
|
+
variables: GetProposalVotesQueryVariables;
|
|
123
|
+
};
|
|
124
|
+
/** Fetches the votes for a proposal from the subgraph */
|
|
125
|
+
declare function getProposalVotes({ variables, ...args }: GetProposalVotesArgs): Promise<{
|
|
126
|
+
data: GetProposalVotesQuery;
|
|
127
|
+
}>;
|
|
128
|
+
|
|
129
|
+
type ParseProposalBodyResult = graymatter.GrayMatterFile<string> & {
|
|
130
|
+
/** Whether the body uses YAML front-matter (true) or legacy heading format (false) */
|
|
131
|
+
isFrontMatter: boolean;
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Parses the body of a governance proposal into structured front-matter and content.
|
|
135
|
+
* Supports YAML front-matter format and a legacy heading-based format.
|
|
136
|
+
* Falls back to raw description on parse failure.
|
|
137
|
+
*/
|
|
138
|
+
declare function parseProposalBody(proposal?: Pick<ProposalSelectionFragment, "description">): ParseProposalBodyResult;
|
|
139
|
+
|
|
140
|
+
export { type GetAllProposalsArgs, type GetBodyErrorsArgs, type GetDecodedFunctionDataArgs, type GetProposalDetailsArgs, type GetProposalFromTxArgs, type GetProposalVotesArgs, MOCKED_PROPOSAL_STATUSES, type ParseProposalBodyResult, checkProposalField, computeActualStatus, getAllProposals, getBodyErrors, getDecodedFunctionData, getProposalDetails, getProposalFromTx, getProposalVotes, parseProposalBody };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as D,b as F,c as $,d as P,e as S,f as _,g as k,h as N,i as v}from"../../chunk-H6ZO4SLB.mjs";import"../../chunk-OGJMSGB2.mjs";import"../../chunk-ENT2OSXT.mjs";import"../../chunk-5QAFKFM5.mjs";import"../../chunk-KUQEX7H3.mjs";import"../../chunk-PRLVZIKD.mjs";import"../../chunk-GXV2JA36.mjs";import{decodeFunctionData as d,erc20Abi as f,pad as p,toFunctionSignature as b,trim as u}from"viem";import{appConfig as l,defaultChainId as A}from"@berachain/config/internal";import{beraChefAbi as g}from"@berachain/abis/pol/rewards/beraChef";import{rewardVaultAbi as x}from"@berachain/abis/pol/rewards/rewardVault";function y(t){return t.some(e=>{let n=e;return n.name==="implementation"||n.name==="proxyType"||n.type==="constructor"&&n.inputs?.[0]?.name==="implementation"})}async function m({contractAddress:t,chainId:e,publicClient:n}){let c=`https://api.etherscan.io/v2/api?module=contract&action=getabi&address=${t}&apikey=${l.apiKeys.private.etherscan}&chainId=${e}`,i=await fetch(c);if(!i.ok)throw new Error(`Failed to fetch ABI: ${i.statusText}`);let a=await i.json();if(a.status==="0")throw new Error(a.result);let r=JSON.parse(a.result);if(!y(r))return r;let o=await n.getStorageAt({address:t,slot:"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"});if(!o||u(o)==="0x00")return r;let s=p(u(o),{size:20});return m({contractAddress:s,chainId:e,publicClient:n})}async function h({address:t,callData:e,knownAbi:n,chainId:c,publicClient:i}){try{if(d({data:e,abi:n}))return n}catch{}return m({contractAddress:t,chainId:c,publicClient:i}).catch(()=>{})}function I(t,e){try{return d({data:t,abi:e})}catch{return}}function w(t,e){return t.find(n=>n.type==="function"&&n.name===e)}function C(t){if(t)try{return b(t)}catch(e){console.error(e)}}async function j({address:t,callData:e,chainId:n=A,publicClient:c}){let i=[...g,...x,...f],a=await h({address:t,callData:e,knownAbi:i,chainId:n,publicClient:c}),r=I(e,a);if(!a||!r)return{args:[]};let o=w(a,r.functionName),s=C(o);return{abiItem:o,functionSignature:s,functionName:r.functionName,args:r.args}}export{F as MOCKED_PROPOSAL_STATUSES,D as checkProposalField,$ as computeActualStatus,P as getAllProposals,S as getBodyErrors,j as getDecodedFunctionData,_ as getProposalDetails,N as getProposalFromTx,v as getProposalVotes,k as parseProposalBody};
|
|
2
|
+
//# sourceMappingURL=exports.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/actions/governance/getDecodedFunctionData.ts"],"sourcesContent":["import {\n type Abi,\n type AbiFunction,\n type AbiItem,\n type Address,\n decodeFunctionData,\n erc20Abi,\n type PublicClient,\n pad,\n toFunctionSignature,\n trim,\n} from \"viem\";\n\nimport { appConfig, defaultChainId } from \"@berachain/config/internal\";\n\nimport { beraChefAbi } from \"@berachain/abis/pol/rewards/beraChef\";\nimport { rewardVaultAbi } from \"@berachain/abis/pol/rewards/rewardVault\";\n\n// Function to check if ABI contains proxy-related functions\nfunction isProxyABI(abi: Abi): boolean {\n return abi.some((item: AbiItem) => {\n const i = item as {\n name?: string;\n type: string;\n inputs?: readonly { name?: string }[];\n };\n return (\n i.name === \"implementation\" ||\n i.name === \"proxyType\" ||\n (i.type === \"constructor\" && i.inputs?.[0]?.name === \"implementation\")\n );\n });\n}\n\n/**\n * {@link https://docs.berascan.com/api-endpoints/contracts}\n */\nasync function _getAbi({\n contractAddress,\n chainId,\n publicClient,\n}: {\n contractAddress: Address;\n chainId: number;\n publicClient: PublicClient;\n}) {\n const url = `https://api.etherscan.io/v2/api?module=contract&action=getabi&address=${contractAddress}&apikey=${appConfig.apiKeys.private.etherscan}&chainId=${chainId}`;\n\n const response = await fetch(url);\n\n if (!response.ok) {\n throw new Error(`Failed to fetch ABI: ${response.statusText}`);\n }\n\n const data = await response.json();\n if (data.status === \"0\") throw new Error(data.result);\n\n const abi = JSON.parse(data.result);\n if (!isProxyABI(abi)) return abi;\n\n const implementationResult = await publicClient.getStorageAt({\n address: contractAddress,\n // bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)).\n slot: \"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc\",\n });\n\n // if implementation is not set, it might be a beacon proxy\n if (!implementationResult || trim(implementationResult) === \"0x00\")\n return abi;\n // storage slot has 32 byes (64 characters) but an address only has 20 bytes (40 characters)\n const implementationAddress = pad(trim(implementationResult), { size: 20 });\n return _getAbi({\n contractAddress: implementationAddress as `0x${string}`,\n chainId,\n publicClient,\n });\n}\n\nasync function _getAbiForCallData({\n address,\n callData,\n knownAbi,\n chainId,\n publicClient,\n}: {\n address: Address;\n callData: `0x${string}`;\n knownAbi: AbiItem[];\n chainId: number;\n publicClient: PublicClient;\n}) {\n try {\n if (decodeFunctionData({ data: callData, abi: knownAbi })) {\n return knownAbi;\n }\n } catch {}\n\n return _getAbi({ contractAddress: address, chainId, publicClient }).catch(\n () => undefined,\n );\n}\n\nfunction _decodeCallData(callData: `0x${string}`, abi: AbiItem[]) {\n try {\n return decodeFunctionData({ data: callData, abi });\n } catch {\n return undefined;\n }\n}\n\nfunction _findAbiItem(abi: AbiItem[], functionName: string) {\n return abi.find(\n (a: AbiItem) => a.type === \"function\" && a.name === functionName,\n ) as AbiFunction | undefined;\n}\n\nfunction _getFunctionSignature(abiItem: AbiFunction | undefined) {\n if (!abiItem) return;\n try {\n return toFunctionSignature(abiItem);\n } catch (error) {\n console.error(error);\n }\n}\n\nexport interface GetDecodedFunctionDataArgs {\n /** Contract address that emitted the calldata */\n address: Address;\n /** Raw calldata to decode */\n callData: `0x${string}`;\n /** @default defaultChainId */\n chainId?: number;\n publicClient: PublicClient;\n}\n\n/**\n * Decodes the function data from a given contract address and calldata.\n *\n * Attempts to decode using a known set of ABIs first, then falls back to\n * fetching the ABI from the block-explorer API.\n *\n * @returns An object with the decoded ABI item, function signature, function name, and arguments.\n */\nexport async function getDecodedFunctionData({\n address,\n callData,\n chainId = defaultChainId,\n publicClient,\n}: GetDecodedFunctionDataArgs) {\n const knownAbi = [...beraChefAbi, ...rewardVaultAbi, ...erc20Abi];\n\n const abi = await _getAbiForCallData({\n address,\n callData,\n knownAbi,\n chainId,\n publicClient,\n });\n\n const decodedData = _decodeCallData(callData, abi);\n\n if (!abi || !decodedData) {\n return { args: [] };\n }\n\n const abiItem = _findAbiItem(abi, decodedData.functionName);\n\n const functionSignature = _getFunctionSignature(abiItem);\n\n return {\n abiItem,\n functionSignature,\n functionName: decodedData.functionName,\n args: decodedData.args as unknown[],\n };\n}\n"],"mappings":"2SAAA,OAKE,sBAAAA,EACA,YAAAC,EAEA,OAAAC,EACA,uBAAAC,EACA,QAAAC,MACK,OAEP,OAAS,aAAAC,EAAW,kBAAAC,MAAsB,6BAE1C,OAAS,eAAAC,MAAmB,uCAC5B,OAAS,kBAAAC,MAAsB,0CAG/B,SAASC,EAAWC,EAAmB,CACrC,OAAOA,EAAI,KAAMC,GAAkB,CACjC,IAAMC,EAAID,EAKV,OACEC,EAAE,OAAS,kBACXA,EAAE,OAAS,aACVA,EAAE,OAAS,eAAiBA,EAAE,SAAS,CAAC,GAAG,OAAS,gBAEzD,CAAC,CACH,CAKA,eAAeC,EAAQ,CACrB,gBAAAC,EACA,QAAAC,EACA,aAAAC,CACF,EAIG,CACD,IAAMC,EAAM,yEAAyEH,CAAe,WAAWT,EAAU,QAAQ,QAAQ,SAAS,YAAYU,CAAO,GAE/JG,EAAW,MAAM,MAAMD,CAAG,EAEhC,GAAI,CAACC,EAAS,GACZ,MAAM,IAAI,MAAM,wBAAwBA,EAAS,UAAU,EAAE,EAG/D,IAAMC,EAAO,MAAMD,EAAS,KAAK,EACjC,GAAIC,EAAK,SAAW,IAAK,MAAM,IAAI,MAAMA,EAAK,MAAM,EAEpD,IAAMT,EAAM,KAAK,MAAMS,EAAK,MAAM,EAClC,GAAI,CAACV,EAAWC,CAAG,EAAG,OAAOA,EAE7B,IAAMU,EAAuB,MAAMJ,EAAa,aAAa,CAC3D,QAASF,EAET,KAAM,oEACR,CAAC,EAGD,GAAI,CAACM,GAAwBhB,EAAKgB,CAAoB,IAAM,OAC1D,OAAOV,EAET,IAAMW,EAAwBnB,EAAIE,EAAKgB,CAAoB,EAAG,CAAE,KAAM,EAAG,CAAC,EAC1E,OAAOP,EAAQ,CACb,gBAAiBQ,EACjB,QAAAN,EACA,aAAAC,CACF,CAAC,CACH,CAEA,eAAeM,EAAmB,CAChC,QAAAC,EACA,SAAAC,EACA,SAAAC,EACA,QAAAV,EACA,aAAAC,CACF,EAMG,CACD,GAAI,CACF,GAAIhB,EAAmB,CAAE,KAAMwB,EAAU,IAAKC,CAAS,CAAC,EACtD,OAAOA,CAEX,MAAQ,CAAC,CAET,OAAOZ,EAAQ,CAAE,gBAAiBU,EAAS,QAAAR,EAAS,aAAAC,CAAa,CAAC,EAAE,MAClE,IAAG,EACL,CACF,CAEA,SAASU,EAAgBF,EAAyBd,EAAgB,CAChE,GAAI,CACF,OAAOV,EAAmB,CAAE,KAAMwB,EAAU,IAAAd,CAAI,CAAC,CACnD,MAAQ,CACN,MACF,CACF,CAEA,SAASiB,EAAajB,EAAgBkB,EAAsB,CAC1D,OAAOlB,EAAI,KACRmB,GAAeA,EAAE,OAAS,YAAcA,EAAE,OAASD,CACtD,CACF,CAEA,SAASE,EAAsBC,EAAkC,CAC/D,GAAKA,EACL,GAAI,CACF,OAAO5B,EAAoB4B,CAAO,CACpC,OAASC,EAAO,CACd,QAAQ,MAAMA,CAAK,CACrB,CACF,CAoBA,eAAsBC,EAAuB,CAC3C,QAAAV,EACA,SAAAC,EACA,QAAAT,EAAUT,EACV,aAAAU,CACF,EAA+B,CAC7B,IAAMS,EAAW,CAAC,GAAGlB,EAAa,GAAGC,EAAgB,GAAGP,CAAQ,EAE1DS,EAAM,MAAMY,EAAmB,CACnC,QAAAC,EACA,SAAAC,EACA,SAAAC,EACA,QAAAV,EACA,aAAAC,CACF,CAAC,EAEKkB,EAAcR,EAAgBF,EAAUd,CAAG,EAEjD,GAAI,CAACA,GAAO,CAACwB,EACX,MAAO,CAAE,KAAM,CAAC,CAAE,EAGpB,IAAMH,EAAUJ,EAAajB,EAAKwB,EAAY,YAAY,EAEpDC,EAAoBL,EAAsBC,CAAO,EAEvD,MAAO,CACL,QAAAA,EACA,kBAAAI,EACA,aAAcD,EAAY,aAC1B,KAAMA,EAAY,IACpB,CACF","names":["decodeFunctionData","erc20Abi","pad","toFunctionSignature","trim","appConfig","defaultChainId","beraChefAbi","rewardVaultAbi","isProxyABI","abi","item","i","_getAbi","contractAddress","chainId","publicClient","url","response","data","implementationResult","implementationAddress","_getAbiForCallData","address","callData","knownAbi","_decodeCallData","_findAbiItem","functionName","a","_getFunctionSignature","abiItem","error","getDecodedFunctionData","decodedData","functionSignature"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk6JJIZCVYcjs = require('./chunk-6JJIZCVY.cjs');var _viem = require('viem');function o(e){return e!=null}function f({value:e,property:t,fn:i}){let n=i(e);if(!n.isValid)throw new (0, _chunk6JJIZCVYcjs.h)({property:t,value:e,expected:n.expectedType})}function r({value:e,property:t,fn:i}){f({value:e,property:t,fn:n=>{let d=o(n),{isValid:p,expectedType:u}=i(n);return{expectedType:u,isValid:d&&p}}})}function c(e,t){r({value:e,property:t,fn:i=>({expectedType:"defined",isValid:o(i)})})}function b(e,t="publicClient"){c(e,t)}function y(e,t){r({value:e,property:t,fn:i=>({expectedType:"Address",isValid:typeof i=="string"&&_viem.isAddress.call(void 0, i)})})}function g(e,t){if(!(typeof e=="bigint"?e>0n:Number(e)>0))throw new (0, _chunk6JJIZCVYcjs.h)({property:t,value:e,expected:"positive amount"})}function m(e,t){r({value:e,property:t,fn:i=>({expectedType:"number",isValid:(typeof i=="string"||typeof i=="number")&&Number(i)>0})})}exports.a = c; exports.b = b; exports.c = y; exports.d = g; exports.e = m;
|
|
2
|
+
//# sourceMappingURL=chunk-33XNWMPP.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/liammcaweeney/Work/bera/monobera/packages/berajs/dist/chunk-33XNWMPP.cjs","../src/errors/assert.ts"],"names":["_isDefined","value","_assert","property","fn","result","InvalidArgumentError","_assertDefined","isDefined","isValid","expectedType","assertDefined","assertPublicClient","assertAddress","isAddress","assertPositive","assertAmount"],"mappings":"AAAA,iIAAwC,4BCCmB,SAIlDA,CAAAA,CAAcC,CAAAA,CAAmC,CACxD,OAA8BA,CAAAA,EAAU,IAC1C,CAQA,SAASC,CAAAA,CAAW,CAClB,KAAA,CAAAD,CAAAA,CACA,QAAA,CAAAE,CAAAA,CACA,EAAA,CAAAC,CACF,CAAA,CAIG,CACD,IAAMC,CAAAA,CAASD,CAAAA,CAAGH,CAAK,CAAA,CACvB,EAAA,CAAI,CAACI,CAAAA,CAAO,OAAA,CACV,MAAM,IAAIC,wBAAAA,CAAqB,CAC7B,QAAA,CAAAH,CAAAA,CACA,KAAA,CAAAF,CAAAA,CACA,QAAA,CAAUI,CAAAA,CAAO,YACnB,CAAC,CAEL,CAEA,SAASE,CAAAA,CAAkB,CACzB,KAAA,CAAAN,CAAAA,CACA,QAAA,CAAAE,CAAAA,CACA,EAAA,CAAAC,CACF,CAAA,CAIG,CACDF,CAAAA,CAAQ,CACN,KAAA,CAAAD,CAAAA,CACA,QAAA,CAAAE,CAAAA,CACA,EAAA,CAAKF,CAAAA,EAAU,CACb,IAAMO,CAAAA,CAAYR,CAAAA,CAAWC,CAAK,CAAA,CAC5B,CAAE,OAAA,CAAAQ,CAAAA,CAAS,YAAA,CAAAC,CAAa,CAAA,CAAIN,CAAAA,CAAGH,CAAK,CAAA,CAC1C,MAAO,CACL,YAAA,CAAAS,CAAAA,CACA,OAAA,CAASF,CAAAA,EAAaC,CACxB,CACF,CACF,CAAC,CACH,CAMO,SAASE,CAAAA,CAIdV,CAAAA,CAIAE,CAAAA,CACiC,CACjCI,CAAAA,CAAe,CACb,KAAA,CAAAN,CAAAA,CACA,QAAA,CAAAE,CAAAA,CACA,EAAA,CAAKF,CAAAA,EAAAA,CAAW,CAAE,YAAA,CAAc,SAAA,CAAW,OAAA,CAASD,CAAAA,CAAWC,CAAK,CAAE,CAAA,CACxE,CAAC,CACH,CAMO,SAASW,CAAAA,CAIdX,CAAAA,CAKAE,CAAAA,CAAmB,cAAA,CACY,CAE/BQ,CAAAA,CAAcV,CAAAA,CAAOE,CAAQ,CAC/B,CAMO,SAASU,CAAAA,CAIdZ,CAAAA,CAIAE,CAAAA,CAC0B,CAC1BI,CAAAA,CAAe,CACb,KAAA,CAAAN,CAAAA,CACA,QAAA,CAAAE,CAAAA,CACA,EAAA,CAAKF,CAAAA,EAAAA,CAAW,CACd,YAAA,CAAc,SAAA,CACd,OAAA,CAAS,OAAOA,CAAAA,EAAU,QAAA,EAAYa,6BAAAA,CAAe,CACvD,CAAA,CACF,CAAC,CACH,CAMO,SAASC,CAAAA,CACdd,CAAAA,CACAE,CAAAA,CACM,CAEN,EAAA,CAAI,CAAA,CADe,OAAOF,CAAAA,EAAU,QAAA,CAAWA,CAAAA,CAAQ,EAAA,CAAK,MAAA,CAAOA,CAAK,CAAA,CAAI,CAAA,CAAA,CAE1E,MAAM,IAAIK,wBAAAA,CAAqB,CAC7B,QAAA,CAAAH,CAAAA,CACA,KAAA,CAAAF,CAAAA,CACA,QAAA,CAAU,iBACZ,CAAC,CAEL,CAMO,SAASe,CAAAA,CAIdf,CAAAA,CAIAE,CAAAA,CACkC,CAClCI,CAAAA,CAAe,CACb,KAAA,CAAAN,CAAAA,CACA,QAAA,CAAAE,CAAAA,CACA,EAAA,CAAKF,CAAAA,EAAAA,CAAW,CACd,YAAA,CAAc,QAAA,CACd,OAAA,CAAA,CACG,OAAOA,CAAAA,EAAU,QAAA,EAAY,OAAOA,CAAAA,EAAU,QAAA,CAAA,EAC/C,MAAA,CAAOA,CAAK,CAAA,CAAI,CACpB,CAAA,CACF,CAAC,CACH,CAAA,0EAAA","file":"/Users/liammcaweeney/Work/bera/monobera/packages/berajs/dist/chunk-33XNWMPP.cjs","sourcesContent":[null,"import type { GetPublicClientReturnType } from \"@wagmi/core\";\nimport { type Address, isAddress, type PublicClient } from \"viem\";\n\nimport { InvalidArgumentError } from \"./InvalidArgumentError\";\n\nfunction _isDefined<T>(value: T): value is NonNullable<T> {\n return value !== undefined && value !== null;\n}\n\ntype _AssertFn<T> = (value: T) => { expectedType: string; isValid: boolean };\n\n/**\n * Internal assertion function.\n * @throws An InvalidArgumentError if the value is not valid.\n */\nfunction _assert<T>({\n value,\n property,\n fn,\n}: {\n value: T;\n property: string;\n fn: _AssertFn<T>;\n}) {\n const result = fn(value);\n if (!result.isValid) {\n throw new InvalidArgumentError({\n property,\n value,\n expected: result.expectedType,\n });\n }\n}\n\nfunction _assertDefined<T>({\n value,\n property,\n fn,\n}: {\n value: T;\n property: string;\n fn: (value: T) => { expectedType: string; isValid: boolean };\n}) {\n _assert({\n value,\n property,\n fn: (value) => {\n const isDefined = _isDefined(value);\n const { isValid, expectedType } = fn(value);\n return {\n expectedType,\n isValid: isDefined && isValid,\n };\n },\n });\n}\n\n/**\n * Asserts that a value is defined.\n * @throws An InvalidArgumentError if the value is undefined or null.\n */\nexport function assertDefined<T>(\n /**\n * The value to assert.\n */\n value: T,\n /**\n * The property name.\n */\n property: string,\n): asserts value is NonNullable<T> {\n _assertDefined({\n value,\n property,\n fn: (value) => ({ expectedType: \"defined\", isValid: _isDefined(value) }),\n });\n}\n\n/**\n * Asserts that a value is a PublicClient.\n * @throws An InvalidArgumentError if the value is undefined or not a PublicClient.\n */\nexport function assertPublicClient(\n /**\n * The value to assert.\n */\n value: // it's important to have both types here because it helps with typescript build performance\n PublicClient | GetPublicClientReturnType | undefined,\n /**\n * The property name.\n */\n property: string = \"publicClient\",\n): asserts value is PublicClient {\n // there's no current way to check if a value is a PublicClient, so we just assert it's defined and `value: PublicClient` will do the rest\n assertDefined(value, property);\n}\n\n/**\n * Asserts that a value is an address (20 bytes).\n * @throws An InvalidArgumentError if the value is undefined, null, not a string, or not an address.\n */\nexport function assertAddress(\n /**\n * The value to assert.\n */\n value: string | undefined | null,\n /**\n * The property name.\n */\n property: string,\n): asserts value is Address {\n _assertDefined({\n value,\n property,\n fn: (value) => ({\n expectedType: \"Address\",\n isValid: typeof value === \"string\" && isAddress(value),\n }),\n });\n}\n\n/**\n * Asserts that a value is positive (> 0).\n * @throws An InvalidArgumentError if the value is not positive.\n */\nexport function assertPositive(\n value: string | bigint | number,\n property: string,\n): void {\n const isPositive = typeof value === \"bigint\" ? value > 0n : Number(value) > 0;\n if (!isPositive) {\n throw new InvalidArgumentError({\n property,\n value,\n expected: \"positive amount\",\n });\n }\n}\n\n/**\n * Asserts that a value is a number greater than 0.\n * @throws An InvalidArgumentError if the value is undefined, null, not a string or number, or not a number greater than 0.\n */\nexport function assertAmount(\n /**\n * The value to assert.\n */\n value: unknown,\n /**\n * The property name.\n */\n property: string,\n): asserts value is string | number {\n _assertDefined({\n value,\n property,\n fn: (value) => ({\n expectedType: \"number\",\n isValid:\n (typeof value === \"string\" || typeof value === \"number\") &&\n Number(value) > 0,\n }),\n });\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } async function _asyncNullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return await rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } async function _asyncOptionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = await fn(value); } else if (op === 'call' || op === 'optionalCall') { value = await fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class;var _chunkJSTCUTXPcjs = require('./chunk-JSTCUTXP.cjs');var _chunkOUD27MU7cjs = require('./chunk-OUD27MU7.cjs');var _chunkREWME3FYcjs = require('./chunk-REWME3FY.cjs');var _chunkY2FETC6Tcjs = require('./chunk-Y2FETC6T.cjs');var _chunk33XNWMPPcjs = require('./chunk-33XNWMPP.cjs');var _chunk6DIA6PXVcjs = require('./chunk-6DIA6PXV.cjs');var _chunk54BTOQE3cjs = require('./chunk-54BTOQE3.cjs');var _chunkQVIAMSZ6cjs = require('./chunk-QVIAMSZ6.cjs');var _chunk6JJIZCVYcjs = require('./chunk-6JJIZCVY.cjs');var _viem = require('viem');var _metaMorphoV11 = require('@berachain/abis/bend-metamorpho/metaMorphoV11');async function Oa({sharesAmount:e,vaultAddress:t,publicClient:r}){let a=await r.readContract({address:t,abi:_metaMorphoV11.metaMorphoV11Abi,functionName:"convertToAssets",args:[e]});return{raw:a,formatted:_viem.formatEther.call(void 0, a)}}var Le= (_class =class e{static __initStatic() {this.PATH_NOT_FOUND_REASON="NO_SWAP_PATHS"}__init() {this.needsAccountForQuote=!1}__init2() {this.notFoundMessages=[]}constructor(t={}){;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);let{config:r,chainId:a}=_chunkQVIAMSZ6cjs.a.call(void 0, t);this.config=r,this.chainId=a}__init3() {this.url=""}parseAddresses(t,r){if(!_viem.isAddress.call(void 0, t)||!_viem.isAddress.call(void 0, r))throw new (0, _chunk6JJIZCVYcjs.f)({message:`Invalid address: ${t} or ${r}`,level:"error"});return{tokenInAddress:_chunk54BTOQE3cjs.d.call(void 0, t,"BERA")?this.config.tokens.wbera:t,tokenOutAddress:_chunk54BTOQE3cjs.d.call(void 0, r,"BERA")?this.config.tokens.wbera:r,isTokenInNative:_chunk54BTOQE3cjs.d.call(void 0, t,"BERA"),isTokenOutNative:_chunk54BTOQE3cjs.d.call(void 0, r,"BERA")}}getAmountAfterFees(t,r){if(r===void 0)throw new (0, _chunk6JJIZCVYcjs.f)({message:"aggregatorsFeeBps is required",level:"error"});let a=new (0, _chunk6DIA6PXVcjs.a)(t).times(r).dividedBy(1e4).toFixed(0,_chunk6DIA6PXVcjs.a.ROUND_DOWN);return new (0, _chunk6DIA6PXVcjs.a)(t).minus(a).toFixed(0,_chunk6DIA6PXVcjs.a.ROUND_DOWN)}getInputData({tokenIn:t,amountIn:r,isNative:a,isPermit2Approval:o=!1,permit2SpenderAddress:s}){return{tokenIn:t,amountIn:BigInt(r),isNative:a,isPermit2Approval:o,permit2SpenderAddress:_nullishCoalesce(s, () => (_viem.zeroAddress))}}getMinAmountOut(t,r){if(r===void 0)throw new (0, _chunk6JJIZCVYcjs.f)({message:"slippage is required",level:"error"});let a=new (0, _chunk6DIA6PXVcjs.a)(t).times(1-r/100);return a.isNaN()||a.isZero()?0n:BigInt(a.toFixed(0))}parseAllowanceRequirements({tokenIn:t,rawAmount:r,spender:a}){return _chunk54BTOQE3cjs.d.call(void 0, t,"BERA")?[]:[{token:t,amount:{raw:r,formatted:_viem.formatUnits.call(void 0, BigInt(r),t.decimals)},spender:a}]}checkChainSupport({tokenIn:t,tokenOut:r}){return this.supportedChains===null?!0:this.supportedChains.includes(t.chainId)&&this.supportedChains.includes(r.chainId)}assertChainSupport({tokenIn:t,tokenOut:r,underlyingToken:a}){if(!this.checkChainSupport({tokenIn:t,tokenOut:r,underlyingToken:a}))throw new (0, _chunk6JJIZCVYcjs.f)({message:`${this.name} does not support tokens chain ID: ${t.chainId} and ${r.chainId}`,level:"error"})}async fetch(t,r){try{return await _chunk6DIA6PXVcjs.c.call(void 0, {url:t,name:this.name,type:this.type},{method:"GET",headers:{"Content-Type":"application/json"},...r})}catch(a){let o=_chunkY2FETC6Tcjs.a.call(void 0, {cause:a});throw this.notFoundMessages.some(s=>o.message.includes(s))&&(o.reason=e.PATH_NOT_FOUND_REASON),o}}}, _class.__initStatic(), _class);var _berancersdk = require('@berachain-foundation/berancer-sdk');var _chains = require('viem/chains');var _internal = require('@berachain/config/internal');for(let e of Object.keys(_internal.chainConfigs)){let{config:t,chainId:r}=_chunkQVIAMSZ6cjs.a.call(void 0, {chainId:Number(e)});_berancersdk.API_CHAIN_NAMES[r]=t.bex.chainName,_berancersdk.CHAINS[r]=r===_chains.berachain.id?_chains.berachain:_chains.berachainBepolia,_berancersdk.BALANCER_RELAYER[r]=t.bex.relayer,_berancersdk.VAULT[r]=t.bex.vault,_berancersdk.BALANCER_QUERIES[r]=t.bex.queries,_berancersdk.WEIGHTED_POOL_FACTORY_BALANCER_V2[r]=_viem.zeroAddress,_berancersdk.COMPOSABLE_STABLE_POOL_FACTORY[r]=_viem.zeroAddress;let a=new (0, _berancersdk.Token)(r,_viem.zeroAddress,_chunk54BTOQE3cjs.a.decimals,_chunk54BTOQE3cjs.a.name,_chunk54BTOQE3cjs.a.symbol,t.tokens.wbera);_berancersdk.NATIVE_ASSETS[r]=a}var _api = require('@berachain/graphql/dex/api');var _api3 = require('@berachain/graphql/pol/api');async function uo({textSearch:e,chain:t,first:r,orderBy:a,orderDirection:o,skip:s,fetchPolicy:l,userAddress:n,blacklistedPoolIds:i,...m}={}){let{config:d}=_chunkQVIAMSZ6cjs.a.call(void 0, m),f=await _chunkJSTCUTXPcjs.b.call(void 0, "api",m).query({query:_api.GetPools,variables:{textSearch:e,chain:_nullishCoalesce(t, () => (d.bex.chainName)),first:r,orderBy:_nullishCoalesce(a, () => (_api3.GqlPoolOrderBy.TotalLiquidity)),orderDirection:_nullishCoalesce(o, () => (_api3.GqlPoolOrderDirection.Desc)),skip:s,userAddress:n,blacklistedPoolIds:i},fetchPolicy:l});return{pools:_nullishCoalesce(f.data.poolGetPools, () => ([])),count:_nullishCoalesce(f.data.count, () => (0))}}async function go({poolId:e,account:t,...r}){let{config:a}=_chunkQVIAMSZ6cjs.a.call(void 0, r),l=(await _chunkJSTCUTXPcjs.b.call(void 0, "api",r).query({query:_api.GetPool,variables:{id:e,userAddress:t,chain:a.bex.chainName},fetchPolicy:"no-cache"})).data.poolGetPool;if(!l)throw new Error(`Pool not found for id: ${e} and user ${t}`);return l}async function wo(e={}){let{config:t}=_chunkQVIAMSZ6cjs.a.call(void 0, e);return(await _chunkJSTCUTXPcjs.b.call(void 0, "api",e).query({query:_api.GetGlobalLiquidityAndSwapVolume,variables:{chain:t.bex.chainName}})).data}async function _e({publicClient:e,poolAddress:t}){let r=_berancersdk.weightedPoolV4Abi_V2,a=await e.multicall({contracts:[{address:t,abi:r,functionName:"inRecoveryMode"},{address:t,abi:r,functionName:"getPausedState"}],allowFailure:!1});return{isPoolInRecoveryMode:a[0],isPoolPaused:a[1][0]}}async function xo({poolId:e,publicClient:t,...r}){let{config:a}=_chunkQVIAMSZ6cjs.a.call(void 0, r),o=e.slice(0,42);if(!_viem.isAddress.call(void 0, o)||!_viem.isHex.call(void 0, e))throw new (0, _chunk6JJIZCVYcjs.h)({property:"poolId",value:e,expected:"Hex"});try{let[s,l,n,i,m,d,c,f,g]=await Promise.all([t.readContract({address:o,abi:_viem.erc20Abi,functionName:"name"}),t.readContract({address:a.bex.vault,abi:_berancersdk.vaultV2Abi,functionName:"getPoolTokens",args:[e]}),t.readContract({address:o,abi:_viem.erc20Abi,functionName:"totalSupply"}),t.readContract({address:o,abi:_berancersdk.weightedPoolV4Abi_V2,functionName:"getSwapFeePercentage"}),t.readContract({address:o,abi:_berancersdk.weightedPoolV4Abi_V2,functionName:"version"}),t.readContract({address:o,abi:_berancersdk.weightedPoolV4Abi_V2,functionName:"decimals"}),t.readContract({address:a.bex.factories.composableStable,abi:_berancersdk.weightedPoolFactoryAbi_V3,functionName:"isPoolFromFactory",args:[o]}),t.readContract({address:a.bex.factories.weighted,abi:_berancersdk.weightedPoolFactoryAbi_V3,functionName:"isPoolFromFactory",args:[o]}),_e({publicClient:t,poolAddress:o})]),p=Number(d),A=JSON.parse(m),h,C,y;if(c?[h,y]=await Promise.all([t.readContract({address:o,abi:[{type:"function",name:"getActualSupply",stateMutability:"view",inputs:[],outputs:[{type:"uint256"}]}],functionName:"getActualSupply"}),t.readContract({address:o,abi:_berancersdk.stablePoolAbi_V3,functionName:"getAmplificationParameter"})]):A.name==="WeightedPool"&&(C=await t.readContract({address:o,abi:_berancersdk.weightedPoolV4Abi_V2,functionName:"getNormalizedWeights"})),!c&&!f)throw new Error(`Pool ${o} is not a valid BEX pool`);return{name:s,address:o,id:e,poolTokens:[l[0],l[1].map(String),Number(l[2])],totalSupply:_viem.formatUnits.call(void 0, _nullishCoalesce(h, () => (n)),p),swapFee:_viem.formatEther.call(void 0, i),decimals:p,weights:_optionalChain([C, 'optionalAccess', _2 => _2.map, 'call', _3 => _3(q=>_viem.formatEther.call(void 0, q))]),version:A,factory:c?a.bex.factories.composableStable:a.bex.factories.weighted,type:c?_api3.GqlPoolType.Stable:_api3.GqlPoolType.Weighted,amplificationParameter:y?[Number(y[0]),y[1],Number(y[2])]:void 0,pausedState:g}}catch(s){throw _chunkY2FETC6Tcjs.a.call(void 0, {cause:s})}}async function Eo({poolId:e,typeInArray:t,...r}){let{config:a}=_chunkQVIAMSZ6cjs.a.call(void 0, r);return(await _chunkJSTCUTXPcjs.b.call(void 0, "api",r).query({query:_api.GetPoolEvents,variables:{poolId:e,typeIn:t,chain:a.bex.chainName}})).data}async function Ho({poolId:e,chain:t,...r}){if(!e||!_viem.isHex.call(void 0, e))throw new (0, _chunk6JJIZCVYcjs.h)({property:"poolId",value:e,expected:"hex string"});let a=_chunkJSTCUTXPcjs.b.call(void 0, "api",r),{data:o}=await a.query({query:_api.GetPoolHistoricalData,variables:{poolId:e,chain:t}});return o.poolGetSnapshots}var _honey = require('@berachain/graphql/honey');async function Jo({days:e,...t}){return(await _chunkJSTCUTXPcjs.b.call(void 0, "honey.subgraph",t).query({query:_honey.GetSnapshots,variables:{interval:_honey.Aggregation_Interval.Day,first:e}})).data}var _honeyFactory = require('@berachain/abis/honey/honeyFactory');async function Yo({client:e,collateralList:t,...r}){let{config:a}=_chunkQVIAMSZ6cjs.a.call(void 0, r);try{let o=await e.readContract({address:a.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"getWeights"});return t.reduce((l,n,i)=>Object.assign(l,{[n.address]:o[i]}),{})}catch(o){throw console.log(o),o}}async function Ye({address:e,publicClient:t,chainId:r}){try{_chunk33XNWMPPcjs.b.call(void 0, t);let[a,o,s]=await Promise.all([t.readContract({address:e,abi:_viem.erc20Abi,functionName:"decimals"}),t.readContract({address:e,abi:_viem.erc20Abi,functionName:"name"}),t.readContract({address:e,abi:_viem.erc20Abi,functionName:"symbol"})]);return{address:e,decimals:a,name:o,symbol:s,chainId:r}}catch(a){throw _chunkY2FETC6Tcjs.a.call(void 0, {cause:a})}}async function Pe({client:e,tokenData:t,preferredCollateralOrder:r,...a}){let{config:o}=_chunkQVIAMSZ6cjs.a.call(void 0, a),[s,l]=await Promise.all([e.readContract({address:o.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"numRegisteredAssets"}),e.readContract({address:o.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"referenceCollateral"})]),n=[];for(let f=0;f<s;f++)n.push(e.readContract({address:o.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"registeredAssets",args:[BigInt(f)]}));let i=await Promise.all(n),d=(await Promise.all(i.map(f=>{let g=_optionalChain([t, 'optionalAccess', _4 => _4.find, 'call', _5 => _5(p=>_chunk54BTOQE3cjs.d.call(void 0, p,f))]);return g||Ye({address:f,chainId:o.chainId,publicClient:e})}))).filter(f=>!!f).sort((f,g)=>i.indexOf(f.address)-i.indexOf(g.address)).map((f,g)=>({...f,order:g}));if(_optionalChain([r, 'optionalAccess', _6 => _6.length])){let f=[];for(let g of r){let p=d.find(A=>_chunk54BTOQE3cjs.d.call(void 0, A.address,g.address));p&&(f.push(p),d.splice(d.indexOf(p),1))}d.unshift(...f)}let c=d.find(f=>_chunk54BTOQE3cjs.d.call(void 0, f,l));if(!d)throw new Error("Collateral tokens not found");if(!c)throw new Error("Reference collateral address not found");return{collaterals:d,referenceCollateral:c}}var _honeyFactoryReader = require('@berachain/abis/honey/honeyFactoryReader');async function Xe({client:e,collateral:t,latestPrices:r,isPythWrapperEnabled:a,...o}){let{config:s}=_chunkQVIAMSZ6cjs.a.call(void 0, o);try{let l=e.readContract({address:s.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"isBadCollateralAsset",args:[t.address]}),n=e.readContract({address:s.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"isPegged",args:[t.address]});if(a&&r){let d=r.prices.map(c=>_viem.parseUnits.call(void 0, c,18));n=e.readContract({address:s.honey.reader,abi:_honeyFactoryReader.honeyFactoryReaderAbi,functionName:"isPeggedWithPrice",args:[t.address,d[0]]})}let[i,m]=await Promise.all([l,n]);return{isBlacklisted:i,isDepegged:!m}}catch(l){throw console.log(l),l}}var _collateralVault = require('@berachain/abis/honey/collateralVault');async function X({client:e,asset:t,amount:r,...a}){let{config:o}=_chunkQVIAMSZ6cjs.a.call(void 0, a);try{let[s,l]=await Promise.all([e.readContract({address:o.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"vaults",args:[t]}),e.readContract({address:o.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"collectedFees",args:[o.honey.factory,t]})]);return await e.readContract({address:s,abi:_collateralVault.collateralVaultAbi,functionName:"balanceOf",args:[o.honey.factory]})+_viem.parseEther.call(void 0, _nullishCoalesce(r, () => ("0")))-l}catch(s){throw console.log(s),s}}var mr=_viem.parseEther.call(void 0, "1");async function Rn({client:e,asset:t,amount:r,isMint:a,isPythWrapperEnabled:o,latestPrices:s,...l}){let{config:n}=_chunkQVIAMSZ6cjs.a.call(void 0, l);try{let i=await e.readContract({address:n.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"globalCap"});if(i>=mr)return!1;let[{collaterals:m},d]=await Promise.all([Pe({client:e}),pr({client:e,asset:t,amount:r,latestPrices:s,isPythWrapperEnabled:o})]);if(!d)return;for(let c in d)if((a&&_chunk54BTOQE3cjs.d.call(void 0, m[c],t)||!a&&_chunk54BTOQE3cjs.d.call(void 0, m[c],t))&&d[c]>i-_chunk6DIA6PXVcjs.e)return!0;return!1}catch(i){throw console.log(i),i}}async function pr({client:e,asset:t,amount:r,latestPrices:a,isPythWrapperEnabled:o}){let{collaterals:s}=await Pe({client:e}),l=0n,n=[];for(let i of s){let m=await Xe({client:e,collateral:t,latestPrices:a,isPythWrapperEnabled:o});if(_optionalChain([m, 'optionalAccess', _7 => _7.isBlacklisted])||_optionalChain([m, 'optionalAccess', _8 => _8.isDepegged]))continue;let d=await X({client:e,asset:i.address,amount:_chunk54BTOQE3cjs.d.call(void 0, i,t)?r:"0"});d&&(l+=d,n.push(d))}if(l===0n)return n;for(let i in s)n[i]=_viem.parseEther.call(void 0, n[i].toString())/l;return n}async function xn({...e}={}){return await _asyncOptionalChain([(await _chunkJSTCUTXPcjs.b.call(void 0, "honey.subgraph",e).query({query:_honey.GetSnapshots,variables:{interval:_honey.Aggregation_Interval.Hour,first:24}})), 'access', async _9 => _9.data, 'optionalAccess', async _10 => _10.honeySnapshots, 'access', async _11 => _11.reduce, 'call', async _12 => _12((a,o)=>new (0, _chunk6DIA6PXVcjs.a)(o.totalVolume).plus(a),new (0, _chunk6DIA6PXVcjs.a)(0))])}var br=(i=>(i.Mint="previewMintHoney",i.MintWithPrice="previewMintHoneyWithPrices",i.RequiredCollateral="previewMintCollaterals",i.RequiredCollateralWithPrice="previewMintCollateralsWithPrices",i.Redeem="previewRedeemCollaterals",i.RedeemWithPrice="previewRedeemCollateralsWithPrices",i.HoneyToRedeem="previewRedeemHoney",i.HoneyToRedeemWithPrice="previewRedeemHoneyWithPrices",i))(br||{});async function En({client:e,collateral:t,collateralList:r,amount:a,method:o,latestPrices:s,isPythWrapperEnabled:l,...n}){let{config:i}=_chunkQVIAMSZ6cjs.a.call(void 0, n);try{let m=o==="previewMintHoney"||o==="previewRedeemHoney"||o==="previewMintHoneyWithPrices"||o==="previewRedeemHoneyWithPrices",d=_viem.parseUnits.call(void 0, a,m?t.decimals:18),c,f=[t.address,d];if(l&&s){let p=s.prices.map(A=>_viem.parseUnits.call(void 0, A,18));f=[t.address,d,p]}if(m){let p=await e.readContract({address:i.honey.reader,abi:_honeyFactoryReader.honeyFactoryReaderAbi,functionName:o,args:f});c={collaterals:p[0],honey:p[1]}}else c={collaterals:await e.readContract({address:i.honey.reader,abi:_honeyFactoryReader.honeyFactoryReaderAbi,functionName:o,args:f}),honey:d};let g=r.reduce((p,A)=>{let h=A.order;return A.address===t.address&&c.collaterals[h]===BigInt(0)?Object.assign(p,{[A.address]:c.collaterals[0]}):Object.assign(p,{[A.address]:c.collaterals[h]})},{});return g[t.address]===BigInt(0)&&(g[t.address]=c.collaterals[0]),{collaterals:g,honey:c.honey}}catch(m){throw console.log("error",m),m}}async function Hn({client:e,collateralList:t,honeyFactoryAddress:r,...a}){let{config:o}=_chunkQVIAMSZ6cjs.a.call(void 0, a),s=_nullishCoalesce(r, () => (o.honey.factory));return await Promise.all(t.map(async n=>{let i=await e.readContract({address:o.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"vaults",args:[n.address]}),[m,d,[c,f]]=await Promise.all([e.readContract({address:i,abi:_collateralVault.collateralVaultAbi,functionName:"balanceOf",args:[s]}),e.readContract({address:s,abi:_honeyFactory.honeyFactoryAbi,functionName:"collectedAssetFees",args:[n.address]}),e.readContract({address:i,abi:_collateralVault.collateralVaultAbi,functionName:"custodyInfo"})]),g=await e.readContract({address:i,abi:_collateralVault.collateralVaultAbi,functionName:"convertToAssets",args:[m-d]});return{...n,balance:{raw:g.toString(),formatted:_viem.formatUnits.call(void 0, g,n.decimals)},vault:c?f:i}}))}var _hermesclient = require('@pythnetwork/hermes-client');var wr="https://hermes.pyth.network";async function ot({priceFeedId:e}){let r=await new (0, _hermesclient.HermesClient)(wr,{}).getLatestPriceUpdates(e,{encoding:"hex",parsed:!0});return{calldata:r.binary.data.map(a=>`0x${a}`),prices:_nullishCoalesce(_optionalChain([r, 'access', _13 => _13.parsed, 'optionalAccess', _14 => _14.flatMap, 'call', _15 => _15(a=>_viem.formatUnits.call(void 0, BigInt(a.price.price),a.price.expo*-1))]), () => ([]))}}async function Xn({client:e,asset:t,amount:r,isMint:a,referenceCollateral:o,...s}){let{config:l}=_chunkQVIAMSZ6cjs.a.call(void 0, s);if(t===o.address)return!1;try{let[n]=await Promise.all([e.readContract({address:l.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"relativeCap",args:[t]})]),[i,m]=await Promise.all([X({client:e,asset:t,amount:a?r:void 0}),X({client:e,asset:o.address,amount:a?void 0:r})]);return m===0n?i!==0n:_viem.parseEther.call(void 0, (_nullishCoalesce(i, () => (0n))).toString())/(_nullishCoalesce(m, () => (0n)))>=n-_chunk6DIA6PXVcjs.e}catch(n){throw console.log(n),n}}async function nt({client:e,priceFeedId:t,...r}){let{config:a}=_chunkQVIAMSZ6cjs.a.call(void 0, r);try{return await e.readContract({address:a.external.pyth,abi:_chunkOUD27MU7cjs.a,functionName:"getUpdateFee",args:[t]})}catch(o){throw console.error("getPythUpdateFee",o),o}}var _honeyFactoryPythWrapper = require('@berachain/abis/honey/honeyFactoryPythWrapper');var ci=async({state:e,publicClient:t,priceFeedMap:r,collateralList:a,isPythWrapperEnabled:o,...s})=>{let{config:l}=_chunkQVIAMSZ6cjs.a.call(void 0, s),n=_chunk54BTOQE3cjs.c.call(void 0, s),{actionType:i,fromAmount:m,collaterals:d,isBasketModeEnabled:c}=e,f=o?l.honey.pythWrapper:l.honey.factory,g=a.map(p=>p.address);if(m[0]&&g.length){let p=i==="mint";if(o&&t&&r){let h=(await ot({priceFeedId:Object.values(r)})).calldata,C=0n;try{C=await nt({client:t,priceFeedId:h})}catch (e2){C=_chunk6DIA6PXVcjs.k.call(void 0, d.length)}return({account:y})=>{let q=[h,_optionalChain([d, 'access', _16 => _16[0], 'optionalAccess', _17 => _17.address]),_viem.parseUnits.call(void 0, m[0],_nullishCoalesce((p?_optionalChain([d, 'access', _18 => _18[0], 'optionalAccess', _19 => _19.decimals]):_optionalChain([n, 'optionalAccess', _20 => _20.decimals])), () => (18))),y,!!c];return{address:f,abi:_honeyFactoryPythWrapper.honeyFactoryPythWrapperAbi,functionName:p?"mint":"redeem",params:q,value:C}}}return({account:A})=>{let h=[_optionalChain([d, 'access', _21 => _21[0], 'optionalAccess', _22 => _22.address]),_viem.parseUnits.call(void 0, m[0],_nullishCoalesce((p?_optionalChain([d, 'access', _23 => _23[0], 'optionalAccess', _24 => _24.decimals]):_optionalChain([n, 'optionalAccess', _25 => _25.decimals])), () => (18))),A,!!c];return{value:0n,address:f,abi:_honeyFactory.honeyFactoryAbi,functionName:p?"mint":"redeem",params:h}}}throw new Error("Something went wrong while creating the Honey swap payload")};async function yi({client:e,isMint:t,collateralList:r,latestPrices:a,isPythWrapperEnabled:o,...s}){let{config:l}=_chunkQVIAMSZ6cjs.a.call(void 0, s);if(o&&a){if(r.length===0)return;let i=a.prices.map(d=>_viem.parseUnits.call(void 0, d,18));return await e.readContract({address:l.honey.reader,abi:_honeyFactoryReader.honeyFactoryReaderAbi,functionName:"isBasketModeEnabledWithPrices",args:[t,i]})}return await e.readContract({address:l.honey.factory,abi:_honeyFactory.honeyFactoryAbi,functionName:"isBasketModeEnabled",args:[t]})}async function Ci({block:e,currentBlock:t,blockTime:r,publicClient:a}){if(_chunk33XNWMPPcjs.a.call(void 0, e,"block"),_chunk33XNWMPPcjs.b.call(void 0, a),t>e){let s=await a.getBlock({blockNumber:BigInt(e),includeTransactions:!1});return{timestamp:Number(s.timestamp)}}return{timestamp:_chunk6DIA6PXVcjs.l.call(void 0, Date.now())+r*(Number(e)-Number(t))}}var _rewardVault = require('@berachain/abis/pol/rewards/rewardVault');var kr=(a=>(a.Duration="duration",a.TargetRate="targetRate",a.TargetApr="targetApr",a))(kr||{});async function Ri(e,t){let[r,a,o,s,l,n]=await Promise.all([t.readContract({address:e,abi:_rewardVault.rewardVaultAbi,functionName:"rewardsDuration"}),t.readContract({address:e,abi:_rewardVault.rewardVaultAbi,functionName:"rewardVaultManager"}),t.readContract({address:e,abi:_rewardVault.rewardVaultAbi,functionName:"rewardRate"}),t.readContract({address:e,abi:_rewardVault.rewardVaultAbi,functionName:"periodFinish"}),t.readContract({address:e,abi:_rewardVault.rewardVaultAbi,functionName:"targetRewardsPerSecond"}),t.readContract({address:e,abi:_rewardVault.rewardVaultAbi,functionName:"minRewardDurationForTargetRate"})]),i=o*(s-BigInt(_chunk6DIA6PXVcjs.l.call(void 0, Date.now())))/10n**18n;return{rewardsDuration:Number(r),mode:l===0n?"duration":"targetRate",manager:a,rewardRate:_viem.formatUnits.call(void 0, o,36),periodFinish:Number(s),availableRewards:_viem.formatUnits.call(void 0, i,18),minRewardDurationForTargetRate:Number(n),targetRewardsPerSecond:_viem.formatUnits.call(void 0, l,36)}}function de(e,t,r){return e?r*t*_chunk6DIA6PXVcjs.y.call(void 0, 1)/e:null}function Nr(e,t,r){return r?e*r/(t*_chunk6DIA6PXVcjs.y.call(void 0, 1)):0}function Ni({availableRewards:e,periodFinish:t,tvl:r,bgtPrice:a,MIN_REWARD_DURATION:o,MAX_REWARD_DURATION:s,...l}){let n=_chunk6DIA6PXVcjs.l.call(void 0, Date.now());if(n>t)return{apr:0,duration:0,rewardRate:0,targetRate:null,periodFinish:0,mode:null};if(l.mode==="targetRate"||l.mode==="targetApr"){let c,{minRewardDurationForTargetRate:f,currentDuration:g}=l;if(l.mode==="targetRate"?c=l.rewardRate:c=Nr(l.apr,a,r),c===0){let h=Math.min(g,s),C=e?e/h:0;return{apr:de(r,a,C),duration:h,rewardRate:C,targetRate:null,periodFinish:h+n,mode:"duration"}}let p=f||o,A=e?e/c:0;if(A<p){let h=e?e/p:0;return{apr:de(r,a,h),duration:p,rewardRate:h,targetRate:h.toString(),periodFinish:p+n,mode:null}}return{apr:de(r,a,c),duration:A,rewardRate:c,targetRate:c.toString(),periodFinish:A+n,mode:null}}let{duration:i}=l,m=e/i;return{apr:de(r,a,m),mode:null,targetRate:null,duration:i,rewardRate:m,periodFinish:i+n}}var _config = require('@berachain/config');async function qi({address:e,account:t,...r}){let{config:a}=_chunkQVIAMSZ6cjs.a.call(void 0, r),o=`${_config.getUriFromLink.call(void 0, a.staking)}/vaults/${e}/earnings/${t}`;return _chunk6DIA6PXVcjs.d.call(void 0, {url:o,name:typeof a.staking=="string"?"backend-railway":a.staking.name,type:"rest"})}async function ue({filter:e,publicClient:t,...r}={}){let o=await _chunkJSTCUTXPcjs.b.call(void 0, "api",r).query({query:_api3.GetVaults,variables:e}),s=await Promise.allSettled(o.data.polGetRewardVaults.vaults.map(async n=>{if(t)return Promise.allSettled(n.activeIncentives.map(i=>t.readContract({abi:_rewardVault.rewardVaultAbi,address:n.address,functionName:"incentives",args:[i.tokenAddress]})))})),l=o.data.polGetRewardVaults.vaults.map((n,i)=>{let m=0,d=n.activeIncentives.map((c,f)=>{let g=Number(c.remainingAmountUsd)&&Number(c.remainingAmount)?Number(c.remainingAmountUsd)/Number(c.remainingAmount):0,p=_optionalChain([s, 'access', _26 => _26[i], 'optionalAccess', _27 => _27.status])==="fulfilled"&&_optionalChain([s, 'access', _28 => _28[i], 'optionalAccess', _29 => _29.value, 'optionalAccess', _30 => _30[f], 'optionalAccess', _31 => _31.status])==="fulfilled"?_viem.formatUnits.call(void 0, BigInt(s[i].value[f].value[2]),c.token.decimals):c.remainingAmount;return m+=Number(p)*Number(g),{...c,remainingAmount:p}});return{...n,dynamicData:{...n.dynamicData,allTimeReceivedBGTAmount:_nullishCoalesce(_optionalChain([n, 'access', _32 => _32.dynamicData, 'optionalAccess', _33 => _33.allTimeReceivedBGTAmount]), () => ("0")),bgtCapturePercentage:_nullishCoalesce(_optionalChain([n, 'access', _34 => _34.dynamicData, 'optionalAccess', _35 => _35.bgtCapturePercentage]), () => ("0")),activeIncentivesValueUsd:m.toString(),activeIncentivesRateUsd:_nullishCoalesce(_optionalChain([n, 'access', _36 => _36.dynamicData, 'optionalAccess', _37 => _37.activeIncentivesRateUsd]), () => ("0")),bgtCapturePerBlock:_nullishCoalesce(_optionalChain([n, 'access', _38 => _38.dynamicData, 'optionalAccess', _39 => _39.bgtCapturePerBlock]), () => ("0"))},activeIncentives:d}});return{pagination:o.data.polGetRewardVaults.pagination,gaugeList:l}}async function st(e={}){let{config:t}=_chunkQVIAMSZ6cjs.a.call(void 0, e),a=await _chunkJSTCUTXPcjs.b.call(void 0, "api",e).query({query:_api3.GlobalData,variables:{chain:t.bex.chainName}});return{...a.data.polGetGlobalInfo,top3EmittingValidators:a.data.top3EmittingValidators.validators,allValidatorsCount:a.data.allValidatorsCount.pagination.totalCount}}var _bgt = require('@berachain/abis/pol/bgt');async function lt({publicClient:e,...t}){let{config:r}=_chunkQVIAMSZ6cjs.a.call(void 0, t);_chunk33XNWMPPcjs.b.call(void 0, e);try{let a=await e.readContract({address:r.tokens.bgt,abi:_bgt.bgtAbi,functionName:"totalBoosts",args:[]});return _viem.formatEther.call(void 0, a)}catch(a){throw console.log(a),a}}async function dt({publicClient:e,...t}){let{config:r}=_chunkQVIAMSZ6cjs.a.call(void 0, t);_chunk33XNWMPPcjs.b.call(void 0, e);try{let a=await e.readContract({address:r.tokens.bgt,abi:_viem.erc20Abi,functionName:"totalSupply",args:[]});return _viem.formatEther.call(void 0, _nullishCoalesce(a, () => (0n)))}catch(a){throw console.log(a),a}}async function ut(e){let{gaugeList:t}=await ue({filter:{orderBy:_api3.GqlRewardVaultOrderBy.Apr,orderDirection:_api3.GqlRewardVaultOrderDirection.Desc,pageSize:e,where:{includeNonWhitelisted:!1}}});return t}async function ds(e){let[t,r,a,o]=await Promise.allSettled([st(),ut(300),dt({publicClient:e}),lt({publicClient:e})]);return t.status==="rejected"&&_chunkY2FETC6Tcjs.b.captureException(_chunkY2FETC6Tcjs.a.call(void 0, {cause:t.reason,level:"warning"})),r.status==="rejected"&&_chunkY2FETC6Tcjs.b.captureException(_chunkY2FETC6Tcjs.a.call(void 0, {cause:r.reason,level:"warning"})),a.status==="rejected"&&_chunkY2FETC6Tcjs.b.captureException(_chunkY2FETC6Tcjs.a.call(void 0, {cause:a.reason,level:"warning"})),o.status==="rejected"&&_chunkY2FETC6Tcjs.b.captureException(_chunkY2FETC6Tcjs.a.call(void 0, {cause:o.reason,level:"warning"})),{bgtTotalSupply:a.status==="fulfilled"?a.value:void 0,globalCuttingBoard:r.status==="fulfilled"?r.value:[],bgtTotalBoosts:o.status==="fulfilled"?o.value:void 0,...t.status==="fulfilled"?t.value:{}}}var _fees = require('@berachain/graphql/pol/fees');async function ct({...e}){let t=_chunkJSTCUTXPcjs.b.call(void 0, "pol.fees",e),{data:r}=await t.query({query:_fees.GetIncentiveFeeClaimStats});if(r.incentiveFeeClaims.length>0){let a=_optionalChain([r, 'optionalAccess', _40 => _40.incentiveFeeClaims, 'access', _41 => _41.reduce, 'call', _42 => _42((l,n)=>l+Number(n.payoutAmount),3e4)]),s=(_optionalChain([r, 'optionalAccess', _43 => _43.incentiveFeeClaims, 'access', _44 => _44.filter, 'call', _45 => _45(l=>Number(l.timestamp)/1e3>Date.now()-_chunk6DIA6PXVcjs.r.call(void 0, 1))])).reduce((l,n)=>l+Number(n.payoutAmount),0);return{sumAllClaims:a,sumClaimsInLast24Hours:s}}return{sumAllClaims:0,sumClaimsInLast24Hours:0}}async function bs(e={}){let{config:t}=_chunkQVIAMSZ6cjs.a.call(void 0, e);try{let a=await(await fetch(t.lists.rewardVaultList)).json();if(!a.protocols)throw new Error("Missing protocols in market list");return{marketList:a.protocols,marketDictionary:a.protocols.reduce((o,s)=>(o[s.name]=s,o),{})}}catch(r){throw console.error("Error fetching validator information",r),r}}async function Cs({account:e,validator:t,page:r=1,perPage:a=1e3,...o}){let{config:s}=_chunkQVIAMSZ6cjs.a.call(void 0, o),l=await fetch(`${s.pol.bribeBoostApi}/api/v1/wallets/${e.toLowerCase()}/proofs/validator/${t.toLowerCase()}?page=${r}&per_page=${a}`,{cache:"no-store"});if(!l.ok){let i=await _chunk6DIA6PXVcjs.b.call(void 0, l);throw new (0, _chunk6JJIZCVYcjs.f)({message:"Failed to fetch proofs on server",cause:{error:i,result:l,account:e,validator:t},reason:_optionalChain([i, 'optionalAccess', _46 => _46.reason])})}return await l.json()}var _wberaStakerVault = require('@berachain/abis/pol/wberaStakerVault');async function Rs({address:e,publicClient:t}){return _chunk33XNWMPPcjs.b.call(void 0, t),t.readContract({address:e,abi:_wberaStakerVault.wberaStakerVaultAbi,functionName:"previewRedeem",args:[_viem.parseUnits.call(void 0, "1",18)]}).then(r=>Number(_viem.formatUnits.call(void 0, r,18))).catch(()=>0)}async function Ts({address:e,chainName:t,...r}){let{config:a}=_chunkQVIAMSZ6cjs.a.call(void 0, r),o=_nullishCoalesce(t, () => (a.bex.chainName)),s=_chunkJSTCUTXPcjs.b.call(void 0, "api",r),{data:l}=await s.query({query:_api3.GetRewardVault,variables:{vaultId:e,chain:o}});if(!_optionalChain([l, 'optionalAccess', _47 => _47.rewardVault]))throw new (0, _chunkREWME3FYcjs.a)({resource:"Reward vault",id:e,chainId:a.chainId});return l.rewardVault}function ee(e,t){return e.status==="success"?e.result:t}async function Qs({address:e,stakingToken:t,publicClient:r}){let a=await r.readContract({address:e,abi:_rewardVault.rewardVaultAbi,functionName:"getWhitelistedTokens"}),s=a.findIndex(n=>_berancersdk.isSameAddress.call(void 0, t,n))!==-1?await r.readContract({address:e,abi:_rewardVault.rewardVaultAbi,functionName:"totalSupply"}):0n,l=await Promise.allSettled(a.map(async n=>{let[i,m,d,c,f]=await r.multicall({allowFailure:!0,contracts:[{address:e,abi:_rewardVault.rewardVaultAbi,functionName:"incentives",args:[n]},{address:n,abi:_viem.erc20Abi,functionName:"decimals"},{address:n,abi:_viem.erc20Abi,functionName:"name"},{address:n,abi:_viem.erc20Abi,functionName:"symbol"},{address:n,abi:_viem.erc20Abi,functionName:"balanceOf",args:[e]}]});if(i.status==="failure")throw new (0, _chunk6JJIZCVYcjs.f)({cause:i.error,message:"Failed to get incentive info. This is not possible.",level:"error",extra:{token:n,address:e}});let[g,p,A,h]=i.result,C=ee(m,18);return{token:n,manager:h,minIncentiveRate:_viem.formatUnits.call(void 0, g,C),incentiveRate:_viem.formatUnits.call(void 0, p,C),remainingAmount:_viem.formatUnits.call(void 0, A,C),name:ee(d,void 0),symbol:ee(c,void 0),decimals:C,pendingAmount:_berancersdk.isSameAddress.call(void 0, t,n)?_viem.formatUnits.call(void 0, ee(f,0n)-s-A,C):_viem.formatUnits.call(void 0, ee(f,0n)-A,C)}}));return l.forEach((n,i)=>{n.status==="rejected"&&_chunkY2FETC6Tcjs.b.captureException(new (0, _chunk6JJIZCVYcjs.f)({reason:n.reason,message:"Incorrect incentives token received.",level:"error",extra:{token:a[i],address:e,error:n.reason}}))}),l.map(n=>n.status==="fulfilled"?n.value:null).filter(n=>n!==null)}async function Hs({address:e,publicClient:t}){return await t.readContract({address:e,abi:_rewardVault.rewardVaultAbi,functionName:"stakeToken"})}function jr(e){return e==="DAY"?_api3.GqlSWberaVaultMetadataResolution.OneDay:_api3.GqlSWberaVaultMetadataResolution.SevenDays}async function $s({window:e,...t}){let{config:r}=_chunkQVIAMSZ6cjs.a.call(void 0, t),a=_chunkJSTCUTXPcjs.b.call(void 0, "api",t);try{let o=await a.query({query:_api3.GetSWberaVaultMetadata,variables:{chain:r.bex.chainName,resolution:jr(_nullishCoalesce(e, () => ("DAY")))}}),{apr:s}=o.data.polGetSWberaVaultMetadata;return Number(s)}catch(o){throw console.error("Failed to get SW Bera APR",o),o}}async function Xs({chain:e,range:t=_api3.GqlVaultSnapshotDataRange.ThirtyDays,...r}={}){let{config:a}=_chunkQVIAMSZ6cjs.a.call(void 0, r),o=_chunkJSTCUTXPcjs.b.call(void 0, "api",r);try{return(await o.query({query:_api3.GetSWberaVaultSnapshots,variables:{chain:_nullishCoalesce(e, () => (a.bex.chainName)),range:t}})).data.polGetSWberaVaultSnapshots}catch(s){throw console.error("Failed to get SW Bera Snapshots",s),s}}async function te({publicClient:e,address:t}){let r=await e.readContract({address:t,abi:_wberaStakerVault.wberaStakerVaultAbi,functionName:"WITHDRAWAL_COOLDOWN"});return Number(r)}async function sl({address:e,underlyingAsset:t,publicClient:r,blockTime:a}){_chunk33XNWMPPcjs.b.call(void 0, r);let o=26;try{let s=await r.getBlock({blockTag:"latest"}),l=Math.floor(o*60*60/a),n=s.number-BigInt(l),[i,m,d,c,f,g,p,A,h,C,y]=await Promise.all([r.readContract({address:e,abi:_viem.erc4626Abi,functionName:"totalAssets"}),r.readContract({address:e,abi:_viem.erc4626Abi,functionName:"totalSupply"}),r.readContract({address:e,abi:_viem.erc4626Abi,functionName:"previewRedeem",args:[10n**18n],blockNumber:s.number}),r.readContract({address:t,abi:_viem.erc20Abi,functionName:"balanceOf",args:[e]}),r.readContract({address:e,abi:_viem.erc4626Abi,functionName:"totalAssets",blockNumber:n}),r.readContract({address:e,abi:_viem.erc20Abi,functionName:"totalSupply",blockNumber:n}),r.readContract({address:e,abi:_viem.erc4626Abi,functionName:"previewRedeem",args:[10n**18n],blockNumber:n}),r.readContract({address:t,abi:_viem.erc20Abi,functionName:"balanceOf",args:[e],blockNumber:n}),r.readContract({address:t,abi:_viem.erc20Abi,functionName:"totalSupply"}),te({publicClient:r,address:e}),ct({})]),q=new (0, _chunk6DIA6PXVcjs.a)(p.toString()),k=new (0, _chunk6DIA6PXVcjs.a)(d.toString());return{address:e,current:{exchangeRate:k.toString(),totalSupply:new (0, _chunk6DIA6PXVcjs.a)(m.toString()).dividedBy(1e18).toString(),totalAssets:new (0, _chunk6DIA6PXVcjs.a)(i.toString()).dividedBy(1e18).toString(),tvl:new (0, _chunk6DIA6PXVcjs.a)(c.toString()).dividedBy(1e18).toString()},previous:{exchangeRate:q.toString(),totalSupply:new (0, _chunk6DIA6PXVcjs.a)(g.toString()).dividedBy(1e18).toString(),totalAssets:new (0, _chunk6DIA6PXVcjs.a)(f.toString()).dividedBy(1e18).toString(),tvl:new (0, _chunk6DIA6PXVcjs.a)(A.toString()).dividedBy(1e18).toString()},totalWBeraIssued:new (0, _chunk6DIA6PXVcjs.a)(h.toString()).dividedBy(1e18).toString(),lockPeriod:C,totalBuyBacks:y.sumAllClaims,totalBuyBacksInLast24Hours:y.sumClaimsInLast24Hours}}catch(s){throw console.error("Failed to get SW Bera Vault Metadata",s),s}}function ft(e){let t=Date.now(),r=e*1e3-t;if(r<=0)return;let a=_chunk6DIA6PXVcjs.l.call(void 0, r);return _chunk6DIA6PXVcjs.B.call(void 0, a,!0,!0)}async function fl({contractAddress:e,accountAddress:t,publicClient:r,version:a}){let o=[];function s(l,n){let[i,m,d]=l,c=i,f=Number(d)+Number(n),g=_chunk6DIA6PXVcjs.l.call(void 0, Date.now()),p=f-g;if(c>0){let A=ft(p<=0?0:f);o.push({receiptTokenAddress:e,withdrawalAmount:c,timeRemaining:A})}}switch(a){case"V1":{let[l,n]=await Promise.all([r.readContract({address:e,abi:_wberaStakerVault.wberaStakerVaultAbi,functionName:"withdrawalRequests",args:[t]}),te({publicClient:r,address:e})]);return s(l,n),o}case"V2":{let[l,n]=await Promise.all([r.readContract({address:e,abi:_wberaStakerVault.wberaStakerVaultAbi,functionName:"getERC721WithdrawalRequestIds",args:[t]}),te({publicClient:r,address:e})]);if(_chunk54BTOQE3cjs.d.call(void 0, e,"SWBERA")){let d=await r.readContract({address:e,abi:_wberaStakerVault.wberaStakerVaultAbi,functionName:"withdrawalRequests",args:[t]});s(d,n)}let m=(await Promise.all(l.map(async d=>{let c=await r.readContract({address:e,abi:_wberaStakerVault.wberaStakerVaultAbi,functionName:"getERC721WithdrawalRequest",args:[d]}),{assets:f,requestTime:g}=c;if(!f||!g)throw new Error("Invalid withdrawal request");let p=f,A=Number(g)+Number(n),h=_chunk6DIA6PXVcjs.l.call(void 0, Date.now()),C=A-h;if(p>0){let y=ft(C<=0?0:A);return{withdrawalAmount:p,timeRemaining:y,withdrawalRequestId:d,receiptTokenAddress:e}}return null}))).filter(d=>d!==null);return o.push(...m),o}}}async function Al({vaultAddresses:e,publicClient:t}){_chunk33XNWMPPcjs.b.call(void 0, t);try{let r=await Promise.all(e.map(async o=>t.readContract({address:o,abi:_wberaStakerVault.wberaStakerVaultAbi,functionName:"totalAssets"})));return e.reduce((o,s,l)=>(o[s]=r[l],o),{})}catch(r){throw console.error("Failed to get total staked amount",r),r}}async function Bl({account:e,...t}){let{config:r}=_chunkQVIAMSZ6cjs.a.call(void 0, t),a=await fetch(`${r.pol.bribeBoostApi}/api/v1/wallets/${e.toLowerCase()}/rewards/aggregation`,{cache:"no-store"});if(!a.ok){let o=await _chunk6DIA6PXVcjs.b.call(void 0, a);throw new (0, _chunk6JJIZCVYcjs.f)({message:"Failed to fetch incentives on server",cause:{error:o,result:a,account:e},reason:_optionalChain([o, 'optionalAccess', _48 => _48.error])})}return a.json()}async function gt({account:e,vaultAddress:t,publicClient:r}){if(!r)throw new Error("Missing public client");if(!e)throw new Error("Missing user account");if(!t)throw new Error("Missing vault address");return r.readContract({address:t,abi:_rewardVault.rewardVaultAbi,functionName:"earned",args:[e]})}async function yt({account:e,vaultAddress:t,publicClient:r}){_chunk33XNWMPPcjs.b.call(void 0, r),_chunk33XNWMPPcjs.c.call(void 0, e,"account"),_chunk33XNWMPPcjs.c.call(void 0, t,"vaultAddress");try{let[a,o]=await Promise.all([r.readContract({address:t,abi:_rewardVault.rewardVaultAbi,functionName:"balanceOf",args:[e]}),r.readContract({address:t,abi:_rewardVault.rewardVaultAbi,functionName:"getTotalDelegateStaked",args:[e]})]);return{balance:a,delegated:o}}catch(a){throw console.log(a),a}}async function At({vaultAddress:e,publicClient:t}){if(!t)throw new Error("Missing public client");if(!e)throw new Error("Missing vault address");try{return await t.readContract({address:e,abi:_rewardVault.rewardVaultAbi,functionName:"totalSupply",args:[]})}catch(r){throw console.log(r),r}}async function El({account:e,vaultAddress:t,publicClient:r}){let[a,o,s]=await Promise.all([yt({account:e,vaultAddress:t,publicClient:r}),gt({account:e,vaultAddress:t,publicClient:r}),At({vaultAddress:t,publicClient:r})]),l=a.balance-a.delegated,n=s>0n?Number(Number.parseFloat(_viem.formatEther.call(void 0, a.balance))/Number.parseFloat(_viem.formatEther.call(void 0, s))).toString():"0";return{balance:a.balance,delegatedBalance:a.delegated,withdrawableBalance:l,rewards:_viem.formatEther.call(void 0, o),percentage:n}}async function _l({account:e,publicClient:t,...r}){let{config:a}=_chunkQVIAMSZ6cjs.a.call(void 0, r),l=await _asyncOptionalChain([(await _chunkJSTCUTXPcjs.b.call(void 0, "api",r).query({query:_api3.GetUserVaults,variables:{userId:e,chain:a.bex.chainName}})), 'access', async _49 => _49.data, 'optionalAccess', async _50 => _50.userVaultDeposits, 'optionalAccess', async _51 => _51.deposits]);if(!l)return{totalBgtRewards:"0",vaults:[],totalStakedValue:0};let[n,i]=await Promise.all([t.multicall({allowFailure:!1,contracts:l.map(g=>({address:g.vaultAddress,abi:_rewardVault.rewardVaultAbi,functionName:"earned",args:[e]}))}),t.multicall({allowFailure:!1,contracts:l.map(g=>({address:g.vaultAddress,abi:_rewardVault.rewardVaultAbi,functionName:"balanceOf",args:[e]}))})]),{userVaults:m,total:d}=l.reduce((g,p,A)=>{let h=n[A],C=i[A];if(g.total+=h,!p.vault)return _chunkY2FETC6Tcjs.b.captureException(new (0, _chunk6JJIZCVYcjs.f)({message:"Deposit data from API is missing vault",level:"error",extra:{deposit:p}})),console.error("Deposit data from API is missing vault",p),g;if(h>0n||C>0n){let y=_optionalChain([p, 'access', _52 => _52.vault, 'access', _53 => _53.dynamicData, 'optionalAccess', _54 => _54.tvl])&&Number(p.vault.stakingTokenAmount)!==0?Number(_nullishCoalesce(_optionalChain([p, 'access', _55 => _55.vault, 'access', _56 => _56.dynamicData, 'optionalAccess', _57 => _57.tvl]), () => (0)))/Number(p.vault.stakingTokenAmount):null;g.userVaults.push({...p,vault:p.vault,unclaimedBgt:_viem.formatUnits.call(void 0, h,18),formattedBalance:_viem.formatUnits.call(void 0, C,p.vault.stakingToken.decimals),stakingTokenPrice:y})}return g},{userVaults:[],total:0n}),c=[...m].sort((g,p)=>{if(g.vault.isVaultWhitelisted&&!p.vault.isVaultWhitelisted)return-1;if(!g.vault.isVaultWhitelisted&&p.vault.isVaultWhitelisted)return 1;let A=Number.parseFloat(g.unclaimedBgt);return Number.parseFloat(p.unclaimedBgt)-A});return{totalStakedValue:c.reduce((g,p)=>{let A=Number(_nullishCoalesce(_optionalChain([p, 'access', _58 => _58.vault, 'access', _59 => _59.dynamicData, 'optionalAccess', _60 => _60.tvl]), () => (0)));if(A===0)return g;let h=Number.parseFloat(p.vault.stakingTokenAmount),C=A/h;return g+C*Number(p.formattedBalance)},0),totalBgtRewards:_viem.formatUnits.call(void 0, d,18),vaults:c}}async function Yl({vault:e,chain:t,...r}){let{config:a}=_chunkQVIAMSZ6cjs.a.call(void 0, r);return(await _chunkJSTCUTXPcjs.b.call(void 0, "api",r).query({query:_api3.GetVaultHistory,variables:{...r,vaultId:e,chain:_nullishCoalesce(t, () => (a.bex.chainName))}})).data.polGetRewardVaultSnapshots}async function ed({address:e,onlyActiveValidators:t,...r}){return await _asyncNullishCoalesce((await _chunkJSTCUTXPcjs.b.call(void 0, "api",r).query({query:_api3.GetVaultValidators,variables:{vaultId:e,isActive:t}})).data.validators.validators, async () => ([]))}async function ld({addressIn:e,...t}){let{config:r,chainId:a}=_chunkQVIAMSZ6cjs.a.call(void 0, t),o=e.map(n=>n.toLowerCase()).filter((n,i,m)=>n&&m.indexOf(n)===i),s=_chunkJSTCUTXPcjs.b.call(void 0, "api",t),{data:l}=await s.query({query:_api.GetTokenCurrentPrices,variables:{chains:[r.bex.chainName],addressIn:o}});return l.tokenGetCurrentPrices.reduce((n,i)=>{if(!i.price||!i.address)return n;let m=i.address;return n[_viem.getAddress.call(void 0, m)]={price:_chunk6DIA6PXVcjs.D.call(void 0, i.price.toString()),updatedAt:i.updatedAt,chainId:a},n[m.toLowerCase()]={price:_chunk6DIA6PXVcjs.D.call(void 0, i.price.toString()),updatedAt:i.updatedAt,chainId:a},_chunk54BTOQE3cjs.d.call(void 0, m,"WBERA")&&(n[_viem.zeroAddress]={price:_chunk6DIA6PXVcjs.D.call(void 0, i.price.toString()),updatedAt:i.updatedAt,chainId:a},n[r.tokens.bgt.toLowerCase()]={price:_chunk6DIA6PXVcjs.D.call(void 0, i.price.toString()),updatedAt:i.updatedAt,chainId:a},n[r.tokens.bgt]={price:_chunk6DIA6PXVcjs.D.call(void 0, i.price.toString()),updatedAt:i.updatedAt,chainId:a}),n},{})}var _core = require('@wagmi/core');async function pd({items:e,account:t,config:r}){_chunk33XNWMPPcjs.a.call(void 0, e,"items"),_chunk33XNWMPPcjs.a.call(void 0, r,"config"),_chunk33XNWMPPcjs.a.call(void 0, t,"account");let a=Object.groupBy(e,s=>s.token.chainId);return(await Promise.allSettled(Object.entries(a).map(async([s,l])=>{if(!l)return[];let n=_core.getPublicClient.call(void 0, r,{chainId:Number(s)});return _chunk33XNWMPPcjs.b.call(void 0, n,`publicClient ${s}`),(await n.multicall({contracts:l.map(d=>({address:d.token.address,abi:_viem.erc20Abi,functionName:"allowance",args:[t,d.spender]}))})).map((d,c)=>{let f=l[c];return d.error?void 0:{token:f.token,spender:f.spender,amount:f.amount,allowance:{raw:d.result.toString(),formatted:_viem.formatUnits.call(void 0, d.result,f.token.decimals)},needsApproval:d.result<BigInt(f.amount.raw)}}).filter(d=>!!d)}))).flatMap(s=>s.status==="fulfilled"?s.value:void 0).filter(s=>!!s)}async function wt({publicClient:e,abi:t,...r}){let a=[..._chunk6JJIZCVYcjs.c,..._nullishCoalesce(t, () => ([]))],o,s,l,n,i,m,d;if("txHash"in r){let c=await e.getTransaction({hash:r.txHash});if(!c.to)throw new (0, _chunk6JJIZCVYcjs.h)({property:"tx",value:c,expected:"Transaction",message:"Trying to get revert reason for a contract creation"});i=c.input,s=c.to,l=c.from,n=c.value,o=c.blockNumber}else if(o=r.blockNumber,s=r.to,l=r.account,n=r.value,"data"in r)i=r.data;else if("functionName"in r&&"args"in r)m=r.functionName,d=r.args;else if(!n)throw new (0, _chunk6JJIZCVYcjs.h)({property:"dataOrFunctionNameAndArgs",value:r,expected:"Hex or FunctionName and Args"});try{if(!a)if(i)await e.call({data:i,to:s,account:l,blockNumber:o,value:n});else throw new Error("Data is required if abi is not provided");if("functionName"in r&&"args"in r&&r.functionName)m=r.functionName,d=r.args;else if(i){if(!a){let c=await e.call({data:i,to:s,account:l,blockNumber:o,value:n});throw new Error(`Getting revert reason for successful simulation. Data: ${i}`,{cause:c})}try{let c=_viem.decodeFunctionData.call(void 0, {abi:a,data:i});m=c.functionName,d=c.args}catch(c){throw c instanceof _viem.AbiFunctionSignatureNotFoundError&&await e.call({data:i,to:s,account:l,blockNumber:o,value:n}),new Error("Data is required if abi is not provided")}}else throw new Error("No data or function name and args provided");throw a&&m?(await e.simulateContract({functionName:m,args:d,abi:a,address:s,account:l,blockNumber:o}),new (0, _chunkREWME3FYcjs.b)({message:"Getting revert reason for successful simulation",functionName:m,to:s,txHash:"txHash"in r?r.txHash:void 0,input:r})):new Error("No data or function name and args provided")}catch(c){if(c instanceof Error)return _chunk6JJIZCVYcjs.e.call(void 0, {error:c,abi:a,revertIfUnknown:!0});throw c}}var Ca=_chunk6DIA6PXVcjs.m.call(void 0, 1),Ct=(e,t)=>e*(100n+BigInt(t))/100n;function ke({nonceResult:e,onWarning:t}){if(e.status==="fulfilled"){if(e.value&&e.value>Number.MAX_SAFE_INTEGER){_optionalChain([t, 'optionalCall', _61 => _61(new (0, _chunk6JJIZCVYcjs.f)({message:"Nonce is too large. No nonce will be provided to avoid IntegerOutOfRangeError.",cause:e.value,level:"debug"}))]);return}return e.value}}function Pa(e=_internal.defaultChainId){return e===_internal.ChainId.BEPOLIA?process.env.NEXT_PUBLIC_80069_ANVIL_IMPERSONATE_ACCOUNT==="true":process.env.NEXT_PUBLIC_80094_ANVIL_IMPERSONATE_ACCOUNT==="true"}async function Id(e){if(process.env.NODE_ENV==="development"&&!e.contractName&&e.address&&!("calls"in e||e.calls))throw console.warn("beraWriteContract: Contract name is required. Either update the contract mapping in devrel or provide a contract name in ContractName enum","This is a development error and will be thrown in development mode only."),new (0, _chunk6JJIZCVYcjs.h)({property:"contractName",value:e.contractName,expected:"ContractName",displayMessage:`[DEV] Contract name is required as it's not mapped in the devrel's contract mapping ${e.address}`,level:"error"});let{address:t,calls:r,value:a,gasLimit:o,onLoading:s,onSuccess:l,onWarning:n,onError:i,onSubmission:m,wagmiConfig:d,walletClient:c,account:f,txConfirmationTimeout:g=12e4,chainId:p=_internal.defaultChainId,impersonateAccount:A=Pa(p),errorsAbi:h=[],pollingInterval:C=Ca,...y}=e;_optionalChain([s, 'optionalCall', _62 => _62(e)]);let q="data"in y?y.data:void 0,k=[..._chunk6JJIZCVYcjs.c,...h,..."abi"in y&&y.abi&&Array.isArray(y.abi)?y.abi:[]],x=c;if(!d){_optionalChain([i, 'optionalCall', _63 => _63(new (0, _chunk6JJIZCVYcjs.h)({property:"wagmiConfig",value:d,expected:"Config"}),e)]);return}if(!(_optionalChain([x, 'optionalAccess', _64 => _64.account, 'optionalAccess', _65 => _65.type])==="local"))try{await _core.switchChain.call(void 0, d,{chainId:p})}catch(v){let N=v;_optionalChain([i, 'optionalCall', _66 => _66(new (0, _chunk6JJIZCVYcjs.f)({cause:N,displayMessage:"There was an error switching to the chain."}),e)]);return}if(!x)try{x=await _core.getWalletClient.call(void 0, d,{chainId:p})}catch(v){_optionalChain([i, 'optionalCall', _67 => _67(new (0, _chunk6JJIZCVYcjs.f)({cause:v,displayMessage:"There was an error connecting to the wallet."}),e)]);return}if(!x){_optionalChain([i, 'optionalCall', _68 => _68(new (0, _chunk6JJIZCVYcjs.h)({displayMessage:"There was an error connecting to the wallet.",property:"walletClient",value:x,expected:"WalletClient"}),e)]);return}let I=f||x.account;if(!I){_optionalChain([i, 'optionalCall', _69 => _69(new (0, _chunk6JJIZCVYcjs.h)({property:"account",value:I,expected:"Account"}),e)]);return}let ae=typeof I=="string"?I:I.address,Q=_core.getPublicClient.call(void 0, d,{chainId:p});try{_chunk33XNWMPPcjs.b.call(void 0, Q)}catch(v){_optionalChain([i, 'optionalCall', _70 => _70(v,e)]);return}if(A){let v=_chunk6DIA6PXVcjs.F.call(void 0, p);await v.impersonateAccount({address:ae}),x=_viem.createWalletClient.call(void 0, {transport:_viem.http.call(void 0, v.transport.url),account:I,chain:x.chain})}let T,K={calls:"calls"in y?y.calls:void 0,params:"params"in y?y.params:void 0,value:a,data:"data"in y?y.data:void 0};try{let v=Q.getTransactionCount({address:ae,blockTag:"latest"}).catch(()=>{}),N={account:ae,to:t,address:t,chainId:p,value:a};if(r){let F=r.map(w=>{if("abi"in w&&Array.isArray(k)&&k.push(...w.abi),"data"in w)return{to:w.address,data:w.data,value:_nullishCoalesce(w.value, () => (0n))};if("abi"in w&&"functionName"in w){let U="params"in w?w.params:void 0;return{to:w.address,abi:w.abi,functionName:w.functionName,args:U,value:_nullishCoalesce(w.value, () => (0n))}}return{to:w.address,value:_nullishCoalesce(w.value, () => (0n))}});if(e.enableSimulateCalls){let w=await Q.simulateCalls({calls:F,account:I}),U=w.results.findIndex(O=>O.status==="failure");if(U!==-1){if(w.block.number===null)throw new (0, _chunk6JJIZCVYcjs.h)({property:"blockNumber",value:w.block.number,expected:"bigint",message:"Block number is null"});let O=w.results[U],{reason:ge}=O.data&&O.data!=="0x"?{reason:_chunk6JJIZCVYcjs.d.call(void 0, _viem.decodeErrorResult.call(void 0, {data:O.data,abi:k}))}:_chunk6JJIZCVYcjs.e.call(void 0, {error:O.error,revertIfUnknown:!1,abi:k});_optionalChain([i, 'optionalCall', _71 => _71(new (0, _chunkREWME3FYcjs.b)({cause:O.error,txHash:T,chainId:p,reason:ge,abi:k,input:K,blockNumber:w.block.number}),e)]);return}}if(process.env.NODE_ENV==="test")throw new (0, _chunk6JJIZCVYcjs.h)({displayMessage:"Batch calls are not supported in test environment",expected:"not test",property:"NODE_ENV",value:process.env.NODE_ENV,level:"fatal"});let D=await x.sendCalls({calls:F,account:I,forceAtomic:!0});_optionalChain([m, 'optionalCall', _72 => _72({id:D.id},e)]);let W=await x.waitForCallsStatus({id:D.id,pollingInterval:C,timeout:g});if(W.status==="success"){let w=_optionalChain([W, 'access', _73 => _73.receipts, 'optionalAccess', _74 => _74[0]]);if(!w)throw new (0, _chunk6JJIZCVYcjs.f)({message:"Call status is success but no receipt was found",cause:W,level:"error",reason:"CALL_STATUS_SUCCESS_BUT_NO_RECEIPT"});return _optionalChain([l, 'optionalCall', _75 => _75(w,e)]),w}throw console.error("wallet_sendCalls: Call failed",W),new (0, _chunkREWME3FYcjs.b)({cause:W,level:"error",input:K,txHash:T,abi:k,chainId:p})}if(q){let[F,D,W]=await Promise.allSettled([Q.call({...N,data:q}),_nullishCoalesce(o, () => (Q.estimateGas({...N,data:q}))),v]);if(F.status==="rejected")throw F.reason;let w=D.status==="fulfilled"?Ct(D.value,10):_chunk6DIA6PXVcjs.j;T=await x.sendTransaction({data:q,to:t,account:I,gas:w,chainId:p,nonce:ke({nonceResult:W,onWarning(U){_optionalChain([n, 'optionalCall', _76 => _76(U,e)])}}),value:a}),_optionalChain([m, 'optionalCall', _77 => _77({txHash:T},e)])}else if("abi"in y&&"functionName"in y){let{abi:F,functionName:D}=y,W="params"in y?y.params:void 0,[w,U,O]=await Promise.allSettled([Q.simulateContract({...N,abi:k,functionName:D,args:W,account:I}),_nullishCoalesce(o, () => (Q.estimateContractGas({...N,abi:k,functionName:D,args:W}))),v]);if(w.status==="rejected")throw w.reason;let ge=_nullishCoalesce(o, () => ((U.status==="fulfilled"?Ct(U.value,10):_chunk6DIA6PXVcjs.j)));T=await x.writeContract({...w.value.request,chainId:p,gas:ge,nonce:ke({nonceResult:O,onWarning(kt){_optionalChain([n, 'optionalCall', _78 => _78(kt,e)])}})}),_optionalChain([m, 'optionalCall', _79 => _79({txHash:T},e)])}else{let[F]=await Promise.allSettled([v]);T=await x.sendTransaction({chainId:p,to:t,value:a,account:I,nonce:ke({nonceResult:F,onWarning(D){_optionalChain([n, 'optionalCall', _80 => _80(D,e)])}})}),_optionalChain([m, 'optionalCall', _81 => _81({txHash:T},e)])}process.env.NODE_ENV==="test"&&await _chunk6DIA6PXVcjs.F.call(void 0, p).mine({blocks:1});let M=await Q.waitForTransactionReceipt({hash:T,pollingInterval:C,timeout:g,confirmations:1});if(M.status==="success")_optionalChain([l, 'optionalCall', _82 => _82(M,e)]);else{let F=await wt({publicClient:Q,blockNumber:M.blockNumber,to:t,account:ae,abi:k,args:"params"in y?y.params:void 0,functionName:"functionName"in y?y.functionName:void 0,value:a,data:q});process.env.NODE_ENV==="test"&&console.error("beraWriteContract: Revert reason",F),_optionalChain([i, 'optionalCall', _83 => _83(new (0, _chunkREWME3FYcjs.b)({reason:F.reason,txHash:T,receipt:M,to:t,functionName:"functionName"in y?y.functionName:void 0,input:K,chainId:p,abi:k,blockNumber:M.blockNumber}),e)])}return M}catch(v){if(v instanceof _chunk6JJIZCVYcjs.f)_optionalChain([i, 'optionalCall', _84 => _84(v,e)]);else if(v instanceof Error){let N=_chunk6JJIZCVYcjs.e.call(void 0, {error:v,revertIfUnknown:!1,abi:k});if(N&&N.rootCause instanceof _viem.BaseError&&"url"in N.rootCause){_optionalChain([i, 'optionalCall', _85 => _85(new (0, _chunk6JJIZCVYcjs.g)({cause:N.rootCause,response:void 0,endpoint:{url:N.rootCause.url,type:"rpc"},statusCode:N.rootCause instanceof _viem.HttpRequestError?N.rootCause.status:void 0}),e)]);return}_optionalChain([i, 'optionalCall', _86 => _86(new (0, _chunkREWME3FYcjs.b)({cause:v,to:t,txHash:T,chainId:p,abi:k,functionName:"functionName"in y?y.functionName:void 0,input:K}),e)])}else _optionalChain([i, 'optionalCall', _87 => _87(new (0, _chunkREWME3FYcjs.b)({cause:v,txHash:T,to:t,chainId:p,functionName:"functionName"in y?y.functionName:void 0,input:K,abi:k}),e)])}}async function Bt({variables:e={},...t}={}){let{config:r}=_chunkQVIAMSZ6cjs.a.call(void 0, t);return(await _chunkJSTCUTXPcjs.b.call(void 0, "api",t).query({query:_api3.GetValidators,variables:{chain:r.bex.chainName,...e}})).data}async function Ld({allocation:e}){let t=await ue({filter:{where:{vaultAddressIn:e.weights.map(a=>a.receiver)}}}),r=_nullishCoalesce(_optionalChain([e, 'optionalAccess', _88 => _88.start, 'access', _89 => _89.blockNumber]), () => (0));return _optionalChain([e, 'optionalAccess', _90 => _90.weights, 'access', _91 => _91.map, 'call', _92 => _92(a=>({percentage:a.percentage,receiver:a.receiver,startBlock:r,receivingVault:_optionalChain([t, 'optionalAccess', _93 => _93.gaugeList, 'access', _94 => _94.find, 'call', _95 => _95(o=>_viem.isAddressEqual.call(void 0, o.address,a.receiver))])}))])}async function jd({id:e,...t}){let{config:r}=_chunkQVIAMSZ6cjs.a.call(void 0, t);return(await _chunkJSTCUTXPcjs.b.call(void 0, "api",t).query({query:_api3.GetValidator,variables:{id:e,chain:r.bex.chainName}})).data}var _subgraph = require('@berachain/graphql/pol/subgraph');async function Xd({pubKey:e,first:t=1,...r}){let a=_chunkJSTCUTXPcjs.b.call(void 0, "pol.subgraph",r);try{return(await a.query({query:_subgraph.GetValidatorBlockStats,variables:{pubKey:e,first:t}})).data}catch(o){throw console.error("GetValidatorBlockStats:",o),o}}var _beraChef = require('@berachain/abis/pol/rewards/beraChef');function j(e,t){return{start:{blockNumber:Number(e.startBlock),timestamp:e.startBlock!==0n?t:0},weights:e.weights.map(r=>({receiver:r.receiver,percentage:Number(r.percentageNumerator)/1e4}))}}function Sa(e,t){return e.start.blockNumber===t.start.blockNumber&&e.weights.every((r,a)=>r.percentage===t.weights[a].percentage)}async function ru({client:e,pubKey:t,...r}){let{config:a}=_chunkQVIAMSZ6cjs.a.call(void 0, r);try{let[o,s]=await Promise.all([e.readContract({address:a.pol.beraChef,abi:_beraChef.beraChefAbi,functionName:"getActiveRewardAllocation",args:[t]}),e.readContract({address:a.pol.beraChef,abi:_beraChef.beraChefAbi,functionName:"getSetActiveRewardAllocation",args:[t]})]),[l,n]=await Promise.all([o.startBlock!==0n?e.getBlock({blockNumber:BigInt(o.startBlock)}):{timestamp:0},s.startBlock!==0n?e.getBlock({blockNumber:BigInt(s.startBlock)}):{timestamp:0}]),i=j(o,Number(l.timestamp)),m=j(s,Number(n.timestamp)),d=!1;return m.start.blockNumber===0?d=!0:d=!Sa(m,i),{activeRewardAllocation:i,setRewardAllocation:m,isBaseline:d,isNeverSet:_optionalChain([m, 'optionalAccess', _96 => _96.start, 'access', _97 => _97.blockNumber])===0}}catch(o){throw console.log("getValidatorRewardAllocation:",o),o}}function su(e){return e.start.blockNumber===0}async function lu({client:e,...t}){let{config:r}=_chunkQVIAMSZ6cjs.a.call(void 0, t),a=await e.readContract({address:r.pol.beraChef,abi:_beraChef.beraChefAbi,functionName:"getDefaultRewardAllocation",args:[]});return j({...a,startBlock:0n},0)}async function uu({client:e,valPubKey:t}){return 5614}async function Vt({account:e,pubkey:t,publicClient:r,...a}){let{config:o}=_chunkQVIAMSZ6cjs.a.call(void 0, a);if(!e)throw new Error("account is required");if(!r)throw new Error("publicClient is required");let[s,l,n]=await Promise.all([r.readContract({address:o.tokens.bgt,abi:_bgt.bgtAbi,functionName:"boosted",args:[e,t]}),r.readContract({address:o.tokens.bgt,abi:_bgt.bgtAbi,functionName:"boostedQueue",args:[e,t]}),r.readContract({address:o.tokens.bgt,abi:_bgt.bgtAbi,functionName:"dropBoostQueue",args:[e,t]})]),i=s-n[1];return{pubkey:t,droppableBoostAmount:_viem.formatEther.call(void 0, i),activeBoostAmount:_viem.formatEther.call(void 0, s),queuedBoostAmount:_viem.formatEther.call(void 0, l[1]),queuedDropBoostAmount:_viem.formatEther.call(void 0, n[1]),queuedBoostStartBlock:l[0],queuedDropBoostStartBlock:n[0],hasPendingBoosts:l[1]>0n||n[1]>0n,hasActiveBoosts:s>0n,hasDroppableBoosts:i>0n}}async function Rt({account:e,...t}){let{config:r}=_chunkQVIAMSZ6cjs.a.call(void 0, t);return _chunkJSTCUTXPcjs.b.call(void 0, "api",t).query({query:_api3.GetUserValidatorInformation,variables:{address:e.toLowerCase(),chain:r.bex.chainName}})}async function Vu({account:e,publicClient:t,chain:r,...a}){let{config:o}=_chunkQVIAMSZ6cjs.a.call(void 0, a),s=_nullishCoalesce(r, () => (o.bex.chainName)),l=await Rt({account:e}),[n,i]=await Promise.all([Bt({variables:{chain:s,where:{idIn:l.data.polGetValidatorBoosts.boosts.map(m=>m.validatorId)}}}),Promise.all(l.data.polGetValidatorBoosts.boosts.filter(m=>!!m.validator).map(m=>Vt({account:e,pubkey:m.validator.pubkey,publicClient:t})))]);return _optionalChain([n, 'optionalAccess', _98 => _98.validators, 'access', _99 => _99.validators, 'access', _100 => _100.map, 'call', _101 => _101(m=>{let d=i.find(f=>f.pubkey.toLowerCase()===m.pubkey.toLowerCase());if(!d)throw new Error("User deposited not found");let c=_viem.parseEther.call(void 0, _nullishCoalesce(_optionalChain([d, 'optionalAccess', _102 => _102.activeBoostAmount]), () => ("0")))-_viem.parseEther.call(void 0, _optionalChain([d, 'optionalAccess', _103 => _103.queuedDropBoostAmount]));return{...m,userBoosts:{pubkey:d.pubkey,activeBoostAmount:_optionalChain([d, 'optionalAccess', _104 => _104.activeBoostAmount]),queuedBoostAmount:_optionalChain([d, 'optionalAccess', _105 => _105.queuedBoostAmount]),queuedBoostStartBlock:Number(_optionalChain([d, 'optionalAccess', _106 => _106.queuedBoostStartBlock])),queuedDropBoostAmount:_optionalChain([d, 'optionalAccess', _107 => _107.queuedDropBoostAmount]),queuedDropBoostStartBlock:Number(_optionalChain([d, 'optionalAccess', _108 => _108.queuedDropBoostStartBlock])),droppableBoostAmount:_viem.formatEther.call(void 0, c),hasPendingBoosts:Number(_optionalChain([d, 'optionalAccess', _109 => _109.queuedBoostAmount]))>0||Number(_optionalChain([d, 'optionalAccess', _110 => _110.queuedDropBoostAmount]))>0,hasActiveBoosts:Number(_optionalChain([d, 'optionalAccess', _111 => _111.activeBoostAmount]))>0,hasDroppableBoosts:c>0n}}})])}var xa=[{validatorAddress:"0x8f51e63d9921a461be29e73dca1c2385e1adc5943fbb36ded4ba96025ee8a783184d1118da08171f6ea831153c878a6d",earning:.045,staked:{amount:16114000000000000000n,formattedAmount:"161.14"},rewards:{amount:15214000000000000000n,formattedAmount:"152.14"}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0x97b21253b17f4e814fe7505c15c18e68c85ab2477274ad370a762df50e3eb4cb1a48451e089bc22e158d7448549a8ab9",earning:.045,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{stake:[{amount:16159000000000000000n,formattedAmount:"161.59"}],unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:_chunk6DIA6PXVcjs.l.call(void 0, Date.now()-72e6)}]}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0xa2705d6b27891f3f5651f26547d1bb79e256f95f249d1ad717cef087d77d38b037e5d6dbaa2538930fd0731ec9b02f3a",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:_chunk6DIA6PXVcjs.l.call(void 0, Date.now()-72e6)}]}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0xa2705d6b27891f3f5651f26547d1bb79e256f95f249d1ad717cef087d77d38b037e5d6dbaa2538930fd0731ec9b02f3a",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:_chunk6DIA6PXVcjs.l.call(void 0, Date.now()-72e6)}]}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0xa2705d6b27891f3f5651f26547d1bb79e256f95f249d1ad717cef087d77d38b037e5d6dbaa2538930fd0731ec9b02f3a",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:_chunk6DIA6PXVcjs.l.call(void 0, Date.now()-72e6)}]}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0xa2705d6b27891f3f5651f26547d1bb79e256f95f249d1ad717cef087d77d38b037e5d6dbaa2538930fd0731ec9b02f3a",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:_chunk6DIA6PXVcjs.l.call(void 0, Date.now()-72e6)}]}},{staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},validatorAddress:"0xa2705d6b27891f3f5651f26547d1bb79e256f95f249d1ad717cef087d77d38b037e5d6dbaa2538930fd0731ec9b02f3a",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:16159000000000000000n,formattedAmount:"161.59",timestamp:_chunk6DIA6PXVcjs.l.call(void 0, Date.now()-72e6)}]}},{staked:{amount:241514000000000000000n,formattedAmount:"2415.14"},validatorAddress:"0xa4e4b63514f54d61da5197359f11ff1fc2930788ba2ffdd30c2fc059cbe0221020197bf9446b16ac347f36c7517a8686",earning:.145,rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{unstake:[{amount:1159000000000000000n,formattedAmount:"11.59",timestamp:_chunk6DIA6PXVcjs.l.call(void 0, Date.now()-36e6)}]}},{validatorAddress:"0xb0511ec039591e98bd4e183ba70b85572214a7ad8ca1a43e96ad3495d3821054927bc542e5482ec9733e35b7ef0b1f03",earning:.045,staked:{amount:141514000000000000000n,formattedAmount:"1415.14"},rewards:{amount:15414000000000000000n,formattedAmount:"154.14"},queueData:{stake:[{amount:1159000000000000000n,formattedAmount:"11.59"}]}}];async function ku(e){return await new Promise(t=>setTimeout(t,2e3)),e==="0x4C368fFE3650379d6318C8d4630bc51f8Ad12bB6"?xa:[]}async function Fu({pubkey:e,dayRange:t,...r}){return(await _chunkJSTCUTXPcjs.b.call(void 0, "pol.subgraph",r).query({query:_subgraph.GetValidatorAnalytics,variables:{pubKey:e,timestamp:_chunk6DIA6PXVcjs.z.call(void 0, t).toString()}})).data}async function Du({client:e,pubKey:t,...r}){let{config:a}=_chunkQVIAMSZ6cjs.a.call(void 0, r),o=await e.readContract({address:a.pol.beraChef,abi:_beraChef.beraChefAbi,functionName:"getValCommissionOnIncentiveTokens",args:[t]});return Number(_nullishCoalesce(o, () => (0n)))/1e4}var Uu=(e,t,r)=>{if(!t||!e)return 0;let a=_chunk6DIA6PXVcjs.y.call(void 0, 1)/r;return(t?a*(Number(_optionalChain([e, 'access', _112 => _112.dynamicData, 'optionalAccess', _113 => _113.stakedBeraAmount]))/t):0)*Number.parseFloat(_nullishCoalesce(_optionalChain([e, 'access', _114 => _114.dynamicData, 'optionalAccess', _115 => _115.rewardRate]), () => ("0")))};var _beaconDeposit = require('@berachain/abis/pol/beaconDeposit');async function Mu({client:e,pubKey:t,...r}){let{config:a}=_chunkQVIAMSZ6cjs.a.call(void 0, r);try{return await e.readContract({address:a.depositContract,abi:_beaconDeposit.beaconDepositAbi,functionName:"getOperator",args:[t]})}catch(o){throw console.log("getValidatorOperatorAddress:",o),o}}async function ju({client:e,pubKey:t,...r}){let{config:a}=_chunkQVIAMSZ6cjs.a.call(void 0, r),o=await e.readContract({address:a.pol.beraChef,abi:_beraChef.beraChefAbi,functionName:"getValQueuedCommissionOnIncentiveTokens",args:[t]});return{blockNumberLast:o.blockNumberLast,commissionRate:Number(o.commissionRate)/1e4}}async function Xu({client:e,pubKey:t,...r}){let{config:a}=_chunkQVIAMSZ6cjs.a.call(void 0, r);try{return await e.readContract({address:a.depositContract,abi:_beaconDeposit.beaconDepositAbi,functionName:"queuedOperator",args:[t]})}catch(o){throw console.log("getValidatorQueuedOperatorAddress:",o),o}}async function ac({client:e,pubKey:t,...r}){let{config:a}=_chunkQVIAMSZ6cjs.a.call(void 0, r);try{let o=await e.readContract({address:a.pol.beraChef,abi:_beraChef.beraChefAbi,functionName:"getQueuedRewardAllocation",args:[t]});return j(o,0)}catch(o){throw console.log("getValidatorQueuedRewardAllocation:",o),o}}exports.a = Oa; exports.b = Le; exports.c = _berancersdk.BalancerApi; exports.d = uo; exports.e = go; exports.f = wo; exports.g = _e; exports.h = xo; exports.i = Eo; exports.j = Ho; exports.k = Jo; exports.l = Yo; exports.m = Ye; exports.n = Pe; exports.o = Xe; exports.p = Rn; exports.q = xn; exports.r = br; exports.s = En; exports.t = Hn; exports.u = ot; exports.v = Xn; exports.w = nt; exports.x = ci; exports.y = yi; exports.z = Ci; exports.A = kr; exports.B = Ri; exports.C = Ni; exports.D = qi; exports.E = ue; exports.F = ds; exports.G = ct; exports.H = bs; exports.I = Cs; exports.J = Rs; exports.K = Ts; exports.L = Qs; exports.M = Hs; exports.N = $s; exports.O = Xs; exports.P = te; exports.Q = sl; exports.R = fl; exports.S = Al; exports.T = Bl; exports.U = gt; exports.V = El; exports.W = _l; exports.X = Yl; exports.Y = ed; exports.Z = ld; exports._ = pd; exports.$ = Pa; exports.aa = Id; exports.ba = Bt; exports.ca = Ld; exports.da = jd; exports.ea = Xd; exports.fa = j; exports.ga = Sa; exports.ha = ru; exports.ia = su; exports.ja = lu; exports.ka = uu; exports.la = Vt; exports.ma = Vu; exports.na = ku; exports.oa = Fu; exports.pa = Du; exports.qa = Uu; exports.ra = Mu; exports.sa = ju; exports.ta = Xu; exports.ua = ac;
|
|
2
|
+
//# sourceMappingURL=chunk-4TALWNXE.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/liammcaweeney/Work/bera/monobera/packages/berajs/dist/chunk-4TALWNXE.cjs","../src/actions/bend/getConvertToAssets.ts","../src/actions/dex/aggregators/base.ts"],"names":["getConvertToAssets","sharesAmount","vaultAddress","publicClient","convertToAssets","metaMorphoAbi","formatEther","BaseAggregator","_BaseAggregator","args","config","chainId","parseBaseArgs","tokenIn","tokenOut","isAddress","BeraError"],"mappings":"AAAA,q4CAAmC,wDAA0C,wDAAiD,wDAAgD,wDAAwD,wDAAsJ,wDAAyD,wDAAyC,wDAA+E,4BCAhf,8EAEX,MAQlD,SAAsBA,EAAAA,CAAmB,CACvC,YAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CAAAA,CACA,YAAA,CAAAC,CACF,CAAA,CAAyE,CACvE,IAAMC,CAAAA,CAAkB,MAAMD,CAAAA,CAAa,YAAA,CAAa,CACtD,OAAA,CAASD,CAAAA,CACT,GAAA,CAAKG,+BAAAA,CACL,YAAA,CAAc,iBAAA,CACd,IAAA,CAAM,CAACJ,CAAY,CACrB,CAAC,CAAA,CACD,MAAO,CAAE,GAAA,CAAKG,CAAAA,CAAiB,SAAA,CAAWE,+BAAAA,CAA2B,CAAE,CACzE,CCtBA,IAmBsBC,EAAAA,WAAf,MAAeC,CAAe,CAOnC,4BAAO,qBAAA,CAAwB,gBAAA,eAE/B,oBAAA,CAAgC,CAAA,EAAA,gBAChC,gBAAA,CAA6B,CAAC,EAAA,WAK9B,CAAYC,CAAAA,CAAgC,CAAC,CAAA,CAAG,6GAC9C,GAAM,CAAE,MAAA,CAAAC,CAAAA,CAAQ,OAAA,CAAAC,CAAQ,CAAA,CAAIC,iCAAAA,CAAkB,CAAA,CAC9C,IAAA,CAAK,MAAA,CAASF,CAAAA,CACd,IAAA,CAAK,OAAA,CAAUC,CACjB,iBAMA,GAAA,CAAc,GAAA,cAYJ,CACRE,CAAAA,CACAC,CAAAA,CAMA,CACA,EAAA,CAAI,CAACC,6BAAAA,CAAiB,CAAA,EAAK,CAACA,6BAAAA,CAAkB,CAAA,CAC5C,MAAM,IAAIC,wBAAAA,CAAU,CAClB,OAAA,CAAS,CAAA,iBAAA,EAAoBH,CAAO,CAAA,IAAA,EAAOC,CAAQ,CAAA,CAAA","file":"/Users/liammcaweeney/Work/bera/monobera/packages/berajs/dist/chunk-4TALWNXE.cjs","sourcesContent":[null,"import { type Address, formatEther, type PublicClient } from \"viem\";\n\nimport { metaMorphoV11Abi as metaMorphoAbi } from \"@berachain/abis/bend-metamorpho/metaMorphoV11\";\n\nexport interface GetConvertToAssetsProps {\n sharesAmount: bigint;\n vaultAddress: Address;\n publicClient: PublicClient;\n}\n\nexport async function getConvertToAssets({\n sharesAmount,\n vaultAddress,\n publicClient,\n}: GetConvertToAssetsProps): Promise<{ raw: bigint; formatted: string }> {\n const convertToAssets = await publicClient.readContract({\n address: vaultAddress,\n abi: metaMorphoAbi,\n functionName: \"convertToAssets\",\n args: [sharesAmount],\n });\n return { raw: convertToAssets, formatted: formatEther(convertToAssets) };\n}\n","import { type Address, formatUnits, isAddress, zeroAddress } from \"viem\";\n\nimport type { BeraConfig, ChainId } from \"@berachain/config/internal\";\n\nimport BigNumber from \"@berachain/utils/pkg/bignumber.js\";\n\nimport type { HoneyConfigContextReturn } from \"../../../contexts/HoneyConfigProvider\";\nimport type { Aggregators } from \"../../../enum/dex\";\nimport { BeraError } from \"../../../errors/BeraError\";\nimport { initBeraError } from \"../../../errors/initBeraError\";\nimport type {\n IAggregatorArgs,\n IRawAggregatorQuote,\n Token,\n} from \"../../../types/dex\";\nimport { beraFetch } from \"../../../utils/beraFetch\";\nimport { parseBaseArgs } from \"../../../utils/parseBaseArgs\";\nimport { isToken } from \"../../../utils/tokens\";\n\nexport abstract class BaseAggregator {\n abstract name: Aggregators;\n /**\n * Supported chains for the aggregator.\n * If null, the aggregator is supported on all chains.\n */\n abstract supportedChains: number[] | null;\n static PATH_NOT_FOUND_REASON = \"NO_SWAP_PATHS\";\n\n needsAccountForQuote: boolean = false;\n notFoundMessages: string[] = [];\n\n config: BeraConfig;\n\n chainId: ChainId;\n constructor(args: BeraJS.BaseFunctionArgs = {}) {\n const { config, chainId } = parseBaseArgs(args);\n this.config = config;\n this.chainId = chainId;\n }\n\n /**\n * Identifies the url of the last sent request. Might not have all query params.\n * Mainly used for error reporting.\n */\n url: string = \"\";\n abstract readonly type: \"rest\" | \"graphql\" | \"rpc\";\n\n abstract getQuote(\n args: IAggregatorArgs,\n ):\n | Promise<IRawAggregatorQuote | undefined>\n | Promise<IRawAggregatorQuote | undefined>;\n\n /**\n * return wbera for native tokens to accomodate the aggregator's router logic\n */\n protected parseAddresses(\n tokenIn: string,\n tokenOut: string,\n ): {\n tokenInAddress: Address;\n tokenOutAddress: Address;\n isTokenInNative: boolean;\n isTokenOutNative: boolean;\n } {\n if (!isAddress(tokenIn) || !isAddress(tokenOut)) {\n throw new BeraError({\n message: `Invalid address: ${tokenIn} or ${tokenOut}`,\n level: \"error\",\n });\n }\n\n return {\n tokenInAddress: isToken(tokenIn, \"BERA\")\n ? this.config.tokens.wbera\n : tokenIn,\n tokenOutAddress: isToken(tokenOut, \"BERA\")\n ? this.config.tokens.wbera\n : tokenOut,\n isTokenInNative: isToken(tokenIn, \"BERA\"),\n isTokenOutNative: isToken(tokenOut, \"BERA\"),\n };\n }\n\n /**\n * Calculate input amount after fees.\n *\n * @returns Amount in wad format\n */\n protected getAmountAfterFees(\n amount: string,\n aggregatorsFeeBps?: number,\n ): string {\n if (aggregatorsFeeBps === undefined) {\n throw new BeraError({\n message: \"aggregatorsFeeBps is required\",\n level: \"error\",\n });\n }\n\n const fees = new BigNumber(amount)\n .times(aggregatorsFeeBps)\n .dividedBy(10_000)\n .toFixed(0, BigNumber.ROUND_DOWN);\n return new BigNumber(amount).minus(fees).toFixed(0, BigNumber.ROUND_DOWN);\n }\n /**\n * Formats input data for aggregator swaps\n */\n protected getInputData({\n tokenIn,\n amountIn,\n isNative,\n isPermit2Approval = false,\n permit2SpenderAddress,\n }: {\n tokenIn: Address;\n amountIn: string;\n isNative: boolean;\n isPermit2Approval?: boolean;\n permit2SpenderAddress?: Address | null;\n }) {\n return {\n tokenIn,\n amountIn: BigInt(amountIn),\n isNative,\n isPermit2Approval,\n permit2SpenderAddress: permit2SpenderAddress ?? zeroAddress,\n };\n }\n\n /**\n * Calculate min amount out\n */\n protected getMinAmountOut(amountOut: string, slippage: number): bigint {\n if (slippage === undefined) {\n throw new BeraError({\n message: \"slippage is required\",\n level: \"error\",\n });\n }\n const minAmountOut = new BigNumber(amountOut).times(1 - slippage / 100);\n\n if (minAmountOut.isNaN() || minAmountOut.isZero()) {\n return 0n;\n }\n return BigInt(minAmountOut.toFixed(0));\n }\n\n protected parseAllowanceRequirements({\n tokenIn,\n rawAmount,\n spender,\n }: {\n tokenIn: Token;\n rawAmount: string;\n spender: Address;\n }) {\n return isToken(tokenIn, \"BERA\")\n ? []\n : [\n {\n token: tokenIn,\n amount: {\n raw: rawAmount,\n formatted: formatUnits(BigInt(rawAmount), tokenIn.decimals),\n },\n spender,\n },\n ];\n }\n\n /**\n * Check if chain is supported\n */\n checkChainSupport({\n tokenIn,\n tokenOut,\n }: {\n tokenIn: Token;\n tokenOut: Token;\n // needed in honey native aggregator\n honeyNativeState?: Pick<HoneyConfigContextReturn, \"collateralList\">;\n // needed in ERC4626 aggregator\n underlyingToken?: Token | null;\n }): boolean {\n if (this.supportedChains === null) {\n return true;\n }\n\n return (\n this.supportedChains.includes(tokenIn.chainId) &&\n this.supportedChains.includes(tokenOut.chainId)\n );\n }\n\n assertChainSupport({\n tokenIn,\n tokenOut,\n underlyingToken,\n }: {\n tokenIn: Token;\n tokenOut: Token;\n underlyingToken?: Token | null;\n }): void {\n if (!this.checkChainSupport({ tokenIn, tokenOut, underlyingToken })) {\n throw new BeraError({\n message: `${this.name} does not support tokens chain ID: ${tokenIn.chainId} and ${tokenOut.chainId}`,\n level: \"error\",\n });\n }\n }\n\n protected async fetch(url: string | URL, options?: RequestInit) {\n try {\n return await beraFetch(\n { url, name: this.name, type: this.type },\n {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n ...options,\n },\n );\n } catch (err) {\n const error = initBeraError({ cause: err });\n if (\n this.notFoundMessages.some((message) => error.message.includes(message))\n ) {\n error.reason = BaseAggregator.PATH_NOT_FOUND_REASON;\n }\n throw error;\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkQVIAMSZ6cjs = require('./chunk-QVIAMSZ6.cjs');var _chunk6JJIZCVYcjs = require('./chunk-6JJIZCVY.cjs');var _viem = require('viem');var _mainnet = require('@berachain/config/mainnet');var u={address:_viem.zeroAddress,decimals:18,name:"Bera",symbol:"BERA",logoURI:"https://imagedelivery.net/qNj7Q3MCke89zoKzav7eDQ/tokens/0x0000000000000000000000000000000000000000.png/public"},g= exports.b ={address:_mainnet.mainnet.tokens.wbera,decimals:18,name:"WBera",symbol:"WBERA"};function w(n){let{config:s,chainId:e}=_chunkQVIAMSZ6cjs.a.call(void 0, n);return{address:s.honey.token,symbol:"HONEY",name:"Honey",decimals:18,chainId:e}}function y(...n){let[s,e,t]=n;if(s===void 0)return!1;let o=typeof s=="string"?s:s.address;if(typeof e=="string"&&!_viem.isAddress.call(void 0, e)&&!e.startsWith("0x")){if(e==="BERA")return o.toLowerCase()===_viem.zeroAddress;if(e==="WBERA")return o.toLowerCase()===_mainnet.mainnet.tokens.wbera;if(e==="ETH")return o.toLowerCase()===_viem.ethAddress;if(e==="SWBERA")return o.toLowerCase()===_mainnet.mainnet.tokens.swbera.toLowerCase();if(t===void 0)throw new (0, _chunk6JJIZCVYcjs.h)({property:"baseArgs",value:t,expected:"BeraJS.BaseFunctionArgs",message:"baseArgs is required when compared to a known token different than BERA or WBERA. Checking against token: "+e+" and token address: "+o});let{config:r}=_chunkQVIAMSZ6cjs.a.call(void 0, t),i={BGT:r.tokens.bgt,HONEY:r.honey.token,SWBERA:r.tokens.swbera,ETH:_viem.ethAddress};if(e in i)return o.toLowerCase()===i[e].toLowerCase()}let A=typeof e=="object"?e.address:e;return o.toLowerCase()===A.toLowerCase()}exports.a = u; exports.b = g; exports.c = w; exports.d = y;
|
|
2
|
+
//# sourceMappingURL=chunk-54BTOQE3.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/liammcaweeney/Work/bera/monobera/packages/berajs/dist/chunk-54BTOQE3.cjs","../src/utils/tokens.ts"],"names":["beraToken","zeroAddress","wBeraToken","mainnet","getHoneyToken","baseArgs","config","chainId","parseBaseArgs","isToken","args","token","compareTo","tokenAddress","isAddress","ethAddress","InvalidArgumentError","tokenMap","compareToAddress"],"mappings":"AAAA,iIAAmC,wDAAyC,4BCAX,oDAEzC,IAMXA,CAAAA,CAAY,CACvB,OAAA,CAASC,iBAAAA,CACT,QAAA,CAAU,EAAA,CACV,IAAA,CAAM,MAAA,CACN,MAAA,CAAQ,MAAA,CACR,OAAA,CACE,+GACJ,CAAA,CAEaC,CAAAA,aAAa,CACxB,OAAA,CAASC,gBAAAA,CAAQ,MAAA,CAAO,KAAA,CACxB,QAAA,CAAU,EAAA,CACV,IAAA,CAAM,OAAA,CACN,MAAA,CAAQ,OACV,CAAA,CAEO,SAASC,CAAAA,CAAcC,CAAAA,CAAmC,CAC/D,GAAM,CAAE,MAAA,CAAAC,CAAAA,CAAQ,OAAA,CAAAC,CAAQ,CAAA,CAAIC,iCAAAA,CAAsB,CAAA,CAElD,MAAO,CACL,OAAA,CAASF,CAAAA,CAAO,KAAA,CAAM,KAAA,CACtB,MAAA,CAAQ,OAAA,CACR,IAAA,CAAM,OAAA,CACN,QAAA,CAAU,EAAA,CACV,OAAA,CAAAC,CACF,CACF,CAyBO,SAASE,CAAAA,CAAAA,GAAWC,CAAAA,CAA8B,CACvD,GAAM,CAACC,CAAAA,CAAOC,CAAAA,CAAWP,CAAQ,CAAA,CAAIK,CAAAA,CAErC,EAAA,CAAIC,CAAAA,GAAU,KAAA,CAAA,CAAW,MAAO,CAAA,CAAA,CAEhC,IAAME,CAAAA,CAAe,OAAOF,CAAAA,EAAU,QAAA,CAAWA,CAAAA,CAAQA,CAAAA,CAAM,OAAA,CAE/D,EAAA,CACE,OAAOC,CAAAA,EAAc,QAAA,EACrB,CAACE,6BAAAA,CAAmB,CAAA,EAEpB,CAACF,CAAAA,CAAU,UAAA,CAAW,IAAI,CAAA,CAC1B,CACA,EAAA,CAAIA,CAAAA,GAAc,MAAA,CAChB,OAAOC,CAAAA,CAAa,WAAA,CAAY,CAAA,GAAMZ,iBAAAA,CAExC,EAAA,CAAIW,CAAAA,GAAc,OAAA,CAEhB,OAAOC,CAAAA,CAAa,WAAA,CAAY,CAAA,GAAMV,gBAAAA,CAAQ,MAAA,CAAO,KAAA,CAGvD,EAAA,CAAIS,CAAAA,GAAc,KAAA,CAChB,OAAOC,CAAAA,CAAa,WAAA,CAAY,CAAA,GAAME,gBAAAA,CAGxC,EAAA,CAAIH,CAAAA,GAAc,QAAA,CAEhB,OAAOC,CAAAA,CAAa,WAAA,CAAY,CAAA,GAAMV,gBAAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,WAAA,CAAY,CAAA,CAG1E,EAAA,CAAIE,CAAAA,GAAa,KAAA,CAAA,CACf,MAAM,IAAIW,wBAAAA,CAAqB,CAC7B,QAAA,CAAU,UAAA,CACV,KAAA,CAAOX,CAAAA,CACP,QAAA,CAAU,yBAAA,CACV,OAAA,CACE,4GAAA,CACAO,CAAAA,CACA,sBAAA,CACAC,CACJ,CAAC,CAAA,CAEH,GAAM,CAAE,MAAA,CAAAP,CAAO,CAAA,CAAIE,iCAAAA,CAAsB,CAAA,CAEnCS,CAAAA,CAAoE,CACxE,GAAA,CAAKX,CAAAA,CAAO,MAAA,CAAO,GAAA,CACnB,KAAA,CAAOA,CAAAA,CAAO,KAAA,CAAM,KAAA,CACpB,MAAA,CAAQA,CAAAA,CAAO,MAAA,CAAO,MAAA,CACtB,GAAA,CAAKS,gBACP,CAAA,CACA,EAAA,CAAIH,EAAAA,GAAaK,CAAAA,CACf,OACEJ,CAAAA,CAAa,WAAA,CAAY,CAAA,GACzBI,CAAAA,CAASL,CAAkC,CAAA,CAAE,WAAA,CAAY,CAG/D,CAEA,IAAMM,CAAAA,CACJ,OAAON,CAAAA,EAAc,QAAA,CAAWA,CAAAA,CAAU,OAAA,CAAUA,CAAAA,CAEtD,OAAOC,CAAAA,CAAa,WAAA,CAAY,CAAA,GAAMK,CAAAA,CAAiB,WAAA,CAAY,CACrE,CAAA,2DAAA","file":"/Users/liammcaweeney/Work/bera/monobera/packages/berajs/dist/chunk-54BTOQE3.cjs","sourcesContent":[null,"import { type Address, ethAddress, isAddress, zeroAddress } from \"viem\";\n\nimport { mainnet } from \"@berachain/config/mainnet\";\n\nimport { InvalidArgumentError } from \"../errors/InvalidArgumentError\";\nimport type { TokenWithMetadata } from \"../types/dex\";\nimport { parseBaseArgs } from \"./parseBaseArgs\";\n\nexport const beraToken = {\n address: zeroAddress,\n decimals: 18,\n name: \"Bera\",\n symbol: \"BERA\",\n logoURI:\n \"https://imagedelivery.net/qNj7Q3MCke89zoKzav7eDQ/tokens/0x0000000000000000000000000000000000000000.png/public\",\n} as const satisfies Omit<TokenWithMetadata, \"chainId\">;\n\nexport const wBeraToken = {\n address: mainnet.tokens.wbera,\n decimals: 18,\n name: \"WBera\",\n symbol: \"WBERA\",\n} as const satisfies Omit<TokenWithMetadata, \"chainId\">;\n\nexport function getHoneyToken(baseArgs: BeraJS.BaseFunctionArgs) {\n const { config, chainId } = parseBaseArgs(baseArgs);\n\n return {\n address: config.honey.token,\n symbol: \"HONEY\",\n name: \"Honey\",\n decimals: 18,\n chainId,\n } as const satisfies TokenWithMetadata;\n}\n\ntype KnownTokens = \"BERA\" | \"WBERA\" | \"BGT\" | \"HONEY\" | \"SWBERA\" | \"ETH\";\n\ntype BaseToken =\n | {\n address: Address | string;\n }\n | Address;\n\ntype InputToken = BaseToken | string | undefined;\n\ntype IsTokenParams =\n | [\n token: InputToken,\n compareTo:\n | BaseToken\n | Extract<KnownTokens, \"BERA\" | \"WBERA\" | \"ETH\" | \"SWBERA\">,\n ]\n | [\n token: InputToken,\n compareTo: BaseToken | KnownTokens,\n baseArgs: BeraJS.BaseFunctionArgs,\n ];\n\nexport function isToken(...args: IsTokenParams): boolean {\n const [token, compareTo, baseArgs] = args;\n\n if (token === undefined) return false;\n\n const tokenAddress = typeof token === \"string\" ? token : token.address;\n\n if (\n typeof compareTo === \"string\" &&\n !isAddress(compareTo) &&\n // this is a safeguard against weird inputs from enso. `0x00`\n !compareTo.startsWith(\"0x\")\n ) {\n if (compareTo === \"BERA\") {\n return tokenAddress.toLowerCase() === zeroAddress;\n }\n if (compareTo === \"WBERA\") {\n // we are sure that wbera token is the same on all chains because it's checked on the config and forced as types\n return tokenAddress.toLowerCase() === mainnet.tokens.wbera;\n }\n\n if (compareTo === \"ETH\") {\n return tokenAddress.toLowerCase() === ethAddress;\n }\n\n if (compareTo === \"SWBERA\") {\n // we are sure that wbera token is the same on all chains because it's checked on the config and forced as types\n return tokenAddress.toLowerCase() === mainnet.tokens.swbera.toLowerCase();\n }\n\n if (baseArgs === undefined) {\n throw new InvalidArgumentError({\n property: \"baseArgs\",\n value: baseArgs,\n expected: \"BeraJS.BaseFunctionArgs\",\n message:\n \"baseArgs is required when compared to a known token different than BERA or WBERA. Checking against token: \" +\n compareTo +\n \" and token address: \" +\n tokenAddress,\n });\n }\n const { config } = parseBaseArgs(baseArgs);\n\n const tokenMap: Record<Exclude<KnownTokens, \"BERA\" | \"WBERA\">, Address> = {\n BGT: config.tokens.bgt,\n HONEY: config.honey.token,\n SWBERA: config.tokens.swbera,\n ETH: ethAddress as Address,\n } as const;\n if (compareTo in tokenMap) {\n return (\n tokenAddress.toLowerCase() ===\n tokenMap[compareTo as keyof typeof tokenMap].toLowerCase()\n );\n }\n }\n\n const compareToAddress =\n typeof compareTo === \"object\" ? compareTo.address : compareTo;\n\n return tokenAddress.toLowerCase() === compareToAddress.toLowerCase();\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{h as s}from"./chunk-GXV2JA36.mjs";import{isAddress as l}from"viem";function o(e){return e!=null}function f({value:e,property:t,fn:i}){let n=i(e);if(!n.isValid)throw new s({property:t,value:e,expected:n.expectedType})}function r({value:e,property:t,fn:i}){f({value:e,property:t,fn:n=>{let d=o(n),{isValid:p,expectedType:u}=i(n);return{expectedType:u,isValid:d&&p}}})}function c(e,t){r({value:e,property:t,fn:i=>({expectedType:"defined",isValid:o(i)})})}function b(e,t="publicClient"){c(e,t)}function y(e,t){r({value:e,property:t,fn:i=>({expectedType:"Address",isValid:typeof i=="string"&&l(i)})})}function g(e,t){if(!(typeof e=="bigint"?e>0n:Number(e)>0))throw new s({property:t,value:e,expected:"positive amount"})}function m(e,t){r({value:e,property:t,fn:i=>({expectedType:"number",isValid:(typeof i=="string"||typeof i=="number")&&Number(i)>0})})}export{c as a,b,y as c,g as d,m as e};
|
|
2
|
+
//# sourceMappingURL=chunk-5QAFKFM5.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/errors/assert.ts"],"sourcesContent":["import type { GetPublicClientReturnType } from \"@wagmi/core\";\nimport { type Address, isAddress, type PublicClient } from \"viem\";\n\nimport { InvalidArgumentError } from \"./InvalidArgumentError\";\n\nfunction _isDefined<T>(value: T): value is NonNullable<T> {\n return value !== undefined && value !== null;\n}\n\ntype _AssertFn<T> = (value: T) => { expectedType: string; isValid: boolean };\n\n/**\n * Internal assertion function.\n * @throws An InvalidArgumentError if the value is not valid.\n */\nfunction _assert<T>({\n value,\n property,\n fn,\n}: {\n value: T;\n property: string;\n fn: _AssertFn<T>;\n}) {\n const result = fn(value);\n if (!result.isValid) {\n throw new InvalidArgumentError({\n property,\n value,\n expected: result.expectedType,\n });\n }\n}\n\nfunction _assertDefined<T>({\n value,\n property,\n fn,\n}: {\n value: T;\n property: string;\n fn: (value: T) => { expectedType: string; isValid: boolean };\n}) {\n _assert({\n value,\n property,\n fn: (value) => {\n const isDefined = _isDefined(value);\n const { isValid, expectedType } = fn(value);\n return {\n expectedType,\n isValid: isDefined && isValid,\n };\n },\n });\n}\n\n/**\n * Asserts that a value is defined.\n * @throws An InvalidArgumentError if the value is undefined or null.\n */\nexport function assertDefined<T>(\n /**\n * The value to assert.\n */\n value: T,\n /**\n * The property name.\n */\n property: string,\n): asserts value is NonNullable<T> {\n _assertDefined({\n value,\n property,\n fn: (value) => ({ expectedType: \"defined\", isValid: _isDefined(value) }),\n });\n}\n\n/**\n * Asserts that a value is a PublicClient.\n * @throws An InvalidArgumentError if the value is undefined or not a PublicClient.\n */\nexport function assertPublicClient(\n /**\n * The value to assert.\n */\n value: // it's important to have both types here because it helps with typescript build performance\n PublicClient | GetPublicClientReturnType | undefined,\n /**\n * The property name.\n */\n property: string = \"publicClient\",\n): asserts value is PublicClient {\n // there's no current way to check if a value is a PublicClient, so we just assert it's defined and `value: PublicClient` will do the rest\n assertDefined(value, property);\n}\n\n/**\n * Asserts that a value is an address (20 bytes).\n * @throws An InvalidArgumentError if the value is undefined, null, not a string, or not an address.\n */\nexport function assertAddress(\n /**\n * The value to assert.\n */\n value: string | undefined | null,\n /**\n * The property name.\n */\n property: string,\n): asserts value is Address {\n _assertDefined({\n value,\n property,\n fn: (value) => ({\n expectedType: \"Address\",\n isValid: typeof value === \"string\" && isAddress(value),\n }),\n });\n}\n\n/**\n * Asserts that a value is positive (> 0).\n * @throws An InvalidArgumentError if the value is not positive.\n */\nexport function assertPositive(\n value: string | bigint | number,\n property: string,\n): void {\n const isPositive = typeof value === \"bigint\" ? value > 0n : Number(value) > 0;\n if (!isPositive) {\n throw new InvalidArgumentError({\n property,\n value,\n expected: \"positive amount\",\n });\n }\n}\n\n/**\n * Asserts that a value is a number greater than 0.\n * @throws An InvalidArgumentError if the value is undefined, null, not a string or number, or not a number greater than 0.\n */\nexport function assertAmount(\n /**\n * The value to assert.\n */\n value: unknown,\n /**\n * The property name.\n */\n property: string,\n): asserts value is string | number {\n _assertDefined({\n value,\n property,\n fn: (value) => ({\n expectedType: \"number\",\n isValid:\n (typeof value === \"string\" || typeof value === \"number\") &&\n Number(value) > 0,\n }),\n });\n}\n"],"mappings":"yCACA,OAAuB,aAAAA,MAAoC,OAI3D,SAASC,EAAcC,EAAmC,CACxD,OAA8BA,GAAU,IAC1C,CAQA,SAASC,EAAW,CAClB,MAAAD,EACA,SAAAE,EACA,GAAAC,CACF,EAIG,CACD,IAAMC,EAASD,EAAGH,CAAK,EACvB,GAAI,CAACI,EAAO,QACV,MAAM,IAAIC,EAAqB,CAC7B,SAAAH,EACA,MAAAF,EACA,SAAUI,EAAO,YACnB,CAAC,CAEL,CAEA,SAASE,EAAkB,CACzB,MAAAN,EACA,SAAAE,EACA,GAAAC,CACF,EAIG,CACDF,EAAQ,CACN,MAAAD,EACA,SAAAE,EACA,GAAKF,GAAU,CACb,IAAMO,EAAYR,EAAWC,CAAK,EAC5B,CAAE,QAAAQ,EAAS,aAAAC,CAAa,EAAIN,EAAGH,CAAK,EAC1C,MAAO,CACL,aAAAS,EACA,QAASF,GAAaC,CACxB,CACF,CACF,CAAC,CACH,CAMO,SAASE,EAIdV,EAIAE,EACiC,CACjCI,EAAe,CACb,MAAAN,EACA,SAAAE,EACA,GAAKF,IAAW,CAAE,aAAc,UAAW,QAASD,EAAWC,CAAK,CAAE,EACxE,CAAC,CACH,CAMO,SAASW,EAIdX,EAKAE,EAAmB,eACY,CAE/BQ,EAAcV,EAAOE,CAAQ,CAC/B,CAMO,SAASU,EAIdZ,EAIAE,EAC0B,CAC1BI,EAAe,CACb,MAAAN,EACA,SAAAE,EACA,GAAKF,IAAW,CACd,aAAc,UACd,QAAS,OAAOA,GAAU,UAAYa,EAAUb,CAAK,CACvD,EACF,CAAC,CACH,CAMO,SAASc,EACdd,EACAE,EACM,CAEN,GAAI,EADe,OAAOF,GAAU,SAAWA,EAAQ,GAAK,OAAOA,CAAK,EAAI,GAE1E,MAAM,IAAIK,EAAqB,CAC7B,SAAAH,EACA,MAAAF,EACA,SAAU,iBACZ,CAAC,CAEL,CAMO,SAASe,EAIdf,EAIAE,EACkC,CAClCI,EAAe,CACb,MAAAN,EACA,SAAAE,EACA,GAAKF,IAAW,CACd,aAAc,SACd,SACG,OAAOA,GAAU,UAAY,OAAOA,GAAU,WAC/C,OAAOA,CAAK,EAAI,CACpB,EACF,CAAC,CACH","names":["isAddress","_isDefined","value","_assert","property","fn","result","InvalidArgumentError","_assertDefined","isDefined","isValid","expectedType","assertDefined","assertPublicClient","assertAddress","isAddress","assertPositive","assertAmount"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkS4CDSVLKcjs = require('./chunk-S4CDSVLK.cjs');var _chunk6JJIZCVYcjs = require('./chunk-6JJIZCVY.cjs');async function $(e){if(_optionalChain([e, 'access', _2 => _2.headers, 'access', _3 => _3.get, 'call', _4 => _4("content-type"), 'optionalAccess', _5 => _5.includes, 'call', _6 => _6("application/json")]))return e.json();{let t=await e.text();try{return JSON.parse(t)}catch (e2){return{message:"Unknown error, can't decode response into JSON",cause:t}}}}async function C(e,n,t){try{let r=(typeof e=="string"||e instanceof URL?e.toString():e.url.toString()).replace(/0x[a-fA-F0-9]{40}/g,":address");if(_optionalChain([t, 'optionalAccess', _7 => _7.keepQueryParams])!==!0&&URL.canParse(r)){let o=new URL(r).searchParams;if(Array.isArray(_optionalChain([t, 'optionalAccess', _8 => _8.keepQueryParams]))){let u=new URLSearchParams;for(let i of t.keepQueryParams)u.set(i,_nullishCoalesce(o.get(i), () => ("")));let c=new URL(r);c.search=u.toString(),r=c.toString()}else{let u=new URL(r);u.search="",r=u.toString()}}return await _chunkS4CDSVLKcjs.a.startSpan({op:"beraFetch",name:"beraFetch",attributes:typeof e=="string"||e instanceof URL?{"operation.source.url":r,..._optionalChain([t, 'optionalAccess', _9 => _9.attributes])}:{"operation.source.url":r,"operation.source.type":e.type,"operation.source.name":e.name,..._optionalChain([t, 'optionalAccess', _10 => _10.attributes])}},async()=>{let o=await fetch(typeof e=="string"||e instanceof URL?e:e.url,{...n});if(!o.ok){let u=await $(o);throw new (0, _chunk6JJIZCVYcjs.g)({cause:u,response:o,endpoint:e})}return o})}catch(r){throw r instanceof _chunk6JJIZCVYcjs.g?r:new (0, _chunk6JJIZCVYcjs.g)({cause:r,endpoint:e,response:void 0})}}async function ne(e,n){return(await C(e,{...n,headers:{Accept:"application/json",..._optionalChain([n, 'optionalAccess', _11 => _11.headers])}})).json()}var _viem = require('viem');var ae=_viem.parseEther.call(void 0, "0.005"),ue= exports.f =1e5,ie= exports.g =1,ce= exports.h =.1,me= exports.i =50,fe= exports.j =7920027n;var be=e=>2n*BigInt(e);function he(e){return Math.floor(e/1e3)}function j(e){return e*1e3}function J(e){return e*j(60)}function k(e){return e*60}function q(e){return e*J(60)}function G(e){return e*k(60)}function I(e){return e*q(24)}function w(e){return e*G(24)}function de(e){return e*I(7)}function ge(e){return e*w(7)}function ye(e){return e*I(30)}function Ne(e){return e*w(30)}function xe(e){return e*I(365)}function Se(e){return e*w(365)}function Te(e){let n=new Date;return n.setDate(n.getDate()-e)*1e3}var X=["January","February","March","April","May","June","July","August","September","October","November","December"],Q=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Ie(e,n){let t=new Date(e*1e3),r=t.getDate(),o="th";return r===1||r===21||r===31?o="st":r===2||r===22?o="nd":(r===3||r===23)&&(o="rd"),n?`${Q[t.getMonth()]} ${r}`:`${X[t.getMonth()]} ${r}${o}, ${t.getFullYear()}`}function we(...e){let n=e[0],t,r,o,u;if(typeof e[1]!="object")t=_nullishCoalesce(e[1], () => (!1)),r=_nullishCoalesce(e[2], () => (!1)),u=_nullishCoalesce(e[3], () => (!1)),o=!0;else{let a=e[1];t=_nullishCoalesce(a.condensed, () => (!1));let s=_nullishCoalesce(a.greaterUnit, () => ("hours"));s==="days"?(r=!0,o=!0):s==="hours"?(r=!1,o=!0,u=!1):(r=!1,o=!0),u=_nullishCoalesce(a.showSeconds, () => (!1))}let c=Math.floor(n/(3600*24)),i=Math.floor(n%(3600*24)/3600),f=Math.floor(n%3600/60),m=n%60;if(r||(i+=c*24,c=0),c===0&&i===0&&f===0)return t?"< 1 M":"less than a minute";let g=c>0?`${c}${t?"D":" day"}${!t&&c!==1?"s":""}`:"",y=i>0?`${i}${t?"H":" hour"}${!t&&i!==1?"s":""}`:"",S=f>0&&o||!c&&!i?`${f}${t?"M":" minute"}${!t&&f!==1?"s":""}`:"",M=m>0&&u?`${m}${t?"S":" second"}${!t&&m!==1?"s":""}`:"";return[g,y,S,M].filter(Boolean).join(t?" ":", ")}var _bignumberjs = require('bignumber.js'); var _bignumberjs2 = _interopRequireDefault(_bignumberjs);_bignumberjs2.default.set({EXPONENTIAL_AT:1e9});var D=_bignumberjs2.default;var L=["","K","M","B","T","P","E","Z","Y"];function R(e){return e instanceof D?e:new D(e)}function Y(e,n){return R(e).shiftedBy(n*-1)}function Ee(e,n={}){if(typeof n=="number"){let h=n;if(e==null)return"";if(typeof e=="object")throw new Error("Value must be a number if using deprecated version");let b=Number(e).toFixed(h);return b=b.replace(/(\.\d*?[1-9])0+$|\.0*$/,"$1"),b}let{visibleDecimals:t,compact:r=!0,percent:o=!1,roundDown:u=!1,roundUp:c=!1,compactThreshold:i,maxValue:f,symbol:m,prefixText:g="",suffixText:y="",showIsSmallerThanMin:S=!0,ifNullish:M=""}=n||{};if(e==null)return M;let a=o?Number(e)*100:Number(e);if(Number.isNaN(a))return"NaN";if(a===Number.POSITIVE_INFINITY)return"Infinity";if(a===Number.NEGATIVE_INFINITY)return"-Infinity";let s=_nullishCoalesce(t, () => (0));a===0?s=0:t===void 0&&(Math.abs(a)>1||o||m==="USD"?s=2:s=7);let A=10**-s,F=a!==0&&Math.abs(a)<Math.abs(A),_=a<0,B=f?Math.abs(a)>f:!1,p=F?A:a,T=r&&(!i||Math.abs(a)>i);u&&!T?p=Math.trunc(Number(p)*10**s)/10**s:c&&!T&&(p=Math.ceil(Number(p)*10**s)/10**s);let N;if(B)N=a>f?"\u221E":"-\u221E";else if(T){let h=R(p),b=h.abs().toFixed(0).length;i&&Math.abs(a)<=i&&(b=0);let U=Math.min(Math.floor(b?(b-1)/3:0),L.length-1),O=L[U],d=Y(h,3*U).toNumber();u?d=Math.trunc(Number(d)*10**s)/10**s:c&&(d=Math.ceil(Number(d)*10**s)/10**s),N=`${new Intl.NumberFormat("en-US",{maximumFractionDigits:s,minimumFractionDigits:s}).format(d)}${O}`}else{let h=new Intl.NumberFormat("en-US",{maximumFractionDigits:s,minimumFractionDigits:s}).format(Math.abs(p));N=`${_?"-":""}${h}`}let l=[];return g&&l.push(g),F&&S&&l.push(a<0?">":"<"),_optionalChain([m, 'optionalAccess', _12 => _12.toLowerCase, 'call', _13 => _13()])==="usd"&&!o&&l.push("$"),l.push(N),o&&l.push("%"),_optionalChain([m, 'optionalAccess', _14 => _14.toLowerCase, 'call', _15 => _15()])!=="usd"&&typeof m<"u"&&l.push(" ",m),y&&l.push(y),l.join("")}var $e=e=>e?Number(e)>Number.MAX_SAFE_INTEGER?Number.MAX_SAFE_INTEGER:_nullishCoalesce(Number(e), () => (0)):0,Pe= exports.E =(e,n)=>{if(!e)return"0";let[t="0",r="0"]=`${e}`.split(".");return`${t}.${r.substring(0,n)}`};var _internal = require('@berachain/config/internal');function Be(e=_internal.defaultChainId){let n=_internal.getRpcUrls.call(void 0, e);if(!n.isAnvil)throw new Error("No anvil RPC URL found");return _viem.createTestClient.call(void 0, {mode:"anvil",transport:_viem.http.call(void 0, n.jsonRpcUrl)})}exports.a = D; exports.b = $; exports.c = C; exports.d = ne; exports.e = ae; exports.f = ue; exports.g = ie; exports.h = ce; exports.i = me; exports.j = fe; exports.k = be; exports.l = he; exports.m = j; exports.n = J; exports.o = k; exports.p = q; exports.q = G; exports.r = I; exports.s = w; exports.t = de; exports.u = ge; exports.v = ye; exports.w = Ne; exports.x = xe; exports.y = Se; exports.z = Te; exports.A = Ie; exports.B = we; exports.C = Ee; exports.D = $e; exports.E = Pe; exports.F = Be;
|
|
2
|
+
//# sourceMappingURL=chunk-6DIA6PXV.cjs.map
|