@glowlabs-org/utils 0.2.168 → 0.2.169

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/cjs/index.js CHANGED
@@ -15,7 +15,7 @@ var viem = require('viem');
15
15
  var merkletreejs = require('merkletreejs');
16
16
  var ethers = require('ethers');
17
17
  var Decimal = require('decimal.js');
18
- var calculateFarmEfficiency = require('./calculate-farm-efficiency-D-hx2uPV.js');
18
+ var calculateFarmEfficiency = require('./calculate-farm-efficiency-BVpffn8k.js');
19
19
 
20
20
  const GENESIS_TIMESTAMP = 1700352000;
21
21
 
@@ -22,6 +22,36 @@ export interface MigrateUserRequest {
22
22
  export interface MigrateUserResponse {
23
23
  success: true;
24
24
  }
25
+ export interface DelegateSgctlRequest {
26
+ wallet: string;
27
+ applicationId: string;
28
+ fractionId: string;
29
+ amount: string;
30
+ signature: string;
31
+ deadline: string;
32
+ nonce: string;
33
+ }
34
+ export interface DelegateSgctlResponse {
35
+ success: true;
36
+ delegationId: string;
37
+ }
38
+ export interface RefundDelegationRequest {
39
+ fractionId: string;
40
+ }
41
+ export interface RefundDelegationResponse {
42
+ success: true;
43
+ fractionId: string;
44
+ processed: number;
45
+ }
46
+ export interface FinalizeDelegationRequest {
47
+ fractionId: string;
48
+ farmId: string;
49
+ }
50
+ export interface FinalizeDelegationResponse {
51
+ success: true;
52
+ fractionId: string;
53
+ processed: number;
54
+ }
25
55
  export declare function ControlRouter(baseUrl: string): {
26
56
  readonly fetchGctlBalance: (wallet: string) => Promise<string>;
27
57
  readonly fetchCommittedBalance: (wallet: string) => Promise<string>;
@@ -48,10 +78,14 @@ export declare function ControlRouter(baseUrl: string): {
48
78
  readonly retryFailedOperation: (operationId: string) => Promise<RetryFailedOperationResponse>;
49
79
  readonly payProtocolDepositUsingStakedControl: (paymentRequest: PayProtocolDepositUsingStakedControlRequest) => Promise<PayProtocolDepositUsingStakedControlResponse>;
50
80
  readonly migrateUser: (migrateRequest: MigrateUserRequest) => Promise<MigrateUserResponse>;
81
+ readonly delegateSgctl: (delegationRequest: DelegateSgctlRequest) => Promise<DelegateSgctlResponse>;
82
+ readonly refundDelegation: (refundRequest: RefundDelegationRequest) => Promise<RefundDelegationResponse>;
83
+ readonly finalizeDelegation: (finalizeRequest: FinalizeDelegationRequest) => Promise<FinalizeDelegationResponse>;
51
84
  readonly isStaking: boolean;
52
85
  readonly isUnstaking: boolean;
53
86
  readonly isRestaking: boolean;
54
87
  readonly isRetryingFailedOperation: boolean;
55
88
  readonly isPayingProtocolDepositUsingStakedControl: boolean;
56
89
  readonly isMigratingUser: boolean;
90
+ readonly isDelegatingSgctl: boolean;
57
91
  };
@@ -122,6 +122,24 @@ export declare const verifyUserEIP712Types: {
122
122
  readonly type: "uint256";
123
123
  }];
124
124
  };
125
+ export declare const delegateSgctlEIP712Types: {
126
+ readonly DelegateSgctl: readonly [{
127
+ readonly name: "nonce";
128
+ readonly type: "uint256";
129
+ }, {
130
+ readonly name: "amount";
131
+ readonly type: "uint256";
132
+ }, {
133
+ readonly name: "applicationId";
134
+ readonly type: "string";
135
+ }, {
136
+ readonly name: "fractionId";
137
+ readonly type: "string";
138
+ }, {
139
+ readonly name: "deadline";
140
+ readonly type: "uint256";
141
+ }];
142
+ };
125
143
  export declare const stakeSignatureRequestSchema: z.ZodObject<{
126
144
  wallet: z.ZodString;
127
145
  signature: z.ZodString;
@@ -185,6 +203,15 @@ export declare const verifyUserSignatureRequestSchema: z.ZodObject<{
185
203
  nonce: z.ZodString;
186
204
  deadline: z.ZodString;
187
205
  }, z.core.$strip>;
206
+ export declare const delegateSgctlSignatureRequestSchema: z.ZodObject<{
207
+ wallet: z.ZodString;
208
+ signature: z.ZodString;
209
+ nonce: z.ZodString;
210
+ amount: z.ZodString;
211
+ applicationId: z.ZodString;
212
+ fractionId: z.ZodString;
213
+ deadline: z.ZodString;
214
+ }, z.core.$strip>;
188
215
  export type StakeSignatureRequest = z.infer<typeof stakeSignatureRequestSchema>;
189
216
  export type UnstakeUnlockSignatureRequest = z.infer<typeof unstakeUnlockSignatureRequestSchema>;
190
217
  export type UnstakeMoveSignatureRequest = z.infer<typeof unstakeMoveSignatureRequestSchema>;
@@ -193,6 +220,7 @@ export type CommitKickstarterSignatureRequest = z.infer<typeof commitKickstarter
193
220
  export type ApplyCertifiedInstallerSignatureRequest = z.infer<typeof applyCertifiedInstallerSignatureRequestSchema>;
194
221
  export type PayProtocolDepositUsingStakedControlSignatureRequest = z.infer<typeof payProtocolDepositUsingStakedControlSignatureRequestSchema>;
195
222
  export type VerifyUserSignatureRequest = z.infer<typeof verifyUserSignatureRequestSchema>;
223
+ export type DelegateSgctlSignatureRequest = z.infer<typeof delegateSgctlSignatureRequestSchema>;
196
224
  export type StakeMessage = {
197
225
  nonce: bigint;
198
226
  amount: bigint;
@@ -247,6 +275,13 @@ export type VerifyUserMessage = {
247
275
  nonce: bigint;
248
276
  deadline: bigint;
249
277
  };
278
+ export type DelegateSgctlMessage = {
279
+ nonce: bigint;
280
+ amount: bigint;
281
+ applicationId: string;
282
+ fractionId: string;
283
+ deadline: bigint;
284
+ };
250
285
  export type SignatureValidationReason = "deadline_expired" | "signature_failed" | "signer_mismatch" | null;
251
286
  export type SignatureValidationResult = {
252
287
  valid: boolean;
@@ -261,6 +296,7 @@ type CommitKickstarterMessageInput = Pick<CommitKickstarterSignatureRequest, "no
261
296
  type ApplyCertifiedInstallerMessageInput = Pick<ApplyCertifiedInstallerSignatureRequest, "nonce" | "regionId" | "deadline">;
262
297
  type PayProtocolDepositUsingStakedControlMessageInput = Pick<PayProtocolDepositUsingStakedControlSignatureRequest, "amount" | "applicationId" | "nonce" | "deadline">;
263
298
  type VerifyUserMessageInput = Pick<VerifyUserSignatureRequest, "nonce" | "deadline">;
299
+ type DelegateSgctlMessageInput = Pick<DelegateSgctlSignatureRequest, "nonce" | "amount" | "applicationId" | "fractionId" | "deadline">;
264
300
  export declare function buildStakeMessage(req: StakeMessageInput): StakeMessage;
265
301
  export declare function buildUnstakeUnlockMessage(req: UnstakeUnlockMessageInput): UnstakeUnlockMessage;
266
302
  export declare function buildUnstakeMoveMessage(req: UnstakeMoveMessageInput): UnstakeMoveMessage;
@@ -269,6 +305,7 @@ export declare function buildCommitKickstarterMessage(req: CommitKickstarterMess
269
305
  export declare function buildApplyCertifiedInstallerMessage(req: ApplyCertifiedInstallerMessageInput): ApplyCertifiedInstallerMessage;
270
306
  export declare function buildPayProtocolDepositUsingStakedControlMessage(req: PayProtocolDepositUsingStakedControlMessageInput): PayProtocolDepositUsingStakedControlMessage;
271
307
  export declare function buildVerifyUserMessage(req: VerifyUserMessageInput): VerifyUserMessage;
308
+ export declare function buildDelegateSgctlMessage(req: DelegateSgctlMessageInput): DelegateSgctlMessage;
272
309
  export declare function validateStakeSignature(input: StakeSignatureRequest, domain?: ReturnType<typeof stakeControlEIP712Domain>): Promise<SignatureValidationResult>;
273
310
  export declare function validateUnstakeUnlockSignature(input: UnstakeUnlockSignatureRequest, domain?: ReturnType<typeof stakeControlEIP712Domain>): Promise<SignatureValidationResult>;
274
311
  export declare function validateUnstakeMoveSignature(input: UnstakeMoveSignatureRequest, domain?: ReturnType<typeof stakeControlEIP712Domain>): Promise<SignatureValidationResult>;
@@ -277,4 +314,5 @@ export declare function validateCommitKickstarterSignature(input: CommitKickstar
277
314
  export declare function validateApplyCertifiedInstallerSignature(input: ApplyCertifiedInstallerSignatureRequest, domain?: ReturnType<typeof stakeControlEIP712Domain>): Promise<SignatureValidationResult>;
278
315
  export declare function validatePayProtocolDepositUsingStakedControlSignature(input: PayProtocolDepositUsingStakedControlSignatureRequest, domain?: ReturnType<typeof stakeControlEIP712Domain>): Promise<SignatureValidationResult>;
279
316
  export declare function validateVerifyUserSignature(input: VerifyUserSignatureRequest, domain?: ReturnType<typeof stakeControlEIP712Domain>): Promise<SignatureValidationResult>;
317
+ export declare function validateDelegateSgctlSignature(input: DelegateSgctlSignatureRequest, domain?: ReturnType<typeof stakeControlEIP712Domain>): Promise<SignatureValidationResult>;
280
318
  export {};
@@ -1,5 +1,5 @@
1
- import { T as TRANSFER_TYPES } from './calculate-farm-efficiency-DXMSn59D.js';
2
- export { C as ControlRouter, D as DECIMALS_BY_TOKEN, m as FORWARDER_ABI, F as FarmsRouter, g as ForwarderError, t as GCA_URLS, s as GCTL_OFFCHAIN_TOKEN_ADDRESS, G as GLOW_WEIGHT_DECIMAL_PRECISION, H as HUB_URL, e as KICKSTARTER_STATUS, K as KickstarterRouter, M as MAX_WEIGHT, n as OFFCHAIN_FRACTIONS_ABI, O as OFF_CHAIN_PAYMENT_CURRENCIES, h as OffchainFractionsError, P as PAYMENT_CURRENCIES, d as REGIONS, o as REWARDS_KERNEL_ABI, R as RegionRouter, i as RewardsKernelError, q as SGCTL_OFFCHAIN_TOKEN_ADDRESS, S as STAKING_DIRECTIONS, U as USDG_WEIGHT_DECIMAL_PRECISION, W as WalletsRouter, j as allRegions, f as calculateFarmEfficiency, c as configureSentry, l as countries, p as getAddresses, w as parseEthersError, v as parseViemError, r as regionMetadata, k as usStates, u as useForwarder, a as useOffchainFractions, b as useRewardsKernel, y as waitForEthersTransactionWithRetry, x as waitForViemTransactionWithRetry } from './calculate-farm-efficiency-DXMSn59D.js';
1
+ import { T as TRANSFER_TYPES } from './calculate-farm-efficiency-Cq10L_Uq.js';
2
+ export { C as ControlRouter, D as DECIMALS_BY_TOKEN, m as FORWARDER_ABI, F as FarmsRouter, g as ForwarderError, t as GCA_URLS, s as GCTL_OFFCHAIN_TOKEN_ADDRESS, G as GLOW_WEIGHT_DECIMAL_PRECISION, H as HUB_URL, e as KICKSTARTER_STATUS, K as KickstarterRouter, M as MAX_WEIGHT, n as OFFCHAIN_FRACTIONS_ABI, O as OFF_CHAIN_PAYMENT_CURRENCIES, h as OffchainFractionsError, P as PAYMENT_CURRENCIES, d as REGIONS, o as REWARDS_KERNEL_ABI, R as RegionRouter, i as RewardsKernelError, q as SGCTL_OFFCHAIN_TOKEN_ADDRESS, S as STAKING_DIRECTIONS, U as USDG_WEIGHT_DECIMAL_PRECISION, W as WalletsRouter, j as allRegions, f as calculateFarmEfficiency, c as configureSentry, l as countries, p as getAddresses, w as parseEthersError, v as parseViemError, r as regionMetadata, k as usStates, u as useForwarder, a as useOffchainFractions, b as useRewardsKernel, y as waitForEthersTransactionWithRetry, x as waitForViemTransactionWithRetry } from './calculate-farm-efficiency-Cq10L_Uq.js';
3
3
  import 'decimal.js';
4
4
  import { verifyTypedData, checksumAddress } from 'viem';
5
5
  import 'ethers';
@@ -12012,6 +12012,15 @@ const verifyUserEIP712Types = {
12012
12012
  { name: "deadline", type: "uint256" },
12013
12013
  ],
12014
12014
  };
12015
+ const delegateSgctlEIP712Types = {
12016
+ DelegateSgctl: [
12017
+ { name: "nonce", type: "uint256" },
12018
+ { name: "amount", type: "uint256" },
12019
+ { name: "applicationId", type: "string" },
12020
+ { name: "fractionId", type: "string" },
12021
+ { name: "deadline", type: "uint256" },
12022
+ ],
12023
+ };
12015
12024
  // Separate request schemas for clarity between stake and unstake
12016
12025
  const stakeSignatureRequestSchema = z.object({
12017
12026
  wallet: z.string().regex(/^0x[a-fA-F0-9]{40}$/),
@@ -12076,6 +12085,15 @@ const verifyUserSignatureRequestSchema = z.object({
12076
12085
  nonce: z.string(),
12077
12086
  deadline: z.string(),
12078
12087
  });
12088
+ const delegateSgctlSignatureRequestSchema = z.object({
12089
+ wallet: z.string().regex(/^0x[a-fA-F0-9]{40}$/),
12090
+ signature: z.string().regex(/^0x[a-fA-F0-9]{130}$/),
12091
+ nonce: z.string(),
12092
+ amount: z.string(),
12093
+ applicationId: z.string(),
12094
+ fractionId: z.string(),
12095
+ deadline: z.string(),
12096
+ });
12079
12097
  function isDeadlineExpired(deadline) {
12080
12098
  const nowSeconds = BigInt(Math.floor(Date.now() / 1000));
12081
12099
  return deadline < nowSeconds;
@@ -12193,6 +12211,24 @@ function buildVerifyUserMessage(req) {
12193
12211
  throw new Error("Deadline must be non-negative");
12194
12212
  return { nonce, deadline };
12195
12213
  }
12214
+ function buildDelegateSgctlMessage(req) {
12215
+ const nonce = BigInt(req.nonce);
12216
+ const amount = BigInt(req.amount);
12217
+ const deadline = BigInt(req.deadline);
12218
+ const applicationId = req.applicationId;
12219
+ const fractionId = req.fractionId;
12220
+ if (nonce < 0n)
12221
+ throw new Error("Nonce must be non-negative");
12222
+ if (amount < 0n)
12223
+ throw new Error("Amount must be non-negative");
12224
+ if (deadline < 0n)
12225
+ throw new Error("Deadline must be non-negative");
12226
+ if (!applicationId)
12227
+ throw new Error("applicationId must be non-empty");
12228
+ if (!fractionId)
12229
+ throw new Error("fractionId must be non-empty");
12230
+ return { nonce, amount, applicationId, fractionId, deadline };
12231
+ }
12196
12232
  // Helper to validate the signature using viem
12197
12233
  async function validateStakeSignature(input, domain = stakeControlEIP712Domain(Number(process.env.CHAIN_ID) || 1)) {
12198
12234
  const message = buildStakeMessage({
@@ -12409,6 +12445,34 @@ async function validateVerifyUserSignature(input, domain = stakeControlEIP712Dom
12409
12445
  return { valid: false, recovered: null, reason: "signature_failed" };
12410
12446
  }
12411
12447
  }
12448
+ async function validateDelegateSgctlSignature(input, domain = stakeControlEIP712Domain(Number(process.env.CHAIN_ID) || 1)) {
12449
+ const message = buildDelegateSgctlMessage({
12450
+ nonce: input.nonce,
12451
+ amount: input.amount,
12452
+ applicationId: input.applicationId,
12453
+ fractionId: input.fractionId,
12454
+ deadline: input.deadline,
12455
+ });
12456
+ if (isDeadlineExpired(message.deadline)) {
12457
+ return { valid: false, recovered: null, reason: "deadline_expired" };
12458
+ }
12459
+ try {
12460
+ const verified = await verifyTypedData({
12461
+ address: checksumAddress(input.wallet),
12462
+ domain,
12463
+ types: delegateSgctlEIP712Types,
12464
+ primaryType: "DelegateSgctl",
12465
+ message,
12466
+ signature: input.signature,
12467
+ });
12468
+ return verified
12469
+ ? { valid: true, recovered: input.wallet, reason: null }
12470
+ : { valid: false, recovered: null, reason: "signer_mismatch" };
12471
+ }
12472
+ catch (_) {
12473
+ return { valid: false, recovered: null, reason: "signature_failed" };
12474
+ }
12475
+ }
12412
12476
 
12413
- export { TRANSFER_TYPES, applyCertifiedInstallerEIP712Types, applyCertifiedInstallerSignatureRequestSchema, buildApplyCertifiedInstallerMessage, buildCommitKickstarterMessage, buildPayProtocolDepositUsingStakedControlMessage, buildRestakeMessage, buildStakeMessage, buildUnstakeMoveMessage, buildUnstakeUnlockMessage, buildVerifyUserMessage, commitKickstarterEIP712Types, commitKickstarterSignatureRequestSchema, payProtocolDepositUsingStakedControlEIP712Types, payProtocolDepositUsingStakedControlSignatureRequestSchema, restakeEIP712Types, restakeSignatureRequestSchema, stakeControlEIP712Domain, stakeEIP712Types, stakeSignatureRequestSchema, unstakeMoveEIP712Types, unstakeMoveSignatureRequestSchema, unstakeUnlockEIP712Types, unstakeUnlockSignatureRequestSchema, validateApplyCertifiedInstallerSignature, validateCommitKickstarterSignature, validatePayProtocolDepositUsingStakedControlSignature, validateRestakeSignature, validateStakeSignature, validateUnstakeMoveSignature, validateUnstakeUnlockSignature, validateVerifyUserSignature, verifyUserEIP712Types, verifyUserSignatureRequestSchema };
12477
+ export { TRANSFER_TYPES, applyCertifiedInstallerEIP712Types, applyCertifiedInstallerSignatureRequestSchema, buildApplyCertifiedInstallerMessage, buildCommitKickstarterMessage, buildDelegateSgctlMessage, buildPayProtocolDepositUsingStakedControlMessage, buildRestakeMessage, buildStakeMessage, buildUnstakeMoveMessage, buildUnstakeUnlockMessage, buildVerifyUserMessage, commitKickstarterEIP712Types, commitKickstarterSignatureRequestSchema, delegateSgctlEIP712Types, delegateSgctlSignatureRequestSchema, payProtocolDepositUsingStakedControlEIP712Types, payProtocolDepositUsingStakedControlSignatureRequestSchema, restakeEIP712Types, restakeSignatureRequestSchema, stakeControlEIP712Domain, stakeEIP712Types, stakeSignatureRequestSchema, unstakeMoveEIP712Types, unstakeMoveSignatureRequestSchema, unstakeUnlockEIP712Types, unstakeUnlockSignatureRequestSchema, validateApplyCertifiedInstallerSignature, validateCommitKickstarterSignature, validateDelegateSgctlSignature, validatePayProtocolDepositUsingStakedControlSignature, validateRestakeSignature, validateStakeSignature, validateUnstakeMoveSignature, validateUnstakeUnlockSignature, validateVerifyUserSignature, verifyUserEIP712Types, verifyUserSignatureRequestSchema };
12414
12478
  //# sourceMappingURL=browser.js.map