diff --git a/.changeset/four-badgers-heal.md b/.changeset/four-badgers-heal.md new file mode 100644 index 0000000000..70d9fcf798 --- /dev/null +++ b/.changeset/four-badgers-heal.md @@ -0,0 +1,19 @@ +--- +'@lit-protocol/access-control-conditions': patch +'@lit-protocol/access-control-conditions-schemas': patch +'@lit-protocol/auth': patch +'@lit-protocol/auth-helpers': patch +'@lit-protocol/auth-services': patch +'@lit-protocol/constants': patch +'@lit-protocol/crypto': patch +'@lit-protocol/lit-client': patch +'@lit-protocol/logger': patch +'@lit-protocol/networks': patch +'@lit-protocol/schemas': patch +'@lit-protocol/types': patch +'@lit-protocol/wasm': patch +'@lit-protocol/wrapped-keys': patch +'@lit-protocol/wrapped-keys-lit-actions': patch +--- + +fix scopes to transform scope strings like "sign-anything" to their BigInt values (like 1n). diff --git a/.changeset/light-beds-push.md b/.changeset/light-beds-push.md new file mode 100644 index 0000000000..99d1588a18 --- /dev/null +++ b/.changeset/light-beds-push.md @@ -0,0 +1,19 @@ +--- +'@lit-protocol/access-control-conditions': patch +'@lit-protocol/access-control-conditions-schemas': patch +'@lit-protocol/auth': patch +'@lit-protocol/auth-helpers': patch +'@lit-protocol/auth-services': patch +'@lit-protocol/constants': patch +'@lit-protocol/crypto': patch +'@lit-protocol/lit-client': patch +'@lit-protocol/logger': patch +'@lit-protocol/networks': patch +'@lit-protocol/schemas': patch +'@lit-protocol/types': patch +'@lit-protocol/wasm': patch +'@lit-protocol/wrapped-keys': patch +'@lit-protocol/wrapped-keys-lit-actions': patch +--- + +investigate scopes issues diff --git a/.changeset/pre.json b/.changeset/pre.json index dc7a7847d8..ed0b9b14d0 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -1,22 +1,31 @@ { "mode": "pre", - "tag": "beta", + "tag": "canary", "initialVersions": { - "@lit-protocol/access-control-conditions": "7.0.0", - "@lit-protocol/access-control-conditions-schemas": "7.0.0", - "@lit-protocol/auth": "7.0.0", - "@lit-protocol/auth-helpers": "7.0.0", - "@lit-protocol/auth-services": "1.0.0", - "@lit-protocol/constants": "7.0.0", - "@lit-protocol/crypto": "7.0.0", - "@lit-protocol/lit-client": "7.0.0", - "@lit-protocol/logger": "7.0.0", - "@lit-protocol/networks": "7.0.0", - "@lit-protocol/schemas": "7.0.0", - "@lit-protocol/types": "7.0.0", - "@lit-protocol/wasm": "7.0.0", - "@lit-protocol/wrapped-keys": "7.0.0", - "@lit-protocol/wrapped-keys-lit-actions": "7.0.0" + "@lit-protocol/access-control-conditions": "8.0.0-beta.1", + "@lit-protocol/access-control-conditions-schemas": "8.0.0-beta.1", + "@lit-protocol/auth": "8.0.0-beta.1", + "@lit-protocol/auth-helpers": "8.0.0-beta.1", + "@lit-protocol/auth-services": "2.0.0-beta.1", + "@lit-protocol/constants": "8.0.0-beta.1", + "@lit-protocol/crypto": "8.0.0-beta.1", + "@lit-protocol/lit-client": "8.0.0-beta.1", + "@lit-protocol/logger": "8.0.0-beta.1", + "@lit-protocol/networks": "8.0.0-beta.1", + "@lit-protocol/schemas": "8.0.0-beta.1", + "@lit-protocol/types": "8.0.0-beta.1", + "@lit-protocol/wasm": "8.0.0-beta.1", + "@lit-protocol/wrapped-keys": "8.0.0-beta.1", + "@lit-protocol/wrapped-keys-lit-actions": "8.0.0-beta.1" }, - "changesets": ["cute-bottles-ask", "cute-experts-clap", "cyan-bears-invent"] + "changesets": [ + "cute-bottles-ask", + "cute-experts-clap", + "cyan-bears-invent", + "four-badgers-heal", + "light-beds-push", + "stupid-lies-invent", + "thirty-candles-try", + "witty-news-join" + ] } diff --git a/.changeset/stupid-lies-invent.md b/.changeset/stupid-lies-invent.md new file mode 100644 index 0000000000..27eca10e0c --- /dev/null +++ b/.changeset/stupid-lies-invent.md @@ -0,0 +1,19 @@ +--- +'@lit-protocol/access-control-conditions': patch +'@lit-protocol/access-control-conditions-schemas': patch +'@lit-protocol/auth': patch +'@lit-protocol/auth-helpers': patch +'@lit-protocol/auth-services': patch +'@lit-protocol/constants': patch +'@lit-protocol/crypto': patch +'@lit-protocol/lit-client': patch +'@lit-protocol/logger': patch +'@lit-protocol/networks': patch +'@lit-protocol/schemas': patch +'@lit-protocol/types': patch +'@lit-protocol/wasm': patch +'@lit-protocol/wrapped-keys': patch +'@lit-protocol/wrapped-keys-lit-actions': patch +--- + +merge of [Bug] Fix False Positive Custom Auth Tests #881 diff --git a/.changeset/thirty-candles-try.md b/.changeset/thirty-candles-try.md new file mode 100644 index 0000000000..d2c6cd4c17 --- /dev/null +++ b/.changeset/thirty-candles-try.md @@ -0,0 +1,19 @@ +--- +'@lit-protocol/access-control-conditions': patch +'@lit-protocol/access-control-conditions-schemas': patch +'@lit-protocol/auth': patch +'@lit-protocol/auth-helpers': patch +'@lit-protocol/auth-services': patch +'@lit-protocol/constants': patch +'@lit-protocol/crypto': patch +'@lit-protocol/lit-client': patch +'@lit-protocol/logger': patch +'@lit-protocol/networks': patch +'@lit-protocol/schemas': patch +'@lit-protocol/types': patch +'@lit-protocol/wasm': patch +'@lit-protocol/wrapped-keys': patch +'@lit-protocol/wrapped-keys-lit-actions': patch +--- + +fix custom auth data schema diff --git a/.changeset/witty-news-join.md b/.changeset/witty-news-join.md new file mode 100644 index 0000000000..325321d713 --- /dev/null +++ b/.changeset/witty-news-join.md @@ -0,0 +1,19 @@ +--- +'@lit-protocol/access-control-conditions': patch +'@lit-protocol/access-control-conditions-schemas': patch +'@lit-protocol/auth': patch +'@lit-protocol/auth-helpers': patch +'@lit-protocol/auth-services': patch +'@lit-protocol/constants': patch +'@lit-protocol/crypto': patch +'@lit-protocol/lit-client': patch +'@lit-protocol/logger': patch +'@lit-protocol/networks': patch +'@lit-protocol/schemas': patch +'@lit-protocol/types': patch +'@lit-protocol/wasm': patch +'@lit-protocol/wrapped-keys': patch +'@lit-protocol/wrapped-keys-lit-actions': patch +--- + +remove console logs diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 77a6754220..51442fb1e2 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -51,10 +51,10 @@ jobs: run: NETWORK=naga-dev bun run test:e2e all timeout-minutes: 10 - - name: Run health check for naga-test - run: NETWORK=naga-test bun run test:e2e all - timeout-minutes: 10 + # - name: Run health check for naga-test + # run: NETWORK=naga-test bun run test:e2e all + # timeout-minutes: 10 - - name: Run health check for naga-staging - run: NETWORK=naga-staging bun run test:e2e all - timeout-minutes: 10 \ No newline at end of file + # - name: Run health check for naga-staging + # run: NETWORK=naga-staging bun run test:e2e all + # timeout-minutes: 10 \ No newline at end of file diff --git a/.gitignore b/.gitignore index 6157589bcc..a7c6dddb7a 100644 --- a/.gitignore +++ b/.gitignore @@ -90,4 +90,5 @@ lit-cache lit-auth-local artillery-state.json artillery-pkp-tokens -lit-auth-artillery \ No newline at end of file +lit-auth-artillery +alice-auth-manager-data \ No newline at end of file diff --git a/README.md b/README.md index 17630e0702..f8dd6b73fb 100644 --- a/README.md +++ b/README.md @@ -113,4 +113,4 @@ bunx changeset publish # Contact -You can reach the Lit Protocol team through [Telegram](https://t.me/+aa73FAF9Vp82ZjJh), [Discord](https://litgateway.com/discord), or [X](https://x.com/litprotocol). \ No newline at end of file +You can reach the Lit Protocol team through [Telegram](https://t.me/+aa73FAF9Vp82ZjJh), [Discord](https://litgateway.com/discord), or [X](https://x.com/litprotocol). diff --git a/bun.lock b/bun.lock index 39c9727e66..4d62d6f35b 100644 --- a/bun.lock +++ b/bun.lock @@ -96,7 +96,7 @@ }, "packages/access-control-conditions": { "name": "@lit-protocol/access-control-conditions", - "version": "8.0.0-beta.6", + "version": "8.0.0-canary.3", "dependencies": { "ethers": "^5.7.1", "zod": "3.24.3", @@ -104,14 +104,14 @@ }, "packages/access-control-conditions-schemas": { "name": "@lit-protocol/access-control-conditions-schemas", - "version": "8.0.0-beta.6", + "version": "8.0.0-canary.3", "dependencies": { "zod": "3.24.3", }, }, "packages/auth": { "name": "@lit-protocol/auth", - "version": "8.0.0-beta.6", + "version": "8.0.0-canary.3", "dependencies": { "@noble/curves": "^1.8.1", "@simplewebauthn/browser": "^7.2.0", @@ -133,7 +133,7 @@ }, "packages/auth-helpers": { "name": "@lit-protocol/auth-helpers", - "version": "8.0.0-beta.6", + "version": "8.0.0-canary.3", "dependencies": { "@wagmi/core": "^2.17.1", "ethers": "^5.7.1", @@ -145,13 +145,13 @@ }, "packages/auth-services": { "name": "@lit-protocol/auth-services", - "version": "2.0.0-beta.9", + "version": "2.0.0-canary.3", "dependencies": { "@elysiajs/bearer": "^1.2.0", "@elysiajs/cors": "^1.2.0", "@elysiajs/static": "^1.3.0", "@elysiajs/swagger": "^1.2.0", - "@lit-protocol/contracts": "^0.4.0", + "@lit-protocol/contracts": "^0.5.0", "@simplewebauthn/server": "6.2.1", "@simplewebauthn/typescript-types": "^8.3.4", "@t3-oss/env-core": "^0.12.0", @@ -184,7 +184,7 @@ }, "packages/constants": { "name": "@lit-protocol/constants", - "version": "8.0.0-beta.6", + "version": "8.0.0-canary.3", "dependencies": { "@openagenda/verror": "^3.1.4", "zod": "3.24.3", @@ -192,7 +192,7 @@ }, "packages/crypto": { "name": "@lit-protocol/crypto", - "version": "8.0.0-beta.6", + "version": "8.0.0-canary.3", "dependencies": { "@lit-protocol/nacl": "7.1.1", "@lit-protocol/uint8arrays": "7.1.1", @@ -203,7 +203,7 @@ }, "packages/lit-client": { "name": "@lit-protocol/lit-client", - "version": "8.0.0-beta.6", + "version": "8.0.0-canary.3", "dependencies": { "@lit-protocol/uint8arrays": "7.1.1", "bs58": "^6.0.0", @@ -213,16 +213,16 @@ }, "packages/logger": { "name": "@lit-protocol/logger", - "version": "8.0.0-beta.6", + "version": "8.0.0-canary.3", "dependencies": { "pino": "^9.6.0", }, }, "packages/networks": { "name": "@lit-protocol/networks", - "version": "8.0.0-beta.6", + "version": "8.0.0-canary.3", "dependencies": { - "@lit-protocol/contracts": "^0.4.0", + "@lit-protocol/contracts": "^0.5.0", "@lit-protocol/nacl": "7.1.1", "@noble/curves": "^1.8.1", "@wagmi/core": "^2.17.1", @@ -238,7 +238,7 @@ }, "packages/schemas": { "name": "@lit-protocol/schemas", - "version": "8.0.0-beta.6", + "version": "8.0.0-canary.3", "dependencies": { "ethers": "^5.7.1", "siwe": "^2.3.2", @@ -248,7 +248,7 @@ }, "packages/types": { "name": "@lit-protocol/types", - "version": "8.0.0-beta.6", + "version": "8.0.0-canary.3", "dependencies": { "ethers": "^5.7.1", "zod": "3.24.3", @@ -256,7 +256,7 @@ }, "packages/wasm": { "name": "@lit-protocol/wasm", - "version": "8.0.0-beta.6", + "version": "8.0.0-canary.3", "dependencies": { "ethers": "^5.7.1", "pako": "^2.1.0", @@ -264,11 +264,11 @@ }, "packages/wrapped-keys": { "name": "@lit-protocol/wrapped-keys", - "version": "8.0.0-beta.6", + "version": "8.0.0-canary.3", }, "packages/wrapped-keys-lit-actions": { "name": "@lit-protocol/wrapped-keys-lit-actions", - "version": "8.0.0-beta.6", + "version": "8.0.0-canary.3", }, }, "packages": { @@ -5028,8 +5028,6 @@ "@lerna/write-log-file/write-file-atomic": ["write-file-atomic@4.0.2", "", { "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" } }, "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg=="], - "@lit-protocol/auth-services/@lit-protocol/contracts": ["@lit-protocol/contracts@0.4.0", "", { "peerDependencies": { "typescript": "^5.0.0" } }, "sha512-+PLkQNab2+n7AS6gLUD+b2JoVMTMSB2BDFRoO5epQuli/wd4HBH7XiwBb15111Ta7fn/+TR0R27YJLoDPNYCPg=="], - "@lit-protocol/auth-services/@simplewebauthn/typescript-types": ["@simplewebauthn/typescript-types@8.3.4", "", {}, "sha512-38xtca0OqfRVNloKBrFB5LEM6PN5vzFbJG6rAutPVrtGHFYxPdiV3btYWq0eAZAZmP+dqFPYJxJWeJrGfmYHng=="], "@lit-protocol/auth-services/ethers": ["ethers@5.7.2", "", { "dependencies": { "@ethersproject/abi": "5.7.0", "@ethersproject/abstract-provider": "5.7.0", "@ethersproject/abstract-signer": "5.7.0", "@ethersproject/address": "5.7.0", "@ethersproject/base64": "5.7.0", "@ethersproject/basex": "5.7.0", "@ethersproject/bignumber": "5.7.0", "@ethersproject/bytes": "5.7.0", "@ethersproject/constants": "5.7.0", "@ethersproject/contracts": "5.7.0", "@ethersproject/hash": "5.7.0", "@ethersproject/hdnode": "5.7.0", "@ethersproject/json-wallets": "5.7.0", "@ethersproject/keccak256": "5.7.0", "@ethersproject/logger": "5.7.0", "@ethersproject/networks": "5.7.1", "@ethersproject/pbkdf2": "5.7.0", "@ethersproject/properties": "5.7.0", "@ethersproject/providers": "5.7.2", "@ethersproject/random": "5.7.0", "@ethersproject/rlp": "5.7.0", "@ethersproject/sha2": "5.7.0", "@ethersproject/signing-key": "5.7.0", "@ethersproject/solidity": "5.7.0", "@ethersproject/strings": "5.7.0", "@ethersproject/transactions": "5.7.0", "@ethersproject/units": "5.7.0", "@ethersproject/wallet": "5.7.0", "@ethersproject/web": "5.7.1", "@ethersproject/wordlists": "5.7.0" } }, "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg=="], @@ -5040,8 +5038,6 @@ "@lit-protocol/nacl/tslib": ["tslib@1.14.1", "", {}, "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="], - "@lit-protocol/networks/@lit-protocol/contracts": ["@lit-protocol/contracts@0.4.0", "", { "peerDependencies": { "typescript": "^5.0.0" } }, "sha512-+PLkQNab2+n7AS6gLUD+b2JoVMTMSB2BDFRoO5epQuli/wd4HBH7XiwBb15111Ta7fn/+TR0R27YJLoDPNYCPg=="], - "@lit-protocol/uint8arrays/@lit-protocol/constants": ["@lit-protocol/constants@7.1.1", "", { "dependencies": { "@ethersproject/abstract-provider": "5.7.0", "@lit-protocol/accs-schemas": "^0.0.24", "@lit-protocol/contracts": "^0.0.74", "@lit-protocol/types": "7.1.1", "@openagenda/verror": "^3.1.4", "depd": "^2.0.0", "ethers": "^5.7.1", "siwe": "^2.3.2", "tslib": "1.14.1" } }, "sha512-wJY5r8D0FdvtkQtcjx5JfPC3Qeb5SZ1m72HTcvJdqaJaBgaPP4eg2JSUg9uNJ+knOCyfdiBPl47XlWTGqe1X4Q=="], "@lit-protocol/uint8arrays/@lit-protocol/contracts": ["@lit-protocol/contracts@0.0.74", "", { "peerDependencies": { "typescript": "^5.0.0" } }, "sha512-8uV038gzBp7ew7a4884SVt9Zhu8CtiTb+A8dKNnByxVoT1kFt4O4DmsaniV8p9AGjNR13IWfpU1NFChmPHVIpQ=="], diff --git a/e2e/src/e2e.spec.ts b/e2e/src/e2e.spec.ts index 79da78b577..9422ea78b6 100644 --- a/e2e/src/e2e.spec.ts +++ b/e2e/src/e2e.spec.ts @@ -19,13 +19,21 @@ import { } from './helper/tests'; import { init } from './init'; +const RPC_OVERRIDE = process.env['LIT_YELLOWSTONE_PRIVATE_RPC_URL']; +if (RPC_OVERRIDE) { + console.log( + '๐Ÿงช E2E: Using RPC override (LIT_YELLOWSTONE_PRIVATE_RPC_URL):', + RPC_OVERRIDE + ); +} + describe('all', () => { // Singleton baby let ctx: Awaited>; // Auth contexts for testing let alicePkpAuthContext: any; - let aliceCustomAuthContext: any; + let eveCustomAuthContext: any; beforeAll(async () => { try { @@ -33,7 +41,7 @@ describe('all', () => { // Create PKP and custom auth contexts using helper functions // alicePkpAuthContext = await createPkpAuthContext(ctx); - aliceCustomAuthContext = await createCustomAuthContext(ctx); + eveCustomAuthContext = await createCustomAuthContext(ctx); } catch (e) { console.error(e); process.exit(1); @@ -48,10 +56,8 @@ describe('all', () => { createPkpSignTest(ctx, () => ctx.aliceEoaAuthContext)()); it('executeJs', () => createExecuteJsTest(ctx, () => ctx.aliceEoaAuthContext)()); - it('viewPKPsByAddress', () => - createViewPKPsByAddressTest(ctx, () => ctx.aliceEoaAuthContext)()); - it('viewPKPsByAuthData', () => - createViewPKPsByAuthDataTest(ctx, () => ctx.aliceEoaAuthContext)()); + it('viewPKPsByAddress', () => createViewPKPsByAddressTest(ctx)()); + it('viewPKPsByAuthData', () => createViewPKPsByAuthDataTest(ctx)()); it('pkpEncryptDecrypt', () => createPkpEncryptDecryptTest(ctx, () => ctx.aliceEoaAuthContext)()); it('encryptDecryptFlow', () => @@ -89,10 +95,10 @@ describe('all', () => { createPkpSignTest(ctx, () => ctx.alicePkpAuthContext)()); it('executeJs', () => createExecuteJsTest(ctx, () => ctx.alicePkpAuthContext)()); - it('viewPKPsByAddress', () => - createViewPKPsByAddressTest(ctx, () => ctx.alicePkpAuthContext)()); - it('viewPKPsByAuthData', () => - createViewPKPsByAuthDataTest(ctx, () => ctx.alicePkpAuthContext)()); + it('viewPKPsByAddress', () => createViewPKPsByAddressTest(ctx)()); + it('viewPKPsByAuthData', () => { + createViewPKPsByAuthDataTest(ctx)(); + }); it('pkpEncryptDecrypt', () => createPkpEncryptDecryptTest(ctx, () => ctx.alicePkpAuthContext)()); it('encryptDecryptFlow', () => @@ -124,34 +130,52 @@ describe('all', () => { describe('endpoints', () => { it('pkpSign', () => - createPkpSignTest(ctx, () => aliceCustomAuthContext)()); + createPkpSignTest( + ctx, + () => eveCustomAuthContext, + ctx.eveViemAccountPkp.pubkey + )()); it('executeJs', () => - createExecuteJsTest(ctx, () => aliceCustomAuthContext)()); - it('viewPKPsByAddress', () => - createViewPKPsByAddressTest(ctx, () => aliceCustomAuthContext)()); - it('viewPKPsByAuthData', () => - createViewPKPsByAuthDataTest(ctx, () => aliceCustomAuthContext)()); + createExecuteJsTest( + ctx, + () => eveCustomAuthContext, + ctx.eveViemAccountPkp.pubkey + )()); + it('viewPKPsByAddress', () => createViewPKPsByAddressTest(ctx)()); + it('viewPKPsByAuthData', () => { + createViewPKPsByAuthDataTest(ctx, ctx.eveCustomAuthData)(); + }); it('pkpEncryptDecrypt', () => - createPkpEncryptDecryptTest(ctx, () => aliceCustomAuthContext)()); + createPkpEncryptDecryptTest( + ctx, + () => eveCustomAuthContext, + ctx.eveViemAccountPkp.ethAddress + )()); it('encryptDecryptFlow', () => - createEncryptDecryptFlowTest(ctx, () => aliceCustomAuthContext)()); - it('pkpPermissionsManagerFlow', () => - createPkpPermissionsManagerFlowTest( + createEncryptDecryptFlowTest( ctx, - () => aliceCustomAuthContext + () => eveCustomAuthContext, + ctx.eveViemAccountPkp.pubkey )()); - }); - describe('integrations', () => { - describe('pkp viem account', () => { - it('sign message', () => - createViemSignMessageTest(ctx, () => aliceCustomAuthContext)()); - it('sign transaction', () => - createViemSignTransactionTest(ctx, () => aliceCustomAuthContext)()); - it('sign typed data', () => - createViemSignTypedDataTest(ctx, () => aliceCustomAuthContext)()); - }); + // Disable for now because it requires a different flow + // it('pkpPermissionsManagerFlow', () => + // createPkpPermissionsManagerFlowTest( + // ctx, + // () => eveCustomAuthContext, ctx.eveViemAccountPkp.pubkey + // )()); }); + + // describe('integrations', () => { + // describe('pkp viem account', () => { + // it('sign message', () => + // createViemSignMessageTest(ctx, () => eveCustomAuthContext, ctx.eveViemAccountPkp.pubkey)()); + // it('sign transaction', () => + // createViemSignTransactionTest(ctx, () => eveCustomAuthContext, ctx.eveViemAccountPkp.pubkey)()); + // it('sign typed data', () => + // createViemSignTypedDataTest(ctx, () => eveCustomAuthContext, ctx.eveViemAccountPkp.pubkey)()); + // }); + // }); }); describe('EOA Native', () => { @@ -161,3 +185,114 @@ describe('all', () => { }); }); }); + +describe('rpc override', () => { + const TEST_RPC = process.env.LIT_YELLOWSTONE_PRIVATE_RPC_URL; + // const TEST_RPC = 'https://yellowstone-override.example'; + + // beforeAll(() => { + // process.env.LIT_YELLOWSTONE_PRIVATE_RPC_URL = TEST_RPC; + // }); + + // afterAll(() => { + // process.env.LIT_YELLOWSTONE_PRIVATE_RPC_URL = ORIGINAL_RPC; + // }); + + it('applies env rpc override to module and client', async () => { + const networks = await import('@lit-protocol/networks'); + + // choose module by NETWORK env (same way init.ts does) + const network = process.env.NETWORK || 'naga-dev'; + const importNameMap: Record = { + 'naga-dev': 'nagaDev', + 'naga-test': 'nagaTest', + 'naga-local': 'nagaLocal', + 'naga-staging': 'nagaStaging', + }; + const importName = importNameMap[network]; + const baseModule: any = (networks as any)[importName]; + + // apply override + const mod = + typeof baseModule.withOverrides === 'function' + ? baseModule.withOverrides({ rpcUrl: TEST_RPC }) + : baseModule; + + // log for verification + // base vs effective (when override is supported) + const baseRpcUrl = + typeof baseModule.getRpcUrl === 'function' + ? baseModule.getRpcUrl() + : 'n/a'; + const effRpcUrl = + typeof mod.getRpcUrl === 'function' ? mod.getRpcUrl() : 'n/a'; + // eslint-disable-next-line no-console + console.log('[rpc-override] TEST_RPC:', TEST_RPC); + // eslint-disable-next-line no-console + console.log( + '[rpc-override] module rpc (base โ†’ effective):', + baseRpcUrl, + 'โ†’', + effRpcUrl + ); + try { + const baseChain = + typeof baseModule.getChainConfig === 'function' + ? baseModule.getChainConfig() + : null; + const effChain = + typeof mod.getChainConfig === 'function' ? mod.getChainConfig() : null; + if (baseChain && effChain) { + // eslint-disable-next-line no-console + console.log( + '[rpc-override] module chain id/name (base โ†’ effective):', + `${baseChain.id}/${baseChain.name}`, + 'โ†’', + `${effChain.id}/${effChain.name}` + ); + // eslint-disable-next-line no-console + console.log( + '[rpc-override] module rpcUrls.default.http (base โ†’ effective):', + baseChain.rpcUrls.default.http, + 'โ†’', + effChain.rpcUrls.default.http + ); + // eslint-disable-next-line no-console + console.log( + '[rpc-override] module rpcUrls.public.http (base โ†’ effective):', + (baseChain.rpcUrls as any)['public']?.http, + 'โ†’', + (effChain.rpcUrls as any)['public']?.http + ); + } + } catch {} + + // module reflects override + expect(mod.getRpcUrl()).toBe(TEST_RPC); + const chain = mod.getChainConfig(); + expect(chain.rpcUrls.default.http[0]).toBe(TEST_RPC); + expect((chain.rpcUrls as any)['public'].http[0]).toBe(TEST_RPC); + + // client reflects override + const { createLitClient } = await import('@lit-protocol/lit-client'); + const client = await createLitClient({ network: mod }); + const cc = client.getChainConfig(); + + // eslint-disable-next-line no-console + console.log('[rpc-override] client rpcUrl:', cc.rpcUrl); + // eslint-disable-next-line no-console + console.log( + '[rpc-override] client viem rpcUrls.default:', + cc.viemConfig.rpcUrls.default.http + ); + // eslint-disable-next-line no-console + console.log( + '[rpc-override] client viem rpcUrls.public:', + (cc.viemConfig.rpcUrls as any)['public']?.http + ); + + expect(cc.rpcUrl).toBe(TEST_RPC); + expect(cc.viemConfig.rpcUrls.default.http[0]).toBe(TEST_RPC); + expect((cc.viemConfig.rpcUrls as any)['public'].http[0]).toBe(TEST_RPC); + }); +}); diff --git a/e2e/src/helper/auth-contexts.ts b/e2e/src/helper/auth-contexts.ts index 54a6be92a9..dcb563b667 100644 --- a/e2e/src/helper/auth-contexts.ts +++ b/e2e/src/helper/auth-contexts.ts @@ -39,18 +39,12 @@ export const createCustomAuthContext = async ( ctx: Awaited> ) => { console.log('๐Ÿ” Creating Custom Auth Context'); + try { // Set up custom auth method type and validation IPFS CID (from custom-auth-flow example) - const uniqueDappName = 'e2e-test-dapp'; - const uniqueAuthMethodType = hexToBigInt( - keccak256(toBytes(uniqueDappName)) - ); - const uniqueUserId = `${uniqueDappName}-alice`; - const authMethodId = keccak256(toBytes(uniqueUserId)); - const validationIpfsCid = 'QmYLeVmwJPVs7Uebk85YdVPivMyrvoeKR6X37kyVRZUXW4'; const customAuthContext = await ctx.authManager.createCustomAuthContext({ - pkpPublicKey: ctx.aliceViemAccountPkp.publicKey, + pkpPublicKey: ctx.eveViemAccountPkp.pubkey, authConfig: { resources: [ ['pkp-signing', '*'], @@ -61,17 +55,17 @@ export const createCustomAuthContext = async ( }, litClient: ctx.litClient, customAuthParams: { - litActionIpfsId: validationIpfsCid, + litActionIpfsId: ctx.eveValidationIpfsCid, jsParams: { - pkpPublicKey: ctx.aliceViemAccountPkp.publicKey, - username: 'alice', + pkpPublicKey: ctx.eveViemAccountPkp.pubkey, + username: 'eve', password: 'lit', - authMethodId: authMethodId, + authMethodId: ctx.eveCustomAuthData.authMethodId, }, }, }); - console.log('โœ… Custom Auth Context created'); + console.log('โœ… Custom Auth Context created', customAuthContext); return customAuthContext; } catch (e) { console.error('โŒ Error creating Custom Auth Context', e); diff --git a/e2e/src/helper/tests/encrypt-decrypt-flow.ts b/e2e/src/helper/tests/encrypt-decrypt-flow.ts index 3927bd0439..36578a0604 100644 --- a/e2e/src/helper/tests/encrypt-decrypt-flow.ts +++ b/e2e/src/helper/tests/encrypt-decrypt-flow.ts @@ -3,7 +3,8 @@ import { assert } from '../assertions'; export const createEncryptDecryptFlowTest = ( ctx: Awaited>, - getAuthContext: () => any + getAuthContext: () => any, + address?: string ) => { return async () => { const { createAccBuilder } = await import( @@ -17,7 +18,7 @@ export const createEncryptDecryptFlowTest = ( if (authContext === ctx.aliceEoaAuthContext) { aliceAddress = ctx.aliceViemAccount.address; } else { - aliceAddress = ctx.aliceViemAccountPkp.ethAddress; + aliceAddress = address || ctx.aliceViemAccountPkp.ethAddress; } // Set up access control conditions requiring Bob's wallet ownership diff --git a/e2e/src/helper/tests/execute-js.ts b/e2e/src/helper/tests/execute-js.ts index 0805637316..b176cbad6b 100644 --- a/e2e/src/helper/tests/execute-js.ts +++ b/e2e/src/helper/tests/execute-js.ts @@ -3,7 +3,8 @@ import { assert } from '../assertions'; export const createExecuteJsTest = ( ctx: Awaited>, - getAuthContext: () => any + getAuthContext: () => any, + pubkey?: string ) => { return async () => { const litActionCode = ` @@ -29,7 +30,7 @@ export const createExecuteJsTest = ( message: 'Test message from e2e executeJs', sigName: 'e2e-test-sig', toSign: 'Test message from e2e executeJs', - publicKey: ctx.aliceViemAccountPkp.publicKey, + publicKey: pubkey || ctx.aliceViemAccountPkp.publicKey, }, }); diff --git a/e2e/src/helper/tests/pkp-encrypt-decrypt.ts b/e2e/src/helper/tests/pkp-encrypt-decrypt.ts index f0b68d8613..3c5b47bb57 100644 --- a/e2e/src/helper/tests/pkp-encrypt-decrypt.ts +++ b/e2e/src/helper/tests/pkp-encrypt-decrypt.ts @@ -3,7 +3,8 @@ import { assert } from '../assertions'; export const createPkpEncryptDecryptTest = ( ctx: Awaited>, - getAuthContext: () => any + getAuthContext: () => any, + address?: string ) => { return async () => { const { createAccBuilder } = await import( @@ -19,7 +20,7 @@ export const createPkpEncryptDecryptTest = ( addressToUse = ctx.aliceViemAccount.address; } else { // PKP or Custom auth contexts - addressToUse = ctx.aliceViemAccountPkp.ethAddress; + addressToUse = address || ctx.aliceViemAccountPkp.ethAddress; } // Set up access control conditions requiring wallet ownership diff --git a/e2e/src/helper/tests/pkp-sign.ts b/e2e/src/helper/tests/pkp-sign.ts index 0340d7dad0..41628dfd04 100644 --- a/e2e/src/helper/tests/pkp-sign.ts +++ b/e2e/src/helper/tests/pkp-sign.ts @@ -3,12 +3,13 @@ import { assert } from '../assertions'; export const createPkpSignTest = ( ctx: Awaited>, - getAuthContext: () => any + getAuthContext: () => any, + pubkey?: string ) => { return async () => { const res = await ctx.litClient.chain.ethereum.pkpSign({ authContext: getAuthContext(), - pubKey: ctx.aliceViemAccountPkp.publicKey, + pubKey: pubkey || ctx.aliceViemAccountPkp.publicKey, toSign: 'Hello, world!', }); diff --git a/e2e/src/helper/tests/view-pkps-by-address.ts b/e2e/src/helper/tests/view-pkps-by-address.ts index fcedab514e..15b599b3d4 100644 --- a/e2e/src/helper/tests/view-pkps-by-address.ts +++ b/e2e/src/helper/tests/view-pkps-by-address.ts @@ -2,8 +2,7 @@ import { init } from '../../init'; import { assert } from '../assertions'; export const createViewPKPsByAddressTest = ( - ctx: Awaited>, - getAuthContext: () => any + ctx: Awaited> ) => { return async () => { const pkps = await ctx.litClient.viewPKPsByAddress({ diff --git a/e2e/src/helper/tests/view-pkps-by-auth-data.ts b/e2e/src/helper/tests/view-pkps-by-auth-data.ts index 5464cdd5d9..9ed1e3118b 100644 --- a/e2e/src/helper/tests/view-pkps-by-auth-data.ts +++ b/e2e/src/helper/tests/view-pkps-by-auth-data.ts @@ -3,18 +3,18 @@ import { assert } from '../assertions'; export const createViewPKPsByAuthDataTest = ( ctx: Awaited>, - getAuthContext: () => any + authData?: any ) => { return async () => { const { ViemAccountAuthenticator } = await import('@lit-protocol/auth'); - const authData = await ViemAccountAuthenticator.authenticate( - ctx.aliceViemAccount - ); + const _authData = + authData || + (await ViemAccountAuthenticator.authenticate(ctx.aliceViemAccount)); const pkps = await ctx.litClient.viewPKPsByAuthData({ authData: { - authMethodType: authData.authMethodType, - authMethodId: authData.authMethodId, + authMethodType: _authData.authMethodType, + authMethodId: _authData.authMethodId, }, pagination: { limit: 10, diff --git a/e2e/src/init.ts b/e2e/src/init.ts index 5b8075672c..190b7b1211 100644 --- a/e2e/src/init.ts +++ b/e2e/src/init.ts @@ -3,12 +3,12 @@ import { storagePlugins, ViemAccountAuthenticator, } from '@lit-protocol/auth'; -import { createLitClient } from '@lit-protocol/lit-client'; -import { Account, PrivateKeyAccount } from 'viem'; +import { createLitClient, utils as litUtils } from '@lit-protocol/lit-client'; import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts'; import { z } from 'zod'; import { fundAccount } from './helper/fundAccount'; import { getOrCreatePkp } from './helper/pkp-utils'; + // import { createPkpAuthContext } from './helper/auth-contexts'; const SupportedNetworkSchema = z.enum([ @@ -17,6 +17,7 @@ const SupportedNetworkSchema = z.enum([ 'naga-local', 'naga-staging', ]); + type SupportedNetwork = z.infer; const LogLevelSchema = z.enum(['silent', 'info', 'debug']); @@ -27,6 +28,9 @@ const LIVE_NETWORK_FUNDING_AMOUNT = '0.01'; const LOCAL_NETWORK_FUNDING_AMOUNT = '1'; const LIVE_NETWORK_LEDGER_DEPOSIT_AMOUNT = '2'; +const EVE_VALIDATION_IPFS_CID = + 'QmcxWmo3jefFsPUnskJXYBwsJYtiFuMAH1nDQEs99AwzDe'; + export const init = async ( network?: SupportedNetwork, logLevel?: LogLevel @@ -42,6 +46,12 @@ export const init = async ( bobViemAccountPkp: any; aliceEoaAuthContext: any; alicePkpAuthContext: any; + eveViemAccount: any; + eveCustomAuthData: Awaited>; + eveViemAccountPkp: Awaited< + ReturnType + >['pkpData']['data']; + eveValidationIpfsCid: string; masterDepositForUser: (userAddress: string) => Promise; // alicePkpViemAccountPermissionsManager: any, }> => { @@ -66,6 +76,8 @@ export const init = async ( bobViemAccount ); + const eveViemAccount = privateKeyToAccount(generatePrivateKey()); + /** * ==================================== * Environment settings @@ -109,7 +121,21 @@ export const init = async ( // Dynamic import of network module const networksModule = await import('@lit-protocol/networks'); - const _networkModule = networksModule[config.importName]; + const _baseNetworkModule = networksModule[config.importName]; + + // Optional RPC override from env + const rpcOverride = process.env['LIT_YELLOWSTONE_PRIVATE_RPC_URL']; + const _networkModule = + rpcOverride && typeof _baseNetworkModule.withOverrides === 'function' + ? _baseNetworkModule.withOverrides({ rpcUrl: rpcOverride }) + : _baseNetworkModule; + + if (rpcOverride) { + console.log( + 'โœ… Using RPC override (LIT_YELLOWSTONE_PRIVATE_RPC_URL):', + rpcOverride + ); + } // Fund accounts based on network type const isLocal = config.type === 'local'; @@ -129,6 +155,11 @@ export const init = async ( thenFundWith: fundingAmount, }); + await fundAccount(eveViemAccount, masterAccount, _networkModule, { + ifLessThan: fundingAmount, + thenFundWith: fundingAmount, + }); + /** * ==================================== * Initialise the LitClient @@ -184,6 +215,27 @@ export const init = async ( _network ), ]); + // Use custom auth to create a PKP for Eve + const uniqueDappName = 'e2e-test-dapp'; + + const authMethodConfig = litUtils.generateUniqueAuthMethodType({ + uniqueDappName: uniqueDappName, + }); + + const eveCustomAuthData = litUtils.generateAuthData({ + uniqueDappName: uniqueDappName, + uniqueAuthMethodType: authMethodConfig.bigint, + userId: 'eve', + }); + + const { pkpData } = await litClient.mintWithCustomAuth({ + account: eveViemAccount, + authData: eveCustomAuthData, + scope: 'sign-anything', + validationIpfsCid: EVE_VALIDATION_IPFS_CID, + }); + + const eveViemAccountPkp = pkpData.data; /** * ==================================== @@ -270,6 +322,12 @@ export const init = async ( // Deposit to the Bob PKP Ledger await masterDepositForUser(bobViemAccountPkp.ethAddress); + // Deposit to the Eve EOA Ledger + await masterDepositForUser(eveViemAccount.address); + + // Deposit to the Eve PKP Ledger + await masterDepositForUser(eveViemAccountPkp.ethAddress); + // const alicePkpViemAccountPermissionsManager = await litClient.getPKPPermissionsManager({ // pkpIdentifier: { // tokenId: aliceViemAccountPkp.tokenId, @@ -292,6 +350,10 @@ export const init = async ( bobViemAccount, bobViemAccountAuthData, bobViemAccountPkp, + eveViemAccount, + eveCustomAuthData, + eveViemAccountPkp, + eveValidationIpfsCid: EVE_VALIDATION_IPFS_CID, aliceEoaAuthContext, alicePkpAuthContext, masterDepositForUser, diff --git a/e2e/src/tickets/custom-auth.spec.ts b/e2e/src/tickets/custom-auth.spec.ts new file mode 100644 index 0000000000..f832aa94b8 --- /dev/null +++ b/e2e/src/tickets/custom-auth.spec.ts @@ -0,0 +1,170 @@ +import { createAuthManager, storagePlugins } from '@lit-protocol/auth'; +import { createLitClient, utils as litUtils } from '@lit-protocol/lit-client'; +import { nagaDev } from '@lit-protocol/networks'; +import { privateKeyToAccount } from 'viem/accounts'; + +// CONFIGURATION +const NETWORK = 'naga-dev'; +const SITE_OWNER_ACCOUNT = privateKeyToAccount( + process.env['LIVE_MASTER_ACCOUNT'] as `0x${string}` +); + +const YOU_UNIQUE_DAPP_NAME = 'amazing-app-x35ju8'; + +class MockDatabase { + users: Record = { + alice: { + pkpPublicKey: '', + }, + bob: { + pkpPublicKey: '', + }, + }; +} + +describe('Custom Auth Frontend Logic', () => { + test('should be able to create custom auth for alice', async () => { + // ========================================================= + // SITE OWNER FLOW + // ========================================================= + // Step 1: Configure dApp and Generate Auth Method Type + const authMethodConfig = litUtils.generateUniqueAuthMethodType({ + uniqueDappName: YOU_UNIQUE_DAPP_NAME, + }); + + console.log('authMethodConfig:', authMethodConfig); + + // Step 2: Create and Pin Validation Lit Action + // This is done manually in the browser at https://explorer.litprotocol.com/create-action + // This is the code used + // ============================================================ + // (async () => { + // const dAppUniqueAuthMethodType = "0x20b2c2163698c4ba8166450ff2378d96c009016deba048b9b125a696c74ea4b5"; + // const { pkpPublicKey, username, password, authMethodId } = jsParams; + + // // Custom validation logic for amazing-app-x35ju8 + // const EXPECTED_USERNAME = 'alice'; + // const EXPECTED_PASSWORD = 'lit'; + // const userIsValid = username === EXPECTED_USERNAME && password === EXPECTED_PASSWORD; + + // // Check PKP permissions + // const tokenId = await Lit.Actions.pubkeyToTokenId({ publicKey: pkpPublicKey }); + // const permittedAuthMethods = await Lit.Actions.getPermittedAuthMethods({ tokenId }); + + // const isPermitted = permittedAuthMethods.some((permittedAuthMethod) => { + // return permittedAuthMethod["auth_method_type"] === dAppUniqueAuthMethodType && + // permittedAuthMethod["id"] === authMethodId; + // }); + + // const isValid = isPermitted && userIsValid; + // LitActions.setResponse({ response: isValid ? "true" : "false" }); + // })(); + // ============================================================ + const validationIpfsCid = 'QmTdTemgWBYS76ACdZPttsve6edukyXjCdsNYNK1QDeXKY'; + + // Step 3: Mint PKPs for Users - Mint PKPs for your users using the custom auth method + // type and validation CID. + // Each user gets their own unique PKP tied to your dApp's authentication system. + const litClient = await createLitClient({ network: nagaDev }); + const mockDatabase = new MockDatabase(); + + for (const userId of [ + 'alice', + // , 'bob' + ]) { + console.log(`๐Ÿ”„ Minting a PKP for ${userId}...`); + + const authData = litUtils.generateAuthData({ + uniqueDappName: YOU_UNIQUE_DAPP_NAME, + uniqueAuthMethodType: authMethodConfig.bigint, + userId: userId, + }); + + const { pkpData } = await litClient.mintWithCustomAuth({ + account: SITE_OWNER_ACCOUNT, + authData: authData, + scope: 'sign-anything', + validationIpfsCid: validationIpfsCid, + }); + + // Store PKP info for user + mockDatabase.users[userId].pkpPublicKey = pkpData.data.pubkey; + } + + console.log('mockDatabase:', mockDatabase); + + // ========================================================= + // USER FLOW + // ========================================================= + + // -- perpare the auth manager client + const authManager = createAuthManager({ + storage: storagePlugins.localStorageNode({ + storagePath: 'alice-auth-manager-data', + appName: YOU_UNIQUE_DAPP_NAME, + networkName: NETWORK, + }), + }); + + // 1. Pretend that alice and bob are users of the dApp + // Alice login to the dApp, and the dApp will display the PKPs that they have + const alicePkpPublicKey = mockDatabase.users['alice'].pkpPublicKey; + + const aliceAuthMethodConfig = litUtils.generateUniqueAuthMethodType({ + uniqueDappName: YOU_UNIQUE_DAPP_NAME, + }); + + // 2. a util will prepare the following data for alice + const aliceAuthData = litUtils.generateAuthData({ + uniqueDappName: YOU_UNIQUE_DAPP_NAME, + uniqueAuthMethodType: aliceAuthMethodConfig.bigint, + userId: 'alice', + }); + + // 3. Alice will pass some params to proof that she is the owner of the PKP + // Create custom auth context for user + const aliceAuthContext = await authManager.createCustomAuthContext({ + pkpPublicKey: alicePkpPublicKey, + authConfig: { + resources: [ + ['pkp-signing', '*'], + ['lit-action-execution', '*'], + ['access-control-condition-decryption', '*'], + ], + expiration: new Date(Date.now() + 1000 * 60 * 15).toISOString(), + }, + litClient: litClient, + customAuthParams: { + litActionIpfsId: validationIpfsCid, + jsParams: { + pkpPublicKey: alicePkpPublicKey, + username: 'alice', + password: 'lit', + authMethodId: aliceAuthData.authMethodId, + }, + }, + }); + + console.log('aliceAuthContext:', aliceAuthContext); + + // 4. Auth context consumption - user can pass in the auth context into different Lit public APIs, such + // as pkpSign, executeJs, decrypt, etc. + + // The message string will be UTF-8 encoded before signing. + // Hashing (e.g., Keccak256 for Ethereum, SHA256 for Bitcoin) + // is handled automatically by the Lit Protocol based on the selected chain. + const messageBytes = new TextEncoder().encode('Hello from Artillery!'); + + const signatures = await litClient.chain.raw.pkpSign({ + chain: 'ethereum', + signingScheme: 'EcdsaK256Sha256', + pubKey: alicePkpPublicKey, + authContext: aliceAuthContext, + toSign: messageBytes, + }); + + console.log('signatures:', signatures); + + expect(signatures).toBeDefined(); + }); +}); diff --git a/e2e/src/v7-compatability.spec.ts b/e2e/src/v7-compatability.spec.ts index fa99d30c42..18837a4da3 100644 --- a/e2e/src/v7-compatability.spec.ts +++ b/e2e/src/v7-compatability.spec.ts @@ -1,18 +1,18 @@ -import { createAuthManager, storagePlugins, ViemAccountAuthenticator } from "@lit-protocol/auth"; -import { createLitClient } from "@lit-protocol/lit-client"; -import { nagaDev } from "@lit-protocol/networks"; -import { privateKeyToAccount } from "viem/accounts"; - +import { + createAuthManager, + storagePlugins, + ViemAccountAuthenticator, +} from '@lit-protocol/auth'; +import { createLitClient } from '@lit-protocol/lit-client'; +import { nagaDev } from '@lit-protocol/networks'; +import { privateKeyToAccount } from 'viem/accounts'; describe('v7 compatability', () => { it('should be able to use the v7 api', async () => { - - const liveMasterAccount = privateKeyToAccount( process.env['LIVE_MASTER_ACCOUNT'] as `0x${string}` ); - const litClient = await createLitClient({ network: nagaDev }); const authManager = createAuthManager({ @@ -46,40 +46,38 @@ describe('v7 compatability', () => { litClient: litClient, }); - - - const { createAccBuilder } = await import( '@lit-protocol/access-control-conditions' ); - - const unifiedAccs = createAccBuilder().unifiedAccs({ - conditionType: 'evmBasic', - contractAddress: '', - standardContractType: '', - chain: 'ethereum', - method: '', - parameters: [':userAddress'], - returnValueTest: { - comparator: '=', - value: liveMasterAccount.address, - }, - }).build(); - - - const accs = createAccBuilder().evmBasic({ - contractAddress: '', - standardContractType: '', - chain: 'ethereum', - method: '', - parameters: [':userAddress'], - returnValueTest: { - comparator: '=', - value: liveMasterAccount.address, - }, - }).build(); - + const unifiedAccs = createAccBuilder() + .unifiedAccs({ + conditionType: 'evmBasic', + contractAddress: '', + standardContractType: '', + chain: 'ethereum', + method: '', + parameters: [':userAddress'], + returnValueTest: { + comparator: '=', + value: liveMasterAccount.address, + }, + }) + .build(); + + const accs = createAccBuilder() + .evmBasic({ + contractAddress: '', + standardContractType: '', + chain: 'ethereum', + method: '', + parameters: [':userAddress'], + returnValueTest: { + comparator: '=', + value: liveMasterAccount.address, + }, + }) + .build(); const stringData = 'Hello from encrypt-decrypt flow test!'; const encryptedStringData = await litClient.encrypt({ @@ -88,10 +86,8 @@ describe('v7 compatability', () => { chain: 'ethereum', }); - console.log(encryptedStringData); - const decryptedStringResponse = await litClient.decrypt({ data: encryptedStringData, unifiedAccessControlConditions: accs, @@ -100,4 +96,4 @@ describe('v7 compatability', () => { }); console.log(decryptedStringResponse); }); -}); \ No newline at end of file +}); diff --git a/packages/access-control-conditions-schemas/CHANGELOG.md b/packages/access-control-conditions-schemas/CHANGELOG.md index ecc9af83b2..8d2a7e7edf 100644 --- a/packages/access-control-conditions-schemas/CHANGELOG.md +++ b/packages/access-control-conditions-schemas/CHANGELOG.md @@ -1,5 +1,35 @@ # @lit-protocol/access-control-conditions-schemas +## 8.0.0-canary.4 + +### Patch Changes + +- fix custom auth data schema + +## 8.0.0-canary.3 + +### Patch Changes + +- remove console logs + +## 8.0.0-canary.2 + +### Patch Changes + +- fix scopes to transform scope strings like "sign-anything" to their BigInt values (like 1n). + +## 8.0.0-canary.1 + +### Patch Changes + +- investigate scopes issues + +## 8.0.0-canary.2 + +### Patch Changes + +- merge of [Bug] Fix False Positive Custom Auth Tests #881 + ## 8.0.0-beta.1 ### Patch Changes diff --git a/packages/access-control-conditions-schemas/package.json b/packages/access-control-conditions-schemas/package.json index d97bbf8a02..4f6a0db10d 100644 --- a/packages/access-control-conditions-schemas/package.json +++ b/packages/access-control-conditions-schemas/package.json @@ -20,7 +20,7 @@ "tags": [ "universal" ], - "version": "8.0.0-beta.1", + "version": "8.0.0-canary.4", "main": "./src/index.js", "typings": "./src/index.d.ts", "dependencies": { diff --git a/packages/access-control-conditions/CHANGELOG.md b/packages/access-control-conditions/CHANGELOG.md index aef3a783bd..ec47d9b826 100644 --- a/packages/access-control-conditions/CHANGELOG.md +++ b/packages/access-control-conditions/CHANGELOG.md @@ -1,5 +1,35 @@ # @lit-protocol/access-control-conditions +## 8.0.0-canary.4 + +### Patch Changes + +- fix custom auth data schema + +## 8.0.0-canary.3 + +### Patch Changes + +- remove console logs + +## 8.0.0-canary.2 + +### Patch Changes + +- fix scopes to transform scope strings like "sign-anything" to their BigInt values (like 1n). + +## 8.0.0-canary.1 + +### Patch Changes + +- investigate scopes issues + +## 8.0.0-canary.2 + +### Patch Changes + +- merge of [Bug] Fix False Positive Custom Auth Tests #881 + ## 8.0.0-beta.1 ### Patch Changes diff --git a/packages/access-control-conditions/package.json b/packages/access-control-conditions/package.json index b315771e05..35001dd257 100644 --- a/packages/access-control-conditions/package.json +++ b/packages/access-control-conditions/package.json @@ -21,7 +21,7 @@ "tags": [ "universal" ], - "version": "8.0.0-beta.1", + "version": "8.0.0-canary.4", "main": "./src/index.js", "typings": "./src/index.d.ts", "dependencies": { diff --git a/packages/access-control-conditions/src/lib/createAccBuilder.spec.ts b/packages/access-control-conditions/src/lib/createAccBuilder.spec.ts index 99b4d21973..ede88e31aa 100644 --- a/packages/access-control-conditions/src/lib/createAccBuilder.spec.ts +++ b/packages/access-control-conditions/src/lib/createAccBuilder.spec.ts @@ -852,4 +852,4 @@ describe('Access Control Conditions Builder', () => { expect(condition.parameters).toEqual(['param1', 'param2', 'param3']); }); }); -}); \ No newline at end of file +}); diff --git a/packages/access-control-conditions/src/lib/createAccBuilder.ts b/packages/access-control-conditions/src/lib/createAccBuilder.ts index 894581eb1f..8abcb3fb7c 100644 --- a/packages/access-control-conditions/src/lib/createAccBuilder.ts +++ b/packages/access-control-conditions/src/lib/createAccBuilder.ts @@ -549,11 +549,9 @@ class AccessControlConditionBuilder implements AccBuilder { return this; } - evmBasic( - params: Omit - ): AccBuilder { + evmBasic(params: Omit): AccBuilder { const p = params as Partial; - + // For raw evmBasic, chain must be provided in params if (!p.chain) { throw new Error('Chain must be specified in params for evmBasic method'); @@ -568,14 +566,14 @@ class AccessControlConditionBuilder implements AccBuilder { return this; } - evmContract( - params: Omit - ): AccBuilder { + evmContract(params: Omit): AccBuilder { const p = params as Partial; - + // For raw evmContract, chain must be provided in params if (!p.chain) { - throw new Error('Chain must be specified in params for evmContract method'); + throw new Error( + 'Chain must be specified in params for evmContract method' + ); } this.pendingCondition = { @@ -587,11 +585,9 @@ class AccessControlConditionBuilder implements AccBuilder { return this; } - solRpc( - params: Omit - ): AccBuilder { + solRpc(params: Omit): AccBuilder { const p = params as Partial; - + // For raw solRpc, chain must be provided in params if (!p.chain) { throw new Error('Chain must be specified in params for solRpc method'); @@ -606,11 +602,9 @@ class AccessControlConditionBuilder implements AccBuilder { return this; } - cosmos( - params: Omit - ): AccBuilder { + cosmos(params: Omit): AccBuilder { const p = params as Partial; - + // For raw cosmos, chain must be provided in params if (!p.chain) { throw new Error('Chain must be specified in params for cosmos method'); @@ -938,4 +932,4 @@ export const createLitActionCondition = ( comparator: comparator as any, value: expectedValue, }, -}); \ No newline at end of file +}); diff --git a/packages/auth-helpers/CHANGELOG.md b/packages/auth-helpers/CHANGELOG.md index 4c94862255..5f6122d60a 100644 --- a/packages/auth-helpers/CHANGELOG.md +++ b/packages/auth-helpers/CHANGELOG.md @@ -1,5 +1,35 @@ # @lit-protocol/auth-helpers +## 8.0.0-canary.4 + +### Patch Changes + +- fix custom auth data schema + +## 8.0.0-canary.3 + +### Patch Changes + +- remove console logs + +## 8.0.0-canary.2 + +### Patch Changes + +- fix scopes to transform scope strings like "sign-anything" to their BigInt values (like 1n). + +## 8.0.0-canary.1 + +### Patch Changes + +- investigate scopes issues + +## 8.0.0-canary.2 + +### Patch Changes + +- merge of [Bug] Fix False Positive Custom Auth Tests #881 + ## 8.0.0-beta.1 ### Patch Changes diff --git a/packages/auth-helpers/package.json b/packages/auth-helpers/package.json index 53b7411425..d8e07a8d20 100644 --- a/packages/auth-helpers/package.json +++ b/packages/auth-helpers/package.json @@ -25,7 +25,7 @@ "crypto": false, "stream": false }, - "version": "8.0.0-beta.1", + "version": "8.0.0-canary.4", "main": "./src/index.js", "typings": "./src/index.d.ts", "dependencies": { diff --git a/packages/auth-services/CHANGELOG.md b/packages/auth-services/CHANGELOG.md index fc4bf3dde6..216ff54938 100644 --- a/packages/auth-services/CHANGELOG.md +++ b/packages/auth-services/CHANGELOG.md @@ -1,5 +1,35 @@ # @lit-protocol/auth-services +## 2.0.0-canary.4 + +### Patch Changes + +- fix custom auth data schema + +## 2.0.0-canary.3 + +### Patch Changes + +- remove console logs + +## 2.0.0-canary.2 + +### Patch Changes + +- fix scopes to transform scope strings like "sign-anything" to their BigInt values (like 1n). + +## 2.0.0-canary.1 + +### Patch Changes + +- investigate scopes issues + +## 2.0.0-canary.2 + +### Patch Changes + +- merge of [Bug] Fix False Positive Custom Auth Tests #881 + ## 2.0.0-beta.1 ### Patch Changes diff --git a/packages/auth-services/package.json b/packages/auth-services/package.json index 1cd3373acc..0b389b6886 100644 --- a/packages/auth-services/package.json +++ b/packages/auth-services/package.json @@ -1,6 +1,6 @@ { "name": "@lit-protocol/auth-services", - "version": "2.0.0-beta.1", + "version": "2.0.0-canary.4", "license": "MIT", "type": "module", "main": "./src/index.js", @@ -20,7 +20,7 @@ "@elysiajs/cors": "^1.2.0", "@elysiajs/static": "^1.3.0", "@elysiajs/swagger": "^1.2.0", - "@lit-protocol/contracts": "^0.4.0", + "@lit-protocol/contracts": "^0.5.0", "@simplewebauthn/server": "6.2.1", "@simplewebauthn/typescript-types": "^8.3.4", "@t3-oss/env-core": "^0.12.0", diff --git a/packages/auth-services/src/_setup/initSystemContext.ts b/packages/auth-services/src/_setup/initSystemContext.ts index 0162d554db..f26dc099ab 100644 --- a/packages/auth-services/src/_setup/initSystemContext.ts +++ b/packages/auth-services/src/_setup/initSystemContext.ts @@ -15,7 +15,13 @@ declare global { }; } -export async function initSystemContext({ appName }: { appName: string }) { +export async function initSystemContext({ + appName, + rpcUrl, +}: { + appName: string; + rpcUrl?: string; +}) { console.log('๐Ÿ”ฅ [initSystemContext] Initializing system context...'); let networkModule: any; @@ -34,8 +40,33 @@ export async function initSystemContext({ appName }: { appName: string }) { throw new Error(`Unsupported network: ${env.NETWORK}`); } + const overrideRpc = rpcUrl || env.LIT_TXSENDER_RPC_URL; + + // Apply runtime override if rpcUrl provided + const effectiveModule = + overrideRpc && typeof networkModule.withOverrides === 'function' + ? networkModule.withOverrides({ rpcUrl: overrideRpc }) + : networkModule; + + try { + const baseRpc = + typeof networkModule.getRpcUrl === 'function' + ? networkModule.getRpcUrl() + : 'n/a'; + const effRpc = + typeof effectiveModule.getRpcUrl === 'function' + ? effectiveModule.getRpcUrl() + : 'n/a'; + console.log( + '[initSystemContext] RPC (base โ†’ effective):', + baseRpc, + 'โ†’', + effRpc + ); + } catch {} + const litClient = await createLitClient({ - network: networkModule, + network: effectiveModule, }); const account = privateKeyToAccount(env.LIT_TXSENDER_PRIVATE_KEY as Hex); diff --git a/packages/auth-services/src/auth-server/src/createAuthServer.ts b/packages/auth-services/src/auth-server/src/createAuthServer.ts index 08f14bbcce..a28e345773 100644 --- a/packages/auth-services/src/auth-server/src/createAuthServer.ts +++ b/packages/auth-services/src/auth-server/src/createAuthServer.ts @@ -91,7 +91,10 @@ export const createLitAuthServer = ( // ============================================================= // Ensure system context is initialized before server fully starts, using appName from config // This was originally at the top level, moved here to use config.appName - await initSystemContext({ appName: config.appName }); + await initSystemContext({ + appName: config.appName, + rpcUrl: config.litTxsenderRpcUrl, + }); }) .get('/', () => ({ message: 'PKP Auth Service is running. PKP minting is now asynchronous.', diff --git a/packages/auth-services/src/auth-server/src/routes/pkp/mint.ts b/packages/auth-services/src/auth-server/src/routes/pkp/mint.ts index 24dd362b25..2fc0b82525 100644 --- a/packages/auth-services/src/auth-server/src/routes/pkp/mint.ts +++ b/packages/auth-services/src/auth-server/src/routes/pkp/mint.ts @@ -2,12 +2,12 @@ import { ElysiaInstance } from '../../types/ElysiaInstance.type'; import { addJob } from '../../../../queue-manager/src/bullmqSetup'; import { resp } from '../../response-helpers/response-helpers'; import { mintPkpDoc } from '../../../../queue-manager/src/handlers/pkpMint/pkpMint.doc'; -import { AuthServiceMintRequestRaw } from '../../schemas/AuthServiceMintRequestSchema'; +import { MintPKPRequest } from '@lit-protocol/schemas'; export const mint = (app: ElysiaInstance) => { app.post( '/mint', - async ({ body }: { body: AuthServiceMintRequestRaw }) => { + async ({ body }: { body: MintPKPRequest }) => { try { const job = await addJob('pkpMint', { requestBody: body }); return resp.QUEUED(job.id, 'PKP minting request queued successfully.'); diff --git a/packages/auth-services/src/auth-server/src/schemas/AuthServiceMintRequestSchema.ts b/packages/auth-services/src/auth-server/src/schemas/AuthServiceMintRequestSchema.ts deleted file mode 100644 index 9c02cf4396..0000000000 --- a/packages/auth-services/src/auth-server/src/schemas/AuthServiceMintRequestSchema.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { t } from 'elysia'; -import { z } from 'zod'; - -/** - * Schema for auth service PKP mint request - * This is a simplified version for minting with a single auth method - */ -export const AuthServiceMintRequestSchema = z.object({ - authMethodType: z.string(), - authMethodId: z.string(), - pubkey: z.string().optional().default('0x'), - scopes: z - .array(z.enum(['sign-anything', 'personal-sign', 'no-permissions'])) - .optional(), -}); - -// User Input Type - what the API accepts -export type AuthServiceMintRequestRaw = z.input< - typeof AuthServiceMintRequestSchema ->; - -// Transformed/Validated Type - after validation -export type AuthServiceMintRequestTransformed = z.infer< - typeof AuthServiceMintRequestSchema ->; - -// Elysia Schema for runtime validation -export const tAuthServiceMintRequestSchema = t.Object({ - authMethodType: t.String(), - authMethodId: t.String(), - pubkey: t.Optional(t.String({ default: '0x' })), - scopes: t.Optional( - t.Array( - t.Union([ - t.Literal('sign-anything'), - t.Literal('personal-sign'), - t.Literal('no-permissions'), - ]) - ) - ), -}); diff --git a/packages/auth-services/src/queue-manager/src/handlers/pkpMint/pkpMint.handler.ts b/packages/auth-services/src/queue-manager/src/handlers/pkpMint/pkpMint.handler.ts index 8601be4654..bd9d1e814a 100644 --- a/packages/auth-services/src/queue-manager/src/handlers/pkpMint/pkpMint.handler.ts +++ b/packages/auth-services/src/queue-manager/src/handlers/pkpMint/pkpMint.handler.ts @@ -1,6 +1,9 @@ -import { AuthData } from '@lit-protocol/schemas'; +import { + AuthData, + MintPKPRequest, + MintPKPRequestSchema, +} from '@lit-protocol/schemas'; import { Optional } from '@lit-protocol/types'; -import { Hex } from 'viem'; /** * Handles PKP minting tasks. @@ -8,23 +11,17 @@ import { Hex } from 'viem'; * @returns The result of the PKP minting process. */ export async function handlePkpMintTask(jobData: { - requestBody: { - authMethodType: string; - authMethodId: Hex; - pubkey: Hex; - scopes?: ('sign-anything' | 'personal-sign' | 'no-permissions')[]; - }; + requestBody: MintPKPRequest; + reqId?: string; }): Promise { - const userAuthData: Optional = { - authMethodId: jobData.requestBody.authMethodId, - authMethodType: Number(jobData.requestBody.authMethodType), - publicKey: jobData.requestBody.pubkey, - }; - const result = await globalThis.systemContext.litClient.mintWithAuth({ account: globalThis.systemContext.account, - authData: userAuthData, - scopes: jobData.requestBody.scopes || [], + authData: { + authMethodId: jobData.requestBody.authMethodId, + authMethodType: jobData.requestBody.authMethodType, + publicKey: jobData.requestBody.pubkey, + }, + scopes: jobData.requestBody.scopes, }); console.log( diff --git a/packages/auth-services/src/queue-manager/worker.ts b/packages/auth-services/src/queue-manager/worker.ts index 92c2f7c128..4d37a8e442 100644 --- a/packages/auth-services/src/queue-manager/worker.ts +++ b/packages/auth-services/src/queue-manager/worker.ts @@ -1,6 +1,7 @@ import { initSystemContext } from '../_setup/initSystemContext'; import { bullmqConnectionOptions, mainQueueName } from './src/bullmqSetup'; import { createGenericWorker } from './src/genericWorker'; +import { env } from '../env'; interface ParsedRedisConnectionOpts { host?: string; @@ -10,7 +11,10 @@ interface ParsedRedisConnectionOpts { } export async function startAuthServiceWorker() { - await initSystemContext({ appName: 'auth-services-worker' }); + await initSystemContext({ + appName: 'auth-services-worker', + rpcUrl: env.LIT_TXSENDER_RPC_URL, + }); console.log('------------------------------------------------------'); console.log(' Attempting to start Generic BullMQ Worker Process... '); console.log('------------------------------------------------------'); diff --git a/packages/auth/CHANGELOG.md b/packages/auth/CHANGELOG.md index 7db5eaf405..a49a8469e1 100644 --- a/packages/auth/CHANGELOG.md +++ b/packages/auth/CHANGELOG.md @@ -1,5 +1,35 @@ # @lit-protocol/auth +## 8.0.0-canary.4 + +### Patch Changes + +- fix custom auth data schema + +## 8.0.0-canary.3 + +### Patch Changes + +- remove console logs + +## 8.0.0-canary.2 + +### Patch Changes + +- fix scopes to transform scope strings like "sign-anything" to their BigInt values (like 1n). + +## 8.0.0-canary.1 + +### Patch Changes + +- investigate scopes issues + +## 8.0.0-canary.2 + +### Patch Changes + +- merge of [Bug] Fix False Positive Custom Auth Tests #881 + ## 8.0.0-beta.1 ### Patch Changes diff --git a/packages/auth/package.json b/packages/auth/package.json index ef6a90469d..78746341a1 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -43,7 +43,7 @@ "crypto": false, "stream": false }, - "version": "8.0.0-beta.1", + "version": "8.0.0-canary.4", "main": "./dist/index.js", "typings": "./src/index.d.ts", "types": "./dist/index.d.ts" diff --git a/packages/auth/src/lib/authenticators/native/WebAuthnAuthenticator.ts b/packages/auth/src/lib/authenticators/native/WebAuthnAuthenticator.ts index 4e2fc0e08a..36389fa90e 100644 --- a/packages/auth/src/lib/authenticators/native/WebAuthnAuthenticator.ts +++ b/packages/auth/src/lib/authenticators/native/WebAuthnAuthenticator.ts @@ -14,12 +14,13 @@ import { } from '@lit-protocol/constants'; import { AuthMethod, AuthServerTx, Hex } from '@lit-protocol/types'; -import { AuthData, PKPData } from '@lit-protocol/schemas'; +import { AuthData, PKPData, ScopeStringSchema } from '@lit-protocol/schemas'; import { getRPIdFromOrigin, parseAuthenticatorData } from '../helper/utils'; import { EthBlockhashInfo } from '@lit-protocol/types'; import { pollResponse } from '../helper/pollResponse'; import { JobStatusResponse } from '../types'; +import { z } from 'zod'; const fetchBlockchainData = async () => { try { @@ -149,6 +150,7 @@ export class WebAuthnAuthenticator { public static async registerAndMintPKP(params: { username?: string; authServiceBaseUrl: string; + scopes?: z.infer[]; }): Promise<{ pkpInfo: PKPData; @@ -183,6 +185,7 @@ export class WebAuthnAuthenticator { authMethodType: AUTH_METHOD_TYPE.WebAuthn, authMethodId: authMethodId, pubkey: authMethodPubkey, + scopes: params.scopes, }; // Immediate mint a new PKP to associate with the auth method diff --git a/packages/constants/CHANGELOG.md b/packages/constants/CHANGELOG.md index 80b06bcb71..2c926b6178 100644 --- a/packages/constants/CHANGELOG.md +++ b/packages/constants/CHANGELOG.md @@ -1,5 +1,35 @@ # @lit-protocol/constants +## 8.0.0-canary.4 + +### Patch Changes + +- fix custom auth data schema + +## 8.0.0-canary.3 + +### Patch Changes + +- remove console logs + +## 8.0.0-canary.2 + +### Patch Changes + +- fix scopes to transform scope strings like "sign-anything" to their BigInt values (like 1n). + +## 8.0.0-canary.1 + +### Patch Changes + +- investigate scopes issues + +## 8.0.0-canary.2 + +### Patch Changes + +- merge of [Bug] Fix False Positive Custom Auth Tests #881 + ## 8.0.0-beta.1 ### Patch Changes diff --git a/packages/constants/package.json b/packages/constants/package.json index f0c6a71edf..0df6d5c2c5 100644 --- a/packages/constants/package.json +++ b/packages/constants/package.json @@ -25,7 +25,7 @@ "tags": [ "universal" ], - "version": "8.0.0-beta.1", + "version": "8.0.0-canary.4", "main": "./src/index.js", "typings": "./src/index.d.ts" } diff --git a/packages/crypto/CHANGELOG.md b/packages/crypto/CHANGELOG.md index b8fbd5cde4..35a9330dea 100644 --- a/packages/crypto/CHANGELOG.md +++ b/packages/crypto/CHANGELOG.md @@ -1,5 +1,35 @@ # @lit-protocol/crypto +## 8.0.0-canary.4 + +### Patch Changes + +- fix custom auth data schema + +## 8.0.0-canary.3 + +### Patch Changes + +- remove console logs + +## 8.0.0-canary.2 + +### Patch Changes + +- fix scopes to transform scope strings like "sign-anything" to their BigInt values (like 1n). + +## 8.0.0-canary.1 + +### Patch Changes + +- investigate scopes issues + +## 8.0.0-canary.2 + +### Patch Changes + +- merge of [Bug] Fix False Positive Custom Auth Tests #881 + ## 8.0.0-beta.1 ### Patch Changes diff --git a/packages/crypto/package.json b/packages/crypto/package.json index a8b2f6c78d..d520c5deb9 100644 --- a/packages/crypto/package.json +++ b/packages/crypto/package.json @@ -21,7 +21,7 @@ "tags": [ "universal" ], - "version": "8.0.0-beta.1", + "version": "8.0.0-canary.4", "main": "./src/index.js", "typings": "./src/index.d.ts", "dependencies": { diff --git a/packages/e2e/src/tickets/jss100-custom-contract-accs.spec.ts b/packages/e2e/src/tickets/jss100-custom-contract-accs.spec.ts new file mode 100644 index 0000000000..d59dde5a52 --- /dev/null +++ b/packages/e2e/src/tickets/jss100-custom-contract-accs.spec.ts @@ -0,0 +1,144 @@ +import { createAuthManager, storagePlugins } from '@lit-protocol/auth'; +import { createLitClient } from '@lit-protocol/lit-client'; +import { nagaDev } from '@lit-protocol/networks'; +import { privateKeyToAccount } from 'viem/accounts'; +import { + createAccBuilder, + UnifiedAccessControlCondition, +} from '@lit-protocol/access-control-conditions'; + +import { createPublicClient, http } from 'viem'; +import { baseSepolia } from 'viem/chains'; + +const liveMasterAccount = privateKeyToAccount( + process.env['LIVE_MASTER_ACCOUNT'] as `0x${string}` +); + +const rawAccs = [ + { + conditionType: 'evmContract', + contractAddress: '0x036CbD53842c5426634e7929541eC2318f3dCF7e', + functionName: 'balanceOf', + functionParams: [':userAddress'], + functionAbi: { + inputs: [{ internalType: 'address', name: 'account', type: 'address' }], + name: 'balanceOf', + outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }], + stateMutability: 'view', + type: 'function', + }, + chain: 'baseSepolia', + returnValueTest: { + key: '', + comparator: '>=', + value: '0', + }, + }, +] as UnifiedAccessControlCondition; + +describe('jss100 custom contract accs', () => { + beforeAll(async () => { + const client = createPublicClient({ + chain: baseSepolia, + transport: http(), + }); + + const balance = await client.readContract({ + address: '0x036CbD53842c5426634e7929541eC2318f3dCF7e', + abi: [ + { + constant: true, + inputs: [{ name: 'account', type: 'address' }], + name: 'balanceOf', + outputs: [{ name: '', type: 'uint256' }], + payable: false, + stateMutability: 'view', + type: 'function', + }, + ], + functionName: 'balanceOf', + args: [liveMasterAccount.address], + }); + + if (BigInt(balance) <= 0n) { + throw new Error( + `Test account ${liveMasterAccount.address} has no balance for token 0x036CbD53842c5426634e7929541eC2318f3dCF7e. Please get some before running the test.` + ); + } + }); + + it('should be able to use the custom contract accs api - evmContract conditions', async () => { + console.log( + '๐Ÿ”ง [TEST] Testing evmContract conditions (rawAccs):', + JSON.stringify(rawAccs, null, 2) + ); + + console.log( + 'Setting up permissions for address:', + liveMasterAccount.address + ); + + console.log('๐Ÿ”ง [SESSION] Creating fresh litClient and clearing storage'); + + const litClient = await createLitClient({ network: nagaDev }); + + // Use unique storage path with timestamp to prevent session reuse + const uniqueStoragePath = `.e2e/jss100-${Date.now()}`; + console.log('๐Ÿ”ง [SESSION] Using unique storage path:', uniqueStoragePath); + + const authManager = createAuthManager({ + storage: storagePlugins.localStorageNode({ + appName: 'jss100-custom-contract-accs', + networkName: 'naga-dev', + storagePath: uniqueStoragePath, + }), + }); + + /** + * ==================================== + * Create the auth context + * ==================================== + */ + const aliceEoaAuthContext = await authManager.createEoaAuthContext({ + config: { + account: liveMasterAccount, + }, + authConfig: { + statement: 'I authorize the Lit Protocol to execute this Lit Action.', + domain: 'example.com', + resources: [ + ['lit-action-execution', '*'], + ['pkp-signing', '*'], + ['access-control-condition-decryption', '*'], + ], + capabilityAuthSigs: [], + expiration: new Date(Date.now() + 1000 * 60 * 15).toISOString(), + }, + litClient: litClient, + }); + + // Handle both array and single condition formats correctly + const unifiedAccs = createAccBuilder().unifiedAccs(rawAccs).build(); + + console.log('unifiedAccs:', JSON.stringify(unifiedAccs, null, 2)); + + const stringData = 'Hello world'; + const encryptedStringData = await litClient.encrypt({ + dataToEncrypt: stringData, + unifiedAccessControlConditions: unifiedAccs, + }); + + console.log(encryptedStringData); + + // Use the same account to decrypt the data + const decryptedStringData = await litClient.decrypt({ + data: encryptedStringData, + unifiedAccessControlConditions: unifiedAccs, + authContext: aliceEoaAuthContext, + }); + + console.log('decryptedStringData:', decryptedStringData); + + expect(decryptedStringData.convertedData).toBe(stringData); + }); +}); diff --git a/packages/lit-client/CHANGELOG.md b/packages/lit-client/CHANGELOG.md index df2b8cf37e..e5c4cfb336 100644 --- a/packages/lit-client/CHANGELOG.md +++ b/packages/lit-client/CHANGELOG.md @@ -1,5 +1,35 @@ # @lit-protocol/lit-client +## 8.0.0-canary.4 + +### Patch Changes + +- fix custom auth data schema + +## 8.0.0-canary.3 + +### Patch Changes + +- remove console logs + +## 8.0.0-canary.2 + +### Patch Changes + +- fix scopes to transform scope strings like "sign-anything" to their BigInt values (like 1n). + +## 8.0.0-canary.1 + +### Patch Changes + +- investigate scopes issues + +## 8.0.0-canary.2 + +### Patch Changes + +- merge of [Bug] Fix False Positive Custom Auth Tests #881 + ## 8.0.0-beta.1 ### Patch Changes diff --git a/packages/lit-client/package.json b/packages/lit-client/package.json index cdc2e2ac36..cf52906d01 100644 --- a/packages/lit-client/package.json +++ b/packages/lit-client/package.json @@ -21,7 +21,7 @@ "tags": [ "universal" ], - "version": "8.0.0-beta.1", + "version": "8.0.0-canary.4", "main": "./dist/index.js", "typings": "./src/index.d.ts", "types": "./dist/index.d.ts", diff --git a/packages/lit-client/src/lib/LitClient/createLitClient.ts b/packages/lit-client/src/lib/LitClient/createLitClient.ts index 618759aef2..a49db13e46 100644 --- a/packages/lit-client/src/lib/LitClient/createLitClient.ts +++ b/packages/lit-client/src/lib/LitClient/createLitClient.ts @@ -10,13 +10,21 @@ import { } from '@lit-protocol/access-control-conditions'; import { encrypt as blsEncrypt } from '@lit-protocol/crypto'; import { getChildLogger } from '@lit-protocol/logger'; -import type { - LitNetworkModule, - PKPStorageProvider, +import { + type LitNetworkModule, + type PKPStorageProvider, + type ExpectedAccountOrWalletClient, + type GenericTxRes, + type LitTxRes, + type PKPData, + type AuthMethod, + PKPPermissionsManager, + PaymentManager, } from '@lit-protocol/networks'; import { AuthContextSchema2, AuthData, + ChainSchema, EncryptedVersion1Schema, HexPrefixedSchema, JsonSignCustomSessionKeyRequestForPkpReturnSchema, @@ -350,7 +358,8 @@ export const _createNagaLitClient = async ( return await networkModule.api.signCustomSessionKey.handleResponse( result as any, params.requestBody.pkpPublicKey, - jitContext + jitContext, + requestId ); } @@ -663,7 +672,7 @@ export const _createNagaLitClient = async ( unifiedAccessControlConditions: params.unifiedAccessControlConditions, connectionInfo: currentConnectionInfo, version: networkModule.version, - chain: params.chain, + chain: ChainSchema.parse(params.chain), jitContext, })) as RequestItem>[]; @@ -735,8 +744,14 @@ export const _createNagaLitClient = async ( loginUrl: networkModule.getDefaultLoginBaseUrl(), }, disconnect: _stateManager.stop, - mintWithEoa: networkModule.chainApi.mintWithEoa, - mintWithAuth: networkModule.chainApi.mintWithAuth, + mintWithEoa: networkModule.chainApi.mintWithEoa as (params: { + account: ExpectedAccountOrWalletClient; + }) => Promise, PKPData>>, + mintWithAuth: networkModule.chainApi.mintWithAuth as (params: { + account: ExpectedAccountOrWalletClient; + authData: any; + scopes: string[]; + }) => Promise, PKPData>>, mintWithCustomAuth: async (params: MintWithCustomAuthRequest) => { const validatedParams = MintWithCustomAuthSchema.parse(params); @@ -801,11 +816,15 @@ export const _createNagaLitClient = async ( pkpData: pkp, }; }, - getPKPPermissionsManager: networkModule.chainApi.getPKPPermissionsManager, + getPKPPermissionsManager: networkModule.chainApi + .getPKPPermissionsManager as (params: { + pkpIdentifier: PkpIdentifierRaw; + account: ExpectedAccountOrWalletClient; + }) => Promise, getPaymentManager: async (params: { account: any }) => { - return await networkModule.chainApi.getPaymentManager({ + return (await networkModule.chainApi.getPaymentManager({ account: params.account, - }); + })) as PaymentManager; }, viewPKPPermissions: async (pkpIdentifier: PkpIdentifierRaw) => { // It's an Anvil private key, chill. ๐Ÿคฃ diff --git a/packages/lit-client/src/lib/LitClient/intergrations/createPkpViemAccount.ts b/packages/lit-client/src/lib/LitClient/intergrations/createPkpViemAccount.ts index 3b9c8f98e7..ebec88ae2c 100644 --- a/packages/lit-client/src/lib/LitClient/intergrations/createPkpViemAccount.ts +++ b/packages/lit-client/src/lib/LitClient/intergrations/createPkpViemAccount.ts @@ -120,16 +120,14 @@ export async function createPKPViemAccount({ tx, address, chain, - transportUrl, }: { tx: Partial; address: `0x${string}`; chain: Chain; - transportUrl: string; }): Promise { const client = createPublicClient({ chain, - transport: http(transportUrl), + transport: http(chain.rpcUrls.default.http[0]), }); try { @@ -246,7 +244,6 @@ export async function createPKPViemAccount({ tx: txRequest, address, chain: chainConfig, - transportUrl: chainConfig.rpcUrls.default.http[0], }); } else { // Ensure minimum required fields for transaction type inference diff --git a/packages/lit-client/src/lib/LitClient/schemas/MintWithCustomAuthSchema.ts b/packages/lit-client/src/lib/LitClient/schemas/MintWithCustomAuthSchema.ts index ca2a6424e6..26197e7147 100644 --- a/packages/lit-client/src/lib/LitClient/schemas/MintWithCustomAuthSchema.ts +++ b/packages/lit-client/src/lib/LitClient/schemas/MintWithCustomAuthSchema.ts @@ -1,4 +1,4 @@ -import { AuthData } from '@lit-protocol/schemas'; +import { AuthData, CustomAuthDataSchema } from '@lit-protocol/schemas'; import { Optional } from '@lit-protocol/types'; import { z } from 'zod'; @@ -9,7 +9,7 @@ const BaseMintWithCustomAuthSchema = z.object({ // Account information - this will be passed from the calling context account: z.any(), // Account type varies by network // Authentication data for the user - authData: z.custom>(), + authData: CustomAuthDataSchema, scope: z.enum(['no-permissions', 'sign-anything', 'personal-sign']), // Optional overrides addPkpEthAddressAsPermittedAddress: z.boolean().default(false), @@ -21,8 +21,7 @@ const BaseMintWithCustomAuthSchema = z.object({ */ // const MintWithValidationCodeSchema = BaseMintWithCustomAuthSchema.extend({ // validationCode: z.string().min(1, 'validationCode cannot be empty'), -// validationIpfsCid: z.undefined().optional(), -// }); +// validationIpfsCid: z.undefined /** * Schema variant for validation IPFS CID diff --git a/packages/lit-client/src/lib/LitClient/utils.ts b/packages/lit-client/src/lib/LitClient/utils.ts index 8602d5cf68..1766a6b92d 100644 --- a/packages/lit-client/src/lib/LitClient/utils.ts +++ b/packages/lit-client/src/lib/LitClient/utils.ts @@ -1,3 +1,4 @@ +import { CustomAuthData, CustomAuthDataSchema } from '@lit-protocol/schemas'; import { hexToBigInt, keccak256, toBytes } from 'viem'; export const utils = { @@ -56,12 +57,14 @@ export const utils = { uniqueDappName: string; uniqueAuthMethodType: bigint; userId: string; - }) => { + }): CustomAuthData => { const uniqueUserId = `${uniqueDappName}-${userId}`; - return { + const customAuthData = CustomAuthDataSchema.parse({ authMethodType: uniqueAuthMethodType, authMethodId: keccak256(toBytes(uniqueUserId)), - }; + }); + + return customAuthData; }, }; diff --git a/packages/logger/CHANGELOG.md b/packages/logger/CHANGELOG.md index 1a4f70912a..34d3203dcb 100644 --- a/packages/logger/CHANGELOG.md +++ b/packages/logger/CHANGELOG.md @@ -1,5 +1,35 @@ # @lit-protocol/logger +## 8.0.0-canary.4 + +### Patch Changes + +- fix custom auth data schema + +## 8.0.0-canary.3 + +### Patch Changes + +- remove console logs + +## 8.0.0-canary.2 + +### Patch Changes + +- fix scopes to transform scope strings like "sign-anything" to their BigInt values (like 1n). + +## 8.0.0-canary.1 + +### Patch Changes + +- investigate scopes issues + +## 8.0.0-canary.2 + +### Patch Changes + +- merge of [Bug] Fix False Positive Custom Auth Tests #881 + ## 8.0.0-beta.1 ### Patch Changes diff --git a/packages/logger/package.json b/packages/logger/package.json index b81fc2575d..908745d1d7 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -1,6 +1,6 @@ { "name": "@lit-protocol/logger", - "version": "8.0.0-beta.1", + "version": "8.0.0-canary.4", "type": "commonjs", "tags": [ "universal" diff --git a/packages/networks/CHANGELOG.md b/packages/networks/CHANGELOG.md index 1abb0b83ab..33b967f711 100644 --- a/packages/networks/CHANGELOG.md +++ b/packages/networks/CHANGELOG.md @@ -1,5 +1,35 @@ # @lit-protocol/networks +## 8.0.0-canary.4 + +### Patch Changes + +- fix custom auth data schema + +## 8.0.0-canary.3 + +### Patch Changes + +- remove console logs + +## 8.0.0-canary.2 + +### Patch Changes + +- fix scopes to transform scope strings like "sign-anything" to their BigInt values (like 1n). + +## 8.0.0-canary.1 + +### Patch Changes + +- investigate scopes issues + +## 8.0.0-canary.2 + +### Patch Changes + +- merge of [Bug] Fix False Positive Custom Auth Tests #881 + ## 8.0.0-beta.1 ### Patch Changes diff --git a/packages/networks/package.json b/packages/networks/package.json index fea67bdb99..2dfa8b58a2 100644 --- a/packages/networks/package.json +++ b/packages/networks/package.json @@ -18,7 +18,7 @@ "directory": "../../dist/packages/networks" }, "dependencies": { - "@lit-protocol/contracts": "^0.4.0", + "@lit-protocol/contracts": "^0.5.0", "@lit-protocol/nacl": "7.1.1", "@noble/curves": "^1.8.1", "@wagmi/core": "^2.17.1", @@ -35,7 +35,7 @@ "tags": [ "universal" ], - "version": "8.0.0-beta.1", + "version": "8.0.0-canary.4", "main": "./dist/index.js", "typings": "./src/index.d.ts", "types": "./dist/index.d.ts" diff --git a/packages/networks/src/chains/ChronicleYellowstone.ts b/packages/networks/src/chains/ChronicleYellowstone.ts index 9304adc8b1..5d39e61841 100644 --- a/packages/networks/src/chains/ChronicleYellowstone.ts +++ b/packages/networks/src/chains/ChronicleYellowstone.ts @@ -41,3 +41,27 @@ export const WagmiConfig = createConfig({ [viemChainConfig.id]: http(), }, }); + +/** + * Resolve the effective RPC URL from an optional override. + */ +export function resolveRpcUrl(overrideRpc?: string): string { + return overrideRpc ?? RPC_URL; +} + +/** + * Build a Chain config using the base Chronicle Yellowstone config, + * applying an optional RPC override to both default and public http URLs. + */ +export function buildViemChainConfig(overrideRpc?: string): Chain { + const rpc = resolveRpcUrl(overrideRpc); + const base = viemChainConfig; + return { + ...base, + rpcUrls: { + ...base.rpcUrls, + default: { ...base.rpcUrls.default, http: [rpc] }, + public: { ...(base.rpcUrls as any)['public'], http: [rpc] }, + }, + } as Chain; +} diff --git a/packages/networks/src/index.ts b/packages/networks/src/index.ts index d9740dd627..8520ab74bf 100644 --- a/packages/networks/src/index.ts +++ b/packages/networks/src/index.ts @@ -39,3 +39,18 @@ export type { PKPStorageProvider } from './storage/types'; // Schema types export type { MintRequestRaw } from './networks/vNaga/shared/managers/LitChainClient/schemas/MintRequestSchema'; + +// ----- re-exports for SDK consumers +export type { ExpectedAccountOrWalletClient } from './networks/vNaga/shared/managers/contract-manager/createContractsManager'; +export { PKPPermissionsManager } from './networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/PKPPermissionsManager'; +export { PaymentManager } from './networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/PaymentManager/PaymentManager'; +export type { + GenericTxRes, + LitTxRes, +} from './networks/vNaga/shared/managers/LitChainClient/apis/types'; +export type { PKPData } from './networks/vNaga/shared/managers/LitChainClient/schemas/shared/PKPDataSchema'; +export type { AuthMethod } from './networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/PKPPermissionsManager/handlers/getPermissionsContext'; +export type { PkpIdentifierRaw } from './networks/vNaga/shared/managers/LitChainClient/apis/rawContractApis/permissions/utils/resolvePkpTokenId'; +export { getMaxPricesForNodeProduct } from './networks/vNaga/shared/managers/pricing-manager/getMaxPricesForNodeProduct'; +export { getUserMaxPrice } from './networks/vNaga/shared/managers/pricing-manager/getUserMaxPrice'; +export { PRODUCT_IDS } from './networks/vNaga/shared/managers/pricing-manager/constants'; diff --git a/packages/networks/src/networks/vNaga/envs/base/BaseNetworkEnvironment.ts b/packages/networks/src/networks/vNaga/envs/base/BaseNetworkEnvironment.ts index 3e2b4f20db..ee5c110a14 100644 --- a/packages/networks/src/networks/vNaga/envs/base/BaseNetworkEnvironment.ts +++ b/packages/networks/src/networks/vNaga/envs/base/BaseNetworkEnvironment.ts @@ -15,6 +15,7 @@ export interface BaseEnvironmentOptions { minimumThreshold?: number; httpProtocol?: 'http://' | 'https://'; requiredAttestation?: boolean; + rpcUrlOverride?: string; } export abstract class BaseNetworkEnvironment { @@ -24,9 +25,9 @@ export abstract class BaseNetworkEnvironment { this.config = { minimumThreshold: options.minimumThreshold || 3, network: options.network, - rpcUrl: this.getRpcUrl(), + rpcUrl: this.getRpcUrl(options.rpcUrlOverride), abiSignatures: options.abiSignatures, - chainConfig: this.getChainConfig(), + chainConfig: this.getChainConfig(options.rpcUrlOverride), httpProtocol: options.httpProtocol || 'https://', networkSpecificConfigs: options.networkSpecificConfigs, endpoints: this.getEndpoints(), @@ -51,8 +52,8 @@ export abstract class BaseNetworkEnvironment { return this.config.services; } - protected abstract getRpcUrl(): string; - protected abstract getChainConfig(): Chain; + protected abstract getRpcUrl(overrideRpc?: string): string; + protected abstract getChainConfig(overrideRpc?: string): Chain; protected abstract getEndpoints(): NagaEndpointsType; protected abstract getDefaultRealmId(): bigint; } diff --git a/packages/networks/src/networks/vNaga/envs/naga-dev/naga-dev.env.ts b/packages/networks/src/networks/vNaga/envs/naga-dev/naga-dev.env.ts index a132adf503..4f5add57ad 100644 --- a/packages/networks/src/networks/vNaga/envs/naga-dev/naga-dev.env.ts +++ b/packages/networks/src/networks/vNaga/envs/naga-dev/naga-dev.env.ts @@ -20,7 +20,7 @@ export class NagaDevEnvironment extends BaseNetworkEnvironment< NagaDevSignatures, NagaDevSpecificConfigs > { - constructor() { + constructor(options?: { rpcUrlOverride?: string }) { super({ network: NETWORK, abiSignatures: nagaDevSignatures, @@ -34,15 +34,16 @@ export class NagaDevEnvironment extends BaseNetworkEnvironment< minimumThreshold: MINIMUM_THRESHOLD, httpProtocol: PROTOCOL, requiredAttestation: false, + rpcUrlOverride: options?.rpcUrlOverride, }); } - protected getRpcUrl(): string { - return chainInfo.RPC_URL; + protected getRpcUrl(overrideRpc?: string): string { + return chainInfo.resolveRpcUrl(overrideRpc); } - protected getChainConfig(): Chain { - return chainInfo.viemChainConfig; + protected getChainConfig(overrideRpc?: string): Chain { + return chainInfo.buildViemChainConfig(overrideRpc); } protected getEndpoints(): NagaEndpointsType { diff --git a/packages/networks/src/networks/vNaga/envs/naga-local/generated/naga-develop.cjs b/packages/networks/src/networks/vNaga/envs/naga-local/generated/naga-develop.cjs index 1cdadeac5a..df7a520d71 100644 --- a/packages/networks/src/networks/vNaga/envs/naga-local/generated/naga-develop.cjs +++ b/packages/networks/src/networks/vNaga/envs/naga-local/generated/naga-develop.cjs @@ -4,3598 +4,3598 @@ */ const signatures = { - "PKPHelper": { - "address": "0x4C4a2f8c81640e47606d3fd77B353E87Ba015584", - "methods": { - "claimAndMintNextAndAddAuthMethodsWithTypes": { - "inputs": [ + PKPHelper: { + address: '0x4C4a2f8c81640e47606d3fd77B353E87Ba015584', + methods: { + claimAndMintNextAndAddAuthMethodsWithTypes: { + inputs: [ { - "components": [ + components: [ { - "internalType": "uint256", - "name": "keyType", - "type": "uint256" + internalType: 'uint256', + name: 'keyType', + type: 'uint256', }, { - "internalType": "bytes32", - "name": "derivedKeyId", - "type": "bytes32" + internalType: 'bytes32', + name: 'derivedKeyId', + type: 'bytes32', }, { - "components": [ + components: [ { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" + internalType: 'bytes32', + name: 'r', + type: 'bytes32', }, { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" + internalType: 'bytes32', + name: 's', + type: 'bytes32', }, { - "internalType": "uint8", - "name": "v", - "type": "uint8" - } + internalType: 'uint8', + name: 'v', + type: 'uint8', + }, ], - "internalType": "struct IPubkeyRouter.Signature[]", - "name": "signatures", - "type": "tuple[]" - } + internalType: 'struct IPubkeyRouter.Signature[]', + name: 'signatures', + type: 'tuple[]', + }, ], - "internalType": "struct LibPKPNFTStorage.ClaimMaterial", - "name": "claimMaterial", - "type": "tuple" + internalType: 'struct LibPKPNFTStorage.ClaimMaterial', + name: 'claimMaterial', + type: 'tuple', }, { - "components": [ + components: [ { - "internalType": "uint256", - "name": "keyType", - "type": "uint256" + internalType: 'uint256', + name: 'keyType', + type: 'uint256', }, { - "internalType": "bytes[]", - "name": "permittedIpfsCIDs", - "type": "bytes[]" + internalType: 'bytes[]', + name: 'permittedIpfsCIDs', + type: 'bytes[]', }, { - "internalType": "uint256[][]", - "name": "permittedIpfsCIDScopes", - "type": "uint256[][]" + internalType: 'uint256[][]', + name: 'permittedIpfsCIDScopes', + type: 'uint256[][]', }, { - "internalType": "address[]", - "name": "permittedAddresses", - "type": "address[]" + internalType: 'address[]', + name: 'permittedAddresses', + type: 'address[]', }, { - "internalType": "uint256[][]", - "name": "permittedAddressScopes", - "type": "uint256[][]" + internalType: 'uint256[][]', + name: 'permittedAddressScopes', + type: 'uint256[][]', }, { - "internalType": "uint256[]", - "name": "permittedAuthMethodTypes", - "type": "uint256[]" + internalType: 'uint256[]', + name: 'permittedAuthMethodTypes', + type: 'uint256[]', }, { - "internalType": "bytes[]", - "name": "permittedAuthMethodIds", - "type": "bytes[]" + internalType: 'bytes[]', + name: 'permittedAuthMethodIds', + type: 'bytes[]', }, { - "internalType": "bytes[]", - "name": "permittedAuthMethodPubkeys", - "type": "bytes[]" + internalType: 'bytes[]', + name: 'permittedAuthMethodPubkeys', + type: 'bytes[]', }, { - "internalType": "uint256[][]", - "name": "permittedAuthMethodScopes", - "type": "uint256[][]" + internalType: 'uint256[][]', + name: 'permittedAuthMethodScopes', + type: 'uint256[][]', }, { - "internalType": "bool", - "name": "addPkpEthAddressAsPermittedAddress", - "type": "bool" + internalType: 'bool', + name: 'addPkpEthAddressAsPermittedAddress', + type: 'bool', }, { - "internalType": "bool", - "name": "sendPkpToItself", - "type": "bool" - } + internalType: 'bool', + name: 'sendPkpToItself', + type: 'bool', + }, ], - "internalType": "struct PKPHelper.AuthMethodData", - "name": "authMethodData", - "type": "tuple" - } + internalType: 'struct PKPHelper.AuthMethodData', + name: 'authMethodData', + type: 'tuple', + }, ], - "name": "claimAndMintNextAndAddAuthMethodsWithTypes", - "outputs": [ + name: 'claimAndMintNextAndAddAuthMethodsWithTypes', + outputs: [ { - "internalType": "uint256", - "name": "", - "type": "uint256" - } + internalType: 'uint256', + name: '', + type: 'uint256', + }, ], - "stateMutability": "payable", - "type": "function" + stateMutability: 'payable', + type: 'function', }, - "mintNextAndAddAuthMethods": { - "inputs": [ + mintNextAndAddAuthMethods: { + inputs: [ { - "internalType": "uint256", - "name": "keyType", - "type": "uint256" + internalType: 'uint256', + name: 'keyType', + type: 'uint256', }, { - "internalType": "string", - "name": "keySetId", - "type": "string" + internalType: 'string', + name: 'keySetId', + type: 'string', }, { - "internalType": "uint256[]", - "name": "permittedAuthMethodTypes", - "type": "uint256[]" + internalType: 'uint256[]', + name: 'permittedAuthMethodTypes', + type: 'uint256[]', }, { - "internalType": "bytes[]", - "name": "permittedAuthMethodIds", - "type": "bytes[]" + internalType: 'bytes[]', + name: 'permittedAuthMethodIds', + type: 'bytes[]', }, { - "internalType": "bytes[]", - "name": "permittedAuthMethodPubkeys", - "type": "bytes[]" + internalType: 'bytes[]', + name: 'permittedAuthMethodPubkeys', + type: 'bytes[]', }, { - "internalType": "uint256[][]", - "name": "permittedAuthMethodScopes", - "type": "uint256[][]" + internalType: 'uint256[][]', + name: 'permittedAuthMethodScopes', + type: 'uint256[][]', }, { - "internalType": "bool", - "name": "addPkpEthAddressAsPermittedAddress", - "type": "bool" + internalType: 'bool', + name: 'addPkpEthAddressAsPermittedAddress', + type: 'bool', }, { - "internalType": "bool", - "name": "sendPkpToItself", - "type": "bool" - } + internalType: 'bool', + name: 'sendPkpToItself', + type: 'bool', + }, ], - "name": "mintNextAndAddAuthMethods", - "outputs": [ + name: 'mintNextAndAddAuthMethods', + outputs: [ { - "internalType": "uint256", - "name": "", - "type": "uint256" - } + internalType: 'uint256', + name: '', + type: 'uint256', + }, ], - "stateMutability": "payable", - "type": "function" - } + stateMutability: 'payable', + type: 'function', + }, }, - "events": [ + events: [ { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newResolverAddress", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newResolverAddress', + type: 'address', + }, ], - "name": "ContractResolverAddressSet", - "type": "event" + name: 'ContractResolverAddressSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, ], - "name": "OwnershipTransferred", - "type": "event" + name: 'OwnershipTransferred', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + indexed: true, + internalType: 'bytes32', + name: 'role', + type: 'bytes32', }, { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" + indexed: true, + internalType: 'bytes32', + name: 'previousAdminRole', + type: 'bytes32', }, { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" - } + indexed: true, + internalType: 'bytes32', + name: 'newAdminRole', + type: 'bytes32', + }, ], - "name": "RoleAdminChanged", - "type": "event" + name: 'RoleAdminChanged', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + indexed: true, + internalType: 'bytes32', + name: 'role', + type: 'bytes32', }, { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" + indexed: true, + internalType: 'address', + name: 'account', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'sender', + type: 'address', + }, ], - "name": "RoleGranted", - "type": "event" + name: 'RoleGranted', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + indexed: true, + internalType: 'bytes32', + name: 'role', + type: 'bytes32', }, { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" + indexed: true, + internalType: 'address', + name: 'account', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'sender', + type: 'address', + }, ], - "name": "RoleRevoked", - "type": "event" - } - ] + name: 'RoleRevoked', + type: 'event', + }, + ], }, - "PKPNFT": { - "address": "0x0E801D84Fa97b50751Dbf25036d067dCf18858bF", - "methods": { - "claimAndMint": { - "inputs": [ + PKPNFT: { + address: '0x0E801D84Fa97b50751Dbf25036d067dCf18858bF', + methods: { + claimAndMint: { + inputs: [ { - "internalType": "uint256", - "name": "realmId", - "type": "uint256" + internalType: 'uint256', + name: 'realmId', + type: 'uint256', }, { - "internalType": "uint256", - "name": "keyType", - "type": "uint256" + internalType: 'uint256', + name: 'keyType', + type: 'uint256', }, { - "internalType": "string", - "name": "keySetId", - "type": "string" + internalType: 'string', + name: 'keySetId', + type: 'string', }, { - "internalType": "bytes32", - "name": "derivedKeyId", - "type": "bytes32" + internalType: 'bytes32', + name: 'derivedKeyId', + type: 'bytes32', }, { - "components": [ + components: [ { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" + internalType: 'bytes32', + name: 'r', + type: 'bytes32', }, { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" + internalType: 'bytes32', + name: 's', + type: 'bytes32', }, { - "internalType": "uint8", - "name": "v", - "type": "uint8" - } + internalType: 'uint8', + name: 'v', + type: 'uint8', + }, ], - "internalType": "struct IPubkeyRouter.Signature[]", - "name": "signatures", - "type": "tuple[]" + internalType: 'struct IPubkeyRouter.Signature[]', + name: 'signatures', + type: 'tuple[]', }, { - "internalType": "address", - "name": "stakingContractAddress", - "type": "address" - } + internalType: 'address', + name: 'stakingContractAddress', + type: 'address', + }, ], - "name": "claimAndMint", - "outputs": [ + name: 'claimAndMint', + outputs: [ { - "internalType": "uint256", - "name": "", - "type": "uint256" - } + internalType: 'uint256', + name: '', + type: 'uint256', + }, ], - "stateMutability": "payable", - "type": "function" + stateMutability: 'payable', + type: 'function', }, - "mintCost": { - "inputs": [], - "name": "mintCost", - "outputs": [ + mintCost: { + inputs: [], + name: 'mintCost', + outputs: [ { - "internalType": "uint256", - "name": "", - "type": "uint256" - } + internalType: 'uint256', + name: '', + type: 'uint256', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "mintNext": { - "inputs": [ + mintNext: { + inputs: [ { - "internalType": "uint256", - "name": "keyType", - "type": "uint256" + internalType: 'uint256', + name: 'keyType', + type: 'uint256', }, { - "internalType": "string", - "name": "keySetId", - "type": "string" - } + internalType: 'string', + name: 'keySetId', + type: 'string', + }, ], - "name": "mintNext", - "outputs": [ + name: 'mintNext', + outputs: [ { - "internalType": "uint256", - "name": "", - "type": "uint256" - } + internalType: 'uint256', + name: '', + type: 'uint256', + }, ], - "stateMutability": "payable", - "type": "function" + stateMutability: 'payable', + type: 'function', }, - "safeTransferFrom": { - "inputs": [ + safeTransferFrom: { + inputs: [ { - "internalType": "address", - "name": "from", - "type": "address" + internalType: 'address', + name: 'from', + type: 'address', }, { - "internalType": "address", - "name": "to", - "type": "address" + internalType: 'address', + name: 'to', + type: 'address', }, { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } + internalType: 'bytes', + name: 'data', + type: 'bytes', + }, ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'safeTransferFrom', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "tokenOfOwnerByIndex": { - "inputs": [ + tokenOfOwnerByIndex: { + inputs: [ { - "internalType": "address", - "name": "owner", - "type": "address" + internalType: 'address', + name: 'owner', + type: 'address', }, { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } + internalType: 'uint256', + name: 'index', + type: 'uint256', + }, ], - "name": "tokenOfOwnerByIndex", - "outputs": [ + name: 'tokenOfOwnerByIndex', + outputs: [ { - "internalType": "uint256", - "name": "", - "type": "uint256" - } + internalType: 'uint256', + name: '', + type: 'uint256', + }, ], - "stateMutability": "view", - "type": "function" - } + stateMutability: 'view', + type: 'function', + }, }, - "events": [ + events: [ { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "components": [ + components: [ { - "internalType": "address", - "name": "facetAddress", - "type": "address" + internalType: 'address', + name: 'facetAddress', + type: 'address', }, { - "internalType": "enum IDiamond.FacetCutAction", - "name": "action", - "type": "uint8" + internalType: 'enum IDiamond.FacetCutAction', + name: 'action', + type: 'uint8', }, { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } + internalType: 'bytes4[]', + name: 'functionSelectors', + type: 'bytes4[]', + }, ], - "indexed": false, - "internalType": "struct IDiamond.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" + indexed: false, + internalType: 'struct IDiamond.FacetCut[]', + name: '_diamondCut', + type: 'tuple[]', }, { - "indexed": false, - "internalType": "address", - "name": "_init", - "type": "address" + indexed: false, + internalType: 'address', + name: '_init', + type: 'address', }, { - "indexed": false, - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: '_calldata', + type: 'bytes', + }, ], - "name": "DiamondCut", - "type": "event" + name: 'DiamondCut', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, ], - "name": "OwnershipTransferred", - "type": "event" + name: 'OwnershipTransferred', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'owner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" + indexed: true, + internalType: 'address', + name: 'approved', + type: 'address', }, { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, ], - "name": "Approval", - "type": "event" + name: 'Approval', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'owner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" + indexed: true, + internalType: 'address', + name: 'operator', + type: 'address', }, { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } + indexed: false, + internalType: 'bool', + name: 'approved', + type: 'bool', + }, ], - "name": "ApprovalForAll", - "type": "event" + name: 'ApprovalForAll', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newResolverAddress", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newResolverAddress', + type: 'address', + }, ], - "name": "ContractResolverAddressSet", - "type": "event" + name: 'ContractResolverAddressSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "newFreeMintSigner", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'newFreeMintSigner', + type: 'address', + }, ], - "name": "FreeMintSignerSet", - "type": "event" + name: 'FreeMintSignerSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } + indexed: false, + internalType: 'uint8', + name: 'version', + type: 'uint8', + }, ], - "name": "Initialized", - "type": "event" + name: 'Initialized', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "newMintCost", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'newMintCost', + type: 'uint256', + }, ], - "name": "MintCostSet", - "type": "event" + name: 'MintCostSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "indexed": false, - "internalType": "bytes", - "name": "pubkey", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: 'pubkey', + type: 'bytes', + }, ], - "name": "PKPMinted", - "type": "event" + name: 'PKPMinted', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" + indexed: true, + internalType: 'address', + name: 'from', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" + indexed: true, + internalType: 'address', + name: 'to', + type: 'address', }, { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, ], - "name": "Transfer", - "type": "event" + name: 'Transfer', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newTrustedForwarder", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newTrustedForwarder', + type: 'address', + }, ], - "name": "TrustedForwarderSet", - "type": "event" + name: 'TrustedForwarderSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "name": "Withdrew", - "type": "event" - } - ] + name: 'Withdrew', + type: 'event', + }, + ], }, - "PKPPermissions": { - "address": "0x04C89607413713Ec9775E14b954286519d836FEf", - "methods": { - "addPermittedAction": { - "inputs": [ + PKPPermissions: { + address: '0x04C89607413713Ec9775E14b954286519d836FEf', + methods: { + addPermittedAction: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "bytes", - "name": "ipfsCID", - "type": "bytes" + internalType: 'bytes', + name: 'ipfsCID', + type: 'bytes', }, { - "internalType": "uint256[]", - "name": "scopes", - "type": "uint256[]" - } + internalType: 'uint256[]', + name: 'scopes', + type: 'uint256[]', + }, ], - "name": "addPermittedAction", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'addPermittedAction', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "addPermittedAddress": { - "inputs": [ + addPermittedAddress: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "address", - "name": "user", - "type": "address" + internalType: 'address', + name: 'user', + type: 'address', }, { - "internalType": "uint256[]", - "name": "scopes", - "type": "uint256[]" - } + internalType: 'uint256[]', + name: 'scopes', + type: 'uint256[]', + }, ], - "name": "addPermittedAddress", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'addPermittedAddress', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "addPermittedAuthMethod": { - "inputs": [ + addPermittedAuthMethod: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "components": [ + components: [ { - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "internalType": "bytes", - "name": "id", - "type": "bytes" + internalType: 'bytes', + name: 'id', + type: 'bytes', }, { - "internalType": "bytes", - "name": "userPubkey", - "type": "bytes" - } + internalType: 'bytes', + name: 'userPubkey', + type: 'bytes', + }, ], - "internalType": "struct LibPKPPermissionsStorage.AuthMethod", - "name": "authMethod", - "type": "tuple" + internalType: 'struct LibPKPPermissionsStorage.AuthMethod', + name: 'authMethod', + type: 'tuple', }, { - "internalType": "uint256[]", - "name": "scopes", - "type": "uint256[]" - } + internalType: 'uint256[]', + name: 'scopes', + type: 'uint256[]', + }, ], - "name": "addPermittedAuthMethod", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'addPermittedAuthMethod', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "addPermittedAuthMethodScope": { - "inputs": [ + addPermittedAuthMethodScope: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "internalType": "bytes", - "name": "id", - "type": "bytes" + internalType: 'bytes', + name: 'id', + type: 'bytes', }, { - "internalType": "uint256", - "name": "scopeId", - "type": "uint256" - } + internalType: 'uint256', + name: 'scopeId', + type: 'uint256', + }, ], - "name": "addPermittedAuthMethodScope", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'addPermittedAuthMethodScope', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "getPermittedActions": { - "inputs": [ + getPermittedActions: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, ], - "name": "getPermittedActions", - "outputs": [ + name: 'getPermittedActions', + outputs: [ { - "internalType": "bytes[]", - "name": "", - "type": "bytes[]" - } + internalType: 'bytes[]', + name: '', + type: 'bytes[]', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "getPermittedAddresses": { - "inputs": [ + getPermittedAddresses: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, ], - "name": "getPermittedAddresses", - "outputs": [ + name: 'getPermittedAddresses', + outputs: [ { - "internalType": "address[]", - "name": "", - "type": "address[]" - } + internalType: 'address[]', + name: '', + type: 'address[]', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "getPermittedAuthMethodScopes": { - "inputs": [ + getPermittedAuthMethodScopes: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "internalType": "bytes", - "name": "id", - "type": "bytes" + internalType: 'bytes', + name: 'id', + type: 'bytes', }, { - "internalType": "uint256", - "name": "maxScopeId", - "type": "uint256" - } + internalType: 'uint256', + name: 'maxScopeId', + type: 'uint256', + }, ], - "name": "getPermittedAuthMethodScopes", - "outputs": [ + name: 'getPermittedAuthMethodScopes', + outputs: [ { - "internalType": "bool[]", - "name": "", - "type": "bool[]" - } + internalType: 'bool[]', + name: '', + type: 'bool[]', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "getPermittedAuthMethods": { - "inputs": [ + getPermittedAuthMethods: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, ], - "name": "getPermittedAuthMethods", - "outputs": [ + name: 'getPermittedAuthMethods', + outputs: [ { - "components": [ + components: [ { - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "internalType": "bytes", - "name": "id", - "type": "bytes" + internalType: 'bytes', + name: 'id', + type: 'bytes', }, { - "internalType": "bytes", - "name": "userPubkey", - "type": "bytes" - } + internalType: 'bytes', + name: 'userPubkey', + type: 'bytes', + }, ], - "internalType": "struct LibPKPPermissionsStorage.AuthMethod[]", - "name": "", - "type": "tuple[]" - } + internalType: 'struct LibPKPPermissionsStorage.AuthMethod[]', + name: '', + type: 'tuple[]', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "getTokenIdsForAuthMethod": { - "inputs": [ + getTokenIdsForAuthMethod: { + inputs: [ { - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "internalType": "bytes", - "name": "id", - "type": "bytes" - } + internalType: 'bytes', + name: 'id', + type: 'bytes', + }, ], - "name": "getTokenIdsForAuthMethod", - "outputs": [ + name: 'getTokenIdsForAuthMethod', + outputs: [ { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } + internalType: 'uint256[]', + name: '', + type: 'uint256[]', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "isPermittedAction": { - "inputs": [ + isPermittedAction: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "bytes", - "name": "ipfsCID", - "type": "bytes" - } + internalType: 'bytes', + name: 'ipfsCID', + type: 'bytes', + }, ], - "name": "isPermittedAction", - "outputs": [ + name: 'isPermittedAction', + outputs: [ { - "internalType": "bool", - "name": "", - "type": "bool" - } + internalType: 'bool', + name: '', + type: 'bool', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "isPermittedAddress": { - "inputs": [ + isPermittedAddress: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "address", - "name": "user", - "type": "address" - } + internalType: 'address', + name: 'user', + type: 'address', + }, ], - "name": "isPermittedAddress", - "outputs": [ + name: 'isPermittedAddress', + outputs: [ { - "internalType": "bool", - "name": "", - "type": "bool" - } + internalType: 'bool', + name: '', + type: 'bool', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "removePermittedAction": { - "inputs": [ + removePermittedAction: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "bytes", - "name": "ipfsCID", - "type": "bytes" - } + internalType: 'bytes', + name: 'ipfsCID', + type: 'bytes', + }, ], - "name": "removePermittedAction", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'removePermittedAction', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "removePermittedAddress": { - "inputs": [ + removePermittedAddress: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "address", - "name": "user", - "type": "address" - } + internalType: 'address', + name: 'user', + type: 'address', + }, ], - "name": "removePermittedAddress", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'removePermittedAddress', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "removePermittedAuthMethod": { - "inputs": [ + removePermittedAuthMethod: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "internalType": "bytes", - "name": "id", - "type": "bytes" - } + internalType: 'bytes', + name: 'id', + type: 'bytes', + }, ], - "name": "removePermittedAuthMethod", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'removePermittedAuthMethod', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "removePermittedAuthMethodScope": { - "inputs": [ + removePermittedAuthMethodScope: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "internalType": "bytes", - "name": "id", - "type": "bytes" + internalType: 'bytes', + name: 'id', + type: 'bytes', }, { - "internalType": "uint256", - "name": "scopeId", - "type": "uint256" - } + internalType: 'uint256', + name: 'scopeId', + type: 'uint256', + }, ], - "name": "removePermittedAuthMethodScope", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } + name: 'removePermittedAuthMethodScope', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, }, - "events": [ + events: [ { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "components": [ + components: [ { - "internalType": "address", - "name": "facetAddress", - "type": "address" + internalType: 'address', + name: 'facetAddress', + type: 'address', }, { - "internalType": "enum IDiamond.FacetCutAction", - "name": "action", - "type": "uint8" + internalType: 'enum IDiamond.FacetCutAction', + name: 'action', + type: 'uint8', }, { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } + internalType: 'bytes4[]', + name: 'functionSelectors', + type: 'bytes4[]', + }, ], - "indexed": false, - "internalType": "struct IDiamond.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" + indexed: false, + internalType: 'struct IDiamond.FacetCut[]', + name: '_diamondCut', + type: 'tuple[]', }, { - "indexed": false, - "internalType": "address", - "name": "_init", - "type": "address" + indexed: false, + internalType: 'address', + name: '_init', + type: 'address', }, { - "indexed": false, - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: '_calldata', + type: 'bytes', + }, ], - "name": "DiamondCut", - "type": "event" + name: 'DiamondCut', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, ], - "name": "OwnershipTransferred", - "type": "event" + name: 'OwnershipTransferred', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newResolverAddress", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newResolverAddress', + type: 'address', + }, ], - "name": "ContractResolverAddressSet", - "type": "event" + name: 'ContractResolverAddressSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "indexed": false, - "internalType": "bytes", - "name": "id", - "type": "bytes" + indexed: false, + internalType: 'bytes', + name: 'id', + type: 'bytes', }, { - "indexed": false, - "internalType": "bytes", - "name": "userPubkey", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: 'userPubkey', + type: 'bytes', + }, ], - "name": "PermittedAuthMethodAdded", - "type": "event" + name: 'PermittedAuthMethodAdded', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "indexed": false, - "internalType": "bytes", - "name": "id", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: 'id', + type: 'bytes', + }, ], - "name": "PermittedAuthMethodRemoved", - "type": "event" + name: 'PermittedAuthMethodRemoved', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "indexed": false, - "internalType": "bytes", - "name": "id", - "type": "bytes" + indexed: false, + internalType: 'bytes', + name: 'id', + type: 'bytes', }, { - "indexed": false, - "internalType": "uint256", - "name": "scopeId", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'scopeId', + type: 'uint256', + }, ], - "name": "PermittedAuthMethodScopeAdded", - "type": "event" + name: 'PermittedAuthMethodScopeAdded', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "indexed": false, - "internalType": "bytes", - "name": "id", - "type": "bytes" + indexed: false, + internalType: 'bytes', + name: 'id', + type: 'bytes', }, { - "indexed": false, - "internalType": "uint256", - "name": "scopeId", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'scopeId', + type: 'uint256', + }, ], - "name": "PermittedAuthMethodScopeRemoved", - "type": "event" + name: 'PermittedAuthMethodScopeRemoved', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "indexed": true, - "internalType": "uint256", - "name": "group", - "type": "uint256" + indexed: true, + internalType: 'uint256', + name: 'group', + type: 'uint256', }, { - "indexed": false, - "internalType": "bytes32", - "name": "root", - "type": "bytes32" - } + indexed: false, + internalType: 'bytes32', + name: 'root', + type: 'bytes32', + }, ], - "name": "RootHashUpdated", - "type": "event" + name: 'RootHashUpdated', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newTrustedForwarder", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newTrustedForwarder', + type: 'address', + }, ], - "name": "TrustedForwarderSet", - "type": "event" - } - ] + name: 'TrustedForwarderSet', + type: 'event', + }, + ], }, - "PubkeyRouter": { - "address": "0x4c5859f0F772848b2D91F1D83E2Fe57935348029", - "methods": { - "getEthAddress": { - "inputs": [ + PubkeyRouter: { + address: '0x4c5859f0F772848b2D91F1D83E2Fe57935348029', + methods: { + getEthAddress: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, ], - "name": "getEthAddress", - "outputs": [ + name: 'getEthAddress', + outputs: [ { - "internalType": "address", - "name": "", - "type": "address" - } + internalType: 'address', + name: '', + type: 'address', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "getPubkey": { - "inputs": [ + getPubkey: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, ], - "name": "getPubkey", - "outputs": [ + name: 'getPubkey', + outputs: [ { - "internalType": "bytes", - "name": "", - "type": "bytes" - } + internalType: 'bytes', + name: '', + type: 'bytes', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "deriveEthAddressFromPubkey": { - "inputs": [ + deriveEthAddressFromPubkey: { + inputs: [ { - "internalType": "bytes", - "name": "pubkey", - "type": "bytes" - } + internalType: 'bytes', + name: 'pubkey', + type: 'bytes', + }, ], - "name": "deriveEthAddressFromPubkey", - "outputs": [ + name: 'deriveEthAddressFromPubkey', + outputs: [ { - "internalType": "address", - "name": "", - "type": "address" - } + internalType: 'address', + name: '', + type: 'address', + }, ], - "stateMutability": "pure", - "type": "function" + stateMutability: 'pure', + type: 'function', }, - "ethAddressToPkpId": { - "inputs": [ + ethAddressToPkpId: { + inputs: [ { - "internalType": "address", - "name": "ethAddress", - "type": "address" - } + internalType: 'address', + name: 'ethAddress', + type: 'address', + }, ], - "name": "ethAddressToPkpId", - "outputs": [ + name: 'ethAddressToPkpId', + outputs: [ { - "internalType": "uint256", - "name": "", - "type": "uint256" - } + internalType: 'uint256', + name: '', + type: 'uint256', + }, ], - "stateMutability": "view", - "type": "function" - } + stateMutability: 'view', + type: 'function', + }, }, - "events": [ + events: [ { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "components": [ + components: [ { - "internalType": "address", - "name": "facetAddress", - "type": "address" + internalType: 'address', + name: 'facetAddress', + type: 'address', }, { - "internalType": "enum IDiamond.FacetCutAction", - "name": "action", - "type": "uint8" + internalType: 'enum IDiamond.FacetCutAction', + name: 'action', + type: 'uint8', }, { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } + internalType: 'bytes4[]', + name: 'functionSelectors', + type: 'bytes4[]', + }, ], - "indexed": false, - "internalType": "struct IDiamond.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" + indexed: false, + internalType: 'struct IDiamond.FacetCut[]', + name: '_diamondCut', + type: 'tuple[]', }, { - "indexed": false, - "internalType": "address", - "name": "_init", - "type": "address" + indexed: false, + internalType: 'address', + name: '_init', + type: 'address', }, { - "indexed": false, - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: '_calldata', + type: 'bytes', + }, ], - "name": "DiamondCut", - "type": "event" + name: 'DiamondCut', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, ], - "name": "OwnershipTransferred", - "type": "event" + name: 'OwnershipTransferred', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newResolverAddress", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newResolverAddress', + type: 'address', + }, ], - "name": "ContractResolverAddressSet", - "type": "event" + name: 'ContractResolverAddressSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "string", - "name": "message", - "type": "string" + indexed: false, + internalType: 'string', + name: 'message', + type: 'string', }, { - "indexed": false, - "internalType": "address", - "name": "sender", - "type": "address" + indexed: false, + internalType: 'address', + name: 'sender', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'value', + type: 'uint256', + }, ], - "name": "DebugEvent", - "type": "event" + name: 'DebugEvent', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "indexed": false, - "internalType": "bytes", - "name": "pubkey", - "type": "bytes" + indexed: false, + internalType: 'bytes', + name: 'pubkey', + type: 'bytes', }, { - "indexed": false, - "internalType": "address", - "name": "stakingContract", - "type": "address" + indexed: false, + internalType: 'address', + name: 'stakingContract', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "keyType", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'keyType', + type: 'uint256', }, { - "indexed": false, - "internalType": "bytes32", - "name": "derivedKeyId", - "type": "bytes32" - } + indexed: false, + internalType: 'bytes32', + name: 'derivedKeyId', + type: 'bytes32', + }, ], - "name": "PubkeyRoutingDataSet", - "type": "event" + name: 'PubkeyRoutingDataSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "stakingContract", - "type": "address" + indexed: false, + internalType: 'address', + name: 'stakingContract', + type: 'address', }, { - "components": [ + components: [ { - "internalType": "bytes", - "name": "pubkey", - "type": "bytes" + internalType: 'bytes', + name: 'pubkey', + type: 'bytes', }, { - "internalType": "uint256", - "name": "keyType", - "type": "uint256" - } + internalType: 'uint256', + name: 'keyType', + type: 'uint256', + }, ], - "indexed": false, - "internalType": "struct IPubkeyRouter.RootKey", - "name": "rootKey", - "type": "tuple" - } + indexed: false, + internalType: 'struct IPubkeyRouter.RootKey', + name: 'rootKey', + type: 'tuple', + }, ], - "name": "RootKeySet", - "type": "event" + name: 'RootKeySet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'value', + type: 'uint256', }, { - "indexed": false, - "internalType": "address", - "name": "sender", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'sender', + type: 'address', + }, ], - "name": "ToggleEvent", - "type": "event" + name: 'ToggleEvent', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newTrustedForwarder", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newTrustedForwarder', + type: 'address', + }, ], - "name": "TrustedForwarderSet", - "type": "event" - } - ] + name: 'TrustedForwarderSet', + type: 'event', + }, + ], }, - "Staking": { - "address": "0xa82fF9aFd8f496c3d6ac40E2a0F282E47488CFc9", - "methods": { - "getActiveUnkickedValidatorStructsAndCounts": { - "inputs": [ + Staking: { + address: '0xa82fF9aFd8f496c3d6ac40E2a0F282E47488CFc9', + methods: { + getActiveUnkickedValidatorStructsAndCounts: { + inputs: [ { - "internalType": "uint256", - "name": "realmId", - "type": "uint256" - } + internalType: 'uint256', + name: 'realmId', + type: 'uint256', + }, ], - "name": "getActiveUnkickedValidatorStructsAndCounts", - "outputs": [ + name: 'getActiveUnkickedValidatorStructsAndCounts', + outputs: [ { - "components": [ + components: [ { - "internalType": "uint256", - "name": "epochLength", - "type": "uint256" + internalType: 'uint256', + name: 'epochLength', + type: 'uint256', }, { - "internalType": "uint256", - "name": "number", - "type": "uint256" + internalType: 'uint256', + name: 'number', + type: 'uint256', }, { - "internalType": "uint256", - "name": "rewardEpochNumber", - "type": "uint256" + internalType: 'uint256', + name: 'rewardEpochNumber', + type: 'uint256', }, { - "internalType": "uint256", - "name": "nextRewardEpochNumber", - "type": "uint256" + internalType: 'uint256', + name: 'nextRewardEpochNumber', + type: 'uint256', }, { - "internalType": "uint256", - "name": "endTime", - "type": "uint256" + internalType: 'uint256', + name: 'endTime', + type: 'uint256', }, { - "internalType": "uint256", - "name": "retries", - "type": "uint256" + internalType: 'uint256', + name: 'retries', + type: 'uint256', }, { - "internalType": "uint256", - "name": "timeout", - "type": "uint256" + internalType: 'uint256', + name: 'timeout', + type: 'uint256', }, { - "internalType": "uint256", - "name": "startTime", - "type": "uint256" - } + internalType: 'uint256', + name: 'startTime', + type: 'uint256', + }, ], - "internalType": "struct LibStakingStorage.Epoch", - "name": "", - "type": "tuple" + internalType: 'struct LibStakingStorage.Epoch', + name: '', + type: 'tuple', }, { - "internalType": "uint256", - "name": "", - "type": "uint256" + internalType: 'uint256', + name: '', + type: 'uint256', }, { - "components": [ + components: [ { - "internalType": "uint32", - "name": "ip", - "type": "uint32" + internalType: 'uint32', + name: 'ip', + type: 'uint32', }, { - "internalType": "uint128", - "name": "ipv6", - "type": "uint128" + internalType: 'uint128', + name: 'ipv6', + type: 'uint128', }, { - "internalType": "uint32", - "name": "port", - "type": "uint32" + internalType: 'uint32', + name: 'port', + type: 'uint32', }, { - "internalType": "address", - "name": "nodeAddress", - "type": "address" + internalType: 'address', + name: 'nodeAddress', + type: 'address', }, { - "internalType": "uint256", - "name": "reward", - "type": "uint256" + internalType: 'uint256', + name: 'reward', + type: 'uint256', }, { - "internalType": "uint256", - "name": "senderPubKey", - "type": "uint256" + internalType: 'uint256', + name: 'senderPubKey', + type: 'uint256', }, { - "internalType": "uint256", - "name": "receiverPubKey", - "type": "uint256" + internalType: 'uint256', + name: 'receiverPubKey', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastActiveEpoch", - "type": "uint256" + internalType: 'uint256', + name: 'lastActiveEpoch', + type: 'uint256', }, { - "internalType": "uint256", - "name": "commissionRate", - "type": "uint256" + internalType: 'uint256', + name: 'commissionRate', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastRewardEpoch", - "type": "uint256" + internalType: 'uint256', + name: 'lastRewardEpoch', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastRealmId", - "type": "uint256" + internalType: 'uint256', + name: 'lastRealmId', + type: 'uint256', }, { - "internalType": "uint256", - "name": "delegatedStakeAmount", - "type": "uint256" + internalType: 'uint256', + name: 'delegatedStakeAmount', + type: 'uint256', }, { - "internalType": "uint256", - "name": "delegatedStakeWeight", - "type": "uint256" + internalType: 'uint256', + name: 'delegatedStakeWeight', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastRewardEpochClaimedFixedCostRewards", - "type": "uint256" + internalType: 'uint256', + name: 'lastRewardEpochClaimedFixedCostRewards', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastRewardEpochClaimedCommission", - "type": "uint256" + internalType: 'uint256', + name: 'lastRewardEpochClaimedCommission', + type: 'uint256', }, { - "internalType": "address", - "name": "operatorAddress", - "type": "address" + internalType: 'address', + name: 'operatorAddress', + type: 'address', }, { - "internalType": "uint256", - "name": "uniqueDelegatingStakerCount", - "type": "uint256" + internalType: 'uint256', + name: 'uniqueDelegatingStakerCount', + type: 'uint256', }, { - "internalType": "bool", - "name": "registerAttestedWalletDisabled", - "type": "bool" - } + internalType: 'bool', + name: 'registerAttestedWalletDisabled', + type: 'bool', + }, ], - "internalType": "struct LibStakingStorage.Validator[]", - "name": "", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - } + internalType: 'struct LibStakingStorage.Validator[]', + name: '', + type: 'tuple[]', + }, + ], + stateMutability: 'view', + type: 'function', + }, }, - "events": [ + events: [ { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "components": [ + components: [ { - "internalType": "address", - "name": "facetAddress", - "type": "address" + internalType: 'address', + name: 'facetAddress', + type: 'address', }, { - "internalType": "enum IDiamond.FacetCutAction", - "name": "action", - "type": "uint8" + internalType: 'enum IDiamond.FacetCutAction', + name: 'action', + type: 'uint8', }, { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } + internalType: 'bytes4[]', + name: 'functionSelectors', + type: 'bytes4[]', + }, ], - "indexed": false, - "internalType": "struct IDiamond.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" + indexed: false, + internalType: 'struct IDiamond.FacetCut[]', + name: '_diamondCut', + type: 'tuple[]', }, { - "indexed": false, - "internalType": "address", - "name": "_init", - "type": "address" + indexed: false, + internalType: 'address', + name: '_init', + type: 'address', }, { - "indexed": false, - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: '_calldata', + type: 'bytes', + }, ], - "name": "DiamondCut", - "type": "event" + name: 'DiamondCut', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, ], - "name": "OwnershipTransferred", - "type": "event" + name: 'OwnershipTransferred', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "dataType", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'dataType', + type: 'uint256', + }, ], - "name": "ClearOfflinePhaseData", - "type": "event" + name: 'ClearOfflinePhaseData', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "dataType", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'dataType', + type: 'uint256', + }, ], - "name": "CountOfflinePhaseData", - "type": "event" + name: 'CountOfflinePhaseData', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newDevopsAdmin", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newDevopsAdmin', + type: 'address', + }, ], - "name": "DevopsAdminSet", - "type": "event" + name: 'DevopsAdminSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "realmId", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'realmId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "newEpochEndTime", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'newEpochEndTime', + type: 'uint256', + }, ], - "name": "EpochEndTimeSet", - "type": "event" + name: 'EpochEndTimeSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "realmId", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'realmId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "newEpochLength", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'newEpochLength', + type: 'uint256', + }, ], - "name": "EpochLengthSet", - "type": "event" + name: 'EpochLengthSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "realmId", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'realmId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "newEpochTimeout", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'newEpochTimeout', + type: 'uint256', + }, ], - "name": "EpochTimeoutSet", - "type": "event" + name: 'EpochTimeoutSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "reason", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'reason', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "newKickPenaltyPercent", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'newKickPenaltyPercent', + type: 'uint256', + }, ], - "name": "KickPenaltyPercentSet", - "type": "event" + name: 'KickPenaltyPercentSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newResolverContractAddress", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newResolverContractAddress', + type: 'address', + }, ], - "name": "ResolverContractAddressSet", - "type": "event" + name: 'ResolverContractAddressSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "stakerAddress", - "type": "address" + indexed: false, + internalType: 'address', + name: 'stakerAddress', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "recordId", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'recordId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', }, { - "indexed": false, - "internalType": "address", - "name": "stakerAddressClient", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'stakerAddressClient', + type: 'address', + }, ], - "name": "StakeRecordCreated", - "type": "event" + name: 'StakeRecordCreated', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" + indexed: true, + internalType: 'address', + name: 'staker', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "name": "Staked", - "type": "event" + name: 'Staked', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "enum LibStakingStorage.States", - "name": "newState", - "type": "uint8" - } + indexed: false, + internalType: 'enum LibStakingStorage.States', + name: 'newState', + type: 'uint8', + }, ], - "name": "StateChanged", - "type": "event" + name: 'StateChanged', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'staker', + type: 'address', + }, ], - "name": "ValidatorBanned", - "type": "event" + name: 'ValidatorBanned', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'staker', + type: 'address', + }, ], - "name": "ValidatorKickedFromNextEpoch", - "type": "event" + name: 'ValidatorKickedFromNextEpoch', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "staker", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'staker', + type: 'address', + }, ], - "name": "ValidatorRejoinedNextEpoch", - "type": "event" + name: 'ValidatorRejoinedNextEpoch', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "stakerAddress", - "type": "address" + indexed: false, + internalType: 'address', + name: 'stakerAddress', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "rewards", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'rewards', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "fromEpoch", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'fromEpoch', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "toEpoch", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'toEpoch', + type: 'uint256', + }, ], - "name": "FixedCostRewardsClaimed", - "type": "event" + name: 'FixedCostRewardsClaimed', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "userStakerAddress", - "type": "address" + indexed: false, + internalType: 'address', + name: 'userStakerAddress', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "recordId", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'recordId', + type: 'uint256', + }, ], - "name": "StakeRecordRemoved", - "type": "event" + name: 'StakeRecordRemoved', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "stakerAddress", - "type": "address" + indexed: false, + internalType: 'address', + name: 'stakerAddress', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "recordId", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'recordId', + type: 'uint256', + }, ], - "name": "StakeRecordUpdated", - "type": "event" + name: 'StakeRecordUpdated', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "stakerAddress", - "type": "address" + indexed: false, + internalType: 'address', + name: 'stakerAddress', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "recordId", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'recordId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "rewards", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'rewards', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "fromEpoch", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'fromEpoch', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "toEpoch", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'toEpoch', + type: 'uint256', + }, ], - "name": "StakeRewardsClaimed", - "type": "event" + name: 'StakeRewardsClaimed', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newTrustedForwarder", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newTrustedForwarder', + type: 'address', + }, ], - "name": "TrustedForwarderSet", - "type": "event" + name: 'TrustedForwarderSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "stakerAddress", - "type": "address" + indexed: false, + internalType: 'address', + name: 'stakerAddress', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "rewards", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'rewards', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "fromEpoch", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'fromEpoch', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "toEpoch", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'toEpoch', + type: 'uint256', + }, ], - "name": "ValidatorCommissionClaimed", - "type": "event" + name: 'ValidatorCommissionClaimed', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "stakerAddress", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'stakerAddress', + type: 'address', + }, ], - "name": "ValidatorRegistered", - "type": "event" + name: 'ValidatorRegistered', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" + indexed: true, + internalType: 'address', + name: 'staker', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "name": "Withdrawn", - "type": "event" + name: 'Withdrawn', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "bool", - "name": "exists", - "type": "bool" + indexed: false, + internalType: 'bool', + name: 'exists', + type: 'bool', }, { - "indexed": false, - "internalType": "string", - "name": "identifier", - "type": "string" + indexed: false, + internalType: 'string', + name: 'identifier', + type: 'string', }, { - "indexed": false, - "internalType": "bytes32", - "name": "hashed", - "type": "bytes32" - } + indexed: false, + internalType: 'bytes32', + name: 'hashed', + type: 'bytes32', + }, ], - "name": "KeySetConfigSet", - "type": "event" + name: 'KeySetConfigSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "string", - "name": "identifier", - "type": "string" - } + indexed: false, + internalType: 'string', + name: 'identifier', + type: 'string', + }, ], - "name": "KeySetConfigUpdated", - "type": "event" + name: 'KeySetConfigUpdated', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "realmId", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'realmId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "epochNumber", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'epochNumber', + type: 'uint256', + }, ], - "name": "AdvancedEpoch", - "type": "event" + name: 'AdvancedEpoch', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" + indexed: true, + internalType: 'address', + name: 'staker', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "attestedAddress", - "type": "address" + indexed: true, + internalType: 'address', + name: 'attestedAddress', + type: 'address', }, { - "components": [ + components: [ { - "internalType": "uint256", - "name": "x", - "type": "uint256" + internalType: 'uint256', + name: 'x', + type: 'uint256', }, { - "internalType": "uint256", - "name": "y", - "type": "uint256" - } + internalType: 'uint256', + name: 'y', + type: 'uint256', + }, ], - "indexed": true, - "internalType": "struct LibStakingStorage.UncompressedK256Key", - "name": "attestedPubKey", - "type": "tuple" - } + indexed: true, + internalType: 'struct LibStakingStorage.UncompressedK256Key', + name: 'attestedPubKey', + type: 'tuple', + }, ], - "name": "AttestedWalletRegistered", - "type": "event" + name: 'AttestedWalletRegistered', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "reason", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'reason', + type: 'uint256', }, { - "components": [ + components: [ { - "internalType": "uint256", - "name": "tolerance", - "type": "uint256" + internalType: 'uint256', + name: 'tolerance', + type: 'uint256', }, { - "internalType": "uint256", - "name": "intervalSecs", - "type": "uint256" + internalType: 'uint256', + name: 'intervalSecs', + type: 'uint256', }, { - "internalType": "uint256", - "name": "kickPenaltyPercent", - "type": "uint256" + internalType: 'uint256', + name: 'kickPenaltyPercent', + type: 'uint256', }, { - "internalType": "uint256", - "name": "kickPenaltyDemerits", - "type": "uint256" - } + internalType: 'uint256', + name: 'kickPenaltyDemerits', + type: 'uint256', + }, ], - "indexed": false, - "internalType": "struct LibStakingStorage.ComplaintConfig", - "name": "config", - "type": "tuple" - } + indexed: false, + internalType: 'struct LibStakingStorage.ComplaintConfig', + name: 'config', + type: 'tuple', + }, ], - "name": "ComplaintConfigSet", - "type": "event" + name: 'ComplaintConfigSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "newTokenRewardPerTokenPerEpoch", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'newTokenRewardPerTokenPerEpoch', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256[]", - "name": "newKeyTypes", - "type": "uint256[]" + indexed: false, + internalType: 'uint256[]', + name: 'newKeyTypes', + type: 'uint256[]', }, { - "indexed": false, - "internalType": "uint256", - "name": "newMinimumValidatorCount", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'newMinimumValidatorCount', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "newMaxConcurrentRequests", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'newMaxConcurrentRequests', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "newMaxPresignCount", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'newMaxPresignCount', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "newMinPresignCount", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'newMinPresignCount', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "newPeerCheckingIntervalSecs", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'newPeerCheckingIntervalSecs', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "newMaxPresignConcurrency", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'newMaxPresignConcurrency', + type: 'uint256', }, { - "indexed": false, - "internalType": "bool", - "name": "newRpcHealthcheckEnabled", - "type": "bool" - } + indexed: false, + internalType: 'bool', + name: 'newRpcHealthcheckEnabled', + type: 'bool', + }, ], - "name": "ConfigSet", - "type": "event" + name: 'ConfigSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "string", - "name": "message", - "type": "string" + indexed: false, + internalType: 'string', + name: 'message', + type: 'string', }, { - "indexed": false, - "internalType": "address", - "name": "sender", - "type": "address" + indexed: false, + internalType: 'address', + name: 'sender', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'value', + type: 'uint256', + }, ], - "name": "DebugEvent", - "type": "event" + name: 'DebugEvent', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" + indexed: true, + internalType: 'address', + name: 'staker', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "epochNumber", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'epochNumber', + type: 'uint256', + }, ], - "name": "ReadyForNextEpoch", - "type": "event" + name: 'ReadyForNextEpoch', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "token", - "type": "address" + indexed: false, + internalType: 'address', + name: 'token', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "name": "Recovered", - "type": "event" + name: 'Recovered', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'staker', + type: 'address', + }, ], - "name": "RequestToJoin", - "type": "event" + name: 'RequestToJoin', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'staker', + type: 'address', + }, ], - "name": "RequestToLeave", - "type": "event" + name: 'RequestToLeave', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "newDuration", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'newDuration', + type: 'uint256', + }, ], - "name": "RewardsDurationUpdated", - "type": "event" + name: 'RewardsDurationUpdated', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newStakingTokenAddress", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newStakingTokenAddress', + type: 'address', + }, ], - "name": "StakingTokenSet", - "type": "event" + name: 'StakingTokenSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "reporter", - "type": "address" + indexed: true, + internalType: 'address', + name: 'reporter', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "validatorToKickStakerAddress", - "type": "address" + indexed: true, + internalType: 'address', + name: 'validatorToKickStakerAddress', + type: 'address', }, { - "indexed": true, - "internalType": "uint256", - "name": "reason", - "type": "uint256" + indexed: true, + internalType: 'uint256', + name: 'reason', + type: 'uint256', }, { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: 'data', + type: 'bytes', + }, ], - "name": "VotedToKickValidatorInNextEpoch", - "type": "event" + name: 'VotedToKickValidatorInNextEpoch', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "index", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'index', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "realmId", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'realmId', + type: 'uint256', }, { - "components": [ + components: [ { - "internalType": "uint256", - "name": "major", - "type": "uint256" + internalType: 'uint256', + name: 'major', + type: 'uint256', }, { - "internalType": "uint256", - "name": "minor", - "type": "uint256" + internalType: 'uint256', + name: 'minor', + type: 'uint256', }, { - "internalType": "uint256", - "name": "patch", - "type": "uint256" - } + internalType: 'uint256', + name: 'patch', + type: 'uint256', + }, ], - "indexed": false, - "internalType": "struct LibStakingStorage.Version", - "name": "version", - "type": "tuple" - } - ], - "name": "VersionRequirementsUpdated", - "type": "event" - } - ] + indexed: false, + internalType: 'struct LibStakingStorage.Version', + name: 'version', + type: 'tuple', + }, + ], + name: 'VersionRequirementsUpdated', + type: 'event', + }, + ], }, - "PriceFeed": { - "address": "0xAA292E8611aDF267e563f334Ee42320aC96D0463", - "methods": { - "getNodesForRequest": { - "inputs": [ + PriceFeed: { + address: '0xAA292E8611aDF267e563f334Ee42320aC96D0463', + methods: { + getNodesForRequest: { + inputs: [ { - "internalType": "uint256", - "name": "realmId", - "type": "uint256" + internalType: 'uint256', + name: 'realmId', + type: 'uint256', }, { - "internalType": "uint256[]", - "name": "productIds", - "type": "uint256[]" - } + internalType: 'uint256[]', + name: 'productIds', + type: 'uint256[]', + }, ], - "name": "getNodesForRequest", - "outputs": [ + name: 'getNodesForRequest', + outputs: [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + internalType: 'uint256', + name: '', + type: 'uint256', }, { - "internalType": "uint256", - "name": "", - "type": "uint256" + internalType: 'uint256', + name: '', + type: 'uint256', }, { - "components": [ + components: [ { - "components": [ + components: [ { - "internalType": "uint32", - "name": "ip", - "type": "uint32" + internalType: 'uint32', + name: 'ip', + type: 'uint32', }, { - "internalType": "uint128", - "name": "ipv6", - "type": "uint128" + internalType: 'uint128', + name: 'ipv6', + type: 'uint128', }, { - "internalType": "uint32", - "name": "port", - "type": "uint32" + internalType: 'uint32', + name: 'port', + type: 'uint32', }, { - "internalType": "address", - "name": "nodeAddress", - "type": "address" + internalType: 'address', + name: 'nodeAddress', + type: 'address', }, { - "internalType": "uint256", - "name": "reward", - "type": "uint256" + internalType: 'uint256', + name: 'reward', + type: 'uint256', }, { - "internalType": "uint256", - "name": "senderPubKey", - "type": "uint256" + internalType: 'uint256', + name: 'senderPubKey', + type: 'uint256', }, { - "internalType": "uint256", - "name": "receiverPubKey", - "type": "uint256" + internalType: 'uint256', + name: 'receiverPubKey', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastActiveEpoch", - "type": "uint256" + internalType: 'uint256', + name: 'lastActiveEpoch', + type: 'uint256', }, { - "internalType": "uint256", - "name": "commissionRate", - "type": "uint256" + internalType: 'uint256', + name: 'commissionRate', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastRewardEpoch", - "type": "uint256" + internalType: 'uint256', + name: 'lastRewardEpoch', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastRealmId", - "type": "uint256" + internalType: 'uint256', + name: 'lastRealmId', + type: 'uint256', }, { - "internalType": "uint256", - "name": "delegatedStakeAmount", - "type": "uint256" + internalType: 'uint256', + name: 'delegatedStakeAmount', + type: 'uint256', }, { - "internalType": "uint256", - "name": "delegatedStakeWeight", - "type": "uint256" + internalType: 'uint256', + name: 'delegatedStakeWeight', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastRewardEpochClaimedFixedCostRewards", - "type": "uint256" + internalType: 'uint256', + name: 'lastRewardEpochClaimedFixedCostRewards', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastRewardEpochClaimedCommission", - "type": "uint256" + internalType: 'uint256', + name: 'lastRewardEpochClaimedCommission', + type: 'uint256', }, { - "internalType": "address", - "name": "operatorAddress", - "type": "address" + internalType: 'address', + name: 'operatorAddress', + type: 'address', }, { - "internalType": "uint256", - "name": "uniqueDelegatingStakerCount", - "type": "uint256" + internalType: 'uint256', + name: 'uniqueDelegatingStakerCount', + type: 'uint256', }, { - "internalType": "bool", - "name": "registerAttestedWalletDisabled", - "type": "bool" - } + internalType: 'bool', + name: 'registerAttestedWalletDisabled', + type: 'bool', + }, ], - "internalType": "struct LibStakingStorage.Validator", - "name": "validator", - "type": "tuple" + internalType: 'struct LibStakingStorage.Validator', + name: 'validator', + type: 'tuple', }, { - "internalType": "uint256[]", - "name": "prices", - "type": "uint256[]" - } + internalType: 'uint256[]', + name: 'prices', + type: 'uint256[]', + }, ], - "internalType": "struct LibPriceFeedStorage.NodeInfoAndPrices[]", - "name": "", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - } + internalType: 'struct LibPriceFeedStorage.NodeInfoAndPrices[]', + name: '', + type: 'tuple[]', + }, + ], + stateMutability: 'view', + type: 'function', + }, }, - "events": [ + events: [ { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "components": [ + components: [ { - "internalType": "address", - "name": "facetAddress", - "type": "address" + internalType: 'address', + name: 'facetAddress', + type: 'address', }, { - "internalType": "enum IDiamond.FacetCutAction", - "name": "action", - "type": "uint8" + internalType: 'enum IDiamond.FacetCutAction', + name: 'action', + type: 'uint8', }, { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } + internalType: 'bytes4[]', + name: 'functionSelectors', + type: 'bytes4[]', + }, ], - "indexed": false, - "internalType": "struct IDiamond.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" + indexed: false, + internalType: 'struct IDiamond.FacetCut[]', + name: '_diamondCut', + type: 'tuple[]', }, { - "indexed": false, - "internalType": "address", - "name": "_init", - "type": "address" + indexed: false, + internalType: 'address', + name: '_init', + type: 'address', }, { - "indexed": false, - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: '_calldata', + type: 'bytes', + }, ], - "name": "DiamondCut", - "type": "event" + name: 'DiamondCut', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, ], - "name": "OwnershipTransferred", - "type": "event" + name: 'OwnershipTransferred', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "newPrice", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'newPrice', + type: 'uint256', + }, ], - "name": "BaseNetworkPriceSet", - "type": "event" + name: 'BaseNetworkPriceSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "newPrice", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'newPrice', + type: 'uint256', + }, ], - "name": "MaxNetworkPriceSet", - "type": "event" + name: 'MaxNetworkPriceSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newTrustedForwarder", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newTrustedForwarder', + type: 'address', + }, ], - "name": "TrustedForwarderSet", - "type": "event" + name: 'TrustedForwarderSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "stakingAddress", - "type": "address" + indexed: true, + internalType: 'address', + name: 'stakingAddress', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "usagePercent", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'usagePercent', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256[]", - "name": "newPrices", - "type": "uint256[]" - } + indexed: false, + internalType: 'uint256[]', + name: 'newPrices', + type: 'uint256[]', + }, ], - "name": "UsageSet", - "type": "event" - } - ] + name: 'UsageSet', + type: 'event', + }, + ], }, - "Ledger": { - "address": "0x7A9Ec1d04904907De0ED7b6839CcdD59c3716AC9", - "methods": { - "withdraw": { - "inputs": [ - { - "internalType": "int256", - "name": "amount", - "type": "int256" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - "balance": { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "balance", - "outputs": [ - { - "internalType": "int256", - "name": "", - "type": "int256" - } - ], - "stateMutability": "view", - "type": "function" - }, - "deposit": { - "inputs": [], - "name": "deposit", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - "depositForUser": { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "depositForUser", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - "latestWithdrawRequest": { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "latestWithdrawRequest", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + Ledger: { + address: '0x7A9Ec1d04904907De0ED7b6839CcdD59c3716AC9', + methods: { + withdraw: { + inputs: [ + { + internalType: 'int256', + name: 'amount', + type: 'int256', + }, + ], + name: 'withdraw', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + balance: { + inputs: [ + { + internalType: 'address', + name: 'user', + type: 'address', + }, + ], + name: 'balance', + outputs: [ + { + internalType: 'int256', + name: '', + type: 'int256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + deposit: { + inputs: [], + name: 'deposit', + outputs: [], + stateMutability: 'payable', + type: 'function', + }, + depositForUser: { + inputs: [ + { + internalType: 'address', + name: 'user', + type: 'address', + }, + ], + name: 'depositForUser', + outputs: [], + stateMutability: 'payable', + type: 'function', + }, + latestWithdrawRequest: { + inputs: [ + { + internalType: 'address', + name: 'user', + type: 'address', + }, + ], + name: 'latestWithdrawRequest', + outputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'timestamp', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "internalType": "struct LibLedgerStorage.WithdrawRequest", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - "requestWithdraw": { - "inputs": [ - { - "internalType": "int256", - "name": "amount", - "type": "int256" - } - ], - "name": "requestWithdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - "stableBalance": { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "stableBalance", - "outputs": [ - { - "internalType": "int256", - "name": "", - "type": "int256" - } - ], - "stateMutability": "view", - "type": "function" - }, - "userWithdrawDelay": { - "inputs": [], - "name": "userWithdrawDelay", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } + internalType: 'struct LibLedgerStorage.WithdrawRequest', + name: '', + type: 'tuple', + }, + ], + stateMutability: 'view', + type: 'function', + }, + requestWithdraw: { + inputs: [ + { + internalType: 'int256', + name: 'amount', + type: 'int256', + }, + ], + name: 'requestWithdraw', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + stableBalance: { + inputs: [ + { + internalType: 'address', + name: 'user', + type: 'address', + }, + ], + name: 'stableBalance', + outputs: [ + { + internalType: 'int256', + name: '', + type: 'int256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + userWithdrawDelay: { + inputs: [], + name: 'userWithdrawDelay', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, }, - "events": [ + events: [ { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "components": [ + components: [ { - "internalType": "address", - "name": "facetAddress", - "type": "address" + internalType: 'address', + name: 'facetAddress', + type: 'address', }, { - "internalType": "enum IDiamond.FacetCutAction", - "name": "action", - "type": "uint8" + internalType: 'enum IDiamond.FacetCutAction', + name: 'action', + type: 'uint8', }, { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } + internalType: 'bytes4[]', + name: 'functionSelectors', + type: 'bytes4[]', + }, ], - "indexed": false, - "internalType": "struct IDiamond.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" + indexed: false, + internalType: 'struct IDiamond.FacetCut[]', + name: '_diamondCut', + type: 'tuple[]', }, { - "indexed": false, - "internalType": "address", - "name": "_init", - "type": "address" + indexed: false, + internalType: 'address', + name: '_init', + type: 'address', }, { - "indexed": false, - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: '_calldata', + type: 'bytes', + }, ], - "name": "DiamondCut", - "type": "event" + name: 'DiamondCut', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, ], - "name": "OwnershipTransferred", - "type": "event" + name: 'OwnershipTransferred', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "node_address", - "type": "address" + indexed: true, + internalType: 'address', + name: 'node_address', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "batch_id", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'batch_id', + type: 'uint256', + }, ], - "name": "BatchCharged", - "type": "event" + name: 'BatchCharged', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "name": "Deposit", - "type": "event" + name: 'Deposit', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "depositor", - "type": "address" + indexed: true, + internalType: 'address', + name: 'depositor', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "name": "DepositForUser", - "type": "event" + name: 'DepositForUser', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "name": "FoundationRewardsWithdrawn", - "type": "event" + name: 'FoundationRewardsWithdrawn', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "percentage", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'percentage', + type: 'uint256', + }, ], - "name": "LitFoundationSplitPercentageSet", - "type": "event" + name: 'LitFoundationSplitPercentageSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "name": "RewardWithdraw", - "type": "event" + name: 'RewardWithdraw', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "delay", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'delay', + type: 'uint256', + }, ], - "name": "RewardWithdrawDelaySet", - "type": "event" + name: 'RewardWithdrawDelaySet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "name": "RewardWithdrawRequest", - "type": "event" + name: 'RewardWithdrawRequest', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newTrustedForwarder", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newTrustedForwarder', + type: 'address', + }, ], - "name": "TrustedForwarderSet", - "type": "event" + name: 'TrustedForwarderSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', }, { - "indexed": false, - "internalType": "int256", - "name": "amount", - "type": "int256" - } + indexed: false, + internalType: 'int256', + name: 'amount', + type: 'int256', + }, ], - "name": "UserCharged", - "type": "event" + name: 'UserCharged', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "delay", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'delay', + type: 'uint256', + }, ], - "name": "UserWithdrawDelaySet", - "type": "event" + name: 'UserWithdrawDelaySet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', }, { - "indexed": false, - "internalType": "int256", - "name": "amount", - "type": "int256" - } + indexed: false, + internalType: 'int256', + name: 'amount', + type: 'int256', + }, ], - "name": "Withdraw", - "type": "event" + name: 'Withdraw', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', }, { - "indexed": false, - "internalType": "int256", - "name": "amount", - "type": "int256" - } + indexed: false, + internalType: 'int256', + name: 'amount', + type: 'int256', + }, ], - "name": "WithdrawRequest", - "type": "event" - } - ] + name: 'WithdrawRequest', + type: 'event', + }, + ], }, - "PaymentDelegation": { - "address": "0xfbC22278A96299D91d41C453234d97b4F5Eb9B2d", - "methods": { - "delegatePayments": { - "inputs": [ + PaymentDelegation: { + address: '0xfbC22278A96299D91d41C453234d97b4F5Eb9B2d', + methods: { + delegatePayments: { + inputs: [ { - "internalType": "address", - "name": "user", - "type": "address" - } + internalType: 'address', + name: 'user', + type: 'address', + }, ], - "name": "delegatePayments", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'delegatePayments', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "delegatePaymentsBatch": { - "inputs": [ + delegatePaymentsBatch: { + inputs: [ { - "internalType": "address[]", - "name": "users", - "type": "address[]" - } + internalType: 'address[]', + name: 'users', + type: 'address[]', + }, ], - "name": "delegatePaymentsBatch", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'delegatePaymentsBatch', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "getPayers": { - "inputs": [ + getPayers: { + inputs: [ { - "internalType": "address", - "name": "user", - "type": "address" - } + internalType: 'address', + name: 'user', + type: 'address', + }, ], - "name": "getPayers", - "outputs": [ + name: 'getPayers', + outputs: [ { - "internalType": "address[]", - "name": "", - "type": "address[]" - } + internalType: 'address[]', + name: '', + type: 'address[]', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "getPayersAndRestrictions": { - "inputs": [ + getPayersAndRestrictions: { + inputs: [ { - "internalType": "address[]", - "name": "users", - "type": "address[]" - } + internalType: 'address[]', + name: 'users', + type: 'address[]', + }, ], - "name": "getPayersAndRestrictions", - "outputs": [ + name: 'getPayersAndRestrictions', + outputs: [ { - "internalType": "address[][]", - "name": "", - "type": "address[][]" + internalType: 'address[][]', + name: '', + type: 'address[][]', }, { - "components": [ + components: [ { - "internalType": "uint128", - "name": "totalMaxPrice", - "type": "uint128" + internalType: 'uint128', + name: 'totalMaxPrice', + type: 'uint128', }, { - "internalType": "uint256", - "name": "requestsPerPeriod", - "type": "uint256" + internalType: 'uint256', + name: 'requestsPerPeriod', + type: 'uint256', }, { - "internalType": "uint256", - "name": "periodSeconds", - "type": "uint256" - } + internalType: 'uint256', + name: 'periodSeconds', + type: 'uint256', + }, ], - "internalType": "struct LibPaymentDelegationStorage.Restriction[][]", - "name": "", - "type": "tuple[][]" - } + internalType: 'struct LibPaymentDelegationStorage.Restriction[][]', + name: '', + type: 'tuple[][]', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "getRestriction": { - "inputs": [ + getRestriction: { + inputs: [ { - "internalType": "address", - "name": "payer", - "type": "address" - } + internalType: 'address', + name: 'payer', + type: 'address', + }, ], - "name": "getRestriction", - "outputs": [ + name: 'getRestriction', + outputs: [ { - "components": [ + components: [ { - "internalType": "uint128", - "name": "totalMaxPrice", - "type": "uint128" + internalType: 'uint128', + name: 'totalMaxPrice', + type: 'uint128', }, { - "internalType": "uint256", - "name": "requestsPerPeriod", - "type": "uint256" + internalType: 'uint256', + name: 'requestsPerPeriod', + type: 'uint256', }, { - "internalType": "uint256", - "name": "periodSeconds", - "type": "uint256" - } + internalType: 'uint256', + name: 'periodSeconds', + type: 'uint256', + }, ], - "internalType": "struct LibPaymentDelegationStorage.Restriction", - "name": "", - "type": "tuple" - } + internalType: 'struct LibPaymentDelegationStorage.Restriction', + name: '', + type: 'tuple', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "getUsers": { - "inputs": [ + getUsers: { + inputs: [ { - "internalType": "address", - "name": "payer", - "type": "address" - } + internalType: 'address', + name: 'payer', + type: 'address', + }, ], - "name": "getUsers", - "outputs": [ + name: 'getUsers', + outputs: [ { - "internalType": "address[]", - "name": "", - "type": "address[]" - } + internalType: 'address[]', + name: '', + type: 'address[]', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "setRestriction": { - "inputs": [ + setRestriction: { + inputs: [ { - "components": [ + components: [ { - "internalType": "uint128", - "name": "totalMaxPrice", - "type": "uint128" + internalType: 'uint128', + name: 'totalMaxPrice', + type: 'uint128', }, { - "internalType": "uint256", - "name": "requestsPerPeriod", - "type": "uint256" + internalType: 'uint256', + name: 'requestsPerPeriod', + type: 'uint256', }, { - "internalType": "uint256", - "name": "periodSeconds", - "type": "uint256" - } + internalType: 'uint256', + name: 'periodSeconds', + type: 'uint256', + }, ], - "internalType": "struct LibPaymentDelegationStorage.Restriction", - "name": "r", - "type": "tuple" - } - ], - "name": "setRestriction", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - "undelegatePayments": { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "undelegatePayments", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - "undelegatePaymentsBatch": { - "inputs": [ - { - "internalType": "address[]", - "name": "users", - "type": "address[]" - } - ], - "name": "undelegatePaymentsBatch", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } + internalType: 'struct LibPaymentDelegationStorage.Restriction', + name: 'r', + type: 'tuple', + }, + ], + name: 'setRestriction', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + undelegatePayments: { + inputs: [ + { + internalType: 'address', + name: 'user', + type: 'address', + }, + ], + name: 'undelegatePayments', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + undelegatePaymentsBatch: { + inputs: [ + { + internalType: 'address[]', + name: 'users', + type: 'address[]', + }, + ], + name: 'undelegatePaymentsBatch', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, }, - "events": [ + events: [ { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "components": [ + components: [ { - "internalType": "address", - "name": "facetAddress", - "type": "address" + internalType: 'address', + name: 'facetAddress', + type: 'address', }, { - "internalType": "enum IDiamond.FacetCutAction", - "name": "action", - "type": "uint8" + internalType: 'enum IDiamond.FacetCutAction', + name: 'action', + type: 'uint8', }, { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } + internalType: 'bytes4[]', + name: 'functionSelectors', + type: 'bytes4[]', + }, ], - "indexed": false, - "internalType": "struct IDiamond.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" + indexed: false, + internalType: 'struct IDiamond.FacetCut[]', + name: '_diamondCut', + type: 'tuple[]', }, { - "indexed": false, - "internalType": "address", - "name": "_init", - "type": "address" + indexed: false, + internalType: 'address', + name: '_init', + type: 'address', }, { - "indexed": false, - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: '_calldata', + type: 'bytes', + }, ], - "name": "DiamondCut", - "type": "event" + name: 'DiamondCut', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, ], - "name": "OwnershipTransferred", - "type": "event" + name: 'OwnershipTransferred', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" + indexed: true, + internalType: 'address', + name: 'payer', + type: 'address', }, { - "components": [ + components: [ { - "internalType": "uint128", - "name": "totalMaxPrice", - "type": "uint128" + internalType: 'uint128', + name: 'totalMaxPrice', + type: 'uint128', }, { - "internalType": "uint256", - "name": "requestsPerPeriod", - "type": "uint256" + internalType: 'uint256', + name: 'requestsPerPeriod', + type: 'uint256', }, { - "internalType": "uint256", - "name": "periodSeconds", - "type": "uint256" - } + internalType: 'uint256', + name: 'periodSeconds', + type: 'uint256', + }, ], - "indexed": false, - "internalType": "struct LibPaymentDelegationStorage.Restriction", - "name": "restriction", - "type": "tuple" - } - ], - "name": "RestrictionSet", - "type": "event" - } - ] - } + indexed: false, + internalType: 'struct LibPaymentDelegationStorage.Restriction', + name: 'restriction', + type: 'tuple', + }, + ], + name: 'RestrictionSet', + type: 'event', + }, + ], + }, }; module.exports = { - signatures + signatures, }; diff --git a/packages/networks/src/networks/vNaga/envs/naga-local/generated/naga-develop.js b/packages/networks/src/networks/vNaga/envs/naga-local/generated/naga-develop.js index babeecb8ef..21da8996c6 100644 --- a/packages/networks/src/networks/vNaga/envs/naga-local/generated/naga-develop.js +++ b/packages/networks/src/networks/vNaga/envs/naga-local/generated/naga-develop.js @@ -4,3594 +4,3594 @@ */ export const signatures = { - "PKPHelper": { - "address": "0x4C4a2f8c81640e47606d3fd77B353E87Ba015584", - "methods": { - "claimAndMintNextAndAddAuthMethodsWithTypes": { - "inputs": [ + PKPHelper: { + address: '0x4C4a2f8c81640e47606d3fd77B353E87Ba015584', + methods: { + claimAndMintNextAndAddAuthMethodsWithTypes: { + inputs: [ { - "components": [ + components: [ { - "internalType": "uint256", - "name": "keyType", - "type": "uint256" + internalType: 'uint256', + name: 'keyType', + type: 'uint256', }, { - "internalType": "bytes32", - "name": "derivedKeyId", - "type": "bytes32" + internalType: 'bytes32', + name: 'derivedKeyId', + type: 'bytes32', }, { - "components": [ + components: [ { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" + internalType: 'bytes32', + name: 'r', + type: 'bytes32', }, { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" + internalType: 'bytes32', + name: 's', + type: 'bytes32', }, { - "internalType": "uint8", - "name": "v", - "type": "uint8" - } + internalType: 'uint8', + name: 'v', + type: 'uint8', + }, ], - "internalType": "struct IPubkeyRouter.Signature[]", - "name": "signatures", - "type": "tuple[]" - } + internalType: 'struct IPubkeyRouter.Signature[]', + name: 'signatures', + type: 'tuple[]', + }, ], - "internalType": "struct LibPKPNFTStorage.ClaimMaterial", - "name": "claimMaterial", - "type": "tuple" + internalType: 'struct LibPKPNFTStorage.ClaimMaterial', + name: 'claimMaterial', + type: 'tuple', }, { - "components": [ + components: [ { - "internalType": "uint256", - "name": "keyType", - "type": "uint256" + internalType: 'uint256', + name: 'keyType', + type: 'uint256', }, { - "internalType": "bytes[]", - "name": "permittedIpfsCIDs", - "type": "bytes[]" + internalType: 'bytes[]', + name: 'permittedIpfsCIDs', + type: 'bytes[]', }, { - "internalType": "uint256[][]", - "name": "permittedIpfsCIDScopes", - "type": "uint256[][]" + internalType: 'uint256[][]', + name: 'permittedIpfsCIDScopes', + type: 'uint256[][]', }, { - "internalType": "address[]", - "name": "permittedAddresses", - "type": "address[]" + internalType: 'address[]', + name: 'permittedAddresses', + type: 'address[]', }, { - "internalType": "uint256[][]", - "name": "permittedAddressScopes", - "type": "uint256[][]" + internalType: 'uint256[][]', + name: 'permittedAddressScopes', + type: 'uint256[][]', }, { - "internalType": "uint256[]", - "name": "permittedAuthMethodTypes", - "type": "uint256[]" + internalType: 'uint256[]', + name: 'permittedAuthMethodTypes', + type: 'uint256[]', }, { - "internalType": "bytes[]", - "name": "permittedAuthMethodIds", - "type": "bytes[]" + internalType: 'bytes[]', + name: 'permittedAuthMethodIds', + type: 'bytes[]', }, { - "internalType": "bytes[]", - "name": "permittedAuthMethodPubkeys", - "type": "bytes[]" + internalType: 'bytes[]', + name: 'permittedAuthMethodPubkeys', + type: 'bytes[]', }, { - "internalType": "uint256[][]", - "name": "permittedAuthMethodScopes", - "type": "uint256[][]" + internalType: 'uint256[][]', + name: 'permittedAuthMethodScopes', + type: 'uint256[][]', }, { - "internalType": "bool", - "name": "addPkpEthAddressAsPermittedAddress", - "type": "bool" + internalType: 'bool', + name: 'addPkpEthAddressAsPermittedAddress', + type: 'bool', }, { - "internalType": "bool", - "name": "sendPkpToItself", - "type": "bool" - } + internalType: 'bool', + name: 'sendPkpToItself', + type: 'bool', + }, ], - "internalType": "struct PKPHelper.AuthMethodData", - "name": "authMethodData", - "type": "tuple" - } + internalType: 'struct PKPHelper.AuthMethodData', + name: 'authMethodData', + type: 'tuple', + }, ], - "name": "claimAndMintNextAndAddAuthMethodsWithTypes", - "outputs": [ + name: 'claimAndMintNextAndAddAuthMethodsWithTypes', + outputs: [ { - "internalType": "uint256", - "name": "", - "type": "uint256" - } + internalType: 'uint256', + name: '', + type: 'uint256', + }, ], - "stateMutability": "payable", - "type": "function" + stateMutability: 'payable', + type: 'function', }, - "mintNextAndAddAuthMethods": { - "inputs": [ + mintNextAndAddAuthMethods: { + inputs: [ { - "internalType": "uint256", - "name": "keyType", - "type": "uint256" + internalType: 'uint256', + name: 'keyType', + type: 'uint256', }, { - "internalType": "string", - "name": "keySetId", - "type": "string" + internalType: 'string', + name: 'keySetId', + type: 'string', }, { - "internalType": "uint256[]", - "name": "permittedAuthMethodTypes", - "type": "uint256[]" + internalType: 'uint256[]', + name: 'permittedAuthMethodTypes', + type: 'uint256[]', }, { - "internalType": "bytes[]", - "name": "permittedAuthMethodIds", - "type": "bytes[]" + internalType: 'bytes[]', + name: 'permittedAuthMethodIds', + type: 'bytes[]', }, { - "internalType": "bytes[]", - "name": "permittedAuthMethodPubkeys", - "type": "bytes[]" + internalType: 'bytes[]', + name: 'permittedAuthMethodPubkeys', + type: 'bytes[]', }, { - "internalType": "uint256[][]", - "name": "permittedAuthMethodScopes", - "type": "uint256[][]" + internalType: 'uint256[][]', + name: 'permittedAuthMethodScopes', + type: 'uint256[][]', }, { - "internalType": "bool", - "name": "addPkpEthAddressAsPermittedAddress", - "type": "bool" + internalType: 'bool', + name: 'addPkpEthAddressAsPermittedAddress', + type: 'bool', }, { - "internalType": "bool", - "name": "sendPkpToItself", - "type": "bool" - } + internalType: 'bool', + name: 'sendPkpToItself', + type: 'bool', + }, ], - "name": "mintNextAndAddAuthMethods", - "outputs": [ + name: 'mintNextAndAddAuthMethods', + outputs: [ { - "internalType": "uint256", - "name": "", - "type": "uint256" - } + internalType: 'uint256', + name: '', + type: 'uint256', + }, ], - "stateMutability": "payable", - "type": "function" - } + stateMutability: 'payable', + type: 'function', + }, }, - "events": [ + events: [ { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newResolverAddress", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newResolverAddress', + type: 'address', + }, ], - "name": "ContractResolverAddressSet", - "type": "event" + name: 'ContractResolverAddressSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, ], - "name": "OwnershipTransferred", - "type": "event" + name: 'OwnershipTransferred', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + indexed: true, + internalType: 'bytes32', + name: 'role', + type: 'bytes32', }, { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" + indexed: true, + internalType: 'bytes32', + name: 'previousAdminRole', + type: 'bytes32', }, { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" - } + indexed: true, + internalType: 'bytes32', + name: 'newAdminRole', + type: 'bytes32', + }, ], - "name": "RoleAdminChanged", - "type": "event" + name: 'RoleAdminChanged', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + indexed: true, + internalType: 'bytes32', + name: 'role', + type: 'bytes32', }, { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" + indexed: true, + internalType: 'address', + name: 'account', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'sender', + type: 'address', + }, ], - "name": "RoleGranted", - "type": "event" + name: 'RoleGranted', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + indexed: true, + internalType: 'bytes32', + name: 'role', + type: 'bytes32', }, { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" + indexed: true, + internalType: 'address', + name: 'account', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'sender', + type: 'address', + }, ], - "name": "RoleRevoked", - "type": "event" - } - ] + name: 'RoleRevoked', + type: 'event', + }, + ], }, - "PKPNFT": { - "address": "0x0E801D84Fa97b50751Dbf25036d067dCf18858bF", - "methods": { - "claimAndMint": { - "inputs": [ + PKPNFT: { + address: '0x0E801D84Fa97b50751Dbf25036d067dCf18858bF', + methods: { + claimAndMint: { + inputs: [ { - "internalType": "uint256", - "name": "realmId", - "type": "uint256" + internalType: 'uint256', + name: 'realmId', + type: 'uint256', }, { - "internalType": "uint256", - "name": "keyType", - "type": "uint256" + internalType: 'uint256', + name: 'keyType', + type: 'uint256', }, { - "internalType": "string", - "name": "keySetId", - "type": "string" + internalType: 'string', + name: 'keySetId', + type: 'string', }, { - "internalType": "bytes32", - "name": "derivedKeyId", - "type": "bytes32" + internalType: 'bytes32', + name: 'derivedKeyId', + type: 'bytes32', }, { - "components": [ + components: [ { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" + internalType: 'bytes32', + name: 'r', + type: 'bytes32', }, { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" + internalType: 'bytes32', + name: 's', + type: 'bytes32', }, { - "internalType": "uint8", - "name": "v", - "type": "uint8" - } + internalType: 'uint8', + name: 'v', + type: 'uint8', + }, ], - "internalType": "struct IPubkeyRouter.Signature[]", - "name": "signatures", - "type": "tuple[]" + internalType: 'struct IPubkeyRouter.Signature[]', + name: 'signatures', + type: 'tuple[]', }, { - "internalType": "address", - "name": "stakingContractAddress", - "type": "address" - } + internalType: 'address', + name: 'stakingContractAddress', + type: 'address', + }, ], - "name": "claimAndMint", - "outputs": [ + name: 'claimAndMint', + outputs: [ { - "internalType": "uint256", - "name": "", - "type": "uint256" - } + internalType: 'uint256', + name: '', + type: 'uint256', + }, ], - "stateMutability": "payable", - "type": "function" + stateMutability: 'payable', + type: 'function', }, - "mintCost": { - "inputs": [], - "name": "mintCost", - "outputs": [ + mintCost: { + inputs: [], + name: 'mintCost', + outputs: [ { - "internalType": "uint256", - "name": "", - "type": "uint256" - } + internalType: 'uint256', + name: '', + type: 'uint256', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "mintNext": { - "inputs": [ + mintNext: { + inputs: [ { - "internalType": "uint256", - "name": "keyType", - "type": "uint256" + internalType: 'uint256', + name: 'keyType', + type: 'uint256', }, { - "internalType": "string", - "name": "keySetId", - "type": "string" - } + internalType: 'string', + name: 'keySetId', + type: 'string', + }, ], - "name": "mintNext", - "outputs": [ + name: 'mintNext', + outputs: [ { - "internalType": "uint256", - "name": "", - "type": "uint256" - } + internalType: 'uint256', + name: '', + type: 'uint256', + }, ], - "stateMutability": "payable", - "type": "function" + stateMutability: 'payable', + type: 'function', }, - "safeTransferFrom": { - "inputs": [ + safeTransferFrom: { + inputs: [ { - "internalType": "address", - "name": "from", - "type": "address" + internalType: 'address', + name: 'from', + type: 'address', }, { - "internalType": "address", - "name": "to", - "type": "address" + internalType: 'address', + name: 'to', + type: 'address', }, { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } + internalType: 'bytes', + name: 'data', + type: 'bytes', + }, ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'safeTransferFrom', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "tokenOfOwnerByIndex": { - "inputs": [ + tokenOfOwnerByIndex: { + inputs: [ { - "internalType": "address", - "name": "owner", - "type": "address" + internalType: 'address', + name: 'owner', + type: 'address', }, { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } + internalType: 'uint256', + name: 'index', + type: 'uint256', + }, ], - "name": "tokenOfOwnerByIndex", - "outputs": [ + name: 'tokenOfOwnerByIndex', + outputs: [ { - "internalType": "uint256", - "name": "", - "type": "uint256" - } + internalType: 'uint256', + name: '', + type: 'uint256', + }, ], - "stateMutability": "view", - "type": "function" - } + stateMutability: 'view', + type: 'function', + }, }, - "events": [ + events: [ { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "components": [ + components: [ { - "internalType": "address", - "name": "facetAddress", - "type": "address" + internalType: 'address', + name: 'facetAddress', + type: 'address', }, { - "internalType": "enum IDiamond.FacetCutAction", - "name": "action", - "type": "uint8" + internalType: 'enum IDiamond.FacetCutAction', + name: 'action', + type: 'uint8', }, { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } + internalType: 'bytes4[]', + name: 'functionSelectors', + type: 'bytes4[]', + }, ], - "indexed": false, - "internalType": "struct IDiamond.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" + indexed: false, + internalType: 'struct IDiamond.FacetCut[]', + name: '_diamondCut', + type: 'tuple[]', }, { - "indexed": false, - "internalType": "address", - "name": "_init", - "type": "address" + indexed: false, + internalType: 'address', + name: '_init', + type: 'address', }, { - "indexed": false, - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: '_calldata', + type: 'bytes', + }, ], - "name": "DiamondCut", - "type": "event" + name: 'DiamondCut', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, ], - "name": "OwnershipTransferred", - "type": "event" + name: 'OwnershipTransferred', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'owner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" + indexed: true, + internalType: 'address', + name: 'approved', + type: 'address', }, { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, ], - "name": "Approval", - "type": "event" + name: 'Approval', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'owner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" + indexed: true, + internalType: 'address', + name: 'operator', + type: 'address', }, { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } + indexed: false, + internalType: 'bool', + name: 'approved', + type: 'bool', + }, ], - "name": "ApprovalForAll", - "type": "event" + name: 'ApprovalForAll', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newResolverAddress", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newResolverAddress', + type: 'address', + }, ], - "name": "ContractResolverAddressSet", - "type": "event" + name: 'ContractResolverAddressSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "newFreeMintSigner", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'newFreeMintSigner', + type: 'address', + }, ], - "name": "FreeMintSignerSet", - "type": "event" + name: 'FreeMintSignerSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } + indexed: false, + internalType: 'uint8', + name: 'version', + type: 'uint8', + }, ], - "name": "Initialized", - "type": "event" + name: 'Initialized', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "newMintCost", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'newMintCost', + type: 'uint256', + }, ], - "name": "MintCostSet", - "type": "event" + name: 'MintCostSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "indexed": false, - "internalType": "bytes", - "name": "pubkey", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: 'pubkey', + type: 'bytes', + }, ], - "name": "PKPMinted", - "type": "event" + name: 'PKPMinted', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" + indexed: true, + internalType: 'address', + name: 'from', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" + indexed: true, + internalType: 'address', + name: 'to', + type: 'address', }, { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, ], - "name": "Transfer", - "type": "event" + name: 'Transfer', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newTrustedForwarder", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newTrustedForwarder', + type: 'address', + }, ], - "name": "TrustedForwarderSet", - "type": "event" + name: 'TrustedForwarderSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "name": "Withdrew", - "type": "event" - } - ] + name: 'Withdrew', + type: 'event', + }, + ], }, - "PKPPermissions": { - "address": "0x04C89607413713Ec9775E14b954286519d836FEf", - "methods": { - "addPermittedAction": { - "inputs": [ + PKPPermissions: { + address: '0x04C89607413713Ec9775E14b954286519d836FEf', + methods: { + addPermittedAction: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "bytes", - "name": "ipfsCID", - "type": "bytes" + internalType: 'bytes', + name: 'ipfsCID', + type: 'bytes', }, { - "internalType": "uint256[]", - "name": "scopes", - "type": "uint256[]" - } + internalType: 'uint256[]', + name: 'scopes', + type: 'uint256[]', + }, ], - "name": "addPermittedAction", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'addPermittedAction', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "addPermittedAddress": { - "inputs": [ + addPermittedAddress: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "address", - "name": "user", - "type": "address" + internalType: 'address', + name: 'user', + type: 'address', }, { - "internalType": "uint256[]", - "name": "scopes", - "type": "uint256[]" - } + internalType: 'uint256[]', + name: 'scopes', + type: 'uint256[]', + }, ], - "name": "addPermittedAddress", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'addPermittedAddress', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "addPermittedAuthMethod": { - "inputs": [ + addPermittedAuthMethod: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "components": [ + components: [ { - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "internalType": "bytes", - "name": "id", - "type": "bytes" + internalType: 'bytes', + name: 'id', + type: 'bytes', }, { - "internalType": "bytes", - "name": "userPubkey", - "type": "bytes" - } + internalType: 'bytes', + name: 'userPubkey', + type: 'bytes', + }, ], - "internalType": "struct LibPKPPermissionsStorage.AuthMethod", - "name": "authMethod", - "type": "tuple" + internalType: 'struct LibPKPPermissionsStorage.AuthMethod', + name: 'authMethod', + type: 'tuple', }, { - "internalType": "uint256[]", - "name": "scopes", - "type": "uint256[]" - } + internalType: 'uint256[]', + name: 'scopes', + type: 'uint256[]', + }, ], - "name": "addPermittedAuthMethod", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'addPermittedAuthMethod', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "addPermittedAuthMethodScope": { - "inputs": [ + addPermittedAuthMethodScope: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "internalType": "bytes", - "name": "id", - "type": "bytes" + internalType: 'bytes', + name: 'id', + type: 'bytes', }, { - "internalType": "uint256", - "name": "scopeId", - "type": "uint256" - } + internalType: 'uint256', + name: 'scopeId', + type: 'uint256', + }, ], - "name": "addPermittedAuthMethodScope", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'addPermittedAuthMethodScope', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "getPermittedActions": { - "inputs": [ + getPermittedActions: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, ], - "name": "getPermittedActions", - "outputs": [ + name: 'getPermittedActions', + outputs: [ { - "internalType": "bytes[]", - "name": "", - "type": "bytes[]" - } + internalType: 'bytes[]', + name: '', + type: 'bytes[]', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "getPermittedAddresses": { - "inputs": [ + getPermittedAddresses: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, ], - "name": "getPermittedAddresses", - "outputs": [ + name: 'getPermittedAddresses', + outputs: [ { - "internalType": "address[]", - "name": "", - "type": "address[]" - } + internalType: 'address[]', + name: '', + type: 'address[]', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "getPermittedAuthMethodScopes": { - "inputs": [ + getPermittedAuthMethodScopes: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "internalType": "bytes", - "name": "id", - "type": "bytes" + internalType: 'bytes', + name: 'id', + type: 'bytes', }, { - "internalType": "uint256", - "name": "maxScopeId", - "type": "uint256" - } + internalType: 'uint256', + name: 'maxScopeId', + type: 'uint256', + }, ], - "name": "getPermittedAuthMethodScopes", - "outputs": [ + name: 'getPermittedAuthMethodScopes', + outputs: [ { - "internalType": "bool[]", - "name": "", - "type": "bool[]" - } + internalType: 'bool[]', + name: '', + type: 'bool[]', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "getPermittedAuthMethods": { - "inputs": [ + getPermittedAuthMethods: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, ], - "name": "getPermittedAuthMethods", - "outputs": [ + name: 'getPermittedAuthMethods', + outputs: [ { - "components": [ + components: [ { - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "internalType": "bytes", - "name": "id", - "type": "bytes" + internalType: 'bytes', + name: 'id', + type: 'bytes', }, { - "internalType": "bytes", - "name": "userPubkey", - "type": "bytes" - } + internalType: 'bytes', + name: 'userPubkey', + type: 'bytes', + }, ], - "internalType": "struct LibPKPPermissionsStorage.AuthMethod[]", - "name": "", - "type": "tuple[]" - } + internalType: 'struct LibPKPPermissionsStorage.AuthMethod[]', + name: '', + type: 'tuple[]', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "getTokenIdsForAuthMethod": { - "inputs": [ + getTokenIdsForAuthMethod: { + inputs: [ { - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "internalType": "bytes", - "name": "id", - "type": "bytes" - } + internalType: 'bytes', + name: 'id', + type: 'bytes', + }, ], - "name": "getTokenIdsForAuthMethod", - "outputs": [ + name: 'getTokenIdsForAuthMethod', + outputs: [ { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } + internalType: 'uint256[]', + name: '', + type: 'uint256[]', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "isPermittedAction": { - "inputs": [ + isPermittedAction: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "bytes", - "name": "ipfsCID", - "type": "bytes" - } + internalType: 'bytes', + name: 'ipfsCID', + type: 'bytes', + }, ], - "name": "isPermittedAction", - "outputs": [ + name: 'isPermittedAction', + outputs: [ { - "internalType": "bool", - "name": "", - "type": "bool" - } + internalType: 'bool', + name: '', + type: 'bool', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "isPermittedAddress": { - "inputs": [ + isPermittedAddress: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "address", - "name": "user", - "type": "address" - } + internalType: 'address', + name: 'user', + type: 'address', + }, ], - "name": "isPermittedAddress", - "outputs": [ + name: 'isPermittedAddress', + outputs: [ { - "internalType": "bool", - "name": "", - "type": "bool" - } + internalType: 'bool', + name: '', + type: 'bool', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "removePermittedAction": { - "inputs": [ + removePermittedAction: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "bytes", - "name": "ipfsCID", - "type": "bytes" - } + internalType: 'bytes', + name: 'ipfsCID', + type: 'bytes', + }, ], - "name": "removePermittedAction", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'removePermittedAction', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "removePermittedAddress": { - "inputs": [ + removePermittedAddress: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "address", - "name": "user", - "type": "address" - } + internalType: 'address', + name: 'user', + type: 'address', + }, ], - "name": "removePermittedAddress", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'removePermittedAddress', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "removePermittedAuthMethod": { - "inputs": [ + removePermittedAuthMethod: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "internalType": "bytes", - "name": "id", - "type": "bytes" - } + internalType: 'bytes', + name: 'id', + type: 'bytes', + }, ], - "name": "removePermittedAuthMethod", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'removePermittedAuthMethod', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "removePermittedAuthMethodScope": { - "inputs": [ + removePermittedAuthMethodScope: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "internalType": "bytes", - "name": "id", - "type": "bytes" + internalType: 'bytes', + name: 'id', + type: 'bytes', }, { - "internalType": "uint256", - "name": "scopeId", - "type": "uint256" - } + internalType: 'uint256', + name: 'scopeId', + type: 'uint256', + }, ], - "name": "removePermittedAuthMethodScope", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } + name: 'removePermittedAuthMethodScope', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, }, - "events": [ + events: [ { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "components": [ + components: [ { - "internalType": "address", - "name": "facetAddress", - "type": "address" + internalType: 'address', + name: 'facetAddress', + type: 'address', }, { - "internalType": "enum IDiamond.FacetCutAction", - "name": "action", - "type": "uint8" + internalType: 'enum IDiamond.FacetCutAction', + name: 'action', + type: 'uint8', }, { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } + internalType: 'bytes4[]', + name: 'functionSelectors', + type: 'bytes4[]', + }, ], - "indexed": false, - "internalType": "struct IDiamond.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" + indexed: false, + internalType: 'struct IDiamond.FacetCut[]', + name: '_diamondCut', + type: 'tuple[]', }, { - "indexed": false, - "internalType": "address", - "name": "_init", - "type": "address" + indexed: false, + internalType: 'address', + name: '_init', + type: 'address', }, { - "indexed": false, - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: '_calldata', + type: 'bytes', + }, ], - "name": "DiamondCut", - "type": "event" + name: 'DiamondCut', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, ], - "name": "OwnershipTransferred", - "type": "event" + name: 'OwnershipTransferred', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newResolverAddress", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newResolverAddress', + type: 'address', + }, ], - "name": "ContractResolverAddressSet", - "type": "event" + name: 'ContractResolverAddressSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "indexed": false, - "internalType": "bytes", - "name": "id", - "type": "bytes" + indexed: false, + internalType: 'bytes', + name: 'id', + type: 'bytes', }, { - "indexed": false, - "internalType": "bytes", - "name": "userPubkey", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: 'userPubkey', + type: 'bytes', + }, ], - "name": "PermittedAuthMethodAdded", - "type": "event" + name: 'PermittedAuthMethodAdded', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "indexed": false, - "internalType": "bytes", - "name": "id", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: 'id', + type: 'bytes', + }, ], - "name": "PermittedAuthMethodRemoved", - "type": "event" + name: 'PermittedAuthMethodRemoved', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "indexed": false, - "internalType": "bytes", - "name": "id", - "type": "bytes" + indexed: false, + internalType: 'bytes', + name: 'id', + type: 'bytes', }, { - "indexed": false, - "internalType": "uint256", - "name": "scopeId", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'scopeId', + type: 'uint256', + }, ], - "name": "PermittedAuthMethodScopeAdded", - "type": "event" + name: 'PermittedAuthMethodScopeAdded', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "indexed": false, - "internalType": "bytes", - "name": "id", - "type": "bytes" + indexed: false, + internalType: 'bytes', + name: 'id', + type: 'bytes', }, { - "indexed": false, - "internalType": "uint256", - "name": "scopeId", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'scopeId', + type: 'uint256', + }, ], - "name": "PermittedAuthMethodScopeRemoved", - "type": "event" + name: 'PermittedAuthMethodScopeRemoved', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "indexed": true, - "internalType": "uint256", - "name": "group", - "type": "uint256" + indexed: true, + internalType: 'uint256', + name: 'group', + type: 'uint256', }, { - "indexed": false, - "internalType": "bytes32", - "name": "root", - "type": "bytes32" - } + indexed: false, + internalType: 'bytes32', + name: 'root', + type: 'bytes32', + }, ], - "name": "RootHashUpdated", - "type": "event" + name: 'RootHashUpdated', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newTrustedForwarder", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newTrustedForwarder', + type: 'address', + }, ], - "name": "TrustedForwarderSet", - "type": "event" - } - ] + name: 'TrustedForwarderSet', + type: 'event', + }, + ], }, - "PubkeyRouter": { - "address": "0x4c5859f0F772848b2D91F1D83E2Fe57935348029", - "methods": { - "getEthAddress": { - "inputs": [ + PubkeyRouter: { + address: '0x4c5859f0F772848b2D91F1D83E2Fe57935348029', + methods: { + getEthAddress: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, ], - "name": "getEthAddress", - "outputs": [ + name: 'getEthAddress', + outputs: [ { - "internalType": "address", - "name": "", - "type": "address" - } + internalType: 'address', + name: '', + type: 'address', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "getPubkey": { - "inputs": [ + getPubkey: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, ], - "name": "getPubkey", - "outputs": [ + name: 'getPubkey', + outputs: [ { - "internalType": "bytes", - "name": "", - "type": "bytes" - } + internalType: 'bytes', + name: '', + type: 'bytes', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "deriveEthAddressFromPubkey": { - "inputs": [ + deriveEthAddressFromPubkey: { + inputs: [ { - "internalType": "bytes", - "name": "pubkey", - "type": "bytes" - } + internalType: 'bytes', + name: 'pubkey', + type: 'bytes', + }, ], - "name": "deriveEthAddressFromPubkey", - "outputs": [ + name: 'deriveEthAddressFromPubkey', + outputs: [ { - "internalType": "address", - "name": "", - "type": "address" - } + internalType: 'address', + name: '', + type: 'address', + }, ], - "stateMutability": "pure", - "type": "function" + stateMutability: 'pure', + type: 'function', }, - "ethAddressToPkpId": { - "inputs": [ + ethAddressToPkpId: { + inputs: [ { - "internalType": "address", - "name": "ethAddress", - "type": "address" - } + internalType: 'address', + name: 'ethAddress', + type: 'address', + }, ], - "name": "ethAddressToPkpId", - "outputs": [ + name: 'ethAddressToPkpId', + outputs: [ { - "internalType": "uint256", - "name": "", - "type": "uint256" - } + internalType: 'uint256', + name: '', + type: 'uint256', + }, ], - "stateMutability": "view", - "type": "function" - } + stateMutability: 'view', + type: 'function', + }, }, - "events": [ + events: [ { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "components": [ + components: [ { - "internalType": "address", - "name": "facetAddress", - "type": "address" + internalType: 'address', + name: 'facetAddress', + type: 'address', }, { - "internalType": "enum IDiamond.FacetCutAction", - "name": "action", - "type": "uint8" + internalType: 'enum IDiamond.FacetCutAction', + name: 'action', + type: 'uint8', }, { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } + internalType: 'bytes4[]', + name: 'functionSelectors', + type: 'bytes4[]', + }, ], - "indexed": false, - "internalType": "struct IDiamond.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" + indexed: false, + internalType: 'struct IDiamond.FacetCut[]', + name: '_diamondCut', + type: 'tuple[]', }, { - "indexed": false, - "internalType": "address", - "name": "_init", - "type": "address" + indexed: false, + internalType: 'address', + name: '_init', + type: 'address', }, { - "indexed": false, - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: '_calldata', + type: 'bytes', + }, ], - "name": "DiamondCut", - "type": "event" + name: 'DiamondCut', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, ], - "name": "OwnershipTransferred", - "type": "event" + name: 'OwnershipTransferred', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newResolverAddress", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newResolverAddress', + type: 'address', + }, ], - "name": "ContractResolverAddressSet", - "type": "event" + name: 'ContractResolverAddressSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "string", - "name": "message", - "type": "string" + indexed: false, + internalType: 'string', + name: 'message', + type: 'string', }, { - "indexed": false, - "internalType": "address", - "name": "sender", - "type": "address" + indexed: false, + internalType: 'address', + name: 'sender', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'value', + type: 'uint256', + }, ], - "name": "DebugEvent", - "type": "event" + name: 'DebugEvent', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "indexed": false, - "internalType": "bytes", - "name": "pubkey", - "type": "bytes" + indexed: false, + internalType: 'bytes', + name: 'pubkey', + type: 'bytes', }, { - "indexed": false, - "internalType": "address", - "name": "stakingContract", - "type": "address" + indexed: false, + internalType: 'address', + name: 'stakingContract', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "keyType", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'keyType', + type: 'uint256', }, { - "indexed": false, - "internalType": "bytes32", - "name": "derivedKeyId", - "type": "bytes32" - } + indexed: false, + internalType: 'bytes32', + name: 'derivedKeyId', + type: 'bytes32', + }, ], - "name": "PubkeyRoutingDataSet", - "type": "event" + name: 'PubkeyRoutingDataSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "stakingContract", - "type": "address" + indexed: false, + internalType: 'address', + name: 'stakingContract', + type: 'address', }, { - "components": [ + components: [ { - "internalType": "bytes", - "name": "pubkey", - "type": "bytes" + internalType: 'bytes', + name: 'pubkey', + type: 'bytes', }, { - "internalType": "uint256", - "name": "keyType", - "type": "uint256" - } + internalType: 'uint256', + name: 'keyType', + type: 'uint256', + }, ], - "indexed": false, - "internalType": "struct IPubkeyRouter.RootKey", - "name": "rootKey", - "type": "tuple" - } + indexed: false, + internalType: 'struct IPubkeyRouter.RootKey', + name: 'rootKey', + type: 'tuple', + }, ], - "name": "RootKeySet", - "type": "event" + name: 'RootKeySet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'value', + type: 'uint256', }, { - "indexed": false, - "internalType": "address", - "name": "sender", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'sender', + type: 'address', + }, ], - "name": "ToggleEvent", - "type": "event" + name: 'ToggleEvent', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newTrustedForwarder", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newTrustedForwarder', + type: 'address', + }, ], - "name": "TrustedForwarderSet", - "type": "event" - } - ] + name: 'TrustedForwarderSet', + type: 'event', + }, + ], }, - "Staking": { - "address": "0xa82fF9aFd8f496c3d6ac40E2a0F282E47488CFc9", - "methods": { - "getActiveUnkickedValidatorStructsAndCounts": { - "inputs": [ + Staking: { + address: '0xa82fF9aFd8f496c3d6ac40E2a0F282E47488CFc9', + methods: { + getActiveUnkickedValidatorStructsAndCounts: { + inputs: [ { - "internalType": "uint256", - "name": "realmId", - "type": "uint256" - } + internalType: 'uint256', + name: 'realmId', + type: 'uint256', + }, ], - "name": "getActiveUnkickedValidatorStructsAndCounts", - "outputs": [ + name: 'getActiveUnkickedValidatorStructsAndCounts', + outputs: [ { - "components": [ + components: [ { - "internalType": "uint256", - "name": "epochLength", - "type": "uint256" + internalType: 'uint256', + name: 'epochLength', + type: 'uint256', }, { - "internalType": "uint256", - "name": "number", - "type": "uint256" + internalType: 'uint256', + name: 'number', + type: 'uint256', }, { - "internalType": "uint256", - "name": "rewardEpochNumber", - "type": "uint256" + internalType: 'uint256', + name: 'rewardEpochNumber', + type: 'uint256', }, { - "internalType": "uint256", - "name": "nextRewardEpochNumber", - "type": "uint256" + internalType: 'uint256', + name: 'nextRewardEpochNumber', + type: 'uint256', }, { - "internalType": "uint256", - "name": "endTime", - "type": "uint256" + internalType: 'uint256', + name: 'endTime', + type: 'uint256', }, { - "internalType": "uint256", - "name": "retries", - "type": "uint256" + internalType: 'uint256', + name: 'retries', + type: 'uint256', }, { - "internalType": "uint256", - "name": "timeout", - "type": "uint256" + internalType: 'uint256', + name: 'timeout', + type: 'uint256', }, { - "internalType": "uint256", - "name": "startTime", - "type": "uint256" - } + internalType: 'uint256', + name: 'startTime', + type: 'uint256', + }, ], - "internalType": "struct LibStakingStorage.Epoch", - "name": "", - "type": "tuple" + internalType: 'struct LibStakingStorage.Epoch', + name: '', + type: 'tuple', }, { - "internalType": "uint256", - "name": "", - "type": "uint256" + internalType: 'uint256', + name: '', + type: 'uint256', }, { - "components": [ + components: [ { - "internalType": "uint32", - "name": "ip", - "type": "uint32" + internalType: 'uint32', + name: 'ip', + type: 'uint32', }, { - "internalType": "uint128", - "name": "ipv6", - "type": "uint128" + internalType: 'uint128', + name: 'ipv6', + type: 'uint128', }, { - "internalType": "uint32", - "name": "port", - "type": "uint32" + internalType: 'uint32', + name: 'port', + type: 'uint32', }, { - "internalType": "address", - "name": "nodeAddress", - "type": "address" + internalType: 'address', + name: 'nodeAddress', + type: 'address', }, { - "internalType": "uint256", - "name": "reward", - "type": "uint256" + internalType: 'uint256', + name: 'reward', + type: 'uint256', }, { - "internalType": "uint256", - "name": "senderPubKey", - "type": "uint256" + internalType: 'uint256', + name: 'senderPubKey', + type: 'uint256', }, { - "internalType": "uint256", - "name": "receiverPubKey", - "type": "uint256" + internalType: 'uint256', + name: 'receiverPubKey', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastActiveEpoch", - "type": "uint256" + internalType: 'uint256', + name: 'lastActiveEpoch', + type: 'uint256', }, { - "internalType": "uint256", - "name": "commissionRate", - "type": "uint256" + internalType: 'uint256', + name: 'commissionRate', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastRewardEpoch", - "type": "uint256" + internalType: 'uint256', + name: 'lastRewardEpoch', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastRealmId", - "type": "uint256" + internalType: 'uint256', + name: 'lastRealmId', + type: 'uint256', }, { - "internalType": "uint256", - "name": "delegatedStakeAmount", - "type": "uint256" + internalType: 'uint256', + name: 'delegatedStakeAmount', + type: 'uint256', }, { - "internalType": "uint256", - "name": "delegatedStakeWeight", - "type": "uint256" + internalType: 'uint256', + name: 'delegatedStakeWeight', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastRewardEpochClaimedFixedCostRewards", - "type": "uint256" + internalType: 'uint256', + name: 'lastRewardEpochClaimedFixedCostRewards', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastRewardEpochClaimedCommission", - "type": "uint256" + internalType: 'uint256', + name: 'lastRewardEpochClaimedCommission', + type: 'uint256', }, { - "internalType": "address", - "name": "operatorAddress", - "type": "address" + internalType: 'address', + name: 'operatorAddress', + type: 'address', }, { - "internalType": "uint256", - "name": "uniqueDelegatingStakerCount", - "type": "uint256" + internalType: 'uint256', + name: 'uniqueDelegatingStakerCount', + type: 'uint256', }, { - "internalType": "bool", - "name": "registerAttestedWalletDisabled", - "type": "bool" - } + internalType: 'bool', + name: 'registerAttestedWalletDisabled', + type: 'bool', + }, ], - "internalType": "struct LibStakingStorage.Validator[]", - "name": "", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - } + internalType: 'struct LibStakingStorage.Validator[]', + name: '', + type: 'tuple[]', + }, + ], + stateMutability: 'view', + type: 'function', + }, }, - "events": [ + events: [ { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "components": [ + components: [ { - "internalType": "address", - "name": "facetAddress", - "type": "address" + internalType: 'address', + name: 'facetAddress', + type: 'address', }, { - "internalType": "enum IDiamond.FacetCutAction", - "name": "action", - "type": "uint8" + internalType: 'enum IDiamond.FacetCutAction', + name: 'action', + type: 'uint8', }, { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } + internalType: 'bytes4[]', + name: 'functionSelectors', + type: 'bytes4[]', + }, ], - "indexed": false, - "internalType": "struct IDiamond.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" + indexed: false, + internalType: 'struct IDiamond.FacetCut[]', + name: '_diamondCut', + type: 'tuple[]', }, { - "indexed": false, - "internalType": "address", - "name": "_init", - "type": "address" + indexed: false, + internalType: 'address', + name: '_init', + type: 'address', }, { - "indexed": false, - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: '_calldata', + type: 'bytes', + }, ], - "name": "DiamondCut", - "type": "event" + name: 'DiamondCut', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, ], - "name": "OwnershipTransferred", - "type": "event" + name: 'OwnershipTransferred', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "dataType", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'dataType', + type: 'uint256', + }, ], - "name": "ClearOfflinePhaseData", - "type": "event" + name: 'ClearOfflinePhaseData', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "dataType", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'dataType', + type: 'uint256', + }, ], - "name": "CountOfflinePhaseData", - "type": "event" + name: 'CountOfflinePhaseData', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newDevopsAdmin", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newDevopsAdmin', + type: 'address', + }, ], - "name": "DevopsAdminSet", - "type": "event" + name: 'DevopsAdminSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "realmId", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'realmId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "newEpochEndTime", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'newEpochEndTime', + type: 'uint256', + }, ], - "name": "EpochEndTimeSet", - "type": "event" + name: 'EpochEndTimeSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "realmId", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'realmId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "newEpochLength", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'newEpochLength', + type: 'uint256', + }, ], - "name": "EpochLengthSet", - "type": "event" + name: 'EpochLengthSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "realmId", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'realmId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "newEpochTimeout", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'newEpochTimeout', + type: 'uint256', + }, ], - "name": "EpochTimeoutSet", - "type": "event" + name: 'EpochTimeoutSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "reason", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'reason', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "newKickPenaltyPercent", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'newKickPenaltyPercent', + type: 'uint256', + }, ], - "name": "KickPenaltyPercentSet", - "type": "event" + name: 'KickPenaltyPercentSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newResolverContractAddress", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newResolverContractAddress', + type: 'address', + }, ], - "name": "ResolverContractAddressSet", - "type": "event" + name: 'ResolverContractAddressSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "stakerAddress", - "type": "address" + indexed: false, + internalType: 'address', + name: 'stakerAddress', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "recordId", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'recordId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', }, { - "indexed": false, - "internalType": "address", - "name": "stakerAddressClient", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'stakerAddressClient', + type: 'address', + }, ], - "name": "StakeRecordCreated", - "type": "event" + name: 'StakeRecordCreated', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" + indexed: true, + internalType: 'address', + name: 'staker', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "name": "Staked", - "type": "event" + name: 'Staked', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "enum LibStakingStorage.States", - "name": "newState", - "type": "uint8" - } + indexed: false, + internalType: 'enum LibStakingStorage.States', + name: 'newState', + type: 'uint8', + }, ], - "name": "StateChanged", - "type": "event" + name: 'StateChanged', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'staker', + type: 'address', + }, ], - "name": "ValidatorBanned", - "type": "event" + name: 'ValidatorBanned', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'staker', + type: 'address', + }, ], - "name": "ValidatorKickedFromNextEpoch", - "type": "event" + name: 'ValidatorKickedFromNextEpoch', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "staker", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'staker', + type: 'address', + }, ], - "name": "ValidatorRejoinedNextEpoch", - "type": "event" + name: 'ValidatorRejoinedNextEpoch', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "stakerAddress", - "type": "address" + indexed: false, + internalType: 'address', + name: 'stakerAddress', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "rewards", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'rewards', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "fromEpoch", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'fromEpoch', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "toEpoch", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'toEpoch', + type: 'uint256', + }, ], - "name": "FixedCostRewardsClaimed", - "type": "event" + name: 'FixedCostRewardsClaimed', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "userStakerAddress", - "type": "address" + indexed: false, + internalType: 'address', + name: 'userStakerAddress', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "recordId", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'recordId', + type: 'uint256', + }, ], - "name": "StakeRecordRemoved", - "type": "event" + name: 'StakeRecordRemoved', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "stakerAddress", - "type": "address" + indexed: false, + internalType: 'address', + name: 'stakerAddress', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "recordId", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'recordId', + type: 'uint256', + }, ], - "name": "StakeRecordUpdated", - "type": "event" + name: 'StakeRecordUpdated', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "stakerAddress", - "type": "address" + indexed: false, + internalType: 'address', + name: 'stakerAddress', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "recordId", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'recordId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "rewards", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'rewards', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "fromEpoch", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'fromEpoch', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "toEpoch", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'toEpoch', + type: 'uint256', + }, ], - "name": "StakeRewardsClaimed", - "type": "event" + name: 'StakeRewardsClaimed', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newTrustedForwarder", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newTrustedForwarder', + type: 'address', + }, ], - "name": "TrustedForwarderSet", - "type": "event" + name: 'TrustedForwarderSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "stakerAddress", - "type": "address" + indexed: false, + internalType: 'address', + name: 'stakerAddress', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "rewards", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'rewards', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "fromEpoch", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'fromEpoch', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "toEpoch", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'toEpoch', + type: 'uint256', + }, ], - "name": "ValidatorCommissionClaimed", - "type": "event" + name: 'ValidatorCommissionClaimed', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "stakerAddress", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'stakerAddress', + type: 'address', + }, ], - "name": "ValidatorRegistered", - "type": "event" + name: 'ValidatorRegistered', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" + indexed: true, + internalType: 'address', + name: 'staker', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "name": "Withdrawn", - "type": "event" + name: 'Withdrawn', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "bool", - "name": "exists", - "type": "bool" + indexed: false, + internalType: 'bool', + name: 'exists', + type: 'bool', }, { - "indexed": false, - "internalType": "string", - "name": "identifier", - "type": "string" + indexed: false, + internalType: 'string', + name: 'identifier', + type: 'string', }, { - "indexed": false, - "internalType": "bytes32", - "name": "hashed", - "type": "bytes32" - } + indexed: false, + internalType: 'bytes32', + name: 'hashed', + type: 'bytes32', + }, ], - "name": "KeySetConfigSet", - "type": "event" + name: 'KeySetConfigSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "string", - "name": "identifier", - "type": "string" - } + indexed: false, + internalType: 'string', + name: 'identifier', + type: 'string', + }, ], - "name": "KeySetConfigUpdated", - "type": "event" + name: 'KeySetConfigUpdated', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "realmId", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'realmId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "epochNumber", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'epochNumber', + type: 'uint256', + }, ], - "name": "AdvancedEpoch", - "type": "event" + name: 'AdvancedEpoch', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" + indexed: true, + internalType: 'address', + name: 'staker', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "attestedAddress", - "type": "address" + indexed: true, + internalType: 'address', + name: 'attestedAddress', + type: 'address', }, { - "components": [ + components: [ { - "internalType": "uint256", - "name": "x", - "type": "uint256" + internalType: 'uint256', + name: 'x', + type: 'uint256', }, { - "internalType": "uint256", - "name": "y", - "type": "uint256" - } + internalType: 'uint256', + name: 'y', + type: 'uint256', + }, ], - "indexed": true, - "internalType": "struct LibStakingStorage.UncompressedK256Key", - "name": "attestedPubKey", - "type": "tuple" - } + indexed: true, + internalType: 'struct LibStakingStorage.UncompressedK256Key', + name: 'attestedPubKey', + type: 'tuple', + }, ], - "name": "AttestedWalletRegistered", - "type": "event" + name: 'AttestedWalletRegistered', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "reason", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'reason', + type: 'uint256', }, { - "components": [ + components: [ { - "internalType": "uint256", - "name": "tolerance", - "type": "uint256" + internalType: 'uint256', + name: 'tolerance', + type: 'uint256', }, { - "internalType": "uint256", - "name": "intervalSecs", - "type": "uint256" + internalType: 'uint256', + name: 'intervalSecs', + type: 'uint256', }, { - "internalType": "uint256", - "name": "kickPenaltyPercent", - "type": "uint256" + internalType: 'uint256', + name: 'kickPenaltyPercent', + type: 'uint256', }, { - "internalType": "uint256", - "name": "kickPenaltyDemerits", - "type": "uint256" - } + internalType: 'uint256', + name: 'kickPenaltyDemerits', + type: 'uint256', + }, ], - "indexed": false, - "internalType": "struct LibStakingStorage.ComplaintConfig", - "name": "config", - "type": "tuple" - } + indexed: false, + internalType: 'struct LibStakingStorage.ComplaintConfig', + name: 'config', + type: 'tuple', + }, ], - "name": "ComplaintConfigSet", - "type": "event" + name: 'ComplaintConfigSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "newTokenRewardPerTokenPerEpoch", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'newTokenRewardPerTokenPerEpoch', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256[]", - "name": "newKeyTypes", - "type": "uint256[]" + indexed: false, + internalType: 'uint256[]', + name: 'newKeyTypes', + type: 'uint256[]', }, { - "indexed": false, - "internalType": "uint256", - "name": "newMinimumValidatorCount", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'newMinimumValidatorCount', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "newMaxConcurrentRequests", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'newMaxConcurrentRequests', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "newMaxPresignCount", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'newMaxPresignCount', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "newMinPresignCount", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'newMinPresignCount', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "newPeerCheckingIntervalSecs", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'newPeerCheckingIntervalSecs', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "newMaxPresignConcurrency", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'newMaxPresignConcurrency', + type: 'uint256', }, { - "indexed": false, - "internalType": "bool", - "name": "newRpcHealthcheckEnabled", - "type": "bool" - } + indexed: false, + internalType: 'bool', + name: 'newRpcHealthcheckEnabled', + type: 'bool', + }, ], - "name": "ConfigSet", - "type": "event" + name: 'ConfigSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "string", - "name": "message", - "type": "string" + indexed: false, + internalType: 'string', + name: 'message', + type: 'string', }, { - "indexed": false, - "internalType": "address", - "name": "sender", - "type": "address" + indexed: false, + internalType: 'address', + name: 'sender', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'value', + type: 'uint256', + }, ], - "name": "DebugEvent", - "type": "event" + name: 'DebugEvent', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" + indexed: true, + internalType: 'address', + name: 'staker', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "epochNumber", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'epochNumber', + type: 'uint256', + }, ], - "name": "ReadyForNextEpoch", - "type": "event" + name: 'ReadyForNextEpoch', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "token", - "type": "address" + indexed: false, + internalType: 'address', + name: 'token', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "name": "Recovered", - "type": "event" + name: 'Recovered', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'staker', + type: 'address', + }, ], - "name": "RequestToJoin", - "type": "event" + name: 'RequestToJoin', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'staker', + type: 'address', + }, ], - "name": "RequestToLeave", - "type": "event" + name: 'RequestToLeave', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "newDuration", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'newDuration', + type: 'uint256', + }, ], - "name": "RewardsDurationUpdated", - "type": "event" + name: 'RewardsDurationUpdated', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newStakingTokenAddress", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newStakingTokenAddress', + type: 'address', + }, ], - "name": "StakingTokenSet", - "type": "event" + name: 'StakingTokenSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "reporter", - "type": "address" + indexed: true, + internalType: 'address', + name: 'reporter', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "validatorToKickStakerAddress", - "type": "address" + indexed: true, + internalType: 'address', + name: 'validatorToKickStakerAddress', + type: 'address', }, { - "indexed": true, - "internalType": "uint256", - "name": "reason", - "type": "uint256" + indexed: true, + internalType: 'uint256', + name: 'reason', + type: 'uint256', }, { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: 'data', + type: 'bytes', + }, ], - "name": "VotedToKickValidatorInNextEpoch", - "type": "event" + name: 'VotedToKickValidatorInNextEpoch', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "index", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'index', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "realmId", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'realmId', + type: 'uint256', }, { - "components": [ + components: [ { - "internalType": "uint256", - "name": "major", - "type": "uint256" + internalType: 'uint256', + name: 'major', + type: 'uint256', }, { - "internalType": "uint256", - "name": "minor", - "type": "uint256" + internalType: 'uint256', + name: 'minor', + type: 'uint256', }, { - "internalType": "uint256", - "name": "patch", - "type": "uint256" - } + internalType: 'uint256', + name: 'patch', + type: 'uint256', + }, ], - "indexed": false, - "internalType": "struct LibStakingStorage.Version", - "name": "version", - "type": "tuple" - } - ], - "name": "VersionRequirementsUpdated", - "type": "event" - } - ] + indexed: false, + internalType: 'struct LibStakingStorage.Version', + name: 'version', + type: 'tuple', + }, + ], + name: 'VersionRequirementsUpdated', + type: 'event', + }, + ], }, - "PriceFeed": { - "address": "0xAA292E8611aDF267e563f334Ee42320aC96D0463", - "methods": { - "getNodesForRequest": { - "inputs": [ + PriceFeed: { + address: '0xAA292E8611aDF267e563f334Ee42320aC96D0463', + methods: { + getNodesForRequest: { + inputs: [ { - "internalType": "uint256", - "name": "realmId", - "type": "uint256" + internalType: 'uint256', + name: 'realmId', + type: 'uint256', }, { - "internalType": "uint256[]", - "name": "productIds", - "type": "uint256[]" - } + internalType: 'uint256[]', + name: 'productIds', + type: 'uint256[]', + }, ], - "name": "getNodesForRequest", - "outputs": [ + name: 'getNodesForRequest', + outputs: [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + internalType: 'uint256', + name: '', + type: 'uint256', }, { - "internalType": "uint256", - "name": "", - "type": "uint256" + internalType: 'uint256', + name: '', + type: 'uint256', }, { - "components": [ + components: [ { - "components": [ + components: [ { - "internalType": "uint32", - "name": "ip", - "type": "uint32" + internalType: 'uint32', + name: 'ip', + type: 'uint32', }, { - "internalType": "uint128", - "name": "ipv6", - "type": "uint128" + internalType: 'uint128', + name: 'ipv6', + type: 'uint128', }, { - "internalType": "uint32", - "name": "port", - "type": "uint32" + internalType: 'uint32', + name: 'port', + type: 'uint32', }, { - "internalType": "address", - "name": "nodeAddress", - "type": "address" + internalType: 'address', + name: 'nodeAddress', + type: 'address', }, { - "internalType": "uint256", - "name": "reward", - "type": "uint256" + internalType: 'uint256', + name: 'reward', + type: 'uint256', }, { - "internalType": "uint256", - "name": "senderPubKey", - "type": "uint256" + internalType: 'uint256', + name: 'senderPubKey', + type: 'uint256', }, { - "internalType": "uint256", - "name": "receiverPubKey", - "type": "uint256" + internalType: 'uint256', + name: 'receiverPubKey', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastActiveEpoch", - "type": "uint256" + internalType: 'uint256', + name: 'lastActiveEpoch', + type: 'uint256', }, { - "internalType": "uint256", - "name": "commissionRate", - "type": "uint256" + internalType: 'uint256', + name: 'commissionRate', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastRewardEpoch", - "type": "uint256" + internalType: 'uint256', + name: 'lastRewardEpoch', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastRealmId", - "type": "uint256" + internalType: 'uint256', + name: 'lastRealmId', + type: 'uint256', }, { - "internalType": "uint256", - "name": "delegatedStakeAmount", - "type": "uint256" + internalType: 'uint256', + name: 'delegatedStakeAmount', + type: 'uint256', }, { - "internalType": "uint256", - "name": "delegatedStakeWeight", - "type": "uint256" + internalType: 'uint256', + name: 'delegatedStakeWeight', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastRewardEpochClaimedFixedCostRewards", - "type": "uint256" + internalType: 'uint256', + name: 'lastRewardEpochClaimedFixedCostRewards', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastRewardEpochClaimedCommission", - "type": "uint256" + internalType: 'uint256', + name: 'lastRewardEpochClaimedCommission', + type: 'uint256', }, { - "internalType": "address", - "name": "operatorAddress", - "type": "address" + internalType: 'address', + name: 'operatorAddress', + type: 'address', }, { - "internalType": "uint256", - "name": "uniqueDelegatingStakerCount", - "type": "uint256" + internalType: 'uint256', + name: 'uniqueDelegatingStakerCount', + type: 'uint256', }, { - "internalType": "bool", - "name": "registerAttestedWalletDisabled", - "type": "bool" - } + internalType: 'bool', + name: 'registerAttestedWalletDisabled', + type: 'bool', + }, ], - "internalType": "struct LibStakingStorage.Validator", - "name": "validator", - "type": "tuple" + internalType: 'struct LibStakingStorage.Validator', + name: 'validator', + type: 'tuple', }, { - "internalType": "uint256[]", - "name": "prices", - "type": "uint256[]" - } + internalType: 'uint256[]', + name: 'prices', + type: 'uint256[]', + }, ], - "internalType": "struct LibPriceFeedStorage.NodeInfoAndPrices[]", - "name": "", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - } + internalType: 'struct LibPriceFeedStorage.NodeInfoAndPrices[]', + name: '', + type: 'tuple[]', + }, + ], + stateMutability: 'view', + type: 'function', + }, }, - "events": [ + events: [ { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "components": [ + components: [ { - "internalType": "address", - "name": "facetAddress", - "type": "address" + internalType: 'address', + name: 'facetAddress', + type: 'address', }, { - "internalType": "enum IDiamond.FacetCutAction", - "name": "action", - "type": "uint8" + internalType: 'enum IDiamond.FacetCutAction', + name: 'action', + type: 'uint8', }, { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } + internalType: 'bytes4[]', + name: 'functionSelectors', + type: 'bytes4[]', + }, ], - "indexed": false, - "internalType": "struct IDiamond.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" + indexed: false, + internalType: 'struct IDiamond.FacetCut[]', + name: '_diamondCut', + type: 'tuple[]', }, { - "indexed": false, - "internalType": "address", - "name": "_init", - "type": "address" + indexed: false, + internalType: 'address', + name: '_init', + type: 'address', }, { - "indexed": false, - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: '_calldata', + type: 'bytes', + }, ], - "name": "DiamondCut", - "type": "event" + name: 'DiamondCut', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, ], - "name": "OwnershipTransferred", - "type": "event" + name: 'OwnershipTransferred', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "newPrice", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'newPrice', + type: 'uint256', + }, ], - "name": "BaseNetworkPriceSet", - "type": "event" + name: 'BaseNetworkPriceSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "newPrice", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'newPrice', + type: 'uint256', + }, ], - "name": "MaxNetworkPriceSet", - "type": "event" + name: 'MaxNetworkPriceSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newTrustedForwarder", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newTrustedForwarder', + type: 'address', + }, ], - "name": "TrustedForwarderSet", - "type": "event" + name: 'TrustedForwarderSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "stakingAddress", - "type": "address" + indexed: true, + internalType: 'address', + name: 'stakingAddress', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "usagePercent", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'usagePercent', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256[]", - "name": "newPrices", - "type": "uint256[]" - } + indexed: false, + internalType: 'uint256[]', + name: 'newPrices', + type: 'uint256[]', + }, ], - "name": "UsageSet", - "type": "event" - } - ] + name: 'UsageSet', + type: 'event', + }, + ], }, - "Ledger": { - "address": "0x7A9Ec1d04904907De0ED7b6839CcdD59c3716AC9", - "methods": { - "withdraw": { - "inputs": [ - { - "internalType": "int256", - "name": "amount", - "type": "int256" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - "balance": { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "balance", - "outputs": [ - { - "internalType": "int256", - "name": "", - "type": "int256" - } - ], - "stateMutability": "view", - "type": "function" - }, - "deposit": { - "inputs": [], - "name": "deposit", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - "depositForUser": { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "depositForUser", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - "latestWithdrawRequest": { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "latestWithdrawRequest", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + Ledger: { + address: '0x7A9Ec1d04904907De0ED7b6839CcdD59c3716AC9', + methods: { + withdraw: { + inputs: [ + { + internalType: 'int256', + name: 'amount', + type: 'int256', + }, + ], + name: 'withdraw', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + balance: { + inputs: [ + { + internalType: 'address', + name: 'user', + type: 'address', + }, + ], + name: 'balance', + outputs: [ + { + internalType: 'int256', + name: '', + type: 'int256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + deposit: { + inputs: [], + name: 'deposit', + outputs: [], + stateMutability: 'payable', + type: 'function', + }, + depositForUser: { + inputs: [ + { + internalType: 'address', + name: 'user', + type: 'address', + }, + ], + name: 'depositForUser', + outputs: [], + stateMutability: 'payable', + type: 'function', + }, + latestWithdrawRequest: { + inputs: [ + { + internalType: 'address', + name: 'user', + type: 'address', + }, + ], + name: 'latestWithdrawRequest', + outputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'timestamp', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "internalType": "struct LibLedgerStorage.WithdrawRequest", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - "requestWithdraw": { - "inputs": [ - { - "internalType": "int256", - "name": "amount", - "type": "int256" - } - ], - "name": "requestWithdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - "stableBalance": { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "stableBalance", - "outputs": [ - { - "internalType": "int256", - "name": "", - "type": "int256" - } - ], - "stateMutability": "view", - "type": "function" - }, - "userWithdrawDelay": { - "inputs": [], - "name": "userWithdrawDelay", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } + internalType: 'struct LibLedgerStorage.WithdrawRequest', + name: '', + type: 'tuple', + }, + ], + stateMutability: 'view', + type: 'function', + }, + requestWithdraw: { + inputs: [ + { + internalType: 'int256', + name: 'amount', + type: 'int256', + }, + ], + name: 'requestWithdraw', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + stableBalance: { + inputs: [ + { + internalType: 'address', + name: 'user', + type: 'address', + }, + ], + name: 'stableBalance', + outputs: [ + { + internalType: 'int256', + name: '', + type: 'int256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + userWithdrawDelay: { + inputs: [], + name: 'userWithdrawDelay', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, }, - "events": [ + events: [ { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "components": [ + components: [ { - "internalType": "address", - "name": "facetAddress", - "type": "address" + internalType: 'address', + name: 'facetAddress', + type: 'address', }, { - "internalType": "enum IDiamond.FacetCutAction", - "name": "action", - "type": "uint8" + internalType: 'enum IDiamond.FacetCutAction', + name: 'action', + type: 'uint8', }, { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } + internalType: 'bytes4[]', + name: 'functionSelectors', + type: 'bytes4[]', + }, ], - "indexed": false, - "internalType": "struct IDiamond.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" + indexed: false, + internalType: 'struct IDiamond.FacetCut[]', + name: '_diamondCut', + type: 'tuple[]', }, { - "indexed": false, - "internalType": "address", - "name": "_init", - "type": "address" + indexed: false, + internalType: 'address', + name: '_init', + type: 'address', }, { - "indexed": false, - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: '_calldata', + type: 'bytes', + }, ], - "name": "DiamondCut", - "type": "event" + name: 'DiamondCut', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, ], - "name": "OwnershipTransferred", - "type": "event" + name: 'OwnershipTransferred', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "node_address", - "type": "address" + indexed: true, + internalType: 'address', + name: 'node_address', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "batch_id", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'batch_id', + type: 'uint256', + }, ], - "name": "BatchCharged", - "type": "event" + name: 'BatchCharged', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "name": "Deposit", - "type": "event" + name: 'Deposit', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "depositor", - "type": "address" + indexed: true, + internalType: 'address', + name: 'depositor', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "name": "DepositForUser", - "type": "event" + name: 'DepositForUser', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "name": "FoundationRewardsWithdrawn", - "type": "event" + name: 'FoundationRewardsWithdrawn', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "percentage", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'percentage', + type: 'uint256', + }, ], - "name": "LitFoundationSplitPercentageSet", - "type": "event" + name: 'LitFoundationSplitPercentageSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "name": "RewardWithdraw", - "type": "event" + name: 'RewardWithdraw', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "delay", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'delay', + type: 'uint256', + }, ], - "name": "RewardWithdrawDelaySet", - "type": "event" + name: 'RewardWithdrawDelaySet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "name": "RewardWithdrawRequest", - "type": "event" + name: 'RewardWithdrawRequest', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newTrustedForwarder", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newTrustedForwarder', + type: 'address', + }, ], - "name": "TrustedForwarderSet", - "type": "event" + name: 'TrustedForwarderSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', }, { - "indexed": false, - "internalType": "int256", - "name": "amount", - "type": "int256" - } + indexed: false, + internalType: 'int256', + name: 'amount', + type: 'int256', + }, ], - "name": "UserCharged", - "type": "event" + name: 'UserCharged', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "delay", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'delay', + type: 'uint256', + }, ], - "name": "UserWithdrawDelaySet", - "type": "event" + name: 'UserWithdrawDelaySet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', }, { - "indexed": false, - "internalType": "int256", - "name": "amount", - "type": "int256" - } + indexed: false, + internalType: 'int256', + name: 'amount', + type: 'int256', + }, ], - "name": "Withdraw", - "type": "event" + name: 'Withdraw', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', }, { - "indexed": false, - "internalType": "int256", - "name": "amount", - "type": "int256" - } + indexed: false, + internalType: 'int256', + name: 'amount', + type: 'int256', + }, ], - "name": "WithdrawRequest", - "type": "event" - } - ] + name: 'WithdrawRequest', + type: 'event', + }, + ], }, - "PaymentDelegation": { - "address": "0xfbC22278A96299D91d41C453234d97b4F5Eb9B2d", - "methods": { - "delegatePayments": { - "inputs": [ + PaymentDelegation: { + address: '0xfbC22278A96299D91d41C453234d97b4F5Eb9B2d', + methods: { + delegatePayments: { + inputs: [ { - "internalType": "address", - "name": "user", - "type": "address" - } + internalType: 'address', + name: 'user', + type: 'address', + }, ], - "name": "delegatePayments", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'delegatePayments', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "delegatePaymentsBatch": { - "inputs": [ + delegatePaymentsBatch: { + inputs: [ { - "internalType": "address[]", - "name": "users", - "type": "address[]" - } + internalType: 'address[]', + name: 'users', + type: 'address[]', + }, ], - "name": "delegatePaymentsBatch", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'delegatePaymentsBatch', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "getPayers": { - "inputs": [ + getPayers: { + inputs: [ { - "internalType": "address", - "name": "user", - "type": "address" - } + internalType: 'address', + name: 'user', + type: 'address', + }, ], - "name": "getPayers", - "outputs": [ + name: 'getPayers', + outputs: [ { - "internalType": "address[]", - "name": "", - "type": "address[]" - } + internalType: 'address[]', + name: '', + type: 'address[]', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "getPayersAndRestrictions": { - "inputs": [ + getPayersAndRestrictions: { + inputs: [ { - "internalType": "address[]", - "name": "users", - "type": "address[]" - } + internalType: 'address[]', + name: 'users', + type: 'address[]', + }, ], - "name": "getPayersAndRestrictions", - "outputs": [ + name: 'getPayersAndRestrictions', + outputs: [ { - "internalType": "address[][]", - "name": "", - "type": "address[][]" + internalType: 'address[][]', + name: '', + type: 'address[][]', }, { - "components": [ + components: [ { - "internalType": "uint128", - "name": "totalMaxPrice", - "type": "uint128" + internalType: 'uint128', + name: 'totalMaxPrice', + type: 'uint128', }, { - "internalType": "uint256", - "name": "requestsPerPeriod", - "type": "uint256" + internalType: 'uint256', + name: 'requestsPerPeriod', + type: 'uint256', }, { - "internalType": "uint256", - "name": "periodSeconds", - "type": "uint256" - } + internalType: 'uint256', + name: 'periodSeconds', + type: 'uint256', + }, ], - "internalType": "struct LibPaymentDelegationStorage.Restriction[][]", - "name": "", - "type": "tuple[][]" - } + internalType: 'struct LibPaymentDelegationStorage.Restriction[][]', + name: '', + type: 'tuple[][]', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "getRestriction": { - "inputs": [ + getRestriction: { + inputs: [ { - "internalType": "address", - "name": "payer", - "type": "address" - } + internalType: 'address', + name: 'payer', + type: 'address', + }, ], - "name": "getRestriction", - "outputs": [ + name: 'getRestriction', + outputs: [ { - "components": [ + components: [ { - "internalType": "uint128", - "name": "totalMaxPrice", - "type": "uint128" + internalType: 'uint128', + name: 'totalMaxPrice', + type: 'uint128', }, { - "internalType": "uint256", - "name": "requestsPerPeriod", - "type": "uint256" + internalType: 'uint256', + name: 'requestsPerPeriod', + type: 'uint256', }, { - "internalType": "uint256", - "name": "periodSeconds", - "type": "uint256" - } + internalType: 'uint256', + name: 'periodSeconds', + type: 'uint256', + }, ], - "internalType": "struct LibPaymentDelegationStorage.Restriction", - "name": "", - "type": "tuple" - } + internalType: 'struct LibPaymentDelegationStorage.Restriction', + name: '', + type: 'tuple', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "getUsers": { - "inputs": [ + getUsers: { + inputs: [ { - "internalType": "address", - "name": "payer", - "type": "address" - } + internalType: 'address', + name: 'payer', + type: 'address', + }, ], - "name": "getUsers", - "outputs": [ + name: 'getUsers', + outputs: [ { - "internalType": "address[]", - "name": "", - "type": "address[]" - } + internalType: 'address[]', + name: '', + type: 'address[]', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "setRestriction": { - "inputs": [ + setRestriction: { + inputs: [ { - "components": [ + components: [ { - "internalType": "uint128", - "name": "totalMaxPrice", - "type": "uint128" + internalType: 'uint128', + name: 'totalMaxPrice', + type: 'uint128', }, { - "internalType": "uint256", - "name": "requestsPerPeriod", - "type": "uint256" + internalType: 'uint256', + name: 'requestsPerPeriod', + type: 'uint256', }, { - "internalType": "uint256", - "name": "periodSeconds", - "type": "uint256" - } + internalType: 'uint256', + name: 'periodSeconds', + type: 'uint256', + }, ], - "internalType": "struct LibPaymentDelegationStorage.Restriction", - "name": "r", - "type": "tuple" - } - ], - "name": "setRestriction", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - "undelegatePayments": { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "undelegatePayments", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - "undelegatePaymentsBatch": { - "inputs": [ - { - "internalType": "address[]", - "name": "users", - "type": "address[]" - } - ], - "name": "undelegatePaymentsBatch", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } + internalType: 'struct LibPaymentDelegationStorage.Restriction', + name: 'r', + type: 'tuple', + }, + ], + name: 'setRestriction', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + undelegatePayments: { + inputs: [ + { + internalType: 'address', + name: 'user', + type: 'address', + }, + ], + name: 'undelegatePayments', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + undelegatePaymentsBatch: { + inputs: [ + { + internalType: 'address[]', + name: 'users', + type: 'address[]', + }, + ], + name: 'undelegatePaymentsBatch', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, }, - "events": [ + events: [ { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "components": [ + components: [ { - "internalType": "address", - "name": "facetAddress", - "type": "address" + internalType: 'address', + name: 'facetAddress', + type: 'address', }, { - "internalType": "enum IDiamond.FacetCutAction", - "name": "action", - "type": "uint8" + internalType: 'enum IDiamond.FacetCutAction', + name: 'action', + type: 'uint8', }, { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } + internalType: 'bytes4[]', + name: 'functionSelectors', + type: 'bytes4[]', + }, ], - "indexed": false, - "internalType": "struct IDiamond.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" + indexed: false, + internalType: 'struct IDiamond.FacetCut[]', + name: '_diamondCut', + type: 'tuple[]', }, { - "indexed": false, - "internalType": "address", - "name": "_init", - "type": "address" + indexed: false, + internalType: 'address', + name: '_init', + type: 'address', }, { - "indexed": false, - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: '_calldata', + type: 'bytes', + }, ], - "name": "DiamondCut", - "type": "event" + name: 'DiamondCut', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, ], - "name": "OwnershipTransferred", - "type": "event" + name: 'OwnershipTransferred', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" + indexed: true, + internalType: 'address', + name: 'payer', + type: 'address', }, { - "components": [ + components: [ { - "internalType": "uint128", - "name": "totalMaxPrice", - "type": "uint128" + internalType: 'uint128', + name: 'totalMaxPrice', + type: 'uint128', }, { - "internalType": "uint256", - "name": "requestsPerPeriod", - "type": "uint256" + internalType: 'uint256', + name: 'requestsPerPeriod', + type: 'uint256', }, { - "internalType": "uint256", - "name": "periodSeconds", - "type": "uint256" - } + internalType: 'uint256', + name: 'periodSeconds', + type: 'uint256', + }, ], - "indexed": false, - "internalType": "struct LibPaymentDelegationStorage.Restriction", - "name": "restriction", - "type": "tuple" - } - ], - "name": "RestrictionSet", - "type": "event" - } - ] - } + indexed: false, + internalType: 'struct LibPaymentDelegationStorage.Restriction', + name: 'restriction', + type: 'tuple', + }, + ], + name: 'RestrictionSet', + type: 'event', + }, + ], + }, }; diff --git a/packages/networks/src/networks/vNaga/envs/naga-local/generated/naga-develop.ts b/packages/networks/src/networks/vNaga/envs/naga-local/generated/naga-develop.ts index 6a9bc762e9..da06e79530 100644 --- a/packages/networks/src/networks/vNaga/envs/naga-local/generated/naga-develop.ts +++ b/packages/networks/src/networks/vNaga/envs/naga-local/generated/naga-develop.ts @@ -4,3595 +4,3595 @@ */ export const signatures = { - "PKPHelper": { - "address": "0x4C4a2f8c81640e47606d3fd77B353E87Ba015584", - "methods": { - "claimAndMintNextAndAddAuthMethodsWithTypes": { - "inputs": [ + PKPHelper: { + address: '0x4C4a2f8c81640e47606d3fd77B353E87Ba015584', + methods: { + claimAndMintNextAndAddAuthMethodsWithTypes: { + inputs: [ { - "components": [ + components: [ { - "internalType": "uint256", - "name": "keyType", - "type": "uint256" + internalType: 'uint256', + name: 'keyType', + type: 'uint256', }, { - "internalType": "bytes32", - "name": "derivedKeyId", - "type": "bytes32" + internalType: 'bytes32', + name: 'derivedKeyId', + type: 'bytes32', }, { - "components": [ + components: [ { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" + internalType: 'bytes32', + name: 'r', + type: 'bytes32', }, { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" + internalType: 'bytes32', + name: 's', + type: 'bytes32', }, { - "internalType": "uint8", - "name": "v", - "type": "uint8" - } + internalType: 'uint8', + name: 'v', + type: 'uint8', + }, ], - "internalType": "struct IPubkeyRouter.Signature[]", - "name": "signatures", - "type": "tuple[]" - } + internalType: 'struct IPubkeyRouter.Signature[]', + name: 'signatures', + type: 'tuple[]', + }, ], - "internalType": "struct LibPKPNFTStorage.ClaimMaterial", - "name": "claimMaterial", - "type": "tuple" + internalType: 'struct LibPKPNFTStorage.ClaimMaterial', + name: 'claimMaterial', + type: 'tuple', }, { - "components": [ + components: [ { - "internalType": "uint256", - "name": "keyType", - "type": "uint256" + internalType: 'uint256', + name: 'keyType', + type: 'uint256', }, { - "internalType": "bytes[]", - "name": "permittedIpfsCIDs", - "type": "bytes[]" + internalType: 'bytes[]', + name: 'permittedIpfsCIDs', + type: 'bytes[]', }, { - "internalType": "uint256[][]", - "name": "permittedIpfsCIDScopes", - "type": "uint256[][]" + internalType: 'uint256[][]', + name: 'permittedIpfsCIDScopes', + type: 'uint256[][]', }, { - "internalType": "address[]", - "name": "permittedAddresses", - "type": "address[]" + internalType: 'address[]', + name: 'permittedAddresses', + type: 'address[]', }, { - "internalType": "uint256[][]", - "name": "permittedAddressScopes", - "type": "uint256[][]" + internalType: 'uint256[][]', + name: 'permittedAddressScopes', + type: 'uint256[][]', }, { - "internalType": "uint256[]", - "name": "permittedAuthMethodTypes", - "type": "uint256[]" + internalType: 'uint256[]', + name: 'permittedAuthMethodTypes', + type: 'uint256[]', }, { - "internalType": "bytes[]", - "name": "permittedAuthMethodIds", - "type": "bytes[]" + internalType: 'bytes[]', + name: 'permittedAuthMethodIds', + type: 'bytes[]', }, { - "internalType": "bytes[]", - "name": "permittedAuthMethodPubkeys", - "type": "bytes[]" + internalType: 'bytes[]', + name: 'permittedAuthMethodPubkeys', + type: 'bytes[]', }, { - "internalType": "uint256[][]", - "name": "permittedAuthMethodScopes", - "type": "uint256[][]" + internalType: 'uint256[][]', + name: 'permittedAuthMethodScopes', + type: 'uint256[][]', }, { - "internalType": "bool", - "name": "addPkpEthAddressAsPermittedAddress", - "type": "bool" + internalType: 'bool', + name: 'addPkpEthAddressAsPermittedAddress', + type: 'bool', }, { - "internalType": "bool", - "name": "sendPkpToItself", - "type": "bool" - } + internalType: 'bool', + name: 'sendPkpToItself', + type: 'bool', + }, ], - "internalType": "struct PKPHelper.AuthMethodData", - "name": "authMethodData", - "type": "tuple" - } + internalType: 'struct PKPHelper.AuthMethodData', + name: 'authMethodData', + type: 'tuple', + }, ], - "name": "claimAndMintNextAndAddAuthMethodsWithTypes", - "outputs": [ + name: 'claimAndMintNextAndAddAuthMethodsWithTypes', + outputs: [ { - "internalType": "uint256", - "name": "", - "type": "uint256" - } + internalType: 'uint256', + name: '', + type: 'uint256', + }, ], - "stateMutability": "payable", - "type": "function" + stateMutability: 'payable', + type: 'function', }, - "mintNextAndAddAuthMethods": { - "inputs": [ + mintNextAndAddAuthMethods: { + inputs: [ { - "internalType": "uint256", - "name": "keyType", - "type": "uint256" + internalType: 'uint256', + name: 'keyType', + type: 'uint256', }, { - "internalType": "string", - "name": "keySetId", - "type": "string" + internalType: 'string', + name: 'keySetId', + type: 'string', }, { - "internalType": "uint256[]", - "name": "permittedAuthMethodTypes", - "type": "uint256[]" + internalType: 'uint256[]', + name: 'permittedAuthMethodTypes', + type: 'uint256[]', }, { - "internalType": "bytes[]", - "name": "permittedAuthMethodIds", - "type": "bytes[]" + internalType: 'bytes[]', + name: 'permittedAuthMethodIds', + type: 'bytes[]', }, { - "internalType": "bytes[]", - "name": "permittedAuthMethodPubkeys", - "type": "bytes[]" + internalType: 'bytes[]', + name: 'permittedAuthMethodPubkeys', + type: 'bytes[]', }, { - "internalType": "uint256[][]", - "name": "permittedAuthMethodScopes", - "type": "uint256[][]" + internalType: 'uint256[][]', + name: 'permittedAuthMethodScopes', + type: 'uint256[][]', }, { - "internalType": "bool", - "name": "addPkpEthAddressAsPermittedAddress", - "type": "bool" + internalType: 'bool', + name: 'addPkpEthAddressAsPermittedAddress', + type: 'bool', }, { - "internalType": "bool", - "name": "sendPkpToItself", - "type": "bool" - } + internalType: 'bool', + name: 'sendPkpToItself', + type: 'bool', + }, ], - "name": "mintNextAndAddAuthMethods", - "outputs": [ + name: 'mintNextAndAddAuthMethods', + outputs: [ { - "internalType": "uint256", - "name": "", - "type": "uint256" - } + internalType: 'uint256', + name: '', + type: 'uint256', + }, ], - "stateMutability": "payable", - "type": "function" - } + stateMutability: 'payable', + type: 'function', + }, }, - "events": [ + events: [ { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newResolverAddress", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newResolverAddress', + type: 'address', + }, ], - "name": "ContractResolverAddressSet", - "type": "event" + name: 'ContractResolverAddressSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, ], - "name": "OwnershipTransferred", - "type": "event" + name: 'OwnershipTransferred', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + indexed: true, + internalType: 'bytes32', + name: 'role', + type: 'bytes32', }, { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" + indexed: true, + internalType: 'bytes32', + name: 'previousAdminRole', + type: 'bytes32', }, { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" - } + indexed: true, + internalType: 'bytes32', + name: 'newAdminRole', + type: 'bytes32', + }, ], - "name": "RoleAdminChanged", - "type": "event" + name: 'RoleAdminChanged', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + indexed: true, + internalType: 'bytes32', + name: 'role', + type: 'bytes32', }, { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" + indexed: true, + internalType: 'address', + name: 'account', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'sender', + type: 'address', + }, ], - "name": "RoleGranted", - "type": "event" + name: 'RoleGranted', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + indexed: true, + internalType: 'bytes32', + name: 'role', + type: 'bytes32', }, { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" + indexed: true, + internalType: 'address', + name: 'account', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'sender', + type: 'address', + }, ], - "name": "RoleRevoked", - "type": "event" - } - ] + name: 'RoleRevoked', + type: 'event', + }, + ], }, - "PKPNFT": { - "address": "0x0E801D84Fa97b50751Dbf25036d067dCf18858bF", - "methods": { - "claimAndMint": { - "inputs": [ + PKPNFT: { + address: '0x0E801D84Fa97b50751Dbf25036d067dCf18858bF', + methods: { + claimAndMint: { + inputs: [ { - "internalType": "uint256", - "name": "realmId", - "type": "uint256" + internalType: 'uint256', + name: 'realmId', + type: 'uint256', }, { - "internalType": "uint256", - "name": "keyType", - "type": "uint256" + internalType: 'uint256', + name: 'keyType', + type: 'uint256', }, { - "internalType": "string", - "name": "keySetId", - "type": "string" + internalType: 'string', + name: 'keySetId', + type: 'string', }, { - "internalType": "bytes32", - "name": "derivedKeyId", - "type": "bytes32" + internalType: 'bytes32', + name: 'derivedKeyId', + type: 'bytes32', }, { - "components": [ + components: [ { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" + internalType: 'bytes32', + name: 'r', + type: 'bytes32', }, { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" + internalType: 'bytes32', + name: 's', + type: 'bytes32', }, { - "internalType": "uint8", - "name": "v", - "type": "uint8" - } + internalType: 'uint8', + name: 'v', + type: 'uint8', + }, ], - "internalType": "struct IPubkeyRouter.Signature[]", - "name": "signatures", - "type": "tuple[]" + internalType: 'struct IPubkeyRouter.Signature[]', + name: 'signatures', + type: 'tuple[]', }, { - "internalType": "address", - "name": "stakingContractAddress", - "type": "address" - } + internalType: 'address', + name: 'stakingContractAddress', + type: 'address', + }, ], - "name": "claimAndMint", - "outputs": [ + name: 'claimAndMint', + outputs: [ { - "internalType": "uint256", - "name": "", - "type": "uint256" - } + internalType: 'uint256', + name: '', + type: 'uint256', + }, ], - "stateMutability": "payable", - "type": "function" + stateMutability: 'payable', + type: 'function', }, - "mintCost": { - "inputs": [], - "name": "mintCost", - "outputs": [ + mintCost: { + inputs: [], + name: 'mintCost', + outputs: [ { - "internalType": "uint256", - "name": "", - "type": "uint256" - } + internalType: 'uint256', + name: '', + type: 'uint256', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "mintNext": { - "inputs": [ + mintNext: { + inputs: [ { - "internalType": "uint256", - "name": "keyType", - "type": "uint256" + internalType: 'uint256', + name: 'keyType', + type: 'uint256', }, { - "internalType": "string", - "name": "keySetId", - "type": "string" - } + internalType: 'string', + name: 'keySetId', + type: 'string', + }, ], - "name": "mintNext", - "outputs": [ + name: 'mintNext', + outputs: [ { - "internalType": "uint256", - "name": "", - "type": "uint256" - } + internalType: 'uint256', + name: '', + type: 'uint256', + }, ], - "stateMutability": "payable", - "type": "function" + stateMutability: 'payable', + type: 'function', }, - "safeTransferFrom": { - "inputs": [ + safeTransferFrom: { + inputs: [ { - "internalType": "address", - "name": "from", - "type": "address" + internalType: 'address', + name: 'from', + type: 'address', }, { - "internalType": "address", - "name": "to", - "type": "address" + internalType: 'address', + name: 'to', + type: 'address', }, { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } + internalType: 'bytes', + name: 'data', + type: 'bytes', + }, ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'safeTransferFrom', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "tokenOfOwnerByIndex": { - "inputs": [ + tokenOfOwnerByIndex: { + inputs: [ { - "internalType": "address", - "name": "owner", - "type": "address" + internalType: 'address', + name: 'owner', + type: 'address', }, { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } + internalType: 'uint256', + name: 'index', + type: 'uint256', + }, ], - "name": "tokenOfOwnerByIndex", - "outputs": [ + name: 'tokenOfOwnerByIndex', + outputs: [ { - "internalType": "uint256", - "name": "", - "type": "uint256" - } + internalType: 'uint256', + name: '', + type: 'uint256', + }, ], - "stateMutability": "view", - "type": "function" - } + stateMutability: 'view', + type: 'function', + }, }, - "events": [ + events: [ { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "components": [ + components: [ { - "internalType": "address", - "name": "facetAddress", - "type": "address" + internalType: 'address', + name: 'facetAddress', + type: 'address', }, { - "internalType": "enum IDiamond.FacetCutAction", - "name": "action", - "type": "uint8" + internalType: 'enum IDiamond.FacetCutAction', + name: 'action', + type: 'uint8', }, { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } + internalType: 'bytes4[]', + name: 'functionSelectors', + type: 'bytes4[]', + }, ], - "indexed": false, - "internalType": "struct IDiamond.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" + indexed: false, + internalType: 'struct IDiamond.FacetCut[]', + name: '_diamondCut', + type: 'tuple[]', }, { - "indexed": false, - "internalType": "address", - "name": "_init", - "type": "address" + indexed: false, + internalType: 'address', + name: '_init', + type: 'address', }, { - "indexed": false, - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: '_calldata', + type: 'bytes', + }, ], - "name": "DiamondCut", - "type": "event" + name: 'DiamondCut', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, ], - "name": "OwnershipTransferred", - "type": "event" + name: 'OwnershipTransferred', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'owner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" + indexed: true, + internalType: 'address', + name: 'approved', + type: 'address', }, { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, ], - "name": "Approval", - "type": "event" + name: 'Approval', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'owner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" + indexed: true, + internalType: 'address', + name: 'operator', + type: 'address', }, { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } + indexed: false, + internalType: 'bool', + name: 'approved', + type: 'bool', + }, ], - "name": "ApprovalForAll", - "type": "event" + name: 'ApprovalForAll', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newResolverAddress", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newResolverAddress', + type: 'address', + }, ], - "name": "ContractResolverAddressSet", - "type": "event" + name: 'ContractResolverAddressSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "newFreeMintSigner", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'newFreeMintSigner', + type: 'address', + }, ], - "name": "FreeMintSignerSet", - "type": "event" + name: 'FreeMintSignerSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } + indexed: false, + internalType: 'uint8', + name: 'version', + type: 'uint8', + }, ], - "name": "Initialized", - "type": "event" + name: 'Initialized', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "newMintCost", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'newMintCost', + type: 'uint256', + }, ], - "name": "MintCostSet", - "type": "event" + name: 'MintCostSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "indexed": false, - "internalType": "bytes", - "name": "pubkey", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: 'pubkey', + type: 'bytes', + }, ], - "name": "PKPMinted", - "type": "event" + name: 'PKPMinted', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" + indexed: true, + internalType: 'address', + name: 'from', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" + indexed: true, + internalType: 'address', + name: 'to', + type: 'address', }, { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, ], - "name": "Transfer", - "type": "event" + name: 'Transfer', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newTrustedForwarder", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newTrustedForwarder', + type: 'address', + }, ], - "name": "TrustedForwarderSet", - "type": "event" + name: 'TrustedForwarderSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "name": "Withdrew", - "type": "event" - } - ] + name: 'Withdrew', + type: 'event', + }, + ], }, - "PKPPermissions": { - "address": "0x04C89607413713Ec9775E14b954286519d836FEf", - "methods": { - "addPermittedAction": { - "inputs": [ + PKPPermissions: { + address: '0x04C89607413713Ec9775E14b954286519d836FEf', + methods: { + addPermittedAction: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "bytes", - "name": "ipfsCID", - "type": "bytes" + internalType: 'bytes', + name: 'ipfsCID', + type: 'bytes', }, { - "internalType": "uint256[]", - "name": "scopes", - "type": "uint256[]" - } + internalType: 'uint256[]', + name: 'scopes', + type: 'uint256[]', + }, ], - "name": "addPermittedAction", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'addPermittedAction', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "addPermittedAddress": { - "inputs": [ + addPermittedAddress: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "address", - "name": "user", - "type": "address" + internalType: 'address', + name: 'user', + type: 'address', }, { - "internalType": "uint256[]", - "name": "scopes", - "type": "uint256[]" - } + internalType: 'uint256[]', + name: 'scopes', + type: 'uint256[]', + }, ], - "name": "addPermittedAddress", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'addPermittedAddress', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "addPermittedAuthMethod": { - "inputs": [ + addPermittedAuthMethod: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "components": [ + components: [ { - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "internalType": "bytes", - "name": "id", - "type": "bytes" + internalType: 'bytes', + name: 'id', + type: 'bytes', }, { - "internalType": "bytes", - "name": "userPubkey", - "type": "bytes" - } + internalType: 'bytes', + name: 'userPubkey', + type: 'bytes', + }, ], - "internalType": "struct LibPKPPermissionsStorage.AuthMethod", - "name": "authMethod", - "type": "tuple" + internalType: 'struct LibPKPPermissionsStorage.AuthMethod', + name: 'authMethod', + type: 'tuple', }, { - "internalType": "uint256[]", - "name": "scopes", - "type": "uint256[]" - } + internalType: 'uint256[]', + name: 'scopes', + type: 'uint256[]', + }, ], - "name": "addPermittedAuthMethod", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'addPermittedAuthMethod', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "addPermittedAuthMethodScope": { - "inputs": [ + addPermittedAuthMethodScope: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "internalType": "bytes", - "name": "id", - "type": "bytes" + internalType: 'bytes', + name: 'id', + type: 'bytes', }, { - "internalType": "uint256", - "name": "scopeId", - "type": "uint256" - } + internalType: 'uint256', + name: 'scopeId', + type: 'uint256', + }, ], - "name": "addPermittedAuthMethodScope", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'addPermittedAuthMethodScope', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "getPermittedActions": { - "inputs": [ + getPermittedActions: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, ], - "name": "getPermittedActions", - "outputs": [ + name: 'getPermittedActions', + outputs: [ { - "internalType": "bytes[]", - "name": "", - "type": "bytes[]" - } + internalType: 'bytes[]', + name: '', + type: 'bytes[]', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "getPermittedAddresses": { - "inputs": [ + getPermittedAddresses: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, ], - "name": "getPermittedAddresses", - "outputs": [ + name: 'getPermittedAddresses', + outputs: [ { - "internalType": "address[]", - "name": "", - "type": "address[]" - } + internalType: 'address[]', + name: '', + type: 'address[]', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "getPermittedAuthMethodScopes": { - "inputs": [ + getPermittedAuthMethodScopes: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "internalType": "bytes", - "name": "id", - "type": "bytes" + internalType: 'bytes', + name: 'id', + type: 'bytes', }, { - "internalType": "uint256", - "name": "maxScopeId", - "type": "uint256" - } + internalType: 'uint256', + name: 'maxScopeId', + type: 'uint256', + }, ], - "name": "getPermittedAuthMethodScopes", - "outputs": [ + name: 'getPermittedAuthMethodScopes', + outputs: [ { - "internalType": "bool[]", - "name": "", - "type": "bool[]" - } + internalType: 'bool[]', + name: '', + type: 'bool[]', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "getPermittedAuthMethods": { - "inputs": [ + getPermittedAuthMethods: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, ], - "name": "getPermittedAuthMethods", - "outputs": [ + name: 'getPermittedAuthMethods', + outputs: [ { - "components": [ + components: [ { - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "internalType": "bytes", - "name": "id", - "type": "bytes" + internalType: 'bytes', + name: 'id', + type: 'bytes', }, { - "internalType": "bytes", - "name": "userPubkey", - "type": "bytes" - } + internalType: 'bytes', + name: 'userPubkey', + type: 'bytes', + }, ], - "internalType": "struct LibPKPPermissionsStorage.AuthMethod[]", - "name": "", - "type": "tuple[]" - } + internalType: 'struct LibPKPPermissionsStorage.AuthMethod[]', + name: '', + type: 'tuple[]', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "getTokenIdsForAuthMethod": { - "inputs": [ + getTokenIdsForAuthMethod: { + inputs: [ { - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "internalType": "bytes", - "name": "id", - "type": "bytes" - } + internalType: 'bytes', + name: 'id', + type: 'bytes', + }, ], - "name": "getTokenIdsForAuthMethod", - "outputs": [ + name: 'getTokenIdsForAuthMethod', + outputs: [ { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } + internalType: 'uint256[]', + name: '', + type: 'uint256[]', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "isPermittedAction": { - "inputs": [ + isPermittedAction: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "bytes", - "name": "ipfsCID", - "type": "bytes" - } + internalType: 'bytes', + name: 'ipfsCID', + type: 'bytes', + }, ], - "name": "isPermittedAction", - "outputs": [ + name: 'isPermittedAction', + outputs: [ { - "internalType": "bool", - "name": "", - "type": "bool" - } + internalType: 'bool', + name: '', + type: 'bool', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "isPermittedAddress": { - "inputs": [ + isPermittedAddress: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "address", - "name": "user", - "type": "address" - } + internalType: 'address', + name: 'user', + type: 'address', + }, ], - "name": "isPermittedAddress", - "outputs": [ + name: 'isPermittedAddress', + outputs: [ { - "internalType": "bool", - "name": "", - "type": "bool" - } + internalType: 'bool', + name: '', + type: 'bool', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "removePermittedAction": { - "inputs": [ + removePermittedAction: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "bytes", - "name": "ipfsCID", - "type": "bytes" - } + internalType: 'bytes', + name: 'ipfsCID', + type: 'bytes', + }, ], - "name": "removePermittedAction", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'removePermittedAction', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "removePermittedAddress": { - "inputs": [ + removePermittedAddress: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "address", - "name": "user", - "type": "address" - } + internalType: 'address', + name: 'user', + type: 'address', + }, ], - "name": "removePermittedAddress", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'removePermittedAddress', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "removePermittedAuthMethod": { - "inputs": [ + removePermittedAuthMethod: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "internalType": "bytes", - "name": "id", - "type": "bytes" - } + internalType: 'bytes', + name: 'id', + type: 'bytes', + }, ], - "name": "removePermittedAuthMethod", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'removePermittedAuthMethod', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "removePermittedAuthMethodScope": { - "inputs": [ + removePermittedAuthMethodScope: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "internalType": "bytes", - "name": "id", - "type": "bytes" + internalType: 'bytes', + name: 'id', + type: 'bytes', }, { - "internalType": "uint256", - "name": "scopeId", - "type": "uint256" - } + internalType: 'uint256', + name: 'scopeId', + type: 'uint256', + }, ], - "name": "removePermittedAuthMethodScope", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } + name: 'removePermittedAuthMethodScope', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, }, - "events": [ + events: [ { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "components": [ + components: [ { - "internalType": "address", - "name": "facetAddress", - "type": "address" + internalType: 'address', + name: 'facetAddress', + type: 'address', }, { - "internalType": "enum IDiamond.FacetCutAction", - "name": "action", - "type": "uint8" + internalType: 'enum IDiamond.FacetCutAction', + name: 'action', + type: 'uint8', }, { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } + internalType: 'bytes4[]', + name: 'functionSelectors', + type: 'bytes4[]', + }, ], - "indexed": false, - "internalType": "struct IDiamond.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" + indexed: false, + internalType: 'struct IDiamond.FacetCut[]', + name: '_diamondCut', + type: 'tuple[]', }, { - "indexed": false, - "internalType": "address", - "name": "_init", - "type": "address" + indexed: false, + internalType: 'address', + name: '_init', + type: 'address', }, { - "indexed": false, - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: '_calldata', + type: 'bytes', + }, ], - "name": "DiamondCut", - "type": "event" + name: 'DiamondCut', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, ], - "name": "OwnershipTransferred", - "type": "event" + name: 'OwnershipTransferred', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newResolverAddress", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newResolverAddress', + type: 'address', + }, ], - "name": "ContractResolverAddressSet", - "type": "event" + name: 'ContractResolverAddressSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "indexed": false, - "internalType": "bytes", - "name": "id", - "type": "bytes" + indexed: false, + internalType: 'bytes', + name: 'id', + type: 'bytes', }, { - "indexed": false, - "internalType": "bytes", - "name": "userPubkey", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: 'userPubkey', + type: 'bytes', + }, ], - "name": "PermittedAuthMethodAdded", - "type": "event" + name: 'PermittedAuthMethodAdded', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "indexed": false, - "internalType": "bytes", - "name": "id", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: 'id', + type: 'bytes', + }, ], - "name": "PermittedAuthMethodRemoved", - "type": "event" + name: 'PermittedAuthMethodRemoved', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "indexed": false, - "internalType": "bytes", - "name": "id", - "type": "bytes" + indexed: false, + internalType: 'bytes', + name: 'id', + type: 'bytes', }, { - "indexed": false, - "internalType": "uint256", - "name": "scopeId", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'scopeId', + type: 'uint256', + }, ], - "name": "PermittedAuthMethodScopeAdded", - "type": "event" + name: 'PermittedAuthMethodScopeAdded', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "authMethodType", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'authMethodType', + type: 'uint256', }, { - "indexed": false, - "internalType": "bytes", - "name": "id", - "type": "bytes" + indexed: false, + internalType: 'bytes', + name: 'id', + type: 'bytes', }, { - "indexed": false, - "internalType": "uint256", - "name": "scopeId", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'scopeId', + type: 'uint256', + }, ], - "name": "PermittedAuthMethodScopeRemoved", - "type": "event" + name: 'PermittedAuthMethodScopeRemoved', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "indexed": true, - "internalType": "uint256", - "name": "group", - "type": "uint256" + indexed: true, + internalType: 'uint256', + name: 'group', + type: 'uint256', }, { - "indexed": false, - "internalType": "bytes32", - "name": "root", - "type": "bytes32" - } + indexed: false, + internalType: 'bytes32', + name: 'root', + type: 'bytes32', + }, ], - "name": "RootHashUpdated", - "type": "event" + name: 'RootHashUpdated', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newTrustedForwarder", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newTrustedForwarder', + type: 'address', + }, ], - "name": "TrustedForwarderSet", - "type": "event" - } - ] + name: 'TrustedForwarderSet', + type: 'event', + }, + ], }, - "PubkeyRouter": { - "address": "0x4c5859f0F772848b2D91F1D83E2Fe57935348029", - "methods": { - "getEthAddress": { - "inputs": [ + PubkeyRouter: { + address: '0x4c5859f0F772848b2D91F1D83E2Fe57935348029', + methods: { + getEthAddress: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, ], - "name": "getEthAddress", - "outputs": [ + name: 'getEthAddress', + outputs: [ { - "internalType": "address", - "name": "", - "type": "address" - } + internalType: 'address', + name: '', + type: 'address', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "getPubkey": { - "inputs": [ + getPubkey: { + inputs: [ { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', + }, ], - "name": "getPubkey", - "outputs": [ + name: 'getPubkey', + outputs: [ { - "internalType": "bytes", - "name": "", - "type": "bytes" - } + internalType: 'bytes', + name: '', + type: 'bytes', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "deriveEthAddressFromPubkey": { - "inputs": [ + deriveEthAddressFromPubkey: { + inputs: [ { - "internalType": "bytes", - "name": "pubkey", - "type": "bytes" - } + internalType: 'bytes', + name: 'pubkey', + type: 'bytes', + }, ], - "name": "deriveEthAddressFromPubkey", - "outputs": [ + name: 'deriveEthAddressFromPubkey', + outputs: [ { - "internalType": "address", - "name": "", - "type": "address" - } + internalType: 'address', + name: '', + type: 'address', + }, ], - "stateMutability": "pure", - "type": "function" + stateMutability: 'pure', + type: 'function', }, - "ethAddressToPkpId": { - "inputs": [ + ethAddressToPkpId: { + inputs: [ { - "internalType": "address", - "name": "ethAddress", - "type": "address" - } + internalType: 'address', + name: 'ethAddress', + type: 'address', + }, ], - "name": "ethAddressToPkpId", - "outputs": [ + name: 'ethAddressToPkpId', + outputs: [ { - "internalType": "uint256", - "name": "", - "type": "uint256" - } + internalType: 'uint256', + name: '', + type: 'uint256', + }, ], - "stateMutability": "view", - "type": "function" - } + stateMutability: 'view', + type: 'function', + }, }, - "events": [ + events: [ { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "components": [ + components: [ { - "internalType": "address", - "name": "facetAddress", - "type": "address" + internalType: 'address', + name: 'facetAddress', + type: 'address', }, { - "internalType": "enum IDiamond.FacetCutAction", - "name": "action", - "type": "uint8" + internalType: 'enum IDiamond.FacetCutAction', + name: 'action', + type: 'uint8', }, { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } + internalType: 'bytes4[]', + name: 'functionSelectors', + type: 'bytes4[]', + }, ], - "indexed": false, - "internalType": "struct IDiamond.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" + indexed: false, + internalType: 'struct IDiamond.FacetCut[]', + name: '_diamondCut', + type: 'tuple[]', }, { - "indexed": false, - "internalType": "address", - "name": "_init", - "type": "address" + indexed: false, + internalType: 'address', + name: '_init', + type: 'address', }, { - "indexed": false, - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: '_calldata', + type: 'bytes', + }, ], - "name": "DiamondCut", - "type": "event" + name: 'DiamondCut', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, ], - "name": "OwnershipTransferred", - "type": "event" + name: 'OwnershipTransferred', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newResolverAddress", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newResolverAddress', + type: 'address', + }, ], - "name": "ContractResolverAddressSet", - "type": "event" + name: 'ContractResolverAddressSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "string", - "name": "message", - "type": "string" + indexed: false, + internalType: 'string', + name: 'message', + type: 'string', }, { - "indexed": false, - "internalType": "address", - "name": "sender", - "type": "address" + indexed: false, + internalType: 'address', + name: 'sender', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'value', + type: 'uint256', + }, ], - "name": "DebugEvent", - "type": "event" + name: 'DebugEvent', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + indexed: true, + internalType: 'uint256', + name: 'tokenId', + type: 'uint256', }, { - "indexed": false, - "internalType": "bytes", - "name": "pubkey", - "type": "bytes" + indexed: false, + internalType: 'bytes', + name: 'pubkey', + type: 'bytes', }, { - "indexed": false, - "internalType": "address", - "name": "stakingContract", - "type": "address" + indexed: false, + internalType: 'address', + name: 'stakingContract', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "keyType", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'keyType', + type: 'uint256', }, { - "indexed": false, - "internalType": "bytes32", - "name": "derivedKeyId", - "type": "bytes32" - } + indexed: false, + internalType: 'bytes32', + name: 'derivedKeyId', + type: 'bytes32', + }, ], - "name": "PubkeyRoutingDataSet", - "type": "event" + name: 'PubkeyRoutingDataSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "stakingContract", - "type": "address" + indexed: false, + internalType: 'address', + name: 'stakingContract', + type: 'address', }, { - "components": [ + components: [ { - "internalType": "bytes", - "name": "pubkey", - "type": "bytes" + internalType: 'bytes', + name: 'pubkey', + type: 'bytes', }, { - "internalType": "uint256", - "name": "keyType", - "type": "uint256" - } + internalType: 'uint256', + name: 'keyType', + type: 'uint256', + }, ], - "indexed": false, - "internalType": "struct IPubkeyRouter.RootKey", - "name": "rootKey", - "type": "tuple" - } + indexed: false, + internalType: 'struct IPubkeyRouter.RootKey', + name: 'rootKey', + type: 'tuple', + }, ], - "name": "RootKeySet", - "type": "event" + name: 'RootKeySet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'value', + type: 'uint256', }, { - "indexed": false, - "internalType": "address", - "name": "sender", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'sender', + type: 'address', + }, ], - "name": "ToggleEvent", - "type": "event" + name: 'ToggleEvent', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newTrustedForwarder", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newTrustedForwarder', + type: 'address', + }, ], - "name": "TrustedForwarderSet", - "type": "event" - } - ] + name: 'TrustedForwarderSet', + type: 'event', + }, + ], }, - "Staking": { - "address": "0xa82fF9aFd8f496c3d6ac40E2a0F282E47488CFc9", - "methods": { - "getActiveUnkickedValidatorStructsAndCounts": { - "inputs": [ + Staking: { + address: '0xa82fF9aFd8f496c3d6ac40E2a0F282E47488CFc9', + methods: { + getActiveUnkickedValidatorStructsAndCounts: { + inputs: [ { - "internalType": "uint256", - "name": "realmId", - "type": "uint256" - } + internalType: 'uint256', + name: 'realmId', + type: 'uint256', + }, ], - "name": "getActiveUnkickedValidatorStructsAndCounts", - "outputs": [ + name: 'getActiveUnkickedValidatorStructsAndCounts', + outputs: [ { - "components": [ + components: [ { - "internalType": "uint256", - "name": "epochLength", - "type": "uint256" + internalType: 'uint256', + name: 'epochLength', + type: 'uint256', }, { - "internalType": "uint256", - "name": "number", - "type": "uint256" + internalType: 'uint256', + name: 'number', + type: 'uint256', }, { - "internalType": "uint256", - "name": "rewardEpochNumber", - "type": "uint256" + internalType: 'uint256', + name: 'rewardEpochNumber', + type: 'uint256', }, { - "internalType": "uint256", - "name": "nextRewardEpochNumber", - "type": "uint256" + internalType: 'uint256', + name: 'nextRewardEpochNumber', + type: 'uint256', }, { - "internalType": "uint256", - "name": "endTime", - "type": "uint256" + internalType: 'uint256', + name: 'endTime', + type: 'uint256', }, { - "internalType": "uint256", - "name": "retries", - "type": "uint256" + internalType: 'uint256', + name: 'retries', + type: 'uint256', }, { - "internalType": "uint256", - "name": "timeout", - "type": "uint256" + internalType: 'uint256', + name: 'timeout', + type: 'uint256', }, { - "internalType": "uint256", - "name": "startTime", - "type": "uint256" - } + internalType: 'uint256', + name: 'startTime', + type: 'uint256', + }, ], - "internalType": "struct LibStakingStorage.Epoch", - "name": "", - "type": "tuple" + internalType: 'struct LibStakingStorage.Epoch', + name: '', + type: 'tuple', }, { - "internalType": "uint256", - "name": "", - "type": "uint256" + internalType: 'uint256', + name: '', + type: 'uint256', }, { - "components": [ + components: [ { - "internalType": "uint32", - "name": "ip", - "type": "uint32" + internalType: 'uint32', + name: 'ip', + type: 'uint32', }, { - "internalType": "uint128", - "name": "ipv6", - "type": "uint128" + internalType: 'uint128', + name: 'ipv6', + type: 'uint128', }, { - "internalType": "uint32", - "name": "port", - "type": "uint32" + internalType: 'uint32', + name: 'port', + type: 'uint32', }, { - "internalType": "address", - "name": "nodeAddress", - "type": "address" + internalType: 'address', + name: 'nodeAddress', + type: 'address', }, { - "internalType": "uint256", - "name": "reward", - "type": "uint256" + internalType: 'uint256', + name: 'reward', + type: 'uint256', }, { - "internalType": "uint256", - "name": "senderPubKey", - "type": "uint256" + internalType: 'uint256', + name: 'senderPubKey', + type: 'uint256', }, { - "internalType": "uint256", - "name": "receiverPubKey", - "type": "uint256" + internalType: 'uint256', + name: 'receiverPubKey', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastActiveEpoch", - "type": "uint256" + internalType: 'uint256', + name: 'lastActiveEpoch', + type: 'uint256', }, { - "internalType": "uint256", - "name": "commissionRate", - "type": "uint256" + internalType: 'uint256', + name: 'commissionRate', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastRewardEpoch", - "type": "uint256" + internalType: 'uint256', + name: 'lastRewardEpoch', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastRealmId", - "type": "uint256" + internalType: 'uint256', + name: 'lastRealmId', + type: 'uint256', }, { - "internalType": "uint256", - "name": "delegatedStakeAmount", - "type": "uint256" + internalType: 'uint256', + name: 'delegatedStakeAmount', + type: 'uint256', }, { - "internalType": "uint256", - "name": "delegatedStakeWeight", - "type": "uint256" + internalType: 'uint256', + name: 'delegatedStakeWeight', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastRewardEpochClaimedFixedCostRewards", - "type": "uint256" + internalType: 'uint256', + name: 'lastRewardEpochClaimedFixedCostRewards', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastRewardEpochClaimedCommission", - "type": "uint256" + internalType: 'uint256', + name: 'lastRewardEpochClaimedCommission', + type: 'uint256', }, { - "internalType": "address", - "name": "operatorAddress", - "type": "address" + internalType: 'address', + name: 'operatorAddress', + type: 'address', }, { - "internalType": "uint256", - "name": "uniqueDelegatingStakerCount", - "type": "uint256" + internalType: 'uint256', + name: 'uniqueDelegatingStakerCount', + type: 'uint256', }, { - "internalType": "bool", - "name": "registerAttestedWalletDisabled", - "type": "bool" - } + internalType: 'bool', + name: 'registerAttestedWalletDisabled', + type: 'bool', + }, ], - "internalType": "struct LibStakingStorage.Validator[]", - "name": "", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - } + internalType: 'struct LibStakingStorage.Validator[]', + name: '', + type: 'tuple[]', + }, + ], + stateMutability: 'view', + type: 'function', + }, }, - "events": [ + events: [ { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "components": [ + components: [ { - "internalType": "address", - "name": "facetAddress", - "type": "address" + internalType: 'address', + name: 'facetAddress', + type: 'address', }, { - "internalType": "enum IDiamond.FacetCutAction", - "name": "action", - "type": "uint8" + internalType: 'enum IDiamond.FacetCutAction', + name: 'action', + type: 'uint8', }, { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } + internalType: 'bytes4[]', + name: 'functionSelectors', + type: 'bytes4[]', + }, ], - "indexed": false, - "internalType": "struct IDiamond.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" + indexed: false, + internalType: 'struct IDiamond.FacetCut[]', + name: '_diamondCut', + type: 'tuple[]', }, { - "indexed": false, - "internalType": "address", - "name": "_init", - "type": "address" + indexed: false, + internalType: 'address', + name: '_init', + type: 'address', }, { - "indexed": false, - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: '_calldata', + type: 'bytes', + }, ], - "name": "DiamondCut", - "type": "event" + name: 'DiamondCut', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, ], - "name": "OwnershipTransferred", - "type": "event" + name: 'OwnershipTransferred', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "dataType", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'dataType', + type: 'uint256', + }, ], - "name": "ClearOfflinePhaseData", - "type": "event" + name: 'ClearOfflinePhaseData', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "dataType", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'dataType', + type: 'uint256', + }, ], - "name": "CountOfflinePhaseData", - "type": "event" + name: 'CountOfflinePhaseData', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newDevopsAdmin", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newDevopsAdmin', + type: 'address', + }, ], - "name": "DevopsAdminSet", - "type": "event" + name: 'DevopsAdminSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "realmId", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'realmId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "newEpochEndTime", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'newEpochEndTime', + type: 'uint256', + }, ], - "name": "EpochEndTimeSet", - "type": "event" + name: 'EpochEndTimeSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "realmId", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'realmId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "newEpochLength", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'newEpochLength', + type: 'uint256', + }, ], - "name": "EpochLengthSet", - "type": "event" + name: 'EpochLengthSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "realmId", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'realmId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "newEpochTimeout", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'newEpochTimeout', + type: 'uint256', + }, ], - "name": "EpochTimeoutSet", - "type": "event" + name: 'EpochTimeoutSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "reason", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'reason', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "newKickPenaltyPercent", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'newKickPenaltyPercent', + type: 'uint256', + }, ], - "name": "KickPenaltyPercentSet", - "type": "event" + name: 'KickPenaltyPercentSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newResolverContractAddress", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newResolverContractAddress', + type: 'address', + }, ], - "name": "ResolverContractAddressSet", - "type": "event" + name: 'ResolverContractAddressSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "stakerAddress", - "type": "address" + indexed: false, + internalType: 'address', + name: 'stakerAddress', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "recordId", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'recordId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', }, { - "indexed": false, - "internalType": "address", - "name": "stakerAddressClient", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'stakerAddressClient', + type: 'address', + }, ], - "name": "StakeRecordCreated", - "type": "event" + name: 'StakeRecordCreated', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" + indexed: true, + internalType: 'address', + name: 'staker', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "name": "Staked", - "type": "event" + name: 'Staked', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "enum LibStakingStorage.States", - "name": "newState", - "type": "uint8" - } + indexed: false, + internalType: 'enum LibStakingStorage.States', + name: 'newState', + type: 'uint8', + }, ], - "name": "StateChanged", - "type": "event" + name: 'StateChanged', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'staker', + type: 'address', + }, ], - "name": "ValidatorBanned", - "type": "event" + name: 'ValidatorBanned', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'staker', + type: 'address', + }, ], - "name": "ValidatorKickedFromNextEpoch", - "type": "event" + name: 'ValidatorKickedFromNextEpoch', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "staker", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'staker', + type: 'address', + }, ], - "name": "ValidatorRejoinedNextEpoch", - "type": "event" + name: 'ValidatorRejoinedNextEpoch', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "stakerAddress", - "type": "address" + indexed: false, + internalType: 'address', + name: 'stakerAddress', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "rewards", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'rewards', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "fromEpoch", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'fromEpoch', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "toEpoch", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'toEpoch', + type: 'uint256', + }, ], - "name": "FixedCostRewardsClaimed", - "type": "event" + name: 'FixedCostRewardsClaimed', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "userStakerAddress", - "type": "address" + indexed: false, + internalType: 'address', + name: 'userStakerAddress', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "recordId", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'recordId', + type: 'uint256', + }, ], - "name": "StakeRecordRemoved", - "type": "event" + name: 'StakeRecordRemoved', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "stakerAddress", - "type": "address" + indexed: false, + internalType: 'address', + name: 'stakerAddress', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "recordId", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'recordId', + type: 'uint256', + }, ], - "name": "StakeRecordUpdated", - "type": "event" + name: 'StakeRecordUpdated', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "stakerAddress", - "type": "address" + indexed: false, + internalType: 'address', + name: 'stakerAddress', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "recordId", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'recordId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "rewards", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'rewards', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "fromEpoch", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'fromEpoch', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "toEpoch", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'toEpoch', + type: 'uint256', + }, ], - "name": "StakeRewardsClaimed", - "type": "event" + name: 'StakeRewardsClaimed', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newTrustedForwarder", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newTrustedForwarder', + type: 'address', + }, ], - "name": "TrustedForwarderSet", - "type": "event" + name: 'TrustedForwarderSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "stakerAddress", - "type": "address" + indexed: false, + internalType: 'address', + name: 'stakerAddress', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "rewards", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'rewards', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "fromEpoch", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'fromEpoch', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "toEpoch", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'toEpoch', + type: 'uint256', + }, ], - "name": "ValidatorCommissionClaimed", - "type": "event" + name: 'ValidatorCommissionClaimed', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "stakerAddress", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'stakerAddress', + type: 'address', + }, ], - "name": "ValidatorRegistered", - "type": "event" + name: 'ValidatorRegistered', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" + indexed: true, + internalType: 'address', + name: 'staker', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "name": "Withdrawn", - "type": "event" + name: 'Withdrawn', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "bool", - "name": "exists", - "type": "bool" + indexed: false, + internalType: 'bool', + name: 'exists', + type: 'bool', }, { - "indexed": false, - "internalType": "string", - "name": "identifier", - "type": "string" + indexed: false, + internalType: 'string', + name: 'identifier', + type: 'string', }, { - "indexed": false, - "internalType": "bytes32", - "name": "hashed", - "type": "bytes32" - } + indexed: false, + internalType: 'bytes32', + name: 'hashed', + type: 'bytes32', + }, ], - "name": "KeySetConfigSet", - "type": "event" + name: 'KeySetConfigSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "string", - "name": "identifier", - "type": "string" - } + indexed: false, + internalType: 'string', + name: 'identifier', + type: 'string', + }, ], - "name": "KeySetConfigUpdated", - "type": "event" + name: 'KeySetConfigUpdated', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "realmId", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'realmId', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "epochNumber", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'epochNumber', + type: 'uint256', + }, ], - "name": "AdvancedEpoch", - "type": "event" + name: 'AdvancedEpoch', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" + indexed: true, + internalType: 'address', + name: 'staker', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "attestedAddress", - "type": "address" + indexed: true, + internalType: 'address', + name: 'attestedAddress', + type: 'address', }, { - "components": [ + components: [ { - "internalType": "uint256", - "name": "x", - "type": "uint256" + internalType: 'uint256', + name: 'x', + type: 'uint256', }, { - "internalType": "uint256", - "name": "y", - "type": "uint256" - } + internalType: 'uint256', + name: 'y', + type: 'uint256', + }, ], - "indexed": true, - "internalType": "struct LibStakingStorage.UncompressedK256Key", - "name": "attestedPubKey", - "type": "tuple" - } + indexed: true, + internalType: 'struct LibStakingStorage.UncompressedK256Key', + name: 'attestedPubKey', + type: 'tuple', + }, ], - "name": "AttestedWalletRegistered", - "type": "event" + name: 'AttestedWalletRegistered', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "reason", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'reason', + type: 'uint256', }, { - "components": [ + components: [ { - "internalType": "uint256", - "name": "tolerance", - "type": "uint256" + internalType: 'uint256', + name: 'tolerance', + type: 'uint256', }, { - "internalType": "uint256", - "name": "intervalSecs", - "type": "uint256" + internalType: 'uint256', + name: 'intervalSecs', + type: 'uint256', }, { - "internalType": "uint256", - "name": "kickPenaltyPercent", - "type": "uint256" + internalType: 'uint256', + name: 'kickPenaltyPercent', + type: 'uint256', }, { - "internalType": "uint256", - "name": "kickPenaltyDemerits", - "type": "uint256" - } + internalType: 'uint256', + name: 'kickPenaltyDemerits', + type: 'uint256', + }, ], - "indexed": false, - "internalType": "struct LibStakingStorage.ComplaintConfig", - "name": "config", - "type": "tuple" - } + indexed: false, + internalType: 'struct LibStakingStorage.ComplaintConfig', + name: 'config', + type: 'tuple', + }, ], - "name": "ComplaintConfigSet", - "type": "event" + name: 'ComplaintConfigSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "newTokenRewardPerTokenPerEpoch", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'newTokenRewardPerTokenPerEpoch', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256[]", - "name": "newKeyTypes", - "type": "uint256[]" + indexed: false, + internalType: 'uint256[]', + name: 'newKeyTypes', + type: 'uint256[]', }, { - "indexed": false, - "internalType": "uint256", - "name": "newMinimumValidatorCount", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'newMinimumValidatorCount', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "newMaxConcurrentRequests", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'newMaxConcurrentRequests', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "newMaxPresignCount", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'newMaxPresignCount', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "newMinPresignCount", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'newMinPresignCount', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "newPeerCheckingIntervalSecs", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'newPeerCheckingIntervalSecs', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "newMaxPresignConcurrency", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'newMaxPresignConcurrency', + type: 'uint256', }, { - "indexed": false, - "internalType": "bool", - "name": "newRpcHealthcheckEnabled", - "type": "bool" - } + indexed: false, + internalType: 'bool', + name: 'newRpcHealthcheckEnabled', + type: 'bool', + }, ], - "name": "ConfigSet", - "type": "event" + name: 'ConfigSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "string", - "name": "message", - "type": "string" + indexed: false, + internalType: 'string', + name: 'message', + type: 'string', }, { - "indexed": false, - "internalType": "address", - "name": "sender", - "type": "address" + indexed: false, + internalType: 'address', + name: 'sender', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'value', + type: 'uint256', + }, ], - "name": "DebugEvent", - "type": "event" + name: 'DebugEvent', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" + indexed: true, + internalType: 'address', + name: 'staker', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "epochNumber", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'epochNumber', + type: 'uint256', + }, ], - "name": "ReadyForNextEpoch", - "type": "event" + name: 'ReadyForNextEpoch', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "token", - "type": "address" + indexed: false, + internalType: 'address', + name: 'token', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "name": "Recovered", - "type": "event" + name: 'Recovered', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'staker', + type: 'address', + }, ], - "name": "RequestToJoin", - "type": "event" + name: 'RequestToJoin', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "staker", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'staker', + type: 'address', + }, ], - "name": "RequestToLeave", - "type": "event" + name: 'RequestToLeave', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "newDuration", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'newDuration', + type: 'uint256', + }, ], - "name": "RewardsDurationUpdated", - "type": "event" + name: 'RewardsDurationUpdated', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newStakingTokenAddress", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newStakingTokenAddress', + type: 'address', + }, ], - "name": "StakingTokenSet", - "type": "event" + name: 'StakingTokenSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "reporter", - "type": "address" + indexed: true, + internalType: 'address', + name: 'reporter', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "validatorToKickStakerAddress", - "type": "address" + indexed: true, + internalType: 'address', + name: 'validatorToKickStakerAddress', + type: 'address', }, { - "indexed": true, - "internalType": "uint256", - "name": "reason", - "type": "uint256" + indexed: true, + internalType: 'uint256', + name: 'reason', + type: 'uint256', }, { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: 'data', + type: 'bytes', + }, ], - "name": "VotedToKickValidatorInNextEpoch", - "type": "event" + name: 'VotedToKickValidatorInNextEpoch', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "index", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'index', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256", - "name": "realmId", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'realmId', + type: 'uint256', }, { - "components": [ + components: [ { - "internalType": "uint256", - "name": "major", - "type": "uint256" + internalType: 'uint256', + name: 'major', + type: 'uint256', }, { - "internalType": "uint256", - "name": "minor", - "type": "uint256" + internalType: 'uint256', + name: 'minor', + type: 'uint256', }, { - "internalType": "uint256", - "name": "patch", - "type": "uint256" - } + internalType: 'uint256', + name: 'patch', + type: 'uint256', + }, ], - "indexed": false, - "internalType": "struct LibStakingStorage.Version", - "name": "version", - "type": "tuple" - } - ], - "name": "VersionRequirementsUpdated", - "type": "event" - } - ] + indexed: false, + internalType: 'struct LibStakingStorage.Version', + name: 'version', + type: 'tuple', + }, + ], + name: 'VersionRequirementsUpdated', + type: 'event', + }, + ], }, - "PriceFeed": { - "address": "0xAA292E8611aDF267e563f334Ee42320aC96D0463", - "methods": { - "getNodesForRequest": { - "inputs": [ + PriceFeed: { + address: '0xAA292E8611aDF267e563f334Ee42320aC96D0463', + methods: { + getNodesForRequest: { + inputs: [ { - "internalType": "uint256", - "name": "realmId", - "type": "uint256" + internalType: 'uint256', + name: 'realmId', + type: 'uint256', }, { - "internalType": "uint256[]", - "name": "productIds", - "type": "uint256[]" - } + internalType: 'uint256[]', + name: 'productIds', + type: 'uint256[]', + }, ], - "name": "getNodesForRequest", - "outputs": [ + name: 'getNodesForRequest', + outputs: [ { - "internalType": "uint256", - "name": "", - "type": "uint256" + internalType: 'uint256', + name: '', + type: 'uint256', }, { - "internalType": "uint256", - "name": "", - "type": "uint256" + internalType: 'uint256', + name: '', + type: 'uint256', }, { - "components": [ + components: [ { - "components": [ + components: [ { - "internalType": "uint32", - "name": "ip", - "type": "uint32" + internalType: 'uint32', + name: 'ip', + type: 'uint32', }, { - "internalType": "uint128", - "name": "ipv6", - "type": "uint128" + internalType: 'uint128', + name: 'ipv6', + type: 'uint128', }, { - "internalType": "uint32", - "name": "port", - "type": "uint32" + internalType: 'uint32', + name: 'port', + type: 'uint32', }, { - "internalType": "address", - "name": "nodeAddress", - "type": "address" + internalType: 'address', + name: 'nodeAddress', + type: 'address', }, { - "internalType": "uint256", - "name": "reward", - "type": "uint256" + internalType: 'uint256', + name: 'reward', + type: 'uint256', }, { - "internalType": "uint256", - "name": "senderPubKey", - "type": "uint256" + internalType: 'uint256', + name: 'senderPubKey', + type: 'uint256', }, { - "internalType": "uint256", - "name": "receiverPubKey", - "type": "uint256" + internalType: 'uint256', + name: 'receiverPubKey', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastActiveEpoch", - "type": "uint256" + internalType: 'uint256', + name: 'lastActiveEpoch', + type: 'uint256', }, { - "internalType": "uint256", - "name": "commissionRate", - "type": "uint256" + internalType: 'uint256', + name: 'commissionRate', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastRewardEpoch", - "type": "uint256" + internalType: 'uint256', + name: 'lastRewardEpoch', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastRealmId", - "type": "uint256" + internalType: 'uint256', + name: 'lastRealmId', + type: 'uint256', }, { - "internalType": "uint256", - "name": "delegatedStakeAmount", - "type": "uint256" + internalType: 'uint256', + name: 'delegatedStakeAmount', + type: 'uint256', }, { - "internalType": "uint256", - "name": "delegatedStakeWeight", - "type": "uint256" + internalType: 'uint256', + name: 'delegatedStakeWeight', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastRewardEpochClaimedFixedCostRewards", - "type": "uint256" + internalType: 'uint256', + name: 'lastRewardEpochClaimedFixedCostRewards', + type: 'uint256', }, { - "internalType": "uint256", - "name": "lastRewardEpochClaimedCommission", - "type": "uint256" + internalType: 'uint256', + name: 'lastRewardEpochClaimedCommission', + type: 'uint256', }, { - "internalType": "address", - "name": "operatorAddress", - "type": "address" + internalType: 'address', + name: 'operatorAddress', + type: 'address', }, { - "internalType": "uint256", - "name": "uniqueDelegatingStakerCount", - "type": "uint256" + internalType: 'uint256', + name: 'uniqueDelegatingStakerCount', + type: 'uint256', }, { - "internalType": "bool", - "name": "registerAttestedWalletDisabled", - "type": "bool" - } + internalType: 'bool', + name: 'registerAttestedWalletDisabled', + type: 'bool', + }, ], - "internalType": "struct LibStakingStorage.Validator", - "name": "validator", - "type": "tuple" + internalType: 'struct LibStakingStorage.Validator', + name: 'validator', + type: 'tuple', }, { - "internalType": "uint256[]", - "name": "prices", - "type": "uint256[]" - } + internalType: 'uint256[]', + name: 'prices', + type: 'uint256[]', + }, ], - "internalType": "struct LibPriceFeedStorage.NodeInfoAndPrices[]", - "name": "", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - } + internalType: 'struct LibPriceFeedStorage.NodeInfoAndPrices[]', + name: '', + type: 'tuple[]', + }, + ], + stateMutability: 'view', + type: 'function', + }, }, - "events": [ + events: [ { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "components": [ + components: [ { - "internalType": "address", - "name": "facetAddress", - "type": "address" + internalType: 'address', + name: 'facetAddress', + type: 'address', }, { - "internalType": "enum IDiamond.FacetCutAction", - "name": "action", - "type": "uint8" + internalType: 'enum IDiamond.FacetCutAction', + name: 'action', + type: 'uint8', }, { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } + internalType: 'bytes4[]', + name: 'functionSelectors', + type: 'bytes4[]', + }, ], - "indexed": false, - "internalType": "struct IDiamond.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" + indexed: false, + internalType: 'struct IDiamond.FacetCut[]', + name: '_diamondCut', + type: 'tuple[]', }, { - "indexed": false, - "internalType": "address", - "name": "_init", - "type": "address" + indexed: false, + internalType: 'address', + name: '_init', + type: 'address', }, { - "indexed": false, - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: '_calldata', + type: 'bytes', + }, ], - "name": "DiamondCut", - "type": "event" + name: 'DiamondCut', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, ], - "name": "OwnershipTransferred", - "type": "event" + name: 'OwnershipTransferred', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "newPrice", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'newPrice', + type: 'uint256', + }, ], - "name": "BaseNetworkPriceSet", - "type": "event" + name: 'BaseNetworkPriceSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "newPrice", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'newPrice', + type: 'uint256', + }, ], - "name": "MaxNetworkPriceSet", - "type": "event" + name: 'MaxNetworkPriceSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newTrustedForwarder", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newTrustedForwarder', + type: 'address', + }, ], - "name": "TrustedForwarderSet", - "type": "event" + name: 'TrustedForwarderSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "stakingAddress", - "type": "address" + indexed: true, + internalType: 'address', + name: 'stakingAddress', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "usagePercent", - "type": "uint256" + indexed: false, + internalType: 'uint256', + name: 'usagePercent', + type: 'uint256', }, { - "indexed": false, - "internalType": "uint256[]", - "name": "newPrices", - "type": "uint256[]" - } + indexed: false, + internalType: 'uint256[]', + name: 'newPrices', + type: 'uint256[]', + }, ], - "name": "UsageSet", - "type": "event" - } - ] + name: 'UsageSet', + type: 'event', + }, + ], }, - "Ledger": { - "address": "0x7A9Ec1d04904907De0ED7b6839CcdD59c3716AC9", - "methods": { - "withdraw": { - "inputs": [ - { - "internalType": "int256", - "name": "amount", - "type": "int256" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - "balance": { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "balance", - "outputs": [ - { - "internalType": "int256", - "name": "", - "type": "int256" - } - ], - "stateMutability": "view", - "type": "function" - }, - "deposit": { - "inputs": [], - "name": "deposit", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - "depositForUser": { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "depositForUser", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - "latestWithdrawRequest": { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "latestWithdrawRequest", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + Ledger: { + address: '0x7A9Ec1d04904907De0ED7b6839CcdD59c3716AC9', + methods: { + withdraw: { + inputs: [ + { + internalType: 'int256', + name: 'amount', + type: 'int256', + }, + ], + name: 'withdraw', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + balance: { + inputs: [ + { + internalType: 'address', + name: 'user', + type: 'address', + }, + ], + name: 'balance', + outputs: [ + { + internalType: 'int256', + name: '', + type: 'int256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + deposit: { + inputs: [], + name: 'deposit', + outputs: [], + stateMutability: 'payable', + type: 'function', + }, + depositForUser: { + inputs: [ + { + internalType: 'address', + name: 'user', + type: 'address', + }, + ], + name: 'depositForUser', + outputs: [], + stateMutability: 'payable', + type: 'function', + }, + latestWithdrawRequest: { + inputs: [ + { + internalType: 'address', + name: 'user', + type: 'address', + }, + ], + name: 'latestWithdrawRequest', + outputs: [ + { + components: [ + { + internalType: 'uint256', + name: 'timestamp', + type: 'uint256', + }, + { + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "internalType": "struct LibLedgerStorage.WithdrawRequest", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - "requestWithdraw": { - "inputs": [ - { - "internalType": "int256", - "name": "amount", - "type": "int256" - } - ], - "name": "requestWithdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - "stableBalance": { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "stableBalance", - "outputs": [ - { - "internalType": "int256", - "name": "", - "type": "int256" - } - ], - "stateMutability": "view", - "type": "function" - }, - "userWithdrawDelay": { - "inputs": [], - "name": "userWithdrawDelay", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } + internalType: 'struct LibLedgerStorage.WithdrawRequest', + name: '', + type: 'tuple', + }, + ], + stateMutability: 'view', + type: 'function', + }, + requestWithdraw: { + inputs: [ + { + internalType: 'int256', + name: 'amount', + type: 'int256', + }, + ], + name: 'requestWithdraw', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + stableBalance: { + inputs: [ + { + internalType: 'address', + name: 'user', + type: 'address', + }, + ], + name: 'stableBalance', + outputs: [ + { + internalType: 'int256', + name: '', + type: 'int256', + }, + ], + stateMutability: 'view', + type: 'function', + }, + userWithdrawDelay: { + inputs: [], + name: 'userWithdrawDelay', + outputs: [ + { + internalType: 'uint256', + name: '', + type: 'uint256', + }, + ], + stateMutability: 'view', + type: 'function', + }, }, - "events": [ + events: [ { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "components": [ + components: [ { - "internalType": "address", - "name": "facetAddress", - "type": "address" + internalType: 'address', + name: 'facetAddress', + type: 'address', }, { - "internalType": "enum IDiamond.FacetCutAction", - "name": "action", - "type": "uint8" + internalType: 'enum IDiamond.FacetCutAction', + name: 'action', + type: 'uint8', }, { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } + internalType: 'bytes4[]', + name: 'functionSelectors', + type: 'bytes4[]', + }, ], - "indexed": false, - "internalType": "struct IDiamond.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" + indexed: false, + internalType: 'struct IDiamond.FacetCut[]', + name: '_diamondCut', + type: 'tuple[]', }, { - "indexed": false, - "internalType": "address", - "name": "_init", - "type": "address" + indexed: false, + internalType: 'address', + name: '_init', + type: 'address', }, { - "indexed": false, - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: '_calldata', + type: 'bytes', + }, ], - "name": "DiamondCut", - "type": "event" + name: 'DiamondCut', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, ], - "name": "OwnershipTransferred", - "type": "event" + name: 'OwnershipTransferred', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "node_address", - "type": "address" + indexed: true, + internalType: 'address', + name: 'node_address', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "batch_id", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'batch_id', + type: 'uint256', + }, ], - "name": "BatchCharged", - "type": "event" + name: 'BatchCharged', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "name": "Deposit", - "type": "event" + name: 'Deposit', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "depositor", - "type": "address" + indexed: true, + internalType: 'address', + name: 'depositor', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "name": "DepositForUser", - "type": "event" + name: 'DepositForUser', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "name": "FoundationRewardsWithdrawn", - "type": "event" + name: 'FoundationRewardsWithdrawn', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "percentage", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'percentage', + type: 'uint256', + }, ], - "name": "LitFoundationSplitPercentageSet", - "type": "event" + name: 'LitFoundationSplitPercentageSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "name": "RewardWithdraw", - "type": "event" + name: 'RewardWithdraw', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "delay", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'delay', + type: 'uint256', + }, ], - "name": "RewardWithdrawDelaySet", - "type": "event" + name: 'RewardWithdrawDelaySet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', }, { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'amount', + type: 'uint256', + }, ], - "name": "RewardWithdrawRequest", - "type": "event" + name: 'RewardWithdrawRequest', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "address", - "name": "newTrustedForwarder", - "type": "address" - } + indexed: false, + internalType: 'address', + name: 'newTrustedForwarder', + type: 'address', + }, ], - "name": "TrustedForwarderSet", - "type": "event" + name: 'TrustedForwarderSet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', }, { - "indexed": false, - "internalType": "int256", - "name": "amount", - "type": "int256" - } + indexed: false, + internalType: 'int256', + name: 'amount', + type: 'int256', + }, ], - "name": "UserCharged", - "type": "event" + name: 'UserCharged', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": false, - "internalType": "uint256", - "name": "delay", - "type": "uint256" - } + indexed: false, + internalType: 'uint256', + name: 'delay', + type: 'uint256', + }, ], - "name": "UserWithdrawDelaySet", - "type": "event" + name: 'UserWithdrawDelaySet', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', }, { - "indexed": false, - "internalType": "int256", - "name": "amount", - "type": "int256" - } + indexed: false, + internalType: 'int256', + name: 'amount', + type: 'int256', + }, ], - "name": "Withdraw", - "type": "event" + name: 'Withdraw', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "user", - "type": "address" + indexed: true, + internalType: 'address', + name: 'user', + type: 'address', }, { - "indexed": false, - "internalType": "int256", - "name": "amount", - "type": "int256" - } + indexed: false, + internalType: 'int256', + name: 'amount', + type: 'int256', + }, ], - "name": "WithdrawRequest", - "type": "event" - } - ] + name: 'WithdrawRequest', + type: 'event', + }, + ], }, - "PaymentDelegation": { - "address": "0xfbC22278A96299D91d41C453234d97b4F5Eb9B2d", - "methods": { - "delegatePayments": { - "inputs": [ + PaymentDelegation: { + address: '0xfbC22278A96299D91d41C453234d97b4F5Eb9B2d', + methods: { + delegatePayments: { + inputs: [ { - "internalType": "address", - "name": "user", - "type": "address" - } + internalType: 'address', + name: 'user', + type: 'address', + }, ], - "name": "delegatePayments", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'delegatePayments', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "delegatePaymentsBatch": { - "inputs": [ + delegatePaymentsBatch: { + inputs: [ { - "internalType": "address[]", - "name": "users", - "type": "address[]" - } + internalType: 'address[]', + name: 'users', + type: 'address[]', + }, ], - "name": "delegatePaymentsBatch", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + name: 'delegatePaymentsBatch', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', }, - "getPayers": { - "inputs": [ + getPayers: { + inputs: [ { - "internalType": "address", - "name": "user", - "type": "address" - } + internalType: 'address', + name: 'user', + type: 'address', + }, ], - "name": "getPayers", - "outputs": [ + name: 'getPayers', + outputs: [ { - "internalType": "address[]", - "name": "", - "type": "address[]" - } + internalType: 'address[]', + name: '', + type: 'address[]', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "getPayersAndRestrictions": { - "inputs": [ + getPayersAndRestrictions: { + inputs: [ { - "internalType": "address[]", - "name": "users", - "type": "address[]" - } + internalType: 'address[]', + name: 'users', + type: 'address[]', + }, ], - "name": "getPayersAndRestrictions", - "outputs": [ + name: 'getPayersAndRestrictions', + outputs: [ { - "internalType": "address[][]", - "name": "", - "type": "address[][]" + internalType: 'address[][]', + name: '', + type: 'address[][]', }, { - "components": [ + components: [ { - "internalType": "uint128", - "name": "totalMaxPrice", - "type": "uint128" + internalType: 'uint128', + name: 'totalMaxPrice', + type: 'uint128', }, { - "internalType": "uint256", - "name": "requestsPerPeriod", - "type": "uint256" + internalType: 'uint256', + name: 'requestsPerPeriod', + type: 'uint256', }, { - "internalType": "uint256", - "name": "periodSeconds", - "type": "uint256" - } + internalType: 'uint256', + name: 'periodSeconds', + type: 'uint256', + }, ], - "internalType": "struct LibPaymentDelegationStorage.Restriction[][]", - "name": "", - "type": "tuple[][]" - } + internalType: 'struct LibPaymentDelegationStorage.Restriction[][]', + name: '', + type: 'tuple[][]', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "getRestriction": { - "inputs": [ + getRestriction: { + inputs: [ { - "internalType": "address", - "name": "payer", - "type": "address" - } + internalType: 'address', + name: 'payer', + type: 'address', + }, ], - "name": "getRestriction", - "outputs": [ + name: 'getRestriction', + outputs: [ { - "components": [ + components: [ { - "internalType": "uint128", - "name": "totalMaxPrice", - "type": "uint128" + internalType: 'uint128', + name: 'totalMaxPrice', + type: 'uint128', }, { - "internalType": "uint256", - "name": "requestsPerPeriod", - "type": "uint256" + internalType: 'uint256', + name: 'requestsPerPeriod', + type: 'uint256', }, { - "internalType": "uint256", - "name": "periodSeconds", - "type": "uint256" - } + internalType: 'uint256', + name: 'periodSeconds', + type: 'uint256', + }, ], - "internalType": "struct LibPaymentDelegationStorage.Restriction", - "name": "", - "type": "tuple" - } + internalType: 'struct LibPaymentDelegationStorage.Restriction', + name: '', + type: 'tuple', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "getUsers": { - "inputs": [ + getUsers: { + inputs: [ { - "internalType": "address", - "name": "payer", - "type": "address" - } + internalType: 'address', + name: 'payer', + type: 'address', + }, ], - "name": "getUsers", - "outputs": [ + name: 'getUsers', + outputs: [ { - "internalType": "address[]", - "name": "", - "type": "address[]" - } + internalType: 'address[]', + name: '', + type: 'address[]', + }, ], - "stateMutability": "view", - "type": "function" + stateMutability: 'view', + type: 'function', }, - "setRestriction": { - "inputs": [ + setRestriction: { + inputs: [ { - "components": [ + components: [ { - "internalType": "uint128", - "name": "totalMaxPrice", - "type": "uint128" + internalType: 'uint128', + name: 'totalMaxPrice', + type: 'uint128', }, { - "internalType": "uint256", - "name": "requestsPerPeriod", - "type": "uint256" + internalType: 'uint256', + name: 'requestsPerPeriod', + type: 'uint256', }, { - "internalType": "uint256", - "name": "periodSeconds", - "type": "uint256" - } + internalType: 'uint256', + name: 'periodSeconds', + type: 'uint256', + }, ], - "internalType": "struct LibPaymentDelegationStorage.Restriction", - "name": "r", - "type": "tuple" - } - ], - "name": "setRestriction", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - "undelegatePayments": { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "undelegatePayments", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - "undelegatePaymentsBatch": { - "inputs": [ - { - "internalType": "address[]", - "name": "users", - "type": "address[]" - } - ], - "name": "undelegatePaymentsBatch", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } + internalType: 'struct LibPaymentDelegationStorage.Restriction', + name: 'r', + type: 'tuple', + }, + ], + name: 'setRestriction', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + undelegatePayments: { + inputs: [ + { + internalType: 'address', + name: 'user', + type: 'address', + }, + ], + name: 'undelegatePayments', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + undelegatePaymentsBatch: { + inputs: [ + { + internalType: 'address[]', + name: 'users', + type: 'address[]', + }, + ], + name: 'undelegatePaymentsBatch', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, }, - "events": [ + events: [ { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "components": [ + components: [ { - "internalType": "address", - "name": "facetAddress", - "type": "address" + internalType: 'address', + name: 'facetAddress', + type: 'address', }, { - "internalType": "enum IDiamond.FacetCutAction", - "name": "action", - "type": "uint8" + internalType: 'enum IDiamond.FacetCutAction', + name: 'action', + type: 'uint8', }, { - "internalType": "bytes4[]", - "name": "functionSelectors", - "type": "bytes4[]" - } + internalType: 'bytes4[]', + name: 'functionSelectors', + type: 'bytes4[]', + }, ], - "indexed": false, - "internalType": "struct IDiamond.FacetCut[]", - "name": "_diamondCut", - "type": "tuple[]" + indexed: false, + internalType: 'struct IDiamond.FacetCut[]', + name: '_diamondCut', + type: 'tuple[]', }, { - "indexed": false, - "internalType": "address", - "name": "_init", - "type": "address" + indexed: false, + internalType: 'address', + name: '_init', + type: 'address', }, { - "indexed": false, - "internalType": "bytes", - "name": "_calldata", - "type": "bytes" - } + indexed: false, + internalType: 'bytes', + name: '_calldata', + type: 'bytes', + }, ], - "name": "DiamondCut", - "type": "event" + name: 'DiamondCut', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" + indexed: true, + internalType: 'address', + name: 'previousOwner', + type: 'address', }, { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } + indexed: true, + internalType: 'address', + name: 'newOwner', + type: 'address', + }, ], - "name": "OwnershipTransferred", - "type": "event" + name: 'OwnershipTransferred', + type: 'event', }, { - "anonymous": false, - "inputs": [ + anonymous: false, + inputs: [ { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" + indexed: true, + internalType: 'address', + name: 'payer', + type: 'address', }, { - "components": [ + components: [ { - "internalType": "uint128", - "name": "totalMaxPrice", - "type": "uint128" + internalType: 'uint128', + name: 'totalMaxPrice', + type: 'uint128', }, { - "internalType": "uint256", - "name": "requestsPerPeriod", - "type": "uint256" + internalType: 'uint256', + name: 'requestsPerPeriod', + type: 'uint256', }, { - "internalType": "uint256", - "name": "periodSeconds", - "type": "uint256" - } + internalType: 'uint256', + name: 'periodSeconds', + type: 'uint256', + }, ], - "indexed": false, - "internalType": "struct LibPaymentDelegationStorage.Restriction", - "name": "restriction", - "type": "tuple" - } - ], - "name": "RestrictionSet", - "type": "event" - } - ] - } + indexed: false, + internalType: 'struct LibPaymentDelegationStorage.Restriction', + name: 'restriction', + type: 'tuple', + }, + ], + name: 'RestrictionSet', + type: 'event', + }, + ], + }, } as const; export type Signatures = typeof signatures; diff --git a/packages/networks/src/networks/vNaga/envs/naga-local/naga-local.env.ts b/packages/networks/src/networks/vNaga/envs/naga-local/naga-local.env.ts index 7830ee2e4d..f41146f021 100644 --- a/packages/networks/src/networks/vNaga/envs/naga-local/naga-local.env.ts +++ b/packages/networks/src/networks/vNaga/envs/naga-local/naga-local.env.ts @@ -21,7 +21,7 @@ export class NagaLocalEnvironment extends BaseNetworkEnvironment< NagaLocalSignatures, NagaLocalSpecificConfigs > { - constructor() { + constructor(options?: { rpcUrlOverride?: string }) { super({ network: NETWORK, abiSignatures: signatures, // Note: Uses locally generated signatures @@ -36,15 +36,25 @@ export class NagaLocalEnvironment extends BaseNetworkEnvironment< minimumThreshold: MINIMUM_THRESHOLD, httpProtocol: PROTOCOL, // Note: HTTP not HTTPS requiredAttestation: false, + rpcUrlOverride: options?.rpcUrlOverride, }); } - protected getRpcUrl(): string { - return chainInfo.RPC_URL; // Note: Uses Anvil instead of ChronicleYellowstone + protected getRpcUrl(overrideRpc?: string): string { + return overrideRpc ?? chainInfo.RPC_URL; // Note: Uses Anvil instead of ChronicleYellowstone } - protected getChainConfig(): Chain { - return chainInfo.viemChainConfig; // Note: Anvil chain config + protected getChainConfig(overrideRpc?: string): Chain { + const rpc = overrideRpc ?? chainInfo.RPC_URL; + const base = chainInfo.viemChainConfig; // Note: Anvil chain config + return { + ...base, + rpcUrls: { + ...base.rpcUrls, + default: { ...base.rpcUrls.default, http: [rpc] }, + public: { ...(base.rpcUrls as any)['public'], http: [rpc] }, + }, + } as Chain; } protected getEndpoints(): NagaEndpointsType { diff --git a/packages/networks/src/networks/vNaga/envs/naga-staging/naga-staging.env.ts b/packages/networks/src/networks/vNaga/envs/naga-staging/naga-staging.env.ts index 395da779e4..c2bd859d86 100644 --- a/packages/networks/src/networks/vNaga/envs/naga-staging/naga-staging.env.ts +++ b/packages/networks/src/networks/vNaga/envs/naga-staging/naga-staging.env.ts @@ -20,7 +20,7 @@ export class NagaStagingEnvironment extends BaseNetworkEnvironment< NagaStagingSignatures, NagaStagingSpecificConfigs > { - constructor() { + constructor(options?: { rpcUrlOverride?: string }) { super({ network: NETWORK, abiSignatures: nagaStagingSignatures, @@ -34,15 +34,16 @@ export class NagaStagingEnvironment extends BaseNetworkEnvironment< minimumThreshold: MINIMUM_THRESHOLD, httpProtocol: PROTOCOL, requiredAttestation: true, + rpcUrlOverride: options?.rpcUrlOverride, }); } - protected getRpcUrl(): string { - return chainInfo.RPC_URL; + protected getRpcUrl(overrideRpc?: string): string { + return chainInfo.resolveRpcUrl(overrideRpc); } - protected getChainConfig(): Chain { - return chainInfo.viemChainConfig; + protected getChainConfig(overrideRpc?: string): Chain { + return chainInfo.buildViemChainConfig(overrideRpc); } protected getEndpoints(): NagaEndpointsType { diff --git a/packages/networks/src/networks/vNaga/envs/naga-test/naga-test.env.ts b/packages/networks/src/networks/vNaga/envs/naga-test/naga-test.env.ts index d34fb0bdfb..b7413d1445 100644 --- a/packages/networks/src/networks/vNaga/envs/naga-test/naga-test.env.ts +++ b/packages/networks/src/networks/vNaga/envs/naga-test/naga-test.env.ts @@ -20,7 +20,7 @@ export class NagaTestEnvironment extends BaseNetworkEnvironment< NagaTestSignatures, NagaTestSpecificConfigs > { - constructor() { + constructor(options?: { rpcUrlOverride?: string }) { super({ network: NETWORK, abiSignatures: nagaTestSignatures, @@ -34,15 +34,16 @@ export class NagaTestEnvironment extends BaseNetworkEnvironment< minimumThreshold: MINIMUM_THRESHOLD, httpProtocol: PROTOCOL, requiredAttestation: true, + rpcUrlOverride: options?.rpcUrlOverride, }); } - protected getRpcUrl(): string { - return chainInfo.RPC_URL; + protected getRpcUrl(overrideRpc?: string): string { + return chainInfo.resolveRpcUrl(overrideRpc); } - protected getChainConfig(): Chain { - return chainInfo.viemChainConfig; + protected getChainConfig(overrideRpc?: string): Chain { + return chainInfo.buildViemChainConfig(overrideRpc); } protected getEndpoints(): NagaEndpointsType { diff --git a/packages/networks/src/networks/vNaga/shared/factories/BaseModuleFactory.ts b/packages/networks/src/networks/vNaga/shared/factories/BaseModuleFactory.ts index a137525e72..2595d943dc 100644 --- a/packages/networks/src/networks/vNaga/shared/factories/BaseModuleFactory.ts +++ b/packages/networks/src/networks/vNaga/shared/factories/BaseModuleFactory.ts @@ -2,20 +2,23 @@ import { DEV_PRIVATE_KEY, version } from '@lit-protocol/constants'; import { verifyAndDecryptWithSignatureShares } from '@lit-protocol/crypto'; import { AuthData, + AuthDataInput, EncryptedVersion1Schema, GenericEncryptedPayloadSchema, GenericResultBuilder, HexPrefixedSchema, JsonSignCustomSessionKeyRequestForPkpReturnSchema, JsonSignSessionKeyRequestForPkpReturnSchema, + ScopeStringSchema, } from '@lit-protocol/schemas'; -import { Hex, hexToBytes, stringToBytes } from 'viem'; +import { Hex, hexToBytes, stringToBytes, bytesToHex } from 'viem'; import { z } from 'zod'; // Base types import { LitNetworkModuleBase } from '../../../types'; import type { ExpectedAccountOrWalletClient } from '../managers/contract-manager/createContractsManager'; import type { INetworkConfig } from '../interfaces/NetworkContext'; +import { createChainManagerFactory } from './BaseChainManagerFactory'; // Shared utilities import { NetworkError } from '@lit-protocol/constants'; @@ -78,6 +81,7 @@ import { DecryptRequestDataSchema } from '../managers/api-manager/decrypt/decryp import { DecryptResponseDataSchema } from '../managers/api-manager/decrypt/decrypt.ResponseDataSchema'; import { ExecuteJsCreateRequestParams } from '../managers/api-manager/executeJs/executeJs.CreateRequestParams'; + import { ExecuteJsInputSchema } from '../managers/api-manager/executeJs/executeJs.InputSchema'; import { ExecuteJsRequestDataSchema } from '../managers/api-manager/executeJs/executeJs.RequestDataSchema'; import { ExecuteJsResponseDataSchema } from '../managers/api-manager/executeJs/executeJs.ResponseDataSchema'; @@ -375,8 +379,8 @@ export function createBaseModule(config: BaseModuleConfig) { mintWithAuth: async (params: { account: ExpectedAccountOrWalletClient; - authData: Optional; - scopes: ('sign-anything' | 'personal-sign' | 'no-permissions')[]; + authData: Optional; + scopes: z.infer[]; }): Promise, PKPData>> => { const chainManager = createChainManager(params.account); const res = await chainManager.api.mintPKP({ @@ -871,6 +875,9 @@ export function createBaseModule(config: BaseModuleConfig) { litActionCode: requestBody.litActionCode, litActionIpfsId: requestBody.litActionIpfsId, jsParams: requestBody.jsParams, + maxPrice: getUserMaxPrice({ + product: 'SIGN_SESSION_KEY', + }).toString(), }; const encryptedPayload = E2EERequestManager.encryptRequestData( @@ -883,7 +890,6 @@ export function createBaseModule(config: BaseModuleConfig) { url, endpoint: baseModule.getEndpoints().SIGN_SESSION_KEY, }); - requests.push({ fullPath: _urlWithPath, data: encryptedPayload, @@ -898,23 +904,18 @@ export function createBaseModule(config: BaseModuleConfig) { handleResponse: async ( result: z.infer, pkpPublicKey: Hex | string, - jitContext: NagaJitContext + jitContext: NagaJitContext, + requestId?: string ) => { - if (!result.success) { - E2EERequestManager.handleEncryptedError( - result, - jitContext, - 'Session key signing' - ); - } - const decryptedValues = E2EERequestManager.decryptBatchResponse( result, jitContext, (decryptedJson) => { const signCustomSessionKeyData = decryptedJson.data; if (!signCustomSessionKeyData) { - throw new Error('Decrypted response missing data field'); + throw new Error( + `[${requestId}] Decrypted response missing data field` + ); } return signCustomSessionKeyData; } @@ -1087,6 +1088,55 @@ export function createBaseModule(config: BaseModuleConfig) { }, }, }, + /** + * Returns a wrapped module instance with runtime overrides while keeping the base immutable. + * Currently supports overriding the RPC URL used by consumers of this module. + * + * @param overrides - The overrides to apply to the module. + * @returns A wrapped module instance with the overrides applied. + * @example + * + * import { nagaDev } from '@lit-protocol/networks'; + * const nagaDevWithOverride = nagaDev.withOverrides({ rpcUrl: 'https://custom-rpc-url.com' }); + * const litClient = await createLitClient({ network: nagaDevWithOverride }); + */ + withOverrides: (overrides: { rpcUrl?: string }) => { + const resolvedRpcUrl = overrides.rpcUrl ?? baseModule.getRpcUrl(); + + // Build an overridden network config and a chain manager bound to it + const overriddenChainConfig = { + ...networkConfig.chainConfig, + rpcUrls: { + ...networkConfig.chainConfig.rpcUrls, + default: { + ...networkConfig.chainConfig.rpcUrls.default, + http: [resolvedRpcUrl], + }, + ['public']: { + ...(networkConfig.chainConfig.rpcUrls as any)['public'], + http: [resolvedRpcUrl], + }, + }, + } as typeof networkConfig.chainConfig; + + const overriddenNetworkConfig = { + ...networkConfig, + rpcUrl: resolvedRpcUrl, + chainConfig: overriddenChainConfig, + } as typeof networkConfig; + + const createChainManagerOverridden = ( + account: ExpectedAccountOrWalletClient + ) => createChainManagerFactory(overriddenNetworkConfig, account); + + // Rebuild a fresh module bound to the overridden config + return createBaseModule({ + networkConfig: overriddenNetworkConfig, + moduleName, + createChainManager: createChainManagerOverridden, + verifyReleaseId: baseModule.getVerifyReleaseId(), + }); + }, }; return baseModule; diff --git a/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/PKPPermissionsManager/PKPPermissionsManager.ts b/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/PKPPermissionsManager/PKPPermissionsManager.ts index b76d0b7512..1df579b9a1 100644 --- a/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/PKPPermissionsManager/PKPPermissionsManager.ts +++ b/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/PKPPermissionsManager/PKPPermissionsManager.ts @@ -57,7 +57,7 @@ import type { PKPStorageProvider } from '../../../../../../../../storage/types'; import { logger } from '../../../../../../../shared/logger'; import { DefaultNetworkConfig } from '../../../../../../shared/interfaces/NetworkContext'; import { ExpectedAccountOrWalletClient } from '../../../../contract-manager/createContractsManager'; -import { ScopeString } from '../../../schemas/shared/ScopeSchema'; +import { ScopeString } from '@lit-protocol/schemas'; import { AuthMethod } from '../../rawContractApis/permissions/read/getPermittedAuthMethods'; import { LitTxVoid } from '../../types'; diff --git a/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/PKPPermissionsManager/handlers/addPermittedActionByIdentifier.ts b/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/PKPPermissionsManager/handlers/addPermittedActionByIdentifier.ts index 6ed1345fc9..5faf964ada 100644 --- a/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/PKPPermissionsManager/handlers/addPermittedActionByIdentifier.ts +++ b/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/PKPPermissionsManager/handlers/addPermittedActionByIdentifier.ts @@ -1,7 +1,7 @@ import { DefaultNetworkConfig } from '../../../../../../../shared/interfaces/NetworkContext'; import { isIpfsCidV0 } from '../../../../../../../../shared/utils/z-validate'; import { z } from 'zod'; -import { ScopeStringSchema } from '../../../../schemas/shared/ScopeSchema'; +import { ScopeStringSchema } from '@lit-protocol/schemas'; import { PkpIdentifierRaw, resolvePkpTokenId, diff --git a/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/PKPPermissionsManager/handlers/addPermittedAddressByIdentifier.ts b/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/PKPPermissionsManager/handlers/addPermittedAddressByIdentifier.ts index 0fc8e3f499..3b0e7fa208 100644 --- a/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/PKPPermissionsManager/handlers/addPermittedAddressByIdentifier.ts +++ b/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/PKPPermissionsManager/handlers/addPermittedAddressByIdentifier.ts @@ -1,6 +1,6 @@ import { z } from 'zod'; import { DefaultNetworkConfig } from '../../../../../../../shared/interfaces/NetworkContext'; -import { ScopeStringSchema } from '../../../../schemas/shared/ScopeSchema'; +import { ScopeStringSchema } from '@lit-protocol/schemas'; import { PkpIdentifierRaw, resolvePkpTokenId, diff --git a/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/PKPPermissionsManager/handlers/addPermittedAuthMethodByIdentifier.ts b/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/PKPPermissionsManager/handlers/addPermittedAuthMethodByIdentifier.ts index f2ee701b78..e6d748aac8 100644 --- a/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/PKPPermissionsManager/handlers/addPermittedAuthMethodByIdentifier.ts +++ b/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/PKPPermissionsManager/handlers/addPermittedAuthMethodByIdentifier.ts @@ -1,6 +1,6 @@ import { z } from 'zod'; import { DefaultNetworkConfig } from '../../../../../../../shared/interfaces/NetworkContext'; -import { ScopeStringSchema } from '../../../../schemas/shared/ScopeSchema'; +import { ScopeStringSchema } from '@lit-protocol/schemas'; import { PkpIdentifierRaw, resolvePkpTokenId, diff --git a/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/mintPKP/MintPKPSchema.ts b/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/mintPKP/MintPKPSchema.ts deleted file mode 100644 index b983cd805a..0000000000 --- a/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/mintPKP/MintPKPSchema.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { AUTH_METHOD_TYPE } from '@lit-protocol/constants'; -import { HexPrefixedSchema } from '@lit-protocol/schemas'; -import { Hex } from 'viem'; -import { z } from 'zod'; -import { ScopeSchemaRaw } from '../../../schemas/shared/ScopeSchema'; - -export const MintPKPSchema = z - .object({ - // authMethod: AuthMethodSchema, - authMethodId: HexPrefixedSchema, - authMethodType: z.union([z.number(), z.bigint()]), - scopes: z.array(ScopeSchemaRaw), - pubkey: HexPrefixedSchema.optional(), - }) - .transform(async (data) => { - let derivedPubkey: Hex | undefined; - - // Determine pubkey based on the (potentially derived) authMethodType - if (data.authMethodType === AUTH_METHOD_TYPE.WebAuthn) { - if (!data.pubkey) { - throw new Error('pubkey is required for WebAuthn'); - } - derivedPubkey = data.pubkey as Hex; - } else { - derivedPubkey = '0x' as Hex; - } - - // Ensure pubkey is present (it should always be by this point) - if (typeof derivedPubkey === 'undefined') { - // This case should ideally not be reached if logic above is correct - throw new Error('pubkey could not be determined'); - } - - // Return data with resolved/derived values - return { - ...data, - authMethodId: data.authMethodId, - authMethodType: data.authMethodType, - pubkey: derivedPubkey, - }; - }); - -export type MintPKPRequest = z.input; diff --git a/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/mintPKP/mintPKP.ts b/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/mintPKP/mintPKP.ts index 0c9eb2495d..be6e8fa6d6 100644 --- a/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/mintPKP/mintPKP.ts +++ b/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/mintPKP/mintPKP.ts @@ -4,7 +4,7 @@ import { ExpectedAccountOrWalletClient } from '../../../../contract-manager/crea import { PKPData } from '../../../schemas/shared/PKPDataSchema'; import { mintNextAndAddAuthMethods } from '../../rawContractApis/pkp/write/mintNextAndAddAuthMethods'; import { LitTxRes } from '../../types'; -import { MintPKPRequest, MintPKPSchema } from './MintPKPSchema'; +import { MintPKPRequest, MintPKPRequestSchema } from '@lit-protocol/schemas'; /** * authMethod @@ -36,15 +36,14 @@ export const mintPKP = async ( networkConfig: DefaultNetworkConfig, accountOrWalletClient: ExpectedAccountOrWalletClient ): Promise> => { - const validatedRequest = await MintPKPSchema.parseAsync(request); + const validatedRequest = await MintPKPRequestSchema.parseAsync(request); logger.debug({ validatedRequest }); - // console.log("๐Ÿ”ฅ [mintPKP] validatedRequest:", validatedRequest); - const tx = await mintNextAndAddAuthMethods( { keyType: 2, + keySetId: 'naga-keyset1', permittedAuthMethodTypes: [validatedRequest.authMethodType], permittedAuthMethodIds: [validatedRequest.authMethodId], permittedAuthMethodPubkeys: [validatedRequest.pubkey], diff --git a/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/mintPKP/mintWithMultiAuths.ts b/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/mintPKP/mintWithMultiAuths.ts index 3dd4f026c3..c61bd06ed4 100644 --- a/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/mintPKP/mintWithMultiAuths.ts +++ b/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/highLevelApis/mintPKP/mintWithMultiAuths.ts @@ -6,7 +6,7 @@ import { logger } from '../../../../../../../shared/logger'; import { DefaultNetworkConfig } from '../../../../../../shared/interfaces/NetworkContext'; import { ExpectedAccountOrWalletClient } from '../../../../contract-manager/createContractsManager'; import { PKPData } from '../../../schemas/shared/PKPDataSchema'; -import { ScopeSchemaRaw } from '../../../schemas/shared/ScopeSchema'; +import { ScopeSchemaRaw } from '@lit-protocol/schemas'; import { mintNextAndAddAuthMethods } from '../../rawContractApis/pkp/write/mintNextAndAddAuthMethods'; import { LitTxRes } from '../../types'; @@ -115,6 +115,7 @@ export const mintWithMultiAuths = async ( const tx = await mintNextAndAddAuthMethods( { keyType: 2, + keySetId: 'naga-keyset1', permittedAuthMethodTypes: validatedRequest.authMethodTypes, permittedAuthMethodIds: validatedRequest.authMethodIds, permittedAuthMethodPubkeys: validatedRequest.pubkeys, diff --git a/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/rawContractApis/permissions/write/addPermittedAction.ts b/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/rawContractApis/permissions/write/addPermittedAction.ts index 26873f5b34..20f72d6cd6 100644 --- a/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/rawContractApis/permissions/write/addPermittedAction.ts +++ b/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/rawContractApis/permissions/write/addPermittedAction.ts @@ -5,7 +5,7 @@ import { ipfsCidV0ToHex } from '../../../../../../../../shared/utils/transformer import { toBigInt } from '../../../../../../../../shared/utils/z-transformers'; import { isIpfsCidV0 } from '../../../../../../../../shared/utils/z-validate'; import { DefaultNetworkConfig } from '../../../../../../../shared/interfaces/NetworkContext'; -import { ScopeSchemaRaw } from '../../../../schemas/shared/ScopeSchema'; +import { ScopeSchemaRaw } from '@lit-protocol/schemas'; import { LitTxVoid } from '../../../types'; import { callWithAdjustedOverrides } from '../../../utils/callWithAdjustedOverrides'; import { diff --git a/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/rawContractApis/permissions/write/addPermittedAddress.ts b/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/rawContractApis/permissions/write/addPermittedAddress.ts index bbf51b587f..7bab7c8453 100644 --- a/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/rawContractApis/permissions/write/addPermittedAddress.ts +++ b/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/rawContractApis/permissions/write/addPermittedAddress.ts @@ -7,7 +7,7 @@ import { createContractsManager, ExpectedAccountOrWalletClient, } from '../../../../../contract-manager/createContractsManager'; -import { ScopeSchemaRaw } from '../../../../schemas/shared/ScopeSchema'; +import { ScopeSchemaRaw } from '@lit-protocol/schemas'; import { LitTxVoid } from '../../../types'; import { callWithAdjustedOverrides } from '../../../utils/callWithAdjustedOverrides'; import { decodeLogs } from '../../../utils/decodeLogs'; diff --git a/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/rawContractApis/permissions/write/addPermittedAuthMethod.ts b/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/rawContractApis/permissions/write/addPermittedAuthMethod.ts index d7e19fbb00..a574a794f6 100644 --- a/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/rawContractApis/permissions/write/addPermittedAuthMethod.ts +++ b/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/rawContractApis/permissions/write/addPermittedAuthMethod.ts @@ -13,7 +13,7 @@ import { createContractsManager, ExpectedAccountOrWalletClient, } from '../../../../../contract-manager/createContractsManager'; -import { ScopeSchemaRaw } from '../../../../schemas/shared/ScopeSchema'; +import { ScopeSchemaRaw } from '@lit-protocol/schemas'; import { LitTxVoid } from '../../../types'; import { callWithAdjustedOverrides } from '../../../utils/callWithAdjustedOverrides'; import { decodeLogs } from '../../../utils/decodeLogs'; diff --git a/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/rawContractApis/pkp/write/mintNext.ts b/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/rawContractApis/pkp/write/mintNext.ts index 581f8e3f4d..77c68bd3e9 100644 --- a/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/rawContractApis/pkp/write/mintNext.ts +++ b/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/rawContractApis/pkp/write/mintNext.ts @@ -22,7 +22,7 @@ export async function mintNext( const hash = await callWithAdjustedOverrides( pkpNftContract, 'mintNext', - [2], + [2, 'naga-keyset1'], { value: mintCost, } diff --git a/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/rawContractApis/pkp/write/mintNextAndAddAuthMethods.ts b/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/rawContractApis/pkp/write/mintNextAndAddAuthMethods.ts index de9dbb881a..384e63f816 100644 --- a/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/rawContractApis/pkp/write/mintNextAndAddAuthMethods.ts +++ b/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/apis/rawContractApis/pkp/write/mintNextAndAddAuthMethods.ts @@ -69,6 +69,7 @@ export async function mintNextAndAddAuthMethods( 'mintNextAndAddAuthMethods', [ validatedRequest.keyType, + validatedRequest.keySetId, validatedRequest.permittedAuthMethodTypes, validatedRequest.permittedAuthMethodIds, validatedRequest.permittedAuthMethodPubkeys, diff --git a/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/schemas/MintRequestSchema.ts b/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/schemas/MintRequestSchema.ts index 77ce533822..313d06d947 100644 --- a/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/schemas/MintRequestSchema.ts +++ b/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/schemas/MintRequestSchema.ts @@ -10,6 +10,7 @@ import { export const MintRequestSchema = z.object({ keyType: toBigInt, + keySetId: z.literal('naga-keyset1'), permittedAuthMethodTypes: toBigIntArray, permittedAuthMethodIds: toHexStringArray, permittedAuthMethodPubkeys: toHexStringArray, diff --git a/packages/networks/src/networks/vNaga/shared/managers/api-manager/decrypt/decrypt.RequestDataSchema.ts b/packages/networks/src/networks/vNaga/shared/managers/api-manager/decrypt/decrypt.RequestDataSchema.ts index 2523102a9c..1c04215444 100644 --- a/packages/networks/src/networks/vNaga/shared/managers/api-manager/decrypt/decrypt.RequestDataSchema.ts +++ b/packages/networks/src/networks/vNaga/shared/managers/api-manager/decrypt/decrypt.RequestDataSchema.ts @@ -1,6 +1,8 @@ import { z } from 'zod'; import { MultipleAccessControlConditionsSchema } from '@lit-protocol/access-control-conditions-schemas'; import { AuthSigSchema } from '@lit-protocol/schemas'; +import { FormattedMultipleAccs } from '@lit-protocol/types'; +import { getFormattedAccessControlConditions } from '@lit-protocol/access-control-conditions'; export const DecryptRequestDataSchema = MultipleAccessControlConditionsSchema.extend({ @@ -8,4 +10,19 @@ export const DecryptRequestDataSchema = dataToEncryptHash: z.string(), authSig: AuthSigSchema, chain: z.string(), + }).transform((data) => { + const { + formattedAccessControlConditions, + formattedEVMContractConditions, + formattedSolRpcConditions, + formattedUnifiedAccessControlConditions, + }: FormattedMultipleAccs = getFormattedAccessControlConditions(data); + + return { + ...data, + accessControlConditions: formattedAccessControlConditions, + evmContractConditions: formattedEVMContractConditions, + solRpcConditions: formattedSolRpcConditions, + unifiedAccessControlConditions: formattedUnifiedAccessControlConditions, + }; }); diff --git a/packages/networks/src/networks/vNaga/shared/managers/api-manager/e2ee-request-manager/E2EERequestManager.ts b/packages/networks/src/networks/vNaga/shared/managers/api-manager/e2ee-request-manager/E2EERequestManager.ts index 228fc2c020..dd0e0120c5 100644 --- a/packages/networks/src/networks/vNaga/shared/managers/api-manager/e2ee-request-manager/E2EERequestManager.ts +++ b/packages/networks/src/networks/vNaga/shared/managers/api-manager/e2ee-request-manager/E2EERequestManager.ts @@ -184,7 +184,7 @@ const handleEncryptedError = ( `"${operationName}" failed. The nodes returned an encrypted error response that could not be decrypted. ` + `This may indicate a configuration or network connectivity issue. ${JSON.stringify( errorResult - )}` + )}. If you are running custom session sigs, it might mean the validation has failed. We will continue to improve this error message to provide more information.` ); } } else { diff --git a/packages/networks/src/storage/types.ts b/packages/networks/src/storage/types.ts index 8b148e09f3..634b0f0779 100644 --- a/packages/networks/src/storage/types.ts +++ b/packages/networks/src/storage/types.ts @@ -1,4 +1,4 @@ -import { PKPInfo } from '@lit-protocol/types'; +import { PKPData } from '@lit-protocol/schemas'; export interface PKPStorageProvider { readPKPTokens?(params: { @@ -37,11 +37,11 @@ export interface PKPStorageProvider { readPKPs?(params: { authMethodType: number | bigint; authMethodId: string; - }): Promise; + }): Promise; writePKPs?(params: { authMethodType: number | bigint; authMethodId: string; - pkps: PKPInfo[]; + pkps: PKPData[]; }): Promise; } diff --git a/packages/schemas/CHANGELOG.md b/packages/schemas/CHANGELOG.md index 14982a93ea..4aba66a080 100644 --- a/packages/schemas/CHANGELOG.md +++ b/packages/schemas/CHANGELOG.md @@ -1,5 +1,35 @@ # @lit-protocol/schemas +## 8.0.0-canary.4 + +### Patch Changes + +- fix custom auth data schema + +## 8.0.0-canary.3 + +### Patch Changes + +- remove console logs + +## 8.0.0-canary.2 + +### Patch Changes + +- fix scopes to transform scope strings like "sign-anything" to their BigInt values (like 1n). + +## 8.0.0-canary.1 + +### Patch Changes + +- investigate scopes issues + +## 8.0.0-canary.2 + +### Patch Changes + +- merge of [Bug] Fix False Positive Custom Auth Tests #881 + ## 8.0.0-beta.1 ### Patch Changes diff --git a/packages/schemas/package.json b/packages/schemas/package.json index 93add6eda7..bc750e4834 100644 --- a/packages/schemas/package.json +++ b/packages/schemas/package.json @@ -26,7 +26,7 @@ "tags": [ "universal" ], - "version": "8.0.0-beta.1", + "version": "8.0.0-canary.4", "main": "./src/index.js", "typings": "./src/index.d.ts" } diff --git a/packages/schemas/src/index.ts b/packages/schemas/src/index.ts index 5975b6ad4c..863eaa0dbd 100644 --- a/packages/schemas/src/index.ts +++ b/packages/schemas/src/index.ts @@ -4,6 +4,7 @@ import { z } from 'zod'; import { LitResourceAbilityRequestSchema } from './lib/models'; import { AuthSigSchema } from './lib/schemas'; export * from './lib/auth/auth-schemas'; +export * from './lib/auth/ScopeSchema'; export * from './lib/encryption'; export * from './lib/models'; export * from './lib/schemas'; diff --git a/packages/networks/src/networks/vNaga/shared/managers/LitChainClient/schemas/shared/ScopeSchema.ts b/packages/schemas/src/lib/auth/ScopeSchema.ts similarity index 100% rename from packages/networks/src/networks/vNaga/shared/managers/LitChainClient/schemas/shared/ScopeSchema.ts rename to packages/schemas/src/lib/auth/ScopeSchema.ts diff --git a/packages/schemas/src/lib/auth/auth-schemas.ts b/packages/schemas/src/lib/auth/auth-schemas.ts index 6ee258b6f8..ceb1182e3a 100644 --- a/packages/schemas/src/lib/auth/auth-schemas.ts +++ b/packages/schemas/src/lib/auth/auth-schemas.ts @@ -1,4 +1,7 @@ -import { AUTH_METHOD_TYPE_VALUES } from '@lit-protocol/constants'; +import { + AUTH_METHOD_TYPE, + AUTH_METHOD_TYPE_VALUES, +} from '@lit-protocol/constants'; import { z } from 'zod'; import { AuthMethodSchema, @@ -6,14 +9,20 @@ import { NodeSetSchema, SessionKeyUriSchema, } from '../schemas'; +import { ScopeSchemaRaw } from './ScopeSchema'; + +export const CustomAuthDataSchema = z.object({ + authMethodId: HexPrefixedSchema, + + // This will be a very big number, unlike our native auth + authMethodType: z.bigint(), +}); + +export type CustomAuthData = z.infer; export const AuthDataSchema = z.object({ authMethodId: HexPrefixedSchema, - authMethodType: z.union([ - AuthMethodSchema.shape.authMethodType, - z.number(), - z.bigint(), - ]), + authMethodType: z.coerce.number().pipe(z.nativeEnum(AUTH_METHOD_TYPE)), accessToken: AuthMethodSchema.shape.accessToken, publicKey: HexPrefixedSchema.optional(), @@ -22,7 +31,8 @@ export const AuthDataSchema = z.object({ metadata: z.any().optional(), }); -export type AuthData = z.infer; +export type AuthData = z.output; +export type AuthDataInput = z.input; /** * Return Object Schema @@ -64,3 +74,34 @@ export const JsonSignCustomSessionKeyRequestForPkpReturnSchema = z }), ]) ); + +/** + * Consolidated schema for PKP mint requests. + * This replaces the duplicated schemas across the codebase. + * Handles both string and number authMethodType inputs. + */ +export const MintPKPRequestSchema = z + .object({ + authMethodId: HexPrefixedSchema, + authMethodType: z.coerce.number().pipe(z.nativeEnum(AUTH_METHOD_TYPE)), + pubkey: HexPrefixedSchema.default('0x'), + scopes: z.array(ScopeSchemaRaw).optional().default([]), + }) + .refine( + (data) => { + // Validate pubkey is present for WebAuthn + // the default has been set to 0x, so we need to check when + // webauthn is used the pubkey should NOT be 0x + if (data.authMethodType === AUTH_METHOD_TYPE.WebAuthn) { + return data.pubkey && data.pubkey !== '0x'; + } + return true; + }, + { + message: 'pubkey is required for WebAuthn and cannot be 0x', + path: ['pubkey'], + } + ); + +export type MintPKPRequest = z.input; +export type MintPKPRequestTransformed = z.output; diff --git a/packages/schemas/src/lib/schemas.ts b/packages/schemas/src/lib/schemas.ts index 81bbcbc23b..d8455e653e 100644 --- a/packages/schemas/src/lib/schemas.ts +++ b/packages/schemas/src/lib/schemas.ts @@ -218,14 +218,14 @@ export const JsonSchema: z.ZodType = z.lazy(() => ); export const HexSchema = z.string().regex(/^0x[0-9a-fA-F]+$/); -export const ChainSchema = z.string(); +export const ChainSchema = z.string().default('ethereum'); export const EvmChainSchema = z.enum(LIT_CHAINS_KEYS); export const ChainedSchema = z.object({ /** * The chain name of the chain that will be used. See LIT_CHAINS for currently supported chains. */ - chain: ChainSchema, + chain: ChainSchema.optional(), }); export const PricedSchema = z.object({ diff --git a/packages/types/CHANGELOG.md b/packages/types/CHANGELOG.md index 55705384f3..2e678700f3 100644 --- a/packages/types/CHANGELOG.md +++ b/packages/types/CHANGELOG.md @@ -1,5 +1,35 @@ # @lit-protocol/types +## 8.0.0-canary.4 + +### Patch Changes + +- fix custom auth data schema + +## 8.0.0-canary.3 + +### Patch Changes + +- remove console logs + +## 8.0.0-canary.2 + +### Patch Changes + +- fix scopes to transform scope strings like "sign-anything" to their BigInt values (like 1n). + +## 8.0.0-canary.1 + +### Patch Changes + +- investigate scopes issues + +## 8.0.0-canary.2 + +### Patch Changes + +- merge of [Bug] Fix False Positive Custom Auth Tests #881 + ## 8.0.0-beta.1 ### Patch Changes diff --git a/packages/types/package.json b/packages/types/package.json index 0f01853b22..545c0bd90d 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -23,7 +23,7 @@ "buildOptions": { "genReact": false }, - "version": "8.0.0-beta.1", + "version": "8.0.0-canary.4", "main": "./src/index.js", "typings": "./src/index.d.ts", "dependencies": { diff --git a/packages/wasm/CHANGELOG.md b/packages/wasm/CHANGELOG.md index a0c1972070..0d13fa57b0 100644 --- a/packages/wasm/CHANGELOG.md +++ b/packages/wasm/CHANGELOG.md @@ -1,5 +1,35 @@ # @lit-protocol/wasm +## 8.0.0-canary.4 + +### Patch Changes + +- fix custom auth data schema + +## 8.0.0-canary.3 + +### Patch Changes + +- remove console logs + +## 8.0.0-canary.2 + +### Patch Changes + +- fix scopes to transform scope strings like "sign-anything" to their BigInt values (like 1n). + +## 8.0.0-canary.1 + +### Patch Changes + +- investigate scopes issues + +## 8.0.0-canary.2 + +### Patch Changes + +- merge of [Bug] Fix False Positive Custom Auth Tests #881 + ## 8.0.0-beta.1 ### Patch Changes diff --git a/packages/wasm/package.json b/packages/wasm/package.json index 673787f50a..043b0c199c 100644 --- a/packages/wasm/package.json +++ b/packages/wasm/package.json @@ -1,6 +1,6 @@ { "name": "@lit-protocol/wasm", - "version": "8.0.0-beta.1", + "version": "8.0.0-canary.4", "type": "commonjs", "homepage": "https://github.com/Lit-Protocol/js-sdk", "repository": { diff --git a/packages/wasm/rust/Cargo.lock b/packages/wasm/rust/Cargo.lock index 05e97f4319..79b8e9d6f5 100644 --- a/packages/wasm/rust/Cargo.lock +++ b/packages/wasm/rust/Cargo.lock @@ -239,9 +239,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.1" +version = "2.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" +checksum = "6a65b545ab31d687cff52899d4890855fec459eb6afe0da6417b8a18da87aa29" [[package]] name = "bitvec" @@ -372,7 +372,7 @@ dependencies = [ "sha2", "sha3", "subtle", - "thiserror 2.0.14", + "thiserror 2.0.15", "uint-zigzag", "vsss-rs 5.1.0", "zeroize", @@ -401,7 +401,7 @@ checksum = "62f7e0e71f98d6c71bfe42b0a7a47d0f870ad808401fad2d44fa156ed5b0ae03" dependencies = [ "proc-macro2", "quote", - "syn 2.0.105", + "syn 2.0.106", ] [[package]] @@ -422,7 +422,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" dependencies = [ - "thiserror 2.0.14", + "thiserror 2.0.15", ] [[package]] @@ -540,7 +540,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.105", + "syn 2.0.106", ] [[package]] @@ -679,7 +679,7 @@ checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" dependencies = [ "proc-macro2", "quote", - "syn 2.0.105", + "syn 2.0.106", ] [[package]] @@ -701,7 +701,7 @@ checksum = "74ef43543e701c01ad77d3a5922755c6a1d71b22d942cb8042be4994b380caff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.105", + "syn 2.0.106", ] [[package]] @@ -920,7 +920,7 @@ dependencies = [ "serde", "serdect 0.2.0", "subtle", - "thiserror 2.0.14", + "thiserror 2.0.15", "thiserror-nostd-notrait", "visibility", "zeroize", @@ -955,7 +955,7 @@ dependencies = [ "postcard", "rand_core", "serde", - "thiserror 2.0.14", + "thiserror 2.0.15", "vsss-rs 5.1.0", ] @@ -1134,7 +1134,7 @@ dependencies = [ "rand_chacha", "rand_core", "serde", - "thiserror 2.0.14", + "thiserror 2.0.15", "vsss-rs 5.1.0", ] @@ -1409,7 +1409,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "libc", ] @@ -1467,7 +1467,7 @@ dependencies = [ "serde_bare", "sha2", "subtle", - "thiserror 2.0.14", + "thiserror 2.0.15", "vsss-rs 5.1.0", "zeroize", ] @@ -1801,9 +1801,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.97" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d61789d7719defeb74ea5fe81f2fdfdbd28a803847077cecce2ff14e1472f6f1" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" dependencies = [ "unicode-ident", ] @@ -2045,7 +2045,7 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.105", + "syn 2.0.106", ] [[package]] @@ -2056,7 +2056,7 @@ checksum = "e578a843d40b4189a4d66bba51d7684f57da5bd7c304c64e14bd63efbef49509" dependencies = [ "proc-macro2", "quote", - "syn 2.0.105", + "syn 2.0.106", ] [[package]] @@ -2214,9 +2214,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.105" +version = "2.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bc3fcb250e53458e712715cf74285c1f889686520d79294a9ef3bd7aa1fc619" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" dependencies = [ "proc-macro2", "quote", @@ -2240,11 +2240,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.14" +version = "2.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b0949c3a6c842cbde3f1686d6eea5a010516deb7085f79db747562d4102f41e" +checksum = "80d76d3f064b981389ecb4b6b7f45a0bf9fdac1d5b9204c7bd6714fecc302850" dependencies = [ - "thiserror-impl 2.0.14", + "thiserror-impl 2.0.15", ] [[package]] @@ -2255,18 +2255,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.105", + "syn 2.0.106", ] [[package]] name = "thiserror-impl" -version = "2.0.14" +version = "2.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc5b44b4ab9c2fdd0e0512e6bece8388e214c0749f5862b114cc5b7a25daf227" +checksum = "44d29feb33e986b6ea906bd9c3559a856983f92371b3eaa5e83782a351623de0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.105", + "syn 2.0.106", ] [[package]] @@ -2306,7 +2306,7 @@ checksum = "585e5ef40a784ce60b49c67d762110688d211d395d39e096be204535cf64590e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.105", + "syn 2.0.106", ] [[package]] @@ -2327,7 +2327,7 @@ checksum = "2d2e76690929402faae40aebdda620a2c0e25dd6d3b9afe48867dfd95991f4bd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.105", + "syn 2.0.106", ] [[package]] @@ -2351,7 +2351,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.105", + "syn 2.0.106", ] [[package]] @@ -2400,7 +2400,7 @@ checksum = "d674d135b4a8c1d7e813e2f8d1c9a58308aee4a680323066025e53132218bd91" dependencies = [ "proc-macro2", "quote", - "syn 2.0.105", + "syn 2.0.106", ] [[package]] @@ -2469,7 +2469,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.105", + "syn 2.0.106", "wasm-bindgen-shared", ] @@ -2491,7 +2491,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.105", + "syn 2.0.106", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2609,7 +2609,7 @@ checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" dependencies = [ "proc-macro2", "quote", - "syn 2.0.105", + "syn 2.0.106", ] [[package]] @@ -2629,5 +2629,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.105", + "syn 2.0.106", ] diff --git a/packages/wasm/rust/Cargo.toml b/packages/wasm/rust/Cargo.toml index b32a3adc05..19b45b6582 100644 --- a/packages/wasm/rust/Cargo.toml +++ b/packages/wasm/rust/Cargo.toml @@ -61,4 +61,7 @@ lto = true wasm-opt=['-Os'] [package.metadata.wasm-pack.profile.profiling] -wasm-opt = ['-g', '-O'] \ No newline at end of file +wasm-opt = ['-g', '-O'] + +[package.metadata.wasm-pack.profile.release] +wasm-opt = false \ No newline at end of file diff --git a/packages/wasm/rust/LICENSE b/packages/wasm/rust/LICENSE new file mode 100644 index 0000000000..b4e58d1164 --- /dev/null +++ b/packages/wasm/rust/LICENSE @@ -0,0 +1,7 @@ +Copyright 2022 WorkGraph, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/packages/wrapped-keys-lit-actions/CHANGELOG.md b/packages/wrapped-keys-lit-actions/CHANGELOG.md index fc2e2830d5..5f66947e07 100644 --- a/packages/wrapped-keys-lit-actions/CHANGELOG.md +++ b/packages/wrapped-keys-lit-actions/CHANGELOG.md @@ -1,5 +1,35 @@ # @lit-protocol/wrapped-keys-lit-actions +## 8.0.0-canary.4 + +### Patch Changes + +- fix custom auth data schema + +## 8.0.0-canary.3 + +### Patch Changes + +- remove console logs + +## 8.0.0-canary.2 + +### Patch Changes + +- fix scopes to transform scope strings like "sign-anything" to their BigInt values (like 1n). + +## 8.0.0-canary.1 + +### Patch Changes + +- investigate scopes issues + +## 8.0.0-canary.2 + +### Patch Changes + +- merge of [Bug] Fix False Positive Custom Auth Tests #881 + ## 8.0.0-beta.1 ### Patch Changes diff --git a/packages/wrapped-keys-lit-actions/package.json b/packages/wrapped-keys-lit-actions/package.json index d251d3ebb9..8a4b4c9df8 100644 --- a/packages/wrapped-keys-lit-actions/package.json +++ b/packages/wrapped-keys-lit-actions/package.json @@ -26,7 +26,7 @@ "scripts": { "generate-lit-actions": "yarn node ./esbuild.config.js" }, - "version": "8.0.0-beta.1", + "version": "8.0.0-canary.4", "main": "./src/index.js", "typings": "./src/index.d.ts" } diff --git a/packages/wrapped-keys/CHANGELOG.md b/packages/wrapped-keys/CHANGELOG.md index 74c0a43310..04a7cac7f1 100644 --- a/packages/wrapped-keys/CHANGELOG.md +++ b/packages/wrapped-keys/CHANGELOG.md @@ -1,5 +1,35 @@ # @lit-protocol/wrapped-keys +## 8.0.0-canary.4 + +### Patch Changes + +- fix custom auth data schema + +## 8.0.0-canary.3 + +### Patch Changes + +- remove console logs + +## 8.0.0-canary.2 + +### Patch Changes + +- fix scopes to transform scope strings like "sign-anything" to their BigInt values (like 1n). + +## 8.0.0-canary.1 + +### Patch Changes + +- investigate scopes issues + +## 8.0.0-canary.2 + +### Patch Changes + +- merge of [Bug] Fix False Positive Custom Auth Tests #881 + ## 8.0.0-beta.1 ### Patch Changes diff --git a/packages/wrapped-keys/package.json b/packages/wrapped-keys/package.json index 174a576191..e4819c7c6c 100644 --- a/packages/wrapped-keys/package.json +++ b/packages/wrapped-keys/package.json @@ -23,7 +23,7 @@ "buildOptions": { "genReact": false }, - "version": "8.0.0-beta.1", + "version": "8.0.0-canary.4", "main": "./src/index.js", "typings": "./src/index.d.ts" }