@verified-network/verified-sdk 2.5.4 → 2.5.5
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/contract/index.d.ts +2 -1
- package/dist/contract/index.js +59 -55
- package/dist/utils/constants.js +28 -9
- package/package.json +1 -1
package/dist/contract/index.d.ts
CHANGED
|
@@ -32,6 +32,7 @@ export declare class VerifiedContract {
|
|
|
32
32
|
private signer;
|
|
33
33
|
private contract;
|
|
34
34
|
private abiInterface;
|
|
35
|
+
private abiRaw;
|
|
35
36
|
constructor(address: string, abi: string, signer: VerifiedWallet | Signer);
|
|
36
37
|
protected validateInput(type: DATATYPES, data: any): Promise<boolean>;
|
|
37
38
|
protected sanitiseInput(type: DATATYPES, data: any): any;
|
|
@@ -60,7 +61,7 @@ export declare class VerifiedContract {
|
|
|
60
61
|
/** Constructs and call function as userop for biconomy gassless(sponsored/erc20 mode) */
|
|
61
62
|
callFunctionAsUserOp(smartAccount: any, tx: any, functionName: string, paymentToken: string, ...args: any): Promise<SCResponse>;
|
|
62
63
|
/** Constructs and call function using MEE client that allows gas payment in ERC20 tokens */
|
|
63
|
-
callFunctionWithMEEClient(nexusAccount: any, chainId: number, tx: any, functionName: string, paymentToken: `0x${string}`, isSponsor?: boolean, _apiKey?: string, ...args: any): Promise<SCResponse>;
|
|
64
|
+
callFunctionWithMEEClient(nexusAccount: any, chainId: number, rpc: string, tx: any, functionName: string, paymentToken: `0x${string}`, isSponsor?: boolean, _apiKey?: string, ...args: any): Promise<SCResponse>;
|
|
64
65
|
callContract(functionName: string, ...args: any): Promise<SCResponse>;
|
|
65
66
|
getQuote(paymentTokenAddress: string, functionName: string, args: any[], rpc?: string, _apiKey?: string, isReactNative?: boolean): Promise<{
|
|
66
67
|
tokenAddress: string;
|
package/dist/contract/index.js
CHANGED
|
@@ -12,7 +12,7 @@ const abstractjs_1 = require("@biconomy/abstractjs");
|
|
|
12
12
|
const chains_1 = require("viem/chains");
|
|
13
13
|
const viem_1 = require("viem");
|
|
14
14
|
const biconomyRNFix_1 = require("../lib/biconomyRNFix");
|
|
15
|
-
const
|
|
15
|
+
const ERC20_json_1 = __importDefault(require("../abi/payments/ERC20.json"));
|
|
16
16
|
var STATUS;
|
|
17
17
|
(function (STATUS) {
|
|
18
18
|
STATUS[STATUS["SUCCESS"] = 0] = "SUCCESS";
|
|
@@ -32,6 +32,7 @@ class VerifiedContract {
|
|
|
32
32
|
constructor(address, abi, signer) {
|
|
33
33
|
this.signer = signer;
|
|
34
34
|
this.abiInterface = new ethers_1.utils.Interface(abi);
|
|
35
|
+
this.abiRaw = JSON.parse(abi);
|
|
35
36
|
this.contract = new ethers_1.ethers.Contract(address, this.abiInterface, signer);
|
|
36
37
|
}
|
|
37
38
|
async validateInput(type, data) {
|
|
@@ -378,8 +379,8 @@ class VerifiedContract {
|
|
|
378
379
|
}
|
|
379
380
|
}
|
|
380
381
|
/** Constructs and call function using MEE client that allows gas payment in ERC20 tokens */
|
|
381
|
-
async callFunctionWithMEEClient(nexusAccount, chainId, tx, functionName, paymentToken, isSponsor, _apiKey, ...args) {
|
|
382
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
382
|
+
async callFunctionWithMEEClient(nexusAccount, chainId, rpc, tx, functionName, paymentToken, isSponsor, _apiKey, ...args) {
|
|
383
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
|
|
383
384
|
let res = {};
|
|
384
385
|
let txHash = "";
|
|
385
386
|
let recp;
|
|
@@ -404,11 +405,9 @@ class VerifiedContract {
|
|
|
404
405
|
let transferInstruction, transferTx;
|
|
405
406
|
if (!isSponsor) {
|
|
406
407
|
const signerAny = this.signer;
|
|
407
|
-
const tokenContract = new
|
|
408
|
-
const tokenDecimals = await tokenContract
|
|
409
|
-
|
|
410
|
-
.then((res) => { var _a; return (_a = res === null || res === void 0 ? void 0 : res.response) === null || _a === void 0 ? void 0 : _a.result[0]; });
|
|
411
|
-
const fn = tokenContract.contract.populateTransaction["transfer"];
|
|
408
|
+
const tokenContract = new ethers_1.ethers.Contract(paymentToken, new ethers_1.utils.Interface(ERC20_json_1.default === null || ERC20_json_1.default === void 0 ? void 0 : ERC20_json_1.default.abi), signerAny);
|
|
409
|
+
const tokenDecimals = await tokenContract.decimals();
|
|
410
|
+
const fn = tokenContract.populateTransaction["transfer"];
|
|
412
411
|
const amountFmt = ethers_1.ethers.utils.parseUnits(constants_1.PaymasterConstants.COMPENSATION_AMOUNT, Number(tokenDecimals));
|
|
413
412
|
const transferArgs = [
|
|
414
413
|
constants_1.PaymasterConstants.ADMIN_WALLET_ADDRESS,
|
|
@@ -430,7 +429,8 @@ class VerifiedContract {
|
|
|
430
429
|
}
|
|
431
430
|
const isTestnet = (_b = constants_1.PaymasterConstants.TEST_CHAINS) === null || _b === void 0 ? void 0 : _b.includes(chainId);
|
|
432
431
|
let sponsorInfo;
|
|
433
|
-
|
|
432
|
+
//Use constant gas tanks instead of fetching from server to reduce tx time???
|
|
433
|
+
if (isSponsor) {
|
|
434
434
|
const response = await fetch("https://network.biconomy.io/v1/sponsorship/info", { method: "GET" });
|
|
435
435
|
if (!response.ok) {
|
|
436
436
|
sponsorInfo = {};
|
|
@@ -439,9 +439,7 @@ class VerifiedContract {
|
|
|
439
439
|
sponsorInfo = await response.json();
|
|
440
440
|
}
|
|
441
441
|
}
|
|
442
|
-
const sponsorUrl =
|
|
443
|
-
? abstractjs_1.DEFAULT_PATHFINDER_URL
|
|
444
|
-
: constants_1.PaymasterConstants.HOSTED_SPONSOR_URL;
|
|
442
|
+
const sponsorUrl = constants_1.PaymasterConstants.HOSTED_SPONSOR_URL;
|
|
445
443
|
let quote, cmpQuote;
|
|
446
444
|
if (isSponsor) {
|
|
447
445
|
quote = await meeClient.getQuote({
|
|
@@ -449,16 +447,16 @@ class VerifiedContract {
|
|
|
449
447
|
sponsorship: true,
|
|
450
448
|
sponsorshipOptions: {
|
|
451
449
|
url: sponsorUrl,
|
|
450
|
+
customHeaders: {
|
|
451
|
+
"cnt-tx": JSON.stringify(tx),
|
|
452
|
+
"cnt-chainid": chainId === null || chainId === void 0 ? void 0 : chainId.toString(),
|
|
453
|
+
"cnt-rpc": rpc,
|
|
454
|
+
"cnt-isquote": "true",
|
|
455
|
+
},
|
|
452
456
|
gasTank: {
|
|
453
|
-
address: isTestnet
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
token: isTestnet
|
|
457
|
-
? abstractjs_1.DEFAULT_MEE_TESTNET_SPONSORSHIP_TOKEN_ADDRESS
|
|
458
|
-
: (_d = sponsorInfo[chainId === null || chainId === void 0 ? void 0 : chainId.toString()]) === null || _d === void 0 ? void 0 : _d.token,
|
|
459
|
-
chainId: isTestnet
|
|
460
|
-
? abstractjs_1.DEFAULT_MEE_TESTNET_SPONSORSHIP_CHAIN_ID
|
|
461
|
-
: Number(chainId),
|
|
457
|
+
address: (_c = sponsorInfo[isTestnet ? "84532" : "8453"]) === null || _c === void 0 ? void 0 : _c.account,
|
|
458
|
+
token: (_d = sponsorInfo[isTestnet ? "84532" : "8453"]) === null || _d === void 0 ? void 0 : _d.token,
|
|
459
|
+
chainId: (_e = sponsorInfo[isTestnet ? "84532" : "8453"]) === null || _e === void 0 ? void 0 : _e.chainId,
|
|
462
460
|
},
|
|
463
461
|
},
|
|
464
462
|
simulation: {
|
|
@@ -488,7 +486,7 @@ class VerifiedContract {
|
|
|
488
486
|
data: {
|
|
489
487
|
chainId,
|
|
490
488
|
calls: [
|
|
491
|
-
Object.assign(Object.assign({}, tx), { gasLimit: (
|
|
489
|
+
Object.assign(Object.assign({}, tx), { gasLimit: (_g = quote === null || quote === void 0 ? void 0 : quote.userOps[((_f = quote === null || quote === void 0 ? void 0 : quote.userOps) === null || _f === void 0 ? void 0 : _f.length) - 1]) === null || _g === void 0 ? void 0 : _g.maxGasLimit }),
|
|
492
490
|
],
|
|
493
491
|
},
|
|
494
492
|
});
|
|
@@ -499,7 +497,7 @@ class VerifiedContract {
|
|
|
499
497
|
data: {
|
|
500
498
|
chainId,
|
|
501
499
|
calls: [
|
|
502
|
-
Object.assign(Object.assign({}, transferTx), { gasLimit: (
|
|
500
|
+
Object.assign(Object.assign({}, transferTx), { gasLimit: (_j = cmpQuote === null || cmpQuote === void 0 ? void 0 : cmpQuote.userOps[((_h = cmpQuote === null || cmpQuote === void 0 ? void 0 : cmpQuote.userOps) === null || _h === void 0 ? void 0 : _h.length) - 1]) === null || _j === void 0 ? void 0 : _j.maxGasLimit }),
|
|
503
501
|
],
|
|
504
502
|
},
|
|
505
503
|
});
|
|
@@ -507,26 +505,24 @@ class VerifiedContract {
|
|
|
507
505
|
// Execute the transaction using passed paymentToken
|
|
508
506
|
let _txHash;
|
|
509
507
|
if (isSponsor) {
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
token: isTestnet
|
|
519
|
-
? abstractjs_1.DEFAULT_MEE_TESTNET_SPONSORSHIP_TOKEN_ADDRESS
|
|
520
|
-
: (_k = sponsorInfo[chainId === null || chainId === void 0 ? void 0 : chainId.toString()]) === null || _k === void 0 ? void 0 : _k.token,
|
|
521
|
-
chainId: isTestnet
|
|
522
|
-
? abstractjs_1.DEFAULT_MEE_TESTNET_SPONSORSHIP_CHAIN_ID
|
|
523
|
-
: Number(chainId),
|
|
524
|
-
},
|
|
508
|
+
let res;
|
|
509
|
+
const response = await fetch(`${sponsorUrl}/sponsorship/sign/${(_k = sponsorInfo[isTestnet ? "84532" : "8453"]) === null || _k === void 0 ? void 0 : _k.chainId}/${(_l = sponsorInfo[isTestnet ? "84532" : "8453"]) === null || _l === void 0 ? void 0 : _l.account}`, {
|
|
510
|
+
method: "POST",
|
|
511
|
+
headers: {
|
|
512
|
+
"cnt-tx": JSON.stringify(Object.assign(Object.assign({}, tx), { gasLimit: (_o = quote === null || quote === void 0 ? void 0 : quote.userOps[((_m = quote === null || quote === void 0 ? void 0 : quote.userOps) === null || _m === void 0 ? void 0 : _m.length) - 1]) === null || _o === void 0 ? void 0 : _o.maxGasLimit })),
|
|
513
|
+
"cnt-chainid": chainId === null || chainId === void 0 ? void 0 : chainId.toString(),
|
|
514
|
+
"cnt-rpc": rpc,
|
|
515
|
+
"cnt-isquote": "false",
|
|
525
516
|
},
|
|
526
|
-
|
|
527
|
-
upperBoundTimestamp: nowInSec + 299, //highest is 5 minutes???
|
|
517
|
+
body: null,
|
|
528
518
|
});
|
|
529
|
-
|
|
519
|
+
if (!response.ok) {
|
|
520
|
+
res = { hash: "" };
|
|
521
|
+
}
|
|
522
|
+
else {
|
|
523
|
+
res = await response.json();
|
|
524
|
+
}
|
|
525
|
+
_txHash = res === null || res === void 0 ? void 0 : res.hash;
|
|
530
526
|
}
|
|
531
527
|
else {
|
|
532
528
|
//handle it seperately as batch kept failing???
|
|
@@ -542,9 +538,9 @@ class VerifiedContract {
|
|
|
542
538
|
const cmpReceipt = await meeClient.waitForSupertransactionReceipt({
|
|
543
539
|
hash: cmpHash,
|
|
544
540
|
});
|
|
545
|
-
if (((
|
|
541
|
+
if (((_p = cmpReceipt === null || cmpReceipt === void 0 ? void 0 : cmpReceipt.receipts) === null || _p === void 0 ? void 0 : _p.length) > 0) {
|
|
546
542
|
//always pick last receipt????
|
|
547
|
-
const txReceipt = cmpReceipt === null || cmpReceipt === void 0 ? void 0 : cmpReceipt.receipts[((
|
|
543
|
+
const txReceipt = cmpReceipt === null || cmpReceipt === void 0 ? void 0 : cmpReceipt.receipts[((_q = cmpReceipt === null || cmpReceipt === void 0 ? void 0 : cmpReceipt.receipts) === null || _q === void 0 ? void 0 : _q.length) - 1];
|
|
548
544
|
if ((txReceipt === null || txReceipt === void 0 ? void 0 : txReceipt.status) === "success") {
|
|
549
545
|
// console.log(
|
|
550
546
|
// "Compensation tx successful will move to regular transaction...",
|
|
@@ -573,7 +569,7 @@ class VerifiedContract {
|
|
|
573
569
|
console.error("MEE client transaction failed with error: ", "Invalid receipts length");
|
|
574
570
|
res.status = STATUS.ERROR;
|
|
575
571
|
res.response = {
|
|
576
|
-
hash: (
|
|
572
|
+
hash: (_r = cmpReceipt === null || cmpReceipt === void 0 ? void 0 : cmpReceipt.receipts[0]) === null || _r === void 0 ? void 0 : _r.transactionHash,
|
|
577
573
|
result: cmpReceipt === null || cmpReceipt === void 0 ? void 0 : cmpReceipt.receipts[0],
|
|
578
574
|
}; //TODO: update result on response
|
|
579
575
|
res.message = "";
|
|
@@ -588,9 +584,9 @@ class VerifiedContract {
|
|
|
588
584
|
});
|
|
589
585
|
// console.log("receipts: ", receipt);
|
|
590
586
|
// console.log("receiptsss...: ", receipt?.receipts);
|
|
591
|
-
if (((
|
|
587
|
+
if (((_s = receipt === null || receipt === void 0 ? void 0 : receipt.receipts) === null || _s === void 0 ? void 0 : _s.length) > 0) {
|
|
592
588
|
//always pick last receipt????
|
|
593
|
-
const txReceipt = receipt === null || receipt === void 0 ? void 0 : receipt.receipts[((
|
|
589
|
+
const txReceipt = receipt === null || receipt === void 0 ? void 0 : receipt.receipts[((_t = receipt === null || receipt === void 0 ? void 0 : receipt.receipts) === null || _t === void 0 ? void 0 : _t.length) - 1];
|
|
594
590
|
if ((txReceipt === null || txReceipt === void 0 ? void 0 : txReceipt.status) === "success") {
|
|
595
591
|
res.status = STATUS.SUCCESS;
|
|
596
592
|
res.response = {
|
|
@@ -624,7 +620,7 @@ class VerifiedContract {
|
|
|
624
620
|
else {
|
|
625
621
|
res.status = STATUS.ERROR;
|
|
626
622
|
res.response = {
|
|
627
|
-
hash: (
|
|
623
|
+
hash: (_u = receipt === null || receipt === void 0 ? void 0 : receipt.receipts[0]) === null || _u === void 0 ? void 0 : _u.transactionHash,
|
|
628
624
|
result: receipt === null || receipt === void 0 ? void 0 : receipt.receipts[0],
|
|
629
625
|
}; //TODO: update result on response
|
|
630
626
|
res.message = "";
|
|
@@ -650,7 +646,7 @@ class VerifiedContract {
|
|
|
650
646
|
}
|
|
651
647
|
}
|
|
652
648
|
async callContract(functionName, ...args) {
|
|
653
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
649
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
654
650
|
// Check if the function is a read function
|
|
655
651
|
if (this.isReadFunction(functionName)) {
|
|
656
652
|
console.log("read function will use ethers");
|
|
@@ -683,6 +679,8 @@ class VerifiedContract {
|
|
|
683
679
|
chains_1.polygon,
|
|
684
680
|
chains_1.sepolia,
|
|
685
681
|
chains_1.baseSepolia,
|
|
682
|
+
chains_1.arbitrum,
|
|
683
|
+
chains_1.arbitrumSepolia,
|
|
686
684
|
].find((nt) => Number(nt === null || nt === void 0 ? void 0 : nt.id) === Number(chainId));
|
|
687
685
|
if (!chainToUse) {
|
|
688
686
|
throw new Error(`Chaind id: ${chainId} not supported on Verified Sdk. Supported chain ids are: ${(_b = (_a = [
|
|
@@ -692,6 +690,8 @@ class VerifiedContract {
|
|
|
692
690
|
chains_1.polygon,
|
|
693
691
|
chains_1.sepolia,
|
|
694
692
|
chains_1.baseSepolia,
|
|
693
|
+
chains_1.arbitrum,
|
|
694
|
+
chains_1.arbitrumSepolia,
|
|
695
695
|
]) === null || _a === void 0 ? void 0 : _a.map((nt) => nt === null || nt === void 0 ? void 0 : nt.id)) === null || _b === void 0 ? void 0 : _b.join(", ")}`);
|
|
696
696
|
}
|
|
697
697
|
const prov = this.signer.provider;
|
|
@@ -726,11 +726,15 @@ class VerifiedContract {
|
|
|
726
726
|
if ((_j = optionsRaw[0]) === null || _j === void 0 ? void 0 : _j.paymentToken) {
|
|
727
727
|
console.log("Using Mee erc20 payment with paymentToken of: ", (_k = optionsRaw[0]) === null || _k === void 0 ? void 0 : _k.paymentToken);
|
|
728
728
|
// console.log("nexus account address: ", meeAddress);
|
|
729
|
-
return await this.callFunctionWithMEEClient(nexusAccount, chainId,
|
|
729
|
+
return await this.callFunctionWithMEEClient(nexusAccount, chainId, rpcUrl ||
|
|
730
|
+
((_l = optionsRaw[0]) === null || _l === void 0 ? void 0 : _l.rpcUrl) ||
|
|
731
|
+
((_m = constants_1.PaymasterConstants[Number(chainId)]) === null || _m === void 0 ? void 0 : _m.RPC_URL), tx1, functionName, (_o = optionsRaw[0]) === null || _o === void 0 ? void 0 : _o.paymentToken, false, (_p = optionsRaw[0]) === null || _p === void 0 ? void 0 : _p.apiKey, ...args);
|
|
730
732
|
}
|
|
731
733
|
else {
|
|
732
734
|
console.log("Using mee gas sponsorship since no payment token...");
|
|
733
|
-
return await this.callFunctionWithMEEClient(nexusAccount, chainId,
|
|
735
|
+
return await this.callFunctionWithMEEClient(nexusAccount, chainId, rpcUrl ||
|
|
736
|
+
((_q = optionsRaw[0]) === null || _q === void 0 ? void 0 : _q.rpcUrl) ||
|
|
737
|
+
((_r = constants_1.PaymasterConstants[Number(chainId)]) === null || _r === void 0 ? void 0 : _r.RPC_URL), tx1, functionName, (_s = optionsRaw[0]) === null || _s === void 0 ? void 0 : _s.paymentToken, true, (_t = optionsRaw[0]) === null || _t === void 0 ? void 0 : _t.apiKey, ...args);
|
|
734
738
|
}
|
|
735
739
|
}
|
|
736
740
|
else {
|
|
@@ -751,6 +755,8 @@ class VerifiedContract {
|
|
|
751
755
|
chains_1.polygon,
|
|
752
756
|
chains_1.sepolia,
|
|
753
757
|
chains_1.baseSepolia,
|
|
758
|
+
chains_1.arbitrum,
|
|
759
|
+
chains_1.arbitrumSepolia,
|
|
754
760
|
].find((nt) => Number(nt === null || nt === void 0 ? void 0 : nt.id) === Number(chainId));
|
|
755
761
|
if (chainToUse) {
|
|
756
762
|
const prov = this.signer.provider;
|
|
@@ -804,11 +810,9 @@ class VerifiedContract {
|
|
|
804
810
|
},
|
|
805
811
|
});
|
|
806
812
|
const signerAny = this.signer;
|
|
807
|
-
const tokenContract = new
|
|
808
|
-
const tokenDecimals = await tokenContract
|
|
809
|
-
|
|
810
|
-
.then((res) => { var _a; return (_a = res === null || res === void 0 ? void 0 : res.response) === null || _a === void 0 ? void 0 : _a.result[0]; });
|
|
811
|
-
const fnTransfer = tokenContract.contract.populateTransaction["transfer"];
|
|
813
|
+
const tokenContract = new ethers_1.ethers.Contract(paymentTokenAddress, new ethers_1.utils.Interface(ERC20_json_1.default === null || ERC20_json_1.default === void 0 ? void 0 : ERC20_json_1.default.abi), signerAny);
|
|
814
|
+
const tokenDecimals = await tokenContract.decimals();
|
|
815
|
+
const fnTransfer = tokenContract.populateTransaction["transfer"];
|
|
812
816
|
const amountFmt = ethers_1.ethers.utils.parseUnits(constants_1.PaymasterConstants.COMPENSATION_AMOUNT, Number(tokenDecimals));
|
|
813
817
|
const transferArgs = [
|
|
814
818
|
constants_1.PaymasterConstants.ADMIN_WALLET_ADDRESS,
|
package/dist/utils/constants.js
CHANGED
|
@@ -3,16 +3,35 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.PaymasterConstants = void 0;
|
|
4
4
|
//Todo: add more network paymaster details for gasless
|
|
5
5
|
exports.PaymasterConstants = {
|
|
6
|
-
MEE_API_KEY: "
|
|
6
|
+
MEE_API_KEY: "mee_G5SSkmZYg9kiGksxJwFT9x",
|
|
7
7
|
MEE_API_KEY_STAGING: "mee_3Zmc7H6Pbd5wUfUGu27aGzdf", //Biconomy sponsorship enabled staging api key???
|
|
8
8
|
MEE_URL_STAGING: "https://staging-network.biconomy.io/v1",
|
|
9
|
-
TEST_CHAINS: [11155111, 84532],
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
token: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
|
|
13
|
-
address: "0x8a2997ba9B9A51aF7C63914829450260B12B75e5",
|
|
14
|
-
},
|
|
15
|
-
HOSTED_SPONSOR_URL: "https://gateway.verified.network/api/sponsor", //TODO: update to hosted sponsor url
|
|
16
|
-
ADMIN_WALLET_ADDRESS: "0x5DBDA7BE05F68131e260f5A2bC573b24692a5B34", //test admin
|
|
9
|
+
TEST_CHAINS: [11155111, 84532, 421614],
|
|
10
|
+
HOSTED_SPONSOR_URL: "https://gateway.verified.network/api/sponsor",
|
|
11
|
+
ADMIN_WALLET_ADDRESS: "0x5DBDA7BE05F68131e260f5A2bC573b24692a5B34", //current admin???
|
|
17
12
|
COMPENSATION_AMOUNT: "0.02", //2 Cents
|
|
13
|
+
//ethereum sepolia
|
|
14
|
+
11155111: {
|
|
15
|
+
RPC_URL: "https://eth-sepolia.public.blastapi.io",
|
|
16
|
+
},
|
|
17
|
+
//polgon mainnet
|
|
18
|
+
137: {
|
|
19
|
+
RPC_URL: "https://polygon-rpc.com",
|
|
20
|
+
},
|
|
21
|
+
//base sepolia
|
|
22
|
+
84532: {
|
|
23
|
+
RPC_URL: "https://sepolia.base.org",
|
|
24
|
+
},
|
|
25
|
+
//ethereum mainnet
|
|
26
|
+
1: {
|
|
27
|
+
RPC_URL: "https://eth-mainnet.public.blastapi.io",
|
|
28
|
+
},
|
|
29
|
+
//base mainnet
|
|
30
|
+
8453: {
|
|
31
|
+
RPC_URL: "https://base-mainnet.public.blastapi.io",
|
|
32
|
+
},
|
|
33
|
+
//gnosis
|
|
34
|
+
100: {
|
|
35
|
+
RPC_URL: "https://rpc.gnosischain.com",
|
|
36
|
+
},
|
|
18
37
|
};
|