@glowlabs-org/utils 0.2.132 → 0.2.134
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/browser.js +123 -17
- package/dist/cjs/browser.js.map +1 -1
- package/dist/cjs/{farms-router-DXTR8f4V.js → farms-router-YNZCAbcx.js} +32 -1
- package/dist/cjs/farms-router-YNZCAbcx.js.map +1 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/lib/control-api/control-router.d.ts +11 -0
- package/dist/cjs/lib/control-api/wallets-router.d.ts +2 -1
- package/dist/cjs/lib/types/index.d.ts +6 -0
- package/dist/cjs/utils/stake-control.d.ts +59 -1
- package/dist/esm/browser.js +118 -20
- package/dist/esm/browser.js.map +1 -1
- package/dist/esm/{farms-router-DqPqj03h.js → farms-router-3HPIYGQ_.js} +32 -1
- package/dist/esm/farms-router-3HPIYGQ_.js.map +1 -0
- package/dist/esm/index.js +2 -2
- package/dist/esm/lib/control-api/control-router.d.ts +11 -0
- package/dist/esm/lib/control-api/wallets-router.d.ts +2 -1
- package/dist/esm/lib/types/index.d.ts +6 -0
- package/dist/esm/utils/stake-control.d.ts +59 -1
- package/package.json +1 -1
- package/src/lib/control-api/control-router.ts +34 -0
- package/src/lib/control-api/wallets-router.ts +19 -1
- package/src/lib/types/index.ts +7 -0
- package/src/utils/stake-control.ts +165 -16
- package/dist/cjs/farms-router-DXTR8f4V.js.map +0 -1
- package/dist/esm/farms-router-DqPqj03h.js.map +0 -1
package/dist/cjs/browser.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var farmsRouter = require('./farms-router-
|
|
3
|
+
var farmsRouter = require('./farms-router-YNZCAbcx.js');
|
|
4
4
|
var viem = require('viem');
|
|
5
5
|
require('ethers');
|
|
6
6
|
|
|
@@ -11991,6 +11991,13 @@ const commitKickstarterEIP712Types = {
|
|
|
11991
11991
|
{ name: "deadline", type: "uint256" },
|
|
11992
11992
|
],
|
|
11993
11993
|
};
|
|
11994
|
+
const applyCertifiedInstallerEIP712Types = {
|
|
11995
|
+
ApplyCertifiedInstaller: [
|
|
11996
|
+
{ name: "nonce", type: "uint256" },
|
|
11997
|
+
{ name: "regionId", type: "uint256" },
|
|
11998
|
+
{ name: "deadline", type: "uint256" },
|
|
11999
|
+
],
|
|
12000
|
+
};
|
|
11994
12001
|
const payProtocolDepositUsingStakedControlEIP712Types = {
|
|
11995
12002
|
PayProtocolDepositUsingStakedControl: [
|
|
11996
12003
|
{ name: "amount", type: "uint256" },
|
|
@@ -11999,6 +12006,12 @@ const payProtocolDepositUsingStakedControlEIP712Types = {
|
|
|
11999
12006
|
{ name: "deadline", type: "uint256" },
|
|
12000
12007
|
],
|
|
12001
12008
|
};
|
|
12009
|
+
const verifyUserEIP712Types = {
|
|
12010
|
+
VerifyUser: [
|
|
12011
|
+
{ name: "nonce", type: "uint256" },
|
|
12012
|
+
{ name: "deadline", type: "uint256" },
|
|
12013
|
+
],
|
|
12014
|
+
};
|
|
12002
12015
|
// Separate request schemas for clarity between stake and unstake
|
|
12003
12016
|
const stakeSignatureRequestSchema = z.object({
|
|
12004
12017
|
wallet: z.string().regex(/^0x[a-fA-F0-9]{40}$/),
|
|
@@ -12042,12 +12055,25 @@ const commitKickstarterSignatureRequestSchema = z.object({
|
|
|
12042
12055
|
kickstarterId: z.string(),
|
|
12043
12056
|
deadline: z.string(),
|
|
12044
12057
|
});
|
|
12045
|
-
const
|
|
12058
|
+
const applyCertifiedInstallerSignatureRequestSchema = z.object({
|
|
12046
12059
|
wallet: z.string().regex(/^0x[a-fA-F0-9]{40}$/),
|
|
12047
12060
|
signature: z.string().regex(/^0x[a-fA-F0-9]{130}$/),
|
|
12048
12061
|
nonce: z.string(),
|
|
12062
|
+
regionId: z.string(),
|
|
12063
|
+
deadline: z.string(),
|
|
12064
|
+
});
|
|
12065
|
+
const payProtocolDepositUsingStakedControlSignatureRequestSchema = z.object({
|
|
12066
|
+
wallet: z.string().regex(/^0x[a-fA-F0-9]{40}$/),
|
|
12067
|
+
signature: z.string().regex(/^0x[a-fA-F0-9]{130}$/),
|
|
12049
12068
|
amount: z.string(),
|
|
12050
12069
|
applicationId: z.string(),
|
|
12070
|
+
nonce: z.string(),
|
|
12071
|
+
deadline: z.string(),
|
|
12072
|
+
});
|
|
12073
|
+
const verifyUserSignatureRequestSchema = z.object({
|
|
12074
|
+
wallet: z.string().regex(/^0x[a-fA-F0-9]{40}$/),
|
|
12075
|
+
signature: z.string().regex(/^0x[a-fA-F0-9]{130}$/),
|
|
12076
|
+
nonce: z.string(),
|
|
12051
12077
|
deadline: z.string(),
|
|
12052
12078
|
});
|
|
12053
12079
|
function isDeadlineExpired(deadline) {
|
|
@@ -12131,23 +12157,44 @@ function buildCommitKickstarterMessage(req) {
|
|
|
12131
12157
|
throw new Error("kickstarterId must be non-empty");
|
|
12132
12158
|
return { nonce, amount, kickstarterId, deadline };
|
|
12133
12159
|
}
|
|
12160
|
+
function buildApplyCertifiedInstallerMessage(req) {
|
|
12161
|
+
const nonce = BigInt(req.nonce);
|
|
12162
|
+
const deadline = BigInt(req.deadline);
|
|
12163
|
+
const regionId = req.regionId;
|
|
12164
|
+
if (nonce < 0n)
|
|
12165
|
+
throw new Error("Nonce must be non-negative");
|
|
12166
|
+
if (deadline < 0n)
|
|
12167
|
+
throw new Error("Deadline must be non-negative");
|
|
12168
|
+
if (!regionId)
|
|
12169
|
+
throw new Error("regionId must be non-empty");
|
|
12170
|
+
return { nonce, regionId: BigInt(regionId), deadline };
|
|
12171
|
+
}
|
|
12134
12172
|
function buildPayProtocolDepositUsingStakedControlMessage(req) {
|
|
12135
|
-
const amount = BigInt(req.amount);
|
|
12136
12173
|
const nonce = BigInt(req.nonce);
|
|
12174
|
+
const amount = BigInt(req.amount);
|
|
12137
12175
|
const deadline = BigInt(req.deadline);
|
|
12138
12176
|
const applicationId = req.applicationId;
|
|
12139
|
-
if (amount < 0n)
|
|
12140
|
-
throw new Error("Amount must be non-negative");
|
|
12141
12177
|
if (nonce < 0n)
|
|
12142
12178
|
throw new Error("Nonce must be non-negative");
|
|
12179
|
+
if (amount < 0n)
|
|
12180
|
+
throw new Error("Amount must be non-negative");
|
|
12143
12181
|
if (deadline < 0n)
|
|
12144
12182
|
throw new Error("Deadline must be non-negative");
|
|
12145
12183
|
if (!applicationId)
|
|
12146
12184
|
throw new Error("applicationId must be non-empty");
|
|
12147
12185
|
return { amount, applicationId, nonce, deadline };
|
|
12148
12186
|
}
|
|
12187
|
+
function buildVerifyUserMessage(req) {
|
|
12188
|
+
const nonce = BigInt(req.nonce);
|
|
12189
|
+
const deadline = BigInt(req.deadline);
|
|
12190
|
+
if (nonce < 0n)
|
|
12191
|
+
throw new Error("Nonce must be non-negative");
|
|
12192
|
+
if (deadline < 0n)
|
|
12193
|
+
throw new Error("Deadline must be non-negative");
|
|
12194
|
+
return { nonce, deadline };
|
|
12195
|
+
}
|
|
12149
12196
|
// Helper to validate the signature using viem
|
|
12150
|
-
async function validateStakeSignature(input, domain = stakeControlEIP712Domain(1)) {
|
|
12197
|
+
async function validateStakeSignature(input, domain = stakeControlEIP712Domain(Number(process.env.CHAIN_ID) || 1)) {
|
|
12151
12198
|
const message = buildStakeMessage({
|
|
12152
12199
|
nonce: input.nonce,
|
|
12153
12200
|
amount: input.amount,
|
|
@@ -12159,7 +12206,7 @@ async function validateStakeSignature(input, domain = stakeControlEIP712Domain(1
|
|
|
12159
12206
|
}
|
|
12160
12207
|
try {
|
|
12161
12208
|
const verified = await viem.verifyTypedData({
|
|
12162
|
-
address: input.wallet,
|
|
12209
|
+
address: viem.checksumAddress(input.wallet),
|
|
12163
12210
|
domain,
|
|
12164
12211
|
types: stakeEIP712Types,
|
|
12165
12212
|
primaryType: "Stake",
|
|
@@ -12174,7 +12221,7 @@ async function validateStakeSignature(input, domain = stakeControlEIP712Domain(1
|
|
|
12174
12221
|
return { valid: false, recovered: null, reason: "signature_failed" };
|
|
12175
12222
|
}
|
|
12176
12223
|
}
|
|
12177
|
-
async function validateUnstakeUnlockSignature(input, domain = stakeControlEIP712Domain(1)) {
|
|
12224
|
+
async function validateUnstakeUnlockSignature(input, domain = stakeControlEIP712Domain(Number(process.env.CHAIN_ID) || 1)) {
|
|
12178
12225
|
const message = buildUnstakeUnlockMessage({
|
|
12179
12226
|
nonce: input.nonce,
|
|
12180
12227
|
amount: input.amount,
|
|
@@ -12186,7 +12233,7 @@ async function validateUnstakeUnlockSignature(input, domain = stakeControlEIP712
|
|
|
12186
12233
|
}
|
|
12187
12234
|
try {
|
|
12188
12235
|
const verified = await viem.verifyTypedData({
|
|
12189
|
-
address: input.wallet,
|
|
12236
|
+
address: viem.checksumAddress(input.wallet),
|
|
12190
12237
|
domain,
|
|
12191
12238
|
types: unstakeUnlockEIP712Types,
|
|
12192
12239
|
primaryType: "Unstake",
|
|
@@ -12201,7 +12248,7 @@ async function validateUnstakeUnlockSignature(input, domain = stakeControlEIP712
|
|
|
12201
12248
|
return { valid: false, recovered: null, reason: "signature_failed" };
|
|
12202
12249
|
}
|
|
12203
12250
|
}
|
|
12204
|
-
async function validateUnstakeMoveSignature(input, domain = stakeControlEIP712Domain(1)) {
|
|
12251
|
+
async function validateUnstakeMoveSignature(input, domain = stakeControlEIP712Domain(Number(process.env.CHAIN_ID) || 1)) {
|
|
12205
12252
|
const message = buildUnstakeMoveMessage({
|
|
12206
12253
|
nonce: input.nonce,
|
|
12207
12254
|
amount: input.amount,
|
|
@@ -12214,7 +12261,7 @@ async function validateUnstakeMoveSignature(input, domain = stakeControlEIP712Do
|
|
|
12214
12261
|
}
|
|
12215
12262
|
try {
|
|
12216
12263
|
const verified = await viem.verifyTypedData({
|
|
12217
|
-
address: input.wallet,
|
|
12264
|
+
address: viem.checksumAddress(input.wallet),
|
|
12218
12265
|
domain,
|
|
12219
12266
|
types: unstakeMoveEIP712Types,
|
|
12220
12267
|
primaryType: "UnstakeMove",
|
|
@@ -12229,7 +12276,7 @@ async function validateUnstakeMoveSignature(input, domain = stakeControlEIP712Do
|
|
|
12229
12276
|
return { valid: false, recovered: null, reason: "signature_failed" };
|
|
12230
12277
|
}
|
|
12231
12278
|
}
|
|
12232
|
-
async function validateRestakeSignature(input, domain = stakeControlEIP712Domain(1)) {
|
|
12279
|
+
async function validateRestakeSignature(input, domain = stakeControlEIP712Domain(Number(process.env.CHAIN_ID) || 1)) {
|
|
12233
12280
|
const message = buildRestakeMessage({
|
|
12234
12281
|
nonce: input.nonce,
|
|
12235
12282
|
amount: input.amount,
|
|
@@ -12242,7 +12289,7 @@ async function validateRestakeSignature(input, domain = stakeControlEIP712Domain
|
|
|
12242
12289
|
}
|
|
12243
12290
|
try {
|
|
12244
12291
|
const verified = await viem.verifyTypedData({
|
|
12245
|
-
address: input.wallet,
|
|
12292
|
+
address: viem.checksumAddress(input.wallet),
|
|
12246
12293
|
domain,
|
|
12247
12294
|
types: restakeEIP712Types,
|
|
12248
12295
|
primaryType: "Restake",
|
|
@@ -12257,7 +12304,7 @@ async function validateRestakeSignature(input, domain = stakeControlEIP712Domain
|
|
|
12257
12304
|
return { valid: false, recovered: null, reason: "signature_failed" };
|
|
12258
12305
|
}
|
|
12259
12306
|
}
|
|
12260
|
-
async function validateCommitKickstarterSignature(input, domain = stakeControlEIP712Domain(1)) {
|
|
12307
|
+
async function validateCommitKickstarterSignature(input, domain = stakeControlEIP712Domain(Number(process.env.CHAIN_ID) || 1)) {
|
|
12261
12308
|
const message = buildCommitKickstarterMessage({
|
|
12262
12309
|
nonce: input.nonce,
|
|
12263
12310
|
amount: input.amount,
|
|
@@ -12269,7 +12316,7 @@ async function validateCommitKickstarterSignature(input, domain = stakeControlEI
|
|
|
12269
12316
|
}
|
|
12270
12317
|
try {
|
|
12271
12318
|
const verified = await viem.verifyTypedData({
|
|
12272
|
-
address: input.wallet,
|
|
12319
|
+
address: viem.checksumAddress(input.wallet),
|
|
12273
12320
|
domain,
|
|
12274
12321
|
types: commitKickstarterEIP712Types,
|
|
12275
12322
|
primaryType: "CommitKickstarter",
|
|
@@ -12284,7 +12331,33 @@ async function validateCommitKickstarterSignature(input, domain = stakeControlEI
|
|
|
12284
12331
|
return { valid: false, recovered: null, reason: "signature_failed" };
|
|
12285
12332
|
}
|
|
12286
12333
|
}
|
|
12287
|
-
async function
|
|
12334
|
+
async function validateApplyCertifiedInstallerSignature(input, domain = stakeControlEIP712Domain(Number(process.env.CHAIN_ID) || 1)) {
|
|
12335
|
+
const message = buildApplyCertifiedInstallerMessage({
|
|
12336
|
+
nonce: input.nonce,
|
|
12337
|
+
regionId: input.regionId,
|
|
12338
|
+
deadline: input.deadline,
|
|
12339
|
+
});
|
|
12340
|
+
if (isDeadlineExpired(message.deadline)) {
|
|
12341
|
+
return { valid: false, recovered: null, reason: "deadline_expired" };
|
|
12342
|
+
}
|
|
12343
|
+
try {
|
|
12344
|
+
const verified = await viem.verifyTypedData({
|
|
12345
|
+
address: viem.checksumAddress(input.wallet),
|
|
12346
|
+
domain,
|
|
12347
|
+
types: applyCertifiedInstallerEIP712Types,
|
|
12348
|
+
primaryType: "ApplyCertifiedInstaller",
|
|
12349
|
+
message,
|
|
12350
|
+
signature: input.signature,
|
|
12351
|
+
});
|
|
12352
|
+
return verified
|
|
12353
|
+
? { valid: true, recovered: input.wallet, reason: null }
|
|
12354
|
+
: { valid: false, recovered: null, reason: "signer_mismatch" };
|
|
12355
|
+
}
|
|
12356
|
+
catch (_) {
|
|
12357
|
+
return { valid: false, recovered: null, reason: "signature_failed" };
|
|
12358
|
+
}
|
|
12359
|
+
}
|
|
12360
|
+
async function validatePayProtocolDepositUsingStakedControlSignature(input, domain = stakeControlEIP712Domain(Number(process.env.CHAIN_ID) || 1)) {
|
|
12288
12361
|
const message = buildPayProtocolDepositUsingStakedControlMessage({
|
|
12289
12362
|
amount: input.amount,
|
|
12290
12363
|
applicationId: input.applicationId,
|
|
@@ -12296,7 +12369,7 @@ async function validatePayProtocolDepositUsingStakedControlSignature(input, doma
|
|
|
12296
12369
|
}
|
|
12297
12370
|
try {
|
|
12298
12371
|
const verified = await viem.verifyTypedData({
|
|
12299
|
-
address: viem.
|
|
12372
|
+
address: viem.checksumAddress(input.wallet),
|
|
12300
12373
|
domain,
|
|
12301
12374
|
types: payProtocolDepositUsingStakedControlEIP712Types,
|
|
12302
12375
|
primaryType: farmsRouter.TRANSFER_TYPES.PayProtocolDepositUsingStakedControl,
|
|
@@ -12311,6 +12384,31 @@ async function validatePayProtocolDepositUsingStakedControlSignature(input, doma
|
|
|
12311
12384
|
return { valid: false, recovered: null, reason: "signature_failed" };
|
|
12312
12385
|
}
|
|
12313
12386
|
}
|
|
12387
|
+
async function validateVerifyUserSignature(input, domain = stakeControlEIP712Domain(Number(process.env.CHAIN_ID) || 1)) {
|
|
12388
|
+
const message = buildVerifyUserMessage({
|
|
12389
|
+
nonce: input.nonce,
|
|
12390
|
+
deadline: input.deadline,
|
|
12391
|
+
});
|
|
12392
|
+
if (isDeadlineExpired(message.deadline)) {
|
|
12393
|
+
return { valid: false, recovered: null, reason: "deadline_expired" };
|
|
12394
|
+
}
|
|
12395
|
+
try {
|
|
12396
|
+
const verified = await viem.verifyTypedData({
|
|
12397
|
+
address: viem.checksumAddress(input.wallet),
|
|
12398
|
+
domain,
|
|
12399
|
+
types: verifyUserEIP712Types,
|
|
12400
|
+
primaryType: "VerifyUser",
|
|
12401
|
+
message,
|
|
12402
|
+
signature: input.signature,
|
|
12403
|
+
});
|
|
12404
|
+
return verified
|
|
12405
|
+
? { valid: true, recovered: input.wallet, reason: null }
|
|
12406
|
+
: { valid: false, recovered: null, reason: "signer_mismatch" };
|
|
12407
|
+
}
|
|
12408
|
+
catch (_) {
|
|
12409
|
+
return { valid: false, recovered: null, reason: "signature_failed" };
|
|
12410
|
+
}
|
|
12411
|
+
}
|
|
12314
12412
|
|
|
12315
12413
|
exports.ControlRouter = farmsRouter.ControlRouter;
|
|
12316
12414
|
exports.DECIMALS_BY_TOKEN = farmsRouter.DECIMALS_BY_TOKEN;
|
|
@@ -12355,12 +12453,16 @@ exports.regionMetadata = farmsRouter.regionMetadata;
|
|
|
12355
12453
|
exports.usStates = farmsRouter.usStates;
|
|
12356
12454
|
exports.useForwarder = farmsRouter.useForwarder;
|
|
12357
12455
|
exports.useOffchainFractions = farmsRouter.useOffchainFractions;
|
|
12456
|
+
exports.applyCertifiedInstallerEIP712Types = applyCertifiedInstallerEIP712Types;
|
|
12457
|
+
exports.applyCertifiedInstallerSignatureRequestSchema = applyCertifiedInstallerSignatureRequestSchema;
|
|
12458
|
+
exports.buildApplyCertifiedInstallerMessage = buildApplyCertifiedInstallerMessage;
|
|
12358
12459
|
exports.buildCommitKickstarterMessage = buildCommitKickstarterMessage;
|
|
12359
12460
|
exports.buildPayProtocolDepositUsingStakedControlMessage = buildPayProtocolDepositUsingStakedControlMessage;
|
|
12360
12461
|
exports.buildRestakeMessage = buildRestakeMessage;
|
|
12361
12462
|
exports.buildStakeMessage = buildStakeMessage;
|
|
12362
12463
|
exports.buildUnstakeMoveMessage = buildUnstakeMoveMessage;
|
|
12363
12464
|
exports.buildUnstakeUnlockMessage = buildUnstakeUnlockMessage;
|
|
12465
|
+
exports.buildVerifyUserMessage = buildVerifyUserMessage;
|
|
12364
12466
|
exports.commitKickstarterEIP712Types = commitKickstarterEIP712Types;
|
|
12365
12467
|
exports.commitKickstarterSignatureRequestSchema = commitKickstarterSignatureRequestSchema;
|
|
12366
12468
|
exports.payProtocolDepositUsingStakedControlEIP712Types = payProtocolDepositUsingStakedControlEIP712Types;
|
|
@@ -12374,10 +12476,14 @@ exports.unstakeMoveEIP712Types = unstakeMoveEIP712Types;
|
|
|
12374
12476
|
exports.unstakeMoveSignatureRequestSchema = unstakeMoveSignatureRequestSchema;
|
|
12375
12477
|
exports.unstakeUnlockEIP712Types = unstakeUnlockEIP712Types;
|
|
12376
12478
|
exports.unstakeUnlockSignatureRequestSchema = unstakeUnlockSignatureRequestSchema;
|
|
12479
|
+
exports.validateApplyCertifiedInstallerSignature = validateApplyCertifiedInstallerSignature;
|
|
12377
12480
|
exports.validateCommitKickstarterSignature = validateCommitKickstarterSignature;
|
|
12378
12481
|
exports.validatePayProtocolDepositUsingStakedControlSignature = validatePayProtocolDepositUsingStakedControlSignature;
|
|
12379
12482
|
exports.validateRestakeSignature = validateRestakeSignature;
|
|
12380
12483
|
exports.validateStakeSignature = validateStakeSignature;
|
|
12381
12484
|
exports.validateUnstakeMoveSignature = validateUnstakeMoveSignature;
|
|
12382
12485
|
exports.validateUnstakeUnlockSignature = validateUnstakeUnlockSignature;
|
|
12486
|
+
exports.validateVerifyUserSignature = validateVerifyUserSignature;
|
|
12487
|
+
exports.verifyUserEIP712Types = verifyUserEIP712Types;
|
|
12488
|
+
exports.verifyUserSignatureRequestSchema = verifyUserSignatureRequestSchema;
|
|
12383
12489
|
//# sourceMappingURL=browser.js.map
|