diff --git a/packages/kusama/src/__snapshots__/people.kusama.e2e.test.ts.snap b/packages/kusama/src/__snapshots__/people.kusama.e2e.test.ts.snap new file mode 100644 index 0000000..e831635 --- /dev/null +++ b/packages/kusama/src/__snapshots__/people.kusama.e2e.test.ts.snap @@ -0,0 +1,391 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`Kusama People > adding a registrar as root from the relay chain works > call add registrar with wrong origin 1`] = ` +[ + { + "data": { + "dispatchError": "BadOrigin", + "dispatchInfo": { + "class": "Normal", + "paysFee": "Yes", + "weight": { + "proofSize": "(rounded 2600)", + "refTime": "(rounded 240000000)", + }, + }, + }, + "method": "ExtrinsicFailed", + "section": "system", + }, +] +`; + +exports[`Kusama People > adding a registrar as root from the relay chain works > registrars after parachain block 1`] = ` +[ + { + "account": "FfmSiZNJP72xtSaXiP2iUhBwWeMEvmjPrxY2ViVkWaeChDC", + "fee": 1, + "fields": 0, + }, + { + "account": "HJzQySPFxy81SD4wVMbJvZjJufYV1C8zKEVL7y3h4tbRbyR", + "fee": 0, + "fields": 0, + }, + { + "account": "E6wQ1iDTCXykVP58tRC5Dx4oskFR5zkg59EGR8tEjtMKVzY", + "fee": 0, + "fields": 0, + }, +] +`; + +exports[`Kusama People > adding a registrar as root from the relay chain works > registrars after relay block 1`] = ` +[ + { + "account": "FfmSiZNJP72xtSaXiP2iUhBwWeMEvmjPrxY2ViVkWaeChDC", + "fee": 1, + "fields": 0, + }, + { + "account": "HJzQySPFxy81SD4wVMbJvZjJufYV1C8zKEVL7y3h4tbRbyR", + "fee": 0, + "fields": 0, + }, +] +`; + +exports[`Kusama People > adding a registrar as root from the relay chain works > registrars before relay block 1`] = ` +[ + { + "account": "FfmSiZNJP72xtSaXiP2iUhBwWeMEvmjPrxY2ViVkWaeChDC", + "fee": 1, + "fields": 0, + }, + { + "account": "HJzQySPFxy81SD4wVMbJvZjJufYV1C8zKEVL7y3h4tbRbyR", + "fee": 0, + "fields": 0, + }, +] +`; + +exports[`Kusama People > setting an on-chain identity, requesting 2 judgements, having 1 provided, and then resetting the identity should work > double judgment request events 1`] = ` +[ + { + "data": { + "registrarIndex": 0, + "who": "DFeS2XXq12E9iRyp52vRvYaMgWrgMXgDc6Cuc7KvfEaGETq", + }, + "method": "JudgementRequested", + "section": "identity", + }, + { + "data": { + "registrarIndex": 1, + "who": "DFeS2XXq12E9iRyp52vRvYaMgWrgMXgDc6Cuc7KvfEaGETq", + }, + "method": "JudgementRequested", + "section": "identity", + }, +] +`; + +exports[`Kusama People > setting an on-chain identity, requesting 2 judgements, having 1 provided, and then resetting the identity should work > eve's judgements after one has been provided 1`] = ` +[ + [ + 0, + { + "reasonable": null, + }, + ], + [ + 1, + { + "feePaid": 0, + }, + ], +] +`; + +exports[`Kusama People > setting an on-chain identity, requesting 2 judgements, having 1 provided, and then resetting the identity should work > identity right after set identity 1`] = ` +{ + "discord": { + "raw": "0x746573745f646973636f7264", + }, + "display": { + "raw": "0x5465737420446973706c6179", + }, + "email": { + "raw": "0x746573745f6164647265737340746573742e696f", + }, + "github": { + "raw": "0x746573745f676974687562", + }, + "image": { + "raw": "0x74657374", + }, + "legal": { + "raw": "0x46697273744e616d65204c6173744e616d65", + }, + "matrix": { + "raw": "0x40746573743a746573745f7365727665722e696f", + }, + "pgpFingerprint": "0x6131623263336434653566366737683869396a31", + "twitter": { + "raw": "0x40746573745f74776974746572", + }, + "web": { + "raw": "0x687474703a2f2f746573742e74652f6d65", + }, +} +`; + +exports[`Kusama People > setting an on-chain identity, requesting 2 judgements, having 1 provided, and then resetting the identity should work > judgement provision events 1`] = ` +[ + { + "data": { + "registrarIndex": 0, + "target": "DFeS2XXq12E9iRyp52vRvYaMgWrgMXgDc6Cuc7KvfEaGETq", + }, + "method": "JudgementGiven", + "section": "identity", + }, +] +`; + +exports[`Kusama People > setting an on-chain identity, requesting 2 judgements, having 1 provided, and then resetting the identity should work > set identity events 1`] = ` +[ + { + "data": { + "who": "DFeS2XXq12E9iRyp52vRvYaMgWrgMXgDc6Cuc7KvfEaGETq", + }, + "method": "IdentitySet", + "section": "identity", + }, +] +`; + +exports[`Kusama People > setting an on-chain identity, requesting 2 judgements, having 1 provided, and then resetting the identity should work > set identity twice events 1`] = ` +[ + { + "data": { + "who": "DFeS2XXq12E9iRyp52vRvYaMgWrgMXgDc6Cuc7KvfEaGETq", + }, + "method": "IdentitySet", + "section": "identity", + }, +] +`; + +exports[`Kusama People > setting on-chain identity and requesting judgement should work > identity right after set identity 1`] = ` +{ + "discord": { + "raw": "0x746573745f646973636f7264", + }, + "display": { + "raw": "0x5465737420446973706c6179", + }, + "email": { + "raw": "0x746573745f6164647265737340746573742e696f", + }, + "github": { + "raw": "0x746573745f676974687562", + }, + "image": { + "raw": "0x74657374", + }, + "legal": { + "raw": "0x46697273744e616d65204c6173744e616d65", + }, + "matrix": { + "raw": "0x40746573743a746573745f7365727665722e696f", + }, + "pgpFingerprint": "0x6131623263336434653566366737683869396a31", + "twitter": { + "raw": "0x40746573745f74776974746572", + }, + "web": { + "raw": "0x687474703a2f2f746573742e74652f6d65", + }, +} +`; + +exports[`Kusama People > setting on-chain identity and requesting judgement should work > judgement provision events 1`] = ` +[ + { + "data": { + "registrarIndex": 0, + "target": "HJzQySPFxy81SD4wVMbJvZjJufYV1C8zKEVL7y3h4tbRbyR", + }, + "method": "JudgementGiven", + "section": "identity", + }, +] +`; + +exports[`Kusama People > setting on-chain identity and requesting judgement should work > judgement request events 1`] = ` +[ + { + "data": { + "registrarIndex": 0, + "who": "HJzQySPFxy81SD4wVMbJvZjJufYV1C8zKEVL7y3h4tbRbyR", + }, + "method": "JudgementRequested", + "section": "identity", + }, +] +`; + +exports[`Kusama People > setting on-chain identity and requesting judgement should work > set identity events 1`] = ` +[ + { + "data": { + "who": "HJzQySPFxy81SD4wVMbJvZjJufYV1C8zKEVL7y3h4tbRbyR", + }, + "method": "IdentitySet", + "section": "identity", + }, +] +`; + +exports[`Kusama People > setting on-chain identity, adding sub-identities, removing one, and having another remove itself should work > alice's two subidentities 1`] = ` +[ + "(rounded 13368666620)", + [ + "HJzQySPFxy81SD4wVMbJvZjJufYV1C8zKEVL7y3h4tbRbyR", + "E6wQ1iDTCXykVP58tRC5Dx4oskFR5zkg59EGR8tEjtMKVzY", + ], +] +`; + +exports[`Kusama People > setting on-chain identity, adding sub-identities, removing one, and having another remove itself should work > bob's superaccount data 1`] = ` +[ + "FfmSiZNJP72xtSaXiP2iUhBwWeMEvmjPrxY2ViVkWaeChDC", + { + "raw": "0x626f62", + }, +] +`; + +exports[`Kusama People > setting on-chain identity, adding sub-identities, removing one, and having another remove itself should work > carolus' superaccount data 1`] = ` +[ + "FfmSiZNJP72xtSaXiP2iUhBwWeMEvmjPrxY2ViVkWaeChDC", + { + "raw": "0x6361726f6c7573", + }, +] +`; + +exports[`Kusama People > setting on-chain identity, adding sub-identities, removing one, and having another remove itself should work > charlie's superaccount data 1`] = ` +[ + "FfmSiZNJP72xtSaXiP2iUhBwWeMEvmjPrxY2ViVkWaeChDC", + { + "raw": "0x636861726c6965", + }, +] +`; + +exports[`Kusama People > setting on-chain identity, adding sub-identities, removing one, and having another remove itself should work > quit subidentity events 1`] = ` +[ + { + "data": { + "deposit": "(rounded 6700000000)", + "main": "FfmSiZNJP72xtSaXiP2iUhBwWeMEvmjPrxY2ViVkWaeChDC", + "sub": "HJzQySPFxy81SD4wVMbJvZjJufYV1C8zKEVL7y3h4tbRbyR", + }, + "method": "SubIdentityRevoked", + "section": "identity", + }, +] +`; + +exports[`Kusama People > setting on-chain identity, adding sub-identities, removing one, and having another remove itself should work > remove subidentity events 1`] = ` +[ + { + "data": { + "deposit": "(rounded 6700000000)", + "main": "FfmSiZNJP72xtSaXiP2iUhBwWeMEvmjPrxY2ViVkWaeChDC", + "sub": "E6wQ1iDTCXykVP58tRC5Dx4oskFR5zkg59EGR8tEjtMKVzY", + }, + "method": "SubIdentityRemoved", + "section": "identity", + }, +] +`; + +exports[`Kusama People > setting on-chain identity, adding sub-identities, removing one, and having another remove itself should work > rename subidentity events 1`] = `[]`; + +exports[`Kusama People > setting on-chain identity, adding sub-identities, removing one, and having another remove itself should work > set identity events 1`] = ` +[ + { + "data": { + "who": "FfmSiZNJP72xtSaXiP2iUhBwWeMEvmjPrxY2ViVkWaeChDC", + }, + "method": "IdentitySet", + "section": "identity", + }, +] +`; + +exports[`Kusama People > setting on-chain identity, adding sub-identities, removing one, and having another remove itself should work > set subidentities events 1`] = `[]`; + +exports[`Kusama People > setting on-chain identity, adding sub-identities, removing one, and having another remove itself should work > subidentity data after 1st subid removal 1`] = ` +[ + 6684333309, + [ + "HJzQySPFxy81SD4wVMbJvZjJufYV1C8zKEVL7y3h4tbRbyR", + ], +] +`; + +exports[`Kusama People > setting on-chain identity, requesting judgement, cancelling the request and then clearing the identity should work > cancel judgement events 1`] = ` +[ + { + "data": { + "registrarIndex": 0, + "who": "HJzQySPFxy81SD4wVMbJvZjJufYV1C8zKEVL7y3h4tbRbyR", + }, + "method": "JudgementUnrequested", + "section": "identity", + }, +] +`; + +exports[`Kusama People > setting on-chain identity, requesting judgement, cancelling the request and then clearing the identity should work > clear identity events 1`] = ` +[ + { + "data": { + "deposit": "(rounded 6700000000)", + "who": "HJzQySPFxy81SD4wVMbJvZjJufYV1C8zKEVL7y3h4tbRbyR", + }, + "method": "IdentityCleared", + "section": "identity", + }, +] +`; + +exports[`Kusama People > setting on-chain identity, requesting judgement, cancelling the request and then clearing the identity should work > judgement request events 1`] = ` +[ + { + "data": { + "registrarIndex": 0, + "who": "HJzQySPFxy81SD4wVMbJvZjJufYV1C8zKEVL7y3h4tbRbyR", + }, + "method": "JudgementRequested", + "section": "identity", + }, +] +`; + +exports[`Kusama People > setting on-chain identity, requesting judgement, cancelling the request and then clearing the identity should work > set identity events 1`] = ` +[ + { + "data": { + "who": "HJzQySPFxy81SD4wVMbJvZjJufYV1C8zKEVL7y3h4tbRbyR", + }, + "method": "IdentitySet", + "section": "identity", + }, +] +`; diff --git a/packages/kusama/src/__snapshots__/people.kusama.test.ts.snap b/packages/kusama/src/__snapshots__/people.kusama.test.ts.snap index 9150ce3..07f59b5 100644 --- a/packages/kusama/src/__snapshots__/people.kusama.test.ts.snap +++ b/packages/kusama/src/__snapshots__/people.kusama.test.ts.snap @@ -279,7 +279,7 @@ exports[`kusama & peopleKusama > peopleKusama transfer KSM to kusama > from chai "x1": [ { "accountId32": { - "id": "0xd17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae69", + "id": "0x5e639b43e0052c47447dac87d6fd2b6ec50bdd4d0f614e4299c665249bbd09d9", "network": null, }, }, diff --git a/packages/kusama/src/people.kusama.e2e.test.ts b/packages/kusama/src/people.kusama.e2e.test.ts new file mode 100644 index 0000000..291a0a1 --- /dev/null +++ b/packages/kusama/src/people.kusama.e2e.test.ts @@ -0,0 +1,5 @@ +import { kusama, peopleKusama } from '@e2e-test/networks/chains' + +import { PeopleChain, peopleChainE2ETests } from '@e2e-test/shared' + +peopleChainE2ETests(PeopleChain.Kusama, kusama, peopleKusama) diff --git a/packages/kusama/src/people.kusama.test.ts b/packages/kusama/src/people.kusama.test.ts index 1ff6af3..bb7fb09 100644 --- a/packages/kusama/src/people.kusama.test.ts +++ b/packages/kusama/src/people.kusama.test.ts @@ -1,5 +1,6 @@ import { describe } from 'vitest' +import { defaultAccounts } from '@e2e-test/networks' import { kusama, peopleKusama } from '@e2e-test/networks/chains' import { query, tx } from '@e2e-test/shared/api' import { runXcmPalletDown, runXcmPalletUp } from '@e2e-test/shared/xcm' @@ -16,6 +17,7 @@ describe('kusama & peopleKusama', async () => { fromChain: kusamaClient, toChain: peopleClient, balance: query.balances, + toAccount: defaultAccounts.dave, tx: tx.xcmPallet.teleportAssetsV3(kusamaKSM, 1e12, tx.xcmPallet.parachainV3(0, peopleKusama.paraId!)), } }) @@ -25,6 +27,7 @@ describe('kusama & peopleKusama', async () => { fromChain: peopleClient, toChain: kusamaClient, balance: query.balances, + toAccount: defaultAccounts.dave, tx: tx.xcmPallet.teleportAssetsV3(peopleKSM, 1e12, tx.xcmPallet.relaychainV4), } }) diff --git a/packages/networks/src/chains/people.ts b/packages/networks/src/chains/people.ts index 0eee494..643daa1 100644 --- a/packages/networks/src/chains/people.ts +++ b/packages/networks/src/chains/people.ts @@ -10,9 +10,28 @@ const custom = { }, } +const aliceRegistrar = { + account: defaultAccounts.alice.address, + fee: 1, + fields: 0, +} + +const bobRegistrar = { + account: defaultAccounts.bob.address, + fee: 0, + fields: 0, +} + const getInitStorages = (_config: typeof custom.peoplePolkadot | typeof custom.peopleKusama) => ({ System: { - account: [[[defaultAccounts.alice.address], { providers: 1, data: { free: 1000e10 } }]], + account: [ + [[defaultAccounts.alice.address], { providers: 1, data: { free: 1000e10 } }], + [[defaultAccounts.bob.address], { providers: 1, data: { free: 1000e10 } }], + ], + }, + // Registrars to be used in E2E tests - required to test `RegistrarOrigin`-locked extrinsics. + Identity: { + Registrars: [aliceRegistrar, bobRegistrar], }, }) diff --git a/packages/networks/src/chains/polkadot.ts b/packages/networks/src/chains/polkadot.ts index 1bd90a3..825c327 100644 --- a/packages/networks/src/chains/polkadot.ts +++ b/packages/networks/src/chains/polkadot.ts @@ -15,11 +15,11 @@ const getInitStorages = () => ({ Account: [[[defaultAccounts.alice.address], { providers: 1, data: { free: 10 * 1e12 } }]], }, ParasDisputes: { - // those can makes block building super slow + // these can makes block building super slow $removePrefix: ['disputes'], }, Dmp: { - // clear existing dmp to avoid impact test result + // clear existing dmp to avoid impacting test result $removePrefix: ['downwardMessageQueues'], }, }) diff --git a/packages/polkadot/src/__snapshots__/people.polkadot.e2e.test.ts.snap b/packages/polkadot/src/__snapshots__/people.polkadot.e2e.test.ts.snap new file mode 100644 index 0000000..b7704c2 --- /dev/null +++ b/packages/polkadot/src/__snapshots__/people.polkadot.e2e.test.ts.snap @@ -0,0 +1,391 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`Polkadot People > adding a registrar as root from the relay chain works > call add registrar with wrong origin 1`] = ` +[ + { + "data": { + "dispatchError": "BadOrigin", + "dispatchInfo": { + "class": "Normal", + "paysFee": "Yes", + "weight": { + "proofSize": "(rounded 2600)", + "refTime": "(rounded 240000000)", + }, + }, + }, + "method": "ExtrinsicFailed", + "section": "system", + }, +] +`; + +exports[`Polkadot People > adding a registrar as root from the relay chain works > registrars after parachain block 1`] = ` +[ + { + "account": "146SvjUZXoMaemdeiecyxgALeYMm8ZWh1yrGo8RtpoPfe7WL", + "fee": 1, + "fields": 0, + }, + { + "account": "15jftzMaVPDfhKQ98RbYZ82t1wNxNdw6cS8E6kgSmMhcrxVz", + "fee": 0, + "fields": 0, + }, + { + "account": "12Xct2dQgcnXSNa9Kpf9KRRDWuTfJijiJC2y33rHK2hNkmUE", + "fee": 0, + "fields": 0, + }, +] +`; + +exports[`Polkadot People > adding a registrar as root from the relay chain works > registrars after relay block 1`] = ` +[ + { + "account": "146SvjUZXoMaemdeiecyxgALeYMm8ZWh1yrGo8RtpoPfe7WL", + "fee": 1, + "fields": 0, + }, + { + "account": "15jftzMaVPDfhKQ98RbYZ82t1wNxNdw6cS8E6kgSmMhcrxVz", + "fee": 0, + "fields": 0, + }, +] +`; + +exports[`Polkadot People > adding a registrar as root from the relay chain works > registrars before relay block 1`] = ` +[ + { + "account": "146SvjUZXoMaemdeiecyxgALeYMm8ZWh1yrGo8RtpoPfe7WL", + "fee": 1, + "fields": 0, + }, + { + "account": "15jftzMaVPDfhKQ98RbYZ82t1wNxNdw6cS8E6kgSmMhcrxVz", + "fee": 0, + "fields": 0, + }, +] +`; + +exports[`Polkadot People > setting an on-chain identity, requesting 2 judgements, having 1 provided, and then resetting the identity should work > double judgment request events 1`] = ` +[ + { + "data": { + "registrarIndex": 0, + "who": "1gKv3Sj4RGmqbd411Gsg81j4iEGZzGdqiywgEpizx3bhddE", + }, + "method": "JudgementRequested", + "section": "identity", + }, + { + "data": { + "registrarIndex": 1, + "who": "1gKv3Sj4RGmqbd411Gsg81j4iEGZzGdqiywgEpizx3bhddE", + }, + "method": "JudgementRequested", + "section": "identity", + }, +] +`; + +exports[`Polkadot People > setting an on-chain identity, requesting 2 judgements, having 1 provided, and then resetting the identity should work > eve's judgements after one has been provided 1`] = ` +[ + [ + 0, + { + "reasonable": null, + }, + ], + [ + 1, + { + "feePaid": 0, + }, + ], +] +`; + +exports[`Polkadot People > setting an on-chain identity, requesting 2 judgements, having 1 provided, and then resetting the identity should work > identity right after set identity 1`] = ` +{ + "discord": { + "raw": "0x746573745f646973636f7264", + }, + "display": { + "raw": "0x5465737420446973706c6179", + }, + "email": { + "raw": "0x746573745f6164647265737340746573742e696f", + }, + "github": { + "raw": "0x746573745f676974687562", + }, + "image": { + "raw": "0x74657374", + }, + "legal": { + "raw": "0x46697273744e616d65204c6173744e616d65", + }, + "matrix": { + "raw": "0x40746573743a746573745f7365727665722e696f", + }, + "pgpFingerprint": "0x6131623263336434653566366737683869396a31", + "twitter": { + "raw": "0x40746573745f74776974746572", + }, + "web": { + "raw": "0x687474703a2f2f746573742e74652f6d65", + }, +} +`; + +exports[`Polkadot People > setting an on-chain identity, requesting 2 judgements, having 1 provided, and then resetting the identity should work > judgement provision events 1`] = ` +[ + { + "data": { + "registrarIndex": 0, + "target": "1gKv3Sj4RGmqbd411Gsg81j4iEGZzGdqiywgEpizx3bhddE", + }, + "method": "JudgementGiven", + "section": "identity", + }, +] +`; + +exports[`Polkadot People > setting an on-chain identity, requesting 2 judgements, having 1 provided, and then resetting the identity should work > set identity events 1`] = ` +[ + { + "data": { + "who": "1gKv3Sj4RGmqbd411Gsg81j4iEGZzGdqiywgEpizx3bhddE", + }, + "method": "IdentitySet", + "section": "identity", + }, +] +`; + +exports[`Polkadot People > setting an on-chain identity, requesting 2 judgements, having 1 provided, and then resetting the identity should work > set identity twice events 1`] = ` +[ + { + "data": { + "who": "1gKv3Sj4RGmqbd411Gsg81j4iEGZzGdqiywgEpizx3bhddE", + }, + "method": "IdentitySet", + "section": "identity", + }, +] +`; + +exports[`Polkadot People > setting on-chain identity and requesting judgement should work > identity right after set identity 1`] = ` +{ + "discord": { + "raw": "0x746573745f646973636f7264", + }, + "display": { + "raw": "0x5465737420446973706c6179", + }, + "email": { + "raw": "0x746573745f6164647265737340746573742e696f", + }, + "github": { + "raw": "0x746573745f676974687562", + }, + "image": { + "raw": "0x74657374", + }, + "legal": { + "raw": "0x46697273744e616d65204c6173744e616d65", + }, + "matrix": { + "raw": "0x40746573743a746573745f7365727665722e696f", + }, + "pgpFingerprint": "0x6131623263336434653566366737683869396a31", + "twitter": { + "raw": "0x40746573745f74776974746572", + }, + "web": { + "raw": "0x687474703a2f2f746573742e74652f6d65", + }, +} +`; + +exports[`Polkadot People > setting on-chain identity and requesting judgement should work > judgement provision events 1`] = ` +[ + { + "data": { + "registrarIndex": 0, + "target": "15jftzMaVPDfhKQ98RbYZ82t1wNxNdw6cS8E6kgSmMhcrxVz", + }, + "method": "JudgementGiven", + "section": "identity", + }, +] +`; + +exports[`Polkadot People > setting on-chain identity and requesting judgement should work > judgement request events 1`] = ` +[ + { + "data": { + "registrarIndex": 0, + "who": "15jftzMaVPDfhKQ98RbYZ82t1wNxNdw6cS8E6kgSmMhcrxVz", + }, + "method": "JudgementRequested", + "section": "identity", + }, +] +`; + +exports[`Polkadot People > setting on-chain identity and requesting judgement should work > set identity events 1`] = ` +[ + { + "data": { + "who": "15jftzMaVPDfhKQ98RbYZ82t1wNxNdw6cS8E6kgSmMhcrxVz", + }, + "method": "IdentitySet", + "section": "identity", + }, +] +`; + +exports[`Polkadot People > setting on-chain identity, adding sub-identities, removing one, and having another remove itself should work > alice's two subidentities 1`] = ` +[ + 4010600000, + [ + "15jftzMaVPDfhKQ98RbYZ82t1wNxNdw6cS8E6kgSmMhcrxVz", + "12Xct2dQgcnXSNa9Kpf9KRRDWuTfJijiJC2y33rHK2hNkmUE", + ], +] +`; + +exports[`Polkadot People > setting on-chain identity, adding sub-identities, removing one, and having another remove itself should work > bob's superaccount data 1`] = ` +[ + "146SvjUZXoMaemdeiecyxgALeYMm8ZWh1yrGo8RtpoPfe7WL", + { + "raw": "0x626f62", + }, +] +`; + +exports[`Polkadot People > setting on-chain identity, adding sub-identities, removing one, and having another remove itself should work > carolus' superaccount data 1`] = ` +[ + "146SvjUZXoMaemdeiecyxgALeYMm8ZWh1yrGo8RtpoPfe7WL", + { + "raw": "0x6361726f6c7573", + }, +] +`; + +exports[`Polkadot People > setting on-chain identity, adding sub-identities, removing one, and having another remove itself should work > charlie's superaccount data 1`] = ` +[ + "146SvjUZXoMaemdeiecyxgALeYMm8ZWh1yrGo8RtpoPfe7WL", + { + "raw": "0x636861726c6965", + }, +] +`; + +exports[`Polkadot People > setting on-chain identity, adding sub-identities, removing one, and having another remove itself should work > quit subidentity events 1`] = ` +[ + { + "data": { + "deposit": "(rounded 2000000000)", + "main": "146SvjUZXoMaemdeiecyxgALeYMm8ZWh1yrGo8RtpoPfe7WL", + "sub": "15jftzMaVPDfhKQ98RbYZ82t1wNxNdw6cS8E6kgSmMhcrxVz", + }, + "method": "SubIdentityRevoked", + "section": "identity", + }, +] +`; + +exports[`Polkadot People > setting on-chain identity, adding sub-identities, removing one, and having another remove itself should work > remove subidentity events 1`] = ` +[ + { + "data": { + "deposit": "(rounded 2000000000)", + "main": "146SvjUZXoMaemdeiecyxgALeYMm8ZWh1yrGo8RtpoPfe7WL", + "sub": "12Xct2dQgcnXSNa9Kpf9KRRDWuTfJijiJC2y33rHK2hNkmUE", + }, + "method": "SubIdentityRemoved", + "section": "identity", + }, +] +`; + +exports[`Polkadot People > setting on-chain identity, adding sub-identities, removing one, and having another remove itself should work > rename subidentity events 1`] = `[]`; + +exports[`Polkadot People > setting on-chain identity, adding sub-identities, removing one, and having another remove itself should work > set identity events 1`] = ` +[ + { + "data": { + "who": "146SvjUZXoMaemdeiecyxgALeYMm8ZWh1yrGo8RtpoPfe7WL", + }, + "method": "IdentitySet", + "section": "identity", + }, +] +`; + +exports[`Polkadot People > setting on-chain identity, adding sub-identities, removing one, and having another remove itself should work > set subidentities events 1`] = `[]`; + +exports[`Polkadot People > setting on-chain identity, adding sub-identities, removing one, and having another remove itself should work > subidentity data after 1st subid removal 1`] = ` +[ + 2005300000, + [ + "15jftzMaVPDfhKQ98RbYZ82t1wNxNdw6cS8E6kgSmMhcrxVz", + ], +] +`; + +exports[`Polkadot People > setting on-chain identity, requesting judgement, cancelling the request and then clearing the identity should work > cancel judgement events 1`] = ` +[ + { + "data": { + "registrarIndex": 0, + "who": "15jftzMaVPDfhKQ98RbYZ82t1wNxNdw6cS8E6kgSmMhcrxVz", + }, + "method": "JudgementUnrequested", + "section": "identity", + }, +] +`; + +exports[`Polkadot People > setting on-chain identity, requesting judgement, cancelling the request and then clearing the identity should work > clear identity events 1`] = ` +[ + { + "data": { + "deposit": "(rounded 2000000000)", + "who": "15jftzMaVPDfhKQ98RbYZ82t1wNxNdw6cS8E6kgSmMhcrxVz", + }, + "method": "IdentityCleared", + "section": "identity", + }, +] +`; + +exports[`Polkadot People > setting on-chain identity, requesting judgement, cancelling the request and then clearing the identity should work > judgement request events 1`] = ` +[ + { + "data": { + "registrarIndex": 0, + "who": "15jftzMaVPDfhKQ98RbYZ82t1wNxNdw6cS8E6kgSmMhcrxVz", + }, + "method": "JudgementRequested", + "section": "identity", + }, +] +`; + +exports[`Polkadot People > setting on-chain identity, requesting judgement, cancelling the request and then clearing the identity should work > set identity events 1`] = ` +[ + { + "data": { + "who": "15jftzMaVPDfhKQ98RbYZ82t1wNxNdw6cS8E6kgSmMhcrxVz", + }, + "method": "IdentitySet", + "section": "identity", + }, +] +`; diff --git a/packages/polkadot/src/__snapshots__/people.polkadot.test.ts.snap b/packages/polkadot/src/__snapshots__/people.polkadot.test.ts.snap index 40e6dfe..cf1e54f 100644 --- a/packages/polkadot/src/__snapshots__/people.polkadot.test.ts.snap +++ b/packages/polkadot/src/__snapshots__/people.polkadot.test.ts.snap @@ -82,7 +82,7 @@ exports[`polkadot & peoplePolkadot > peoplePolkadot transfer DOT to polkadot > f "x1": [ { "accountId32": { - "id": "0xd17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae69", + "id": "0x5e639b43e0052c47447dac87d6fd2b6ec50bdd4d0f614e4299c665249bbd09d9", "network": null, }, }, diff --git a/packages/polkadot/src/people.polkadot.e2e.test.ts b/packages/polkadot/src/people.polkadot.e2e.test.ts new file mode 100644 index 0000000..839d8f1 --- /dev/null +++ b/packages/polkadot/src/people.polkadot.e2e.test.ts @@ -0,0 +1,5 @@ +import { peoplePolkadot, polkadot } from '@e2e-test/networks/chains' + +import { PeopleChain, peopleChainE2ETests } from '@e2e-test/shared' + +peopleChainE2ETests(PeopleChain.Polkadot, polkadot, peoplePolkadot) diff --git a/packages/polkadot/src/people.polkadot.test.ts b/packages/polkadot/src/people.polkadot.test.ts index 5658510..37e48c6 100644 --- a/packages/polkadot/src/people.polkadot.test.ts +++ b/packages/polkadot/src/people.polkadot.test.ts @@ -1,5 +1,6 @@ import { describe } from 'vitest' +import { defaultAccounts } from '@e2e-test/networks' import { peoplePolkadot, polkadot } from '@e2e-test/networks/chains' import { query, tx } from '@e2e-test/shared/api' import { runXcmPalletDown, runXcmPalletUp } from '@e2e-test/shared/xcm' @@ -16,6 +17,7 @@ describe('polkadot & peoplePolkadot', async () => { fromChain: polkadotClient, toChain: peopleClient, balance: query.balances, + toAccount: defaultAccounts.dave, tx: tx.xcmPallet.teleportAssetsV3(polkadotDOT, 1e12, tx.xcmPallet.parachainV3(0, peoplePolkadot.paraId!)), } }) @@ -25,6 +27,7 @@ describe('polkadot & peoplePolkadot', async () => { fromChain: peopleClient, toChain: polkadotClient, balance: query.balances, + toAccount: defaultAccounts.dave, tx: tx.xcmPallet.teleportAssetsV3(peopleDOT, 1e12, tx.xcmPallet.relaychainV4), } }) diff --git a/packages/shared/package.json b/packages/shared/package.json index 804429b..196c18a 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -2,9 +2,12 @@ "name": "@e2e-test/shared", "type": "module", "dependencies": { + "@acala-network/chopsticks": "^0.16.0", "@acala-network/chopsticks-testing": "^0.16.0", "@e2e-test/networks": "workspace:*", - "@polkadot/api": "^12.4.2" + "@polkadot/api": "^12.4.2", + "@polkadot/types": "12.4.2", + "@polkadot/types-augment": "^12.4.2" }, "main": "./dist/cjs/index.js", "module": "./dist/esm/index.js", diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts index 9406077..6913a13 100644 --- a/packages/shared/src/index.ts +++ b/packages/shared/src/index.ts @@ -1 +1,3 @@ export * from './setup.js' + +export * from './people-chains.js' diff --git a/packages/shared/src/people-chains.ts b/packages/shared/src/people-chains.ts new file mode 100644 index 0000000..531f4a3 --- /dev/null +++ b/packages/shared/src/people-chains.ts @@ -0,0 +1,776 @@ +/** + * Utilities for people chain tests - both Polkadot and Kusama. + * + * Tests are defined here, parametrized over relay/parachain datatypes, and each corresponding + * implementing module can then instantiates tests with the appropriate chains inside a `describe`. + * + * Also contains helpers used in those tests. + * @module + */ + +import { assert, describe, test } from 'vitest' + +import { StorageValues } from '@acala-network/chopsticks' +import { sendTransaction } from '@acala-network/chopsticks-testing' + +import { Chain, defaultAccounts } from '@e2e-test/networks' + +import { ApiPromise } from '@polkadot/api' +import { PalletIdentityLegacyIdentityInfo, PalletIdentityRegistration } from '@polkadot/types/lookup' +import { encodeAddress } from '@polkadot/util-crypto' +import { u128 } from '@polkadot/types' + +import { check, checkEvents } from './helpers/index.js' +import { setupNetworks } from './setup.js' + +/** + * Example identity to be used in tests. + */ +const identity = { + email: { Raw: 'test_address@test.io' }, + legal: { Raw: 'FirstName LastName' }, + matrix: { Raw: '@test:test_server.io' }, + twitter: { Raw: '@test_twitter' }, + github: { Raw: 'test_github' }, + discord: { Raw: 'test_discord' }, + web: { Raw: 'http://test.te/me' }, + image: { Raw: 'test' }, + display: { Raw: 'Test Display' }, + pgpFingerprint: 'a1b2c3d4e5f6g7h8i9j1', +} + +/** + * Test the process of + * 1. setting an identity, + * 2. requesting a judgement, + * 3. providing it from the previously queried registrar + * 4. verifying the state of on-chain data + * + * @param peopleChain People parachain where the entire process is run. + */ +export async function setIdentityThenRequestAndProvideJudgement< + TCustom extends Record | undefined, + TInitStorages extends Record> | undefined, +>(peopleChain: Chain) { + const [peopleClient] = await setupNetworks(peopleChain) + + const querier = peopleClient.api.query + const txApi = peopleClient.api.tx + + /** + * Set Bob's on-chain identity + */ + + const setIdTx = txApi.identity.setIdentity(identity) + const setIdEvents = await sendTransaction(setIdTx.signAsync(defaultAccounts.bob)) + + await peopleClient.chain.newBlock() + + await checkEvents(setIdEvents, 'identity').toMatchSnapshot('set identity events') + + const identityInfoReply = await querier.identity.identityOf(defaultAccounts.bob.address) + assert(identityInfoReply.isSome, 'Failed to query set identity') + const registrationInfo: PalletIdentityRegistration = identityInfoReply.unwrap()[0] + const registrationIdentityInfo: PalletIdentityLegacyIdentityInfo = registrationInfo.info + + check(registrationIdentityInfo).toMatchSnapshot('identity right after set identity') + + // Quick sanity check - in the previous line, the fetched identity is compared versus the previous + // test run's snapshot, whereas now it is compared to the actual JS object defined above. + check(registrationIdentityInfo.toHuman()).toMatchObject(identity) + check(registrationInfo.judgements).toMatchObject([]) + + /** + * Request a judgement on identity that was just set + */ + + // Recall that, in the people chain's test storage, Alice is the 0th registrar. + const reqJudgTx = txApi.identity.requestJudgement(0, 1) + const reqJudgEvents = await sendTransaction(reqJudgTx.signAsync(defaultAccounts.bob)) + + await peopleClient.chain.newBlock() + + /** + * Compare pre and post-request identity information + */ + + await checkEvents(reqJudgEvents, 'identity').toMatchSnapshot('judgement request events') + + const provisionalIdentityInfoReply = await querier.identity.identityOf(defaultAccounts.bob.address) + assert(provisionalIdentityInfoReply.isSome, 'Failed to query identity after judgement') + const provisionalRegistrationInfo = provisionalIdentityInfoReply.unwrap()[0] + + const provisionalIdentityInfo: PalletIdentityLegacyIdentityInfo = provisionalRegistrationInfo.info + + // The only identity object compared versus the origin `const identity` is the one queried + // after registration. + // That is also the only identity written to the test's snapshot. + // At the point of judgement request and beyond, the latest identity fetched from chain can be + // compared with the previously fetched identity, establishing a chain of equalities. + check(provisionalIdentityInfo.toJSON()).toMatchObject(registrationIdentityInfo.toJSON()) + check(provisionalRegistrationInfo.judgements).toMatchObject([ + [ + 0, + { + feePaid: 1, + }, + ], + ]) + + /** + * Provide a judgement on the previous request + */ + + const provJudgTx = txApi.identity.provideJudgement( + 0, + defaultAccounts.bob.address, + 'Reasonable', + registrationIdentityInfo.hash.toHex(), + ) + const provJudgEvents = await sendTransaction(provJudgTx.signAsync(defaultAccounts.alice)) + + await peopleClient.chain.newBlock() + + /** + * Compare pre and post-judgement identity information. + */ + + await checkEvents(provJudgEvents, 'identity').toMatchSnapshot('judgement provision events') + + const judgedIdentityInfoReply = await querier.identity.identityOf(defaultAccounts.bob.address) + assert(judgedIdentityInfoReply.isSome, 'Failed to query identity after judgement') + const judgedRegistrationInfo = judgedIdentityInfoReply.unwrap()[0] + + const judgedIdentityInfo: PalletIdentityLegacyIdentityInfo = judgedRegistrationInfo.info + await check(judgedIdentityInfo.toJSON()).toMatchObject(provisionalIdentityInfo.toJSON()) + check(judgedRegistrationInfo.judgements).toMatchObject([ + [ + 0, + { + reasonable: null, + }, + ], + ]) +} + +/** + * Test the process of + * 1. setting an identity, + * 2. requesting a judgement to one registrar, and have it provided as Reasonable + * 3. requesting a judgement from another registrar, without it being provided + * 4. reset one's identity + * 5. check that the only the pending judgement remains + * + * @param peopleChain People parachain where the entire process is run. + */ +export async function setIdentityRequestJudgementTwiceThenResetIdentity< + TCustom extends Record | undefined, + TInitStorages extends Record> | undefined, +>(peopleChain: Chain) { + const [peopleClient] = await setupNetworks(peopleChain) + + const querier = peopleClient.api.query + const txApi = peopleClient.api.tx + + /** + * Set Eve's on-chain identity + */ + + await peopleClient.dev.setStorage({ + System: { + account: [[[defaultAccounts.eve.address], { providers: 1, data: { free: 1e10 } }]], + }, + }) + + let setIdTx = txApi.identity.setIdentity(identity) + let setIdEvents = await sendTransaction(setIdTx.signAsync(defaultAccounts.eve)) + + await peopleClient.chain.newBlock() + + await checkEvents(setIdEvents, 'identity').toMatchSnapshot('set identity events') + + const identityInfoReply = await querier.identity.identityOf(defaultAccounts.eve.address) + assert(identityInfoReply.isSome, 'Failed to query set identity') + const registrationInfo: PalletIdentityRegistration = identityInfoReply.unwrap()[0] + + const identityInfo = registrationInfo.info + await check(registrationInfo.info).toMatchSnapshot('identity right after set identity') + + /** + * Request judgements on identity that was just set + */ + + // Recall that, in the people chain's test storage, Alice is the 0th registrar, and Bob is the + // 1st. Alice has a fee of 1 unit, Bob of 0. + const reqJudgAliceTx = txApi.identity.requestJudgement(0, 1) + const reqJudgBobTx = txApi.identity.requestJudgement(1, 0) + + // Batch txs to request 2 judgements in 1 tx + const batchedTx = peopleClient.api.tx.utility.batchAll([reqJudgAliceTx.method.toHex(), reqJudgBobTx.method.toHex()]) + const batchedEvents = await sendTransaction(batchedTx.signAsync(defaultAccounts.eve)) + + await peopleClient.chain.newBlock() + + await checkEvents(batchedEvents, 'identity').toMatchSnapshot('double judgment request events') + + /** + * Provide a judgement on Eve's request + */ + + const provJudgTx = txApi.identity.provideJudgement( + 0, + defaultAccounts.eve.address, + 'Reasonable', + identityInfo.hash.toHex(), + ) + const provJudgEvents = await sendTransaction(provJudgTx.signAsync(defaultAccounts.alice)) + + await peopleClient.chain.newBlock() + + checkEvents(provJudgEvents, 'identity').toMatchSnapshot('judgement provision events') + + /** + * Compare pre and post-judgement identity information. + */ + + const judgedIdentityInfoReply = await querier.identity.identityOf(defaultAccounts.eve.address) + assert(judgedIdentityInfoReply.isSome, 'Failed to query identity after judgement') + const judgedRegistrationInfo = judgedIdentityInfoReply.unwrap()[0] + const judgedIdentityInfo: PalletIdentityLegacyIdentityInfo = judgedRegistrationInfo.info + + await check(judgedIdentityInfo.toHuman()).toMatchObject(identity) + + assert(identityInfo.eq(judgedIdentityInfo), 'Identity information changed after judgement') + check(judgedRegistrationInfo.judgements).toMatchSnapshot("eve's judgements after one has been provided") + check(judgedRegistrationInfo.judgements.sort()).toMatchObject([ + [ + 0, + { + reasonable: null, + }, + ], + [ + 1, + { + feePaid: 0, + }, + ], + ]) + + /** + * Reset Eve's identity + */ + + // It is acceptable to use the same identity as before - what matters is the submission of an + // `set_identity` extrinsic. + setIdTx = txApi.identity.setIdentity(identity) + setIdEvents = await sendTransaction(setIdTx.signAsync(defaultAccounts.eve)) + + await peopleClient.chain.newBlock() + + await checkEvents(setIdEvents, 'identity').toMatchSnapshot('set identity twice events') + + /** + * Requery judgement data + */ + + const resetIdentityInfoReply = await querier.identity.identityOf(defaultAccounts.eve.address) + assert(resetIdentityInfoReply.isSome, 'Failed to query identity after new identity request') + const resetRegistrationInfo = resetIdentityInfoReply.unwrap()[0] + const resetIdentityInfo: PalletIdentityLegacyIdentityInfo = resetRegistrationInfo.info + + await check(resetIdentityInfo.toJSON()).toMatchObject(judgedIdentityInfo.toJSON()) + + await check(resetRegistrationInfo.judgements).toMatchObject([ + [ + 1, + { + feePaid: 0, + }, + ], + ]) +} + +/** + * Test the process of + * 1. setting an identity, + * 2. requesting a judgement, + * 3. cancelling the previous request, and + * 4. clearing the identity + * + * @param peopleChain People parachain where the entire process is run. + */ +export async function setIdentityThenRequesThenCancelThenClear< + TCustom extends Record | undefined, + TInitStorages extends Record> | undefined, +>(peopleChain: Chain) { + const [peopleClient] = await setupNetworks(peopleChain) + + const querier = peopleClient.api.query + const txApi = peopleClient.api.tx + + /** + * Set Bob's on-chain identity + */ + + const setIdTx = txApi.identity.setIdentity(identity) + const setIdEvents = await sendTransaction(setIdTx.signAsync(defaultAccounts.bob)) + + await peopleClient.chain.newBlock() + + await checkEvents(setIdEvents, 'identity').toMatchSnapshot('set identity events') + + const identityInfoReply = await querier.identity.identityOf(defaultAccounts.bob.address) + assert(identityInfoReply.isSome, 'Failed to query set identity') + const registrationInfo: PalletIdentityRegistration = identityInfoReply.unwrap()[0] + + await check(registrationInfo.judgements).toMatchObject([]) + + /** + * Request a judgement on identity that was just set + */ + + const reqJudgTx = txApi.identity.requestJudgement(0, 1) + const reqJudgEvents = await sendTransaction(reqJudgTx.signAsync(defaultAccounts.bob)) + + await peopleClient.chain.newBlock() + + await checkEvents(reqJudgEvents, 'identity').toMatchSnapshot('judgement request events') + + /** + * Check post-request identity state + */ + + const provisionalIdentityInfoReply = await querier.identity.identityOf(defaultAccounts.bob.address) + assert(provisionalIdentityInfoReply.isSome, 'Failed to query identity after judgement') + const provisionalRegistrationInfo = provisionalIdentityInfoReply.unwrap()[0] + + // Recall that Alice is the 0th registrar, with a minimum fee of 1. + await check(provisionalRegistrationInfo.judgements.toJSON()).toMatchObject([ + [ + 0, + { + feePaid: 1, + }, + ], + ]) + + /** + * Cancel the previous judgement request + */ + + const cancelJudgTx = txApi.identity.cancelRequest(0) + const cancelJudgEvents = await sendTransaction(cancelJudgTx.signAsync(defaultAccounts.bob)) + + await peopleClient.chain.newBlock() + + await checkEvents(cancelJudgEvents, 'identity').toMatchSnapshot('cancel judgement events') + + const newIdentityInfoReply = await querier.identity.identityOf(defaultAccounts.bob.address) + assert(newIdentityInfoReply.isSome, 'Failed to query identity after judgement cancellation') + const newRegistrationInfo: PalletIdentityRegistration = newIdentityInfoReply.unwrap()[0] + + await check(newRegistrationInfo.judgements.toJSON()).toMatchObject([]) + + /** + * Clear the tentatively set identity + */ + + const clearIdTx = txApi.identity.clearIdentity() + const clearIdEvents = await sendTransaction(clearIdTx.signAsync(defaultAccounts.bob)) + + await peopleClient.chain.newBlock() + + await checkEvents(clearIdEvents, 'identity').toMatchSnapshot('clear identity events') + + const identityInfoNullReply = await querier.identity.identityOf(defaultAccounts.bob.address) + assert(identityInfoNullReply.isNone, "Bob's identity should be empty after it is cleared") +} + +/** + * Test the process of + * 1. setting an identity, + * 2. having 2 other identities become that identity's subidentities, + * 3. removing one identity through the supraidentity + * 4. having another subidentity remove itself + * + * @param peopleChain People parachain where the entire process is run. + * @param addressEncoding The network's required address encoding. See https://github.com/paritytech/ss58-registry/blob/main/ss58-registry.json + */ +export async function setIdentityThenAddSubsThenRemove< + TCustom extends Record | undefined, + TInitStorages extends Record> | undefined, +>(peopleChain: Chain, addressEncoding: number) { + const [peopleClient] = await setupNetworks(peopleChain) + + const querier = peopleClient.api.query + const txApi = peopleClient.api.tx + + /** + * Set Alice and Bob's on-chain identites + */ + + const setIdTx = txApi.identity.setIdentity(identity) + const setIdEvents = await sendTransaction(setIdTx.signAsync(defaultAccounts.alice)) + + await peopleClient.chain.newBlock() + + await checkEvents(setIdEvents, 'identity').toMatchSnapshot('set identity events') + + /** + * Add Bob and Charlie as subidentities of Alice + */ + + const setSubsTx = txApi.identity.setSubs([ + [defaultAccounts.bob.address, { Raw: 'bob' }], + [defaultAccounts.charlie.address, { Raw: 'charlie' }], + ]) + const setSubsEvents = await sendTransaction(setSubsTx.signAsync(defaultAccounts.alice)) + + // Withouth a second block being mined, the `setSubs` extrinsic will not take effect. + await peopleClient.dev.newBlock({ count: 1 }) + + // `pallet_identity::set_subs` does not emit any events at the moment (Oct 2024), so this will + // be empty in the snapshot. + await checkEvents(setSubsEvents, 'identity').toMatchSnapshot('set subidentities events') + + /** + * Check Alice, Bob and Charlie's statuses regarding sub/super identities + */ + + let aliceSubData = await querier.identity.subsOf(defaultAccounts.alice.address) + const doubleIdDepositAmnt: u128 = aliceSubData[0] + + await check(aliceSubData).redact({ number: 10 }).toMatchSnapshot("alice's two subidentities") + await check(aliceSubData[1]).toMatchObject([ + encodeAddress(defaultAccounts.bob.address, addressEncoding), + encodeAddress(defaultAccounts.charlie.address, addressEncoding), + ]) + + let bobSuperData = await querier.identity.superOf(defaultAccounts.bob.address) + await check(bobSuperData).toMatchSnapshot("bob's superaccount data") + assert(bobSuperData.isSome) + await check(bobSuperData.unwrap().toJSON()).toMatchObject([ + encodeAddress(defaultAccounts.alice.publicKey, addressEncoding), + // 'bob' in hex + { raw: '0x626f62' }, + ]) + + let charlieSuperData = await querier.identity.superOf(defaultAccounts.charlie.address) + await check(charlieSuperData).toMatchSnapshot("charlie's superaccount data") + assert(charlieSuperData.isSome) + await check(charlieSuperData.unwrap().toJSON()).toMatchObject([ + encodeAddress(defaultAccounts.alice.publicKey, addressEncoding), + // 'charlie' in hex + { raw: '0x636861726c6965' }, + ]) + + /** + * Rename Charles' subidentity (as Alice) + */ + + const renameSubTx = txApi.identity.renameSub(defaultAccounts.charlie.address, { Raw: 'carolus' }) + const renameSubEvents = await sendTransaction(renameSubTx.signAsync(defaultAccounts.alice)) + + await peopleClient.dev.newBlock({ count: 1 }) + + await checkEvents(renameSubEvents, 'identity').toMatchSnapshot('rename subidentity events') + + charlieSuperData = await querier.identity.superOf(defaultAccounts.charlie.address) + // `pallet_identity::rename_sub` does not emit any events at the moment (Oct 2024), so this will + // be empty in the snapshot. + await check(charlieSuperData).toMatchSnapshot("carolus' superaccount data") + + assert(charlieSuperData.isSome) + await check(charlieSuperData.unwrap().toJSON()).toMatchObject([ + encodeAddress(defaultAccounts.alice.publicKey, addressEncoding), + // 'carolus' in hex + { raw: '0x6361726f6c7573' }, + ]) + + /** + * As Alice, remove Charlie as a subidentity + */ + + const removeSubTx = txApi.identity.removeSub(defaultAccounts.charlie.address) + const removeSubEvents = await sendTransaction(removeSubTx.signAsync(defaultAccounts.alice)) + + await peopleClient.dev.newBlock({ count: 1 }) + + await checkEvents(removeSubEvents, 'identity').toMatchSnapshot('remove subidentity events') + + aliceSubData = await querier.identity.subsOf(defaultAccounts.alice.address) + await check(aliceSubData).redact({ number: 10 }).toMatchSnapshot('subidentity data after 1st subid removal') + assert(aliceSubData[0].lt(doubleIdDepositAmnt), "After removing one subidentity, the other's deposit should remain") + await check(aliceSubData[1]).toMatchObject([encodeAddress(defaultAccounts.bob.address, addressEncoding)]) + + charlieSuperData = await querier.identity.superOf(defaultAccounts.charlie.address) + assert(charlieSuperData.isNone, 'Charlie should no longer have a supraidentity') + + /** + * As Bob, remove oneself from Alice's subidentities + */ + + const quitSubTx = txApi.identity.quitSub() + const quitSubEvents = await sendTransaction(quitSubTx.signAsync(defaultAccounts.bob)) + + await peopleClient.dev.newBlock({ count: 1 }) + + await checkEvents(quitSubEvents, 'identity').toMatchSnapshot('quit subidentity events') + + aliceSubData = await querier.identity.subsOf(defaultAccounts.alice.address) + await check(aliceSubData).toMatchObject([0, []]) + + bobSuperData = await querier.identity.superOf(defaultAccounts.bob.address) + await check(bobSuperData.toJSON()).toMatchObject(null, 'Bob should no longer have a supraidentity') +} + +/** + * Test the process of adding a registrar to a people's parachain. + * + * It uses the parachain's relay to send an XCM message forcing execution of the normally gated + * `addRegistrar` call as `SuperUser`. + * + * @param relayChain Relay chain on which the test will be run: Polkadot or Kusama. + * Must have `xcmpPallet` available. + * @param peopleChain People parachain whose registrars will be modified and asserted upon. + */ +export async function addRegistrarViaRelayAsRoot< + TCustom extends Record | undefined, + TInitStoragesRelay extends Record> | undefined, + TInitStoragesPara extends Record> | undefined, +>( + relayChain: Chain, + peopleChain: Chain, + addressEncoding: number, +) { + /** + * Setup relay and parachain clients + */ + + const [relayClient, peopleClient] = await setupNetworks(relayChain, peopleChain) + + /** + * Executing extrinsic with wrong origin + */ + + await peopleClient.dev.setStorage({ + System: { + account: [[[defaultAccounts.charlie.address], { providers: 1, data: { free: 1e10 } }]], + }, + }) + + const addRegistrarTx = peopleClient.api.tx.identity.addRegistrar(defaultAccounts.charlie.address) + const addRegistrarEvents = await sendTransaction(addRegistrarTx.signAsync(defaultAccounts.charlie)) + + // First, try sending the `add_registrar` call without the proper origin: just as `Signed`, + // which is insufficient. + await peopleClient.dev.newBlock() + + // The recorded event should be `ExtrinsicFailed` with a `BadOrigin`. + await checkEvents(addRegistrarEvents, 'system').toMatchSnapshot('call add registrar with wrong origin') + + /** + * XCM from relay chain + */ + + const encodedPeopleChainCalldata = addRegistrarTx.method.toHex() + + await sendXcmFromRelay(relayClient, encodedPeopleChainCalldata, { proofSize: '10000', refTime: '1000000000' }) + + /** + * Checks to people parachain's registrar list at several points of interest. + */ + + // Recall that, in the people chain used for tests, 2 initial test registrars exist. + const registrars = [ + { + account: encodeAddress(defaultAccounts.alice.address, addressEncoding), + fee: 1, + fields: 0, + }, + + { + account: encodeAddress(defaultAccounts.bob.address, addressEncoding), + fee: 0, + fields: 0, + }, + ] + + const registrarsBeforeRelayBlock = await peopleClient.api.query.identity.registrars() + + await check(registrarsBeforeRelayBlock).toMatchSnapshot('registrars before relay block') + await check(registrarsBeforeRelayBlock).toMatchObject( + registrars, + 'Registrars before relay chain block differ from expected', + ) + + // Create a new block in the relay chain so that the previous XCM call can take effect in the + // parachain. + await relayClient.dev.newBlock() + + const registrarsAfterRelayBlock = await peopleClient.api.query.identity.registrars() + + await check(registrarsAfterRelayBlock).toMatchSnapshot('registrars after relay block') + await check(registrarsAfterRelayBlock).toMatchObject( + registrars, + 'Registrars after relay chain block differ from expected', + ) + + // Also advance a block in the parachain - otherwise, the XCM call's effect would not be visible. + await peopleClient.dev.newBlock() + + registrars.push({ + account: encodeAddress(defaultAccounts.charlie.address, addressEncoding), + fee: 0, + fields: 0, + }) + + const registrarsAfterParaBlock = await peopleClient.api.query.identity.registrars() + + await check(registrarsAfterParaBlock).toMatchSnapshot('registrars after parachain block') + await check(registrarsAfterParaBlock).toMatchObject( + registrars, + 'Registrars after parachain chain block differ from expected', + ) +} + +/** + * Send an XCM message containing an extrinsic to be executed in the people chain, as `Root` + * + * @param relayClient Relay chain client form which to execute `xcmPallet.send` + * @param encodedChainCallData Hex-encoded identity pallet extrinsic + * @param requireWeightAtMost Optional reftime/proof size parameters that the extrinsic may require + */ +async function sendXcmFromRelay( + relayClient: { + api: ApiPromise + dev: { + setStorage: (values: StorageValues, blockHash?: string) => Promise + } + }, + encodedChainCallData: `0x${string}`, + requireWeightAtMost = { proofSize: '10000', refTime: '100000000' }, +): Promise { + // Destination of the XCM message sent from the relay chain to the parachain via `xcmPallet` + const dest = { + V4: { + parents: 0, + interior: { + X1: [ + { + Parachain: 1004, + }, + ], + }, + }, + } + + // The message being sent to the parachain, containing a call to be executed in the parachain: + // an origin-restricted extrinsic from the `identity` pallet, to be executed as a `SuperUser`. + const message = { + V4: [ + { + UnpaidExecution: { + weightLimit: 'Unlimited', + checkOrigin: null, + }, + }, + { + Transact: { + call: { + encoded: encodedChainCallData, + }, + originKind: 'SuperUser', + requireWeightAtMost, + }, + }, + ], + } + + const xcmTx = relayClient.api.tx.xcmPallet.send(dest, message) + const encodedRelayCallData = xcmTx.method.toHex() + + /** + * Execution of XCM call via RPC `dev_setStorage` + */ + + const number = (await relayClient.api.rpc.chain.getHeader()).number.toNumber() + + await relayClient.dev.setStorage({ + Scheduler: { + agenda: [ + [ + [number + 1], + [ + { + call: { + Inline: encodedRelayCallData, + }, + origin: { + system: 'Root', + }, + }, + ], + ], + ], + }, + }) +} + +export enum PeopleChain { + Polkadot = 'Polkadot', + Kusama = 'Kusama', +} + +/** + * Test runner for people chains' E2E tests. + * + * Tests that are meant to be run in a people chain *must* be added to as a `vitest.test` to the + * `describe` runner this function creates. + * + * @param topLevelDescription A description of this test runner e.g. "Polkadot People E2E tests" + * @param relayChain The relay chain to be used by these tests + * @param peopleChain The people's chain associated to the previous `relayChain` + */ +export function peopleChainE2ETests< + TCustom extends Record | undefined, + TInitStoragesRelay extends Record> | undefined, + TInitStoragesPara extends Record> | undefined, +>(pc: PeopleChain, relayChain: Chain, peopleChain: Chain) { + let topLevelDescription: string + let addressEncoding: number + + switch (pc) { + case PeopleChain.Kusama: + topLevelDescription = 'Kusama People' + addressEncoding = 2 + break + case PeopleChain.Polkadot: + topLevelDescription = 'Polkadot People' + addressEncoding = 0 + break + } + + describe(topLevelDescription, function () { + test('setting on-chain identity and requesting judgement should work', async () => { + await setIdentityThenRequestAndProvideJudgement(peopleChain) + }) + + test('setting an on-chain identity, requesting 2 judgements, having 1 provided, and then resetting the identity should work', async () => { + await setIdentityRequestJudgementTwiceThenResetIdentity(peopleChain) + }) + + test('setting on-chain identity, requesting judgement, cancelling the request and then clearing the identity should work', async () => { + await setIdentityThenRequesThenCancelThenClear(peopleChain) + }) + + test('setting on-chain identity, adding sub-identities, removing one, and having another remove itself should work', async () => { + await setIdentityThenAddSubsThenRemove(peopleChain, addressEncoding) + }) + + test('adding a registrar as root from the relay chain works', async () => { + await addRegistrarViaRelayAsRoot(relayChain, peopleChain, addressEncoding) + }) + }) +} diff --git a/yarn.lock b/yarn.lock index 845438c..a4eec1d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,11 +5,11 @@ __metadata: version: 8 cacheKey: 10c0 -"@acala-network/chopsticks-core@npm:0.16.0": - version: 0.16.0 - resolution: "@acala-network/chopsticks-core@npm:0.16.0" +"@acala-network/chopsticks-core@npm:0.16.2": + version: 0.16.2 + resolution: "@acala-network/chopsticks-core@npm:0.16.2" dependencies: - "@acala-network/chopsticks-executor": "npm:0.16.0" + "@acala-network/chopsticks-executor": "npm:0.16.2" "@polkadot/rpc-provider": "npm:^12.3.1" "@polkadot/types": "npm:^12.3.1" "@polkadot/types-codec": "npm:^12.3.1" @@ -24,64 +24,65 @@ __metadata: pino-pretty: "npm:^11.0.0" rxjs: "npm:^7.8.1" zod: "npm:^3.22.4" - checksum: 10c0/c7f8b3edc2834dfe1f958206e9632dcc86e980d7ad957d40de2747daa799dd422bebd77dcf8178a1b0c361128903783fb9f556ba40bf63c167192119b610ac84 + checksum: 10c0/db62dbd97efea33e799ca5a342698830f31760126245ab695a773457423a21377bdb54e5321374fc9e267ecc2cee0cb08c6726e25f3e5bba0310413b05a31ad2 languageName: node linkType: hard -"@acala-network/chopsticks-db@npm:0.16.0": - version: 0.16.0 - resolution: "@acala-network/chopsticks-db@npm:0.16.0" +"@acala-network/chopsticks-db@npm:0.16.2": + version: 0.16.2 + resolution: "@acala-network/chopsticks-db@npm:0.16.2" dependencies: - "@acala-network/chopsticks-core": "npm:0.16.0" + "@acala-network/chopsticks-core": "npm:0.16.2" "@polkadot/util": "npm:^13.0.2" idb: "npm:^8.0.0" sqlite3: "npm:^5.1.7" typeorm: "npm:^0.3.20" - checksum: 10c0/07bcf858e62c6ec37e2e68b928ec5948989dc2d92c3156a34d98f46100fa89b616f6e658f4652038e21840172f83752e0c79fee94e839e2c9134db717d8eb2f6 + checksum: 10c0/b83ce11044366dec921596e7ae78c196e135a6f8382f9fb9093543cd48ae3f58c73a00ed89d32ffa151771cf467aaf079f7b6c1641712b62d7162d81edfef213 languageName: node linkType: hard -"@acala-network/chopsticks-executor@npm:0.16.0": - version: 0.16.0 - resolution: "@acala-network/chopsticks-executor@npm:0.16.0" +"@acala-network/chopsticks-executor@npm:0.16.2": + version: 0.16.2 + resolution: "@acala-network/chopsticks-executor@npm:0.16.2" dependencies: "@polkadot/util": "npm:^13.0.2" "@polkadot/wasm-util": "npm:^7.3.2" - checksum: 10c0/8572801d1113ec1b1eb0cda8efea245c705654bf724f0afdce9a5e6f28625056ed82f87ad656b96439aeb7d32829abe2d3da95f0596790517e72137619cacca1 + checksum: 10c0/c282ea8c319f7e833afc38f71e7098c88633deaceefd416bfcc60f3fa8e697969c7805315ac16ecb2b241f53d79dfc98e2c06a42f409540d43d6e338fe3a13d0 languageName: node linkType: hard "@acala-network/chopsticks-testing@npm:^0.16.0": - version: 0.16.0 - resolution: "@acala-network/chopsticks-testing@npm:0.16.0" + version: 0.16.2 + resolution: "@acala-network/chopsticks-testing@npm:0.16.2" dependencies: - "@acala-network/chopsticks-utils": "npm:0.16.0" + "@acala-network/chopsticks-utils": "npm:0.16.2" "@polkadot/api": "npm:^12.3.1" "@polkadot/types": "npm:^12.3.1" - checksum: 10c0/165849d71804ab62033d8d97146e53e7ee6fb92baa93361fc8ff8df5eba968ce0ee4e8fdd54bfa3ba6b97098cab5577ff75d3d7d2f99852a36a94b1ac73622cd + checksum: 10c0/299294844ebc7d7ed82029c08c660264b6eba845a6a7bb881fd7e7a93a70c3410feec80fb2a534f96ac81b20e94f4a351c83cd100f53b4eba8d02e6792429fa7 languageName: node linkType: hard -"@acala-network/chopsticks-utils@npm:0.16.0": - version: 0.16.0 - resolution: "@acala-network/chopsticks-utils@npm:0.16.0" +"@acala-network/chopsticks-utils@npm:0.16.2": + version: 0.16.2 + resolution: "@acala-network/chopsticks-utils@npm:0.16.2" dependencies: - "@acala-network/chopsticks": "npm:0.16.0" + "@acala-network/chopsticks": "npm:0.16.2" + "@acala-network/chopsticks-core": "npm:0.16.2" "@polkadot/api": "npm:^12.3.1" "@polkadot/api-base": "npm:^12.3.1" "@polkadot/keyring": "npm:^13.0.2" "@polkadot/types": "npm:^12.3.1" "@polkadot/util": "npm:^13.0.2" - checksum: 10c0/365a636e34aa0bd02534a39007daf7e91a888edc641eec3732edbf85fe721633775689e18d9b4131859138534e805fbb6196deb5d6f6f36f5e806a51500b35bd + checksum: 10c0/def68837e1bcf27cf867c7371766ecb297e0303cd64d085c5bf84e90de70ac924500d875e792618300de7cc01fa9eefc97b09247278d1bb06071000b94adc556 languageName: node linkType: hard -"@acala-network/chopsticks@npm:0.16.0": - version: 0.16.0 - resolution: "@acala-network/chopsticks@npm:0.16.0" +"@acala-network/chopsticks@npm:0.16.2, @acala-network/chopsticks@npm:^0.16.0": + version: 0.16.2 + resolution: "@acala-network/chopsticks@npm:0.16.2" dependencies: - "@acala-network/chopsticks-core": "npm:0.16.0" - "@acala-network/chopsticks-db": "npm:0.16.0" + "@acala-network/chopsticks-core": "npm:0.16.2" + "@acala-network/chopsticks-db": "npm:0.16.2" "@pnpm/npm-conf": "npm:^2.2.2" "@polkadot/api": "npm:^12.3.1" "@polkadot/api-augment": "npm:^12.3.1" @@ -101,7 +102,7 @@ __metadata: zod: "npm:^3.22.4" bin: chopsticks: ./chopsticks.cjs - checksum: 10c0/4b4d53714b3373460a11e960447f67b322d8e2a7100b7619e642f8e0668c18f384e6f1bc9b0683419bf8d8da94958e343e6cb29a27c533cdf06e156d181427fe + checksum: 10c0/115ee679a306b4e87eda716b94a578574c15dcfd258c4afa9f2eeb5b87fb8509060ba7a310e08f4ba4e2a442ec36eef72ff906f10fca736ed7626d44c41ca4cd languageName: node linkType: hard @@ -135,9 +136,12 @@ __metadata: version: 0.0.0-use.local resolution: "@e2e-test/shared@workspace:packages/shared" dependencies: + "@acala-network/chopsticks": "npm:^0.16.0" "@acala-network/chopsticks-testing": "npm:^0.16.0" "@e2e-test/networks": "workspace:*" "@polkadot/api": "npm:^12.4.2" + "@polkadot/types": "npm:12.4.2" + "@polkadot/types-augment": "npm:^12.4.2" languageName: unknown linkType: soft @@ -471,20 +475,20 @@ __metadata: linkType: hard "@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": - version: 4.4.0 - resolution: "@eslint-community/eslint-utils@npm:4.4.0" + version: 4.4.1 + resolution: "@eslint-community/eslint-utils@npm:4.4.1" dependencies: - eslint-visitor-keys: "npm:^3.3.0" + eslint-visitor-keys: "npm:^3.4.3" peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: 10c0/7e559c4ce59cd3a06b1b5a517b593912e680a7f981ae7affab0d01d709e99cd5647019be8fafa38c350305bc32f1f7d42c7073edde2ab536c745e365f37b607e + checksum: 10c0/2aa0ac2fc50ff3f234408b10900ed4f1a0b19352f21346ad4cc3d83a1271481bdda11097baa45d484dd564c895e0762a27a8240be7a256b3ad47129e96528252 languageName: node linkType: hard "@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.6.1": - version: 4.11.0 - resolution: "@eslint-community/regexpp@npm:4.11.0" - checksum: 10c0/0f6328869b2741e2794da4ad80beac55cba7de2d3b44f796a60955b0586212ec75e6b0253291fd4aad2100ad471d1480d8895f2b54f1605439ba4c875e05e523 + version: 4.12.0 + resolution: "@eslint-community/regexpp@npm:4.12.0" + checksum: 10c0/168b4062544b220cd547f14a4d4d131f25a19098e0716832fa2fea1d1aa3894ec3014ed6f42a9638b0693490dd0d583c974064e0e621cbe146e61e20bab55f75 languageName: node linkType: hard @@ -505,10 +509,10 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:8.57.0": - version: 8.57.0 - resolution: "@eslint/js@npm:8.57.0" - checksum: 10c0/9a518bb8625ba3350613903a6d8c622352ab0c6557a59fe6ff6178bf882bf57123f9d92aa826ee8ac3ee74b9c6203fe630e9ee00efb03d753962dcf65ee4bd94 +"@eslint/js@npm:8.57.1": + version: 8.57.1 + resolution: "@eslint/js@npm:8.57.1" + checksum: 10c0/b489c474a3b5b54381c62e82b3f7f65f4b8a5eaaed126546520bf2fede5532a8ed53212919fed1e9048dcf7f37167c8561d58d0ba4492a4244004e7793805223 languageName: node linkType: hard @@ -519,14 +523,14 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.11.14": - version: 0.11.14 - resolution: "@humanwhocodes/config-array@npm:0.11.14" +"@humanwhocodes/config-array@npm:^0.13.0": + version: 0.13.0 + resolution: "@humanwhocodes/config-array@npm:0.13.0" dependencies: - "@humanwhocodes/object-schema": "npm:^2.0.2" + "@humanwhocodes/object-schema": "npm:^2.0.3" debug: "npm:^4.3.1" minimatch: "npm:^3.0.5" - checksum: 10c0/66f725b4ee5fdd8322c737cb5013e19fac72d4d69c8bf4b7feb192fcb83442b035b92186f8e9497c220e58b2d51a080f28a73f7899bc1ab288c3be172c467541 + checksum: 10c0/205c99e756b759f92e1f44a3dc6292b37db199beacba8f26c2165d4051fe73a4ae52fdcfd08ffa93e7e5cb63da7c88648f0e84e197d154bbbbe137b2e0dd332e languageName: node linkType: hard @@ -537,7 +541,7 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/object-schema@npm:^2.0.2": +"@humanwhocodes/object-schema@npm:^2.0.3": version: 2.0.3 resolution: "@humanwhocodes/object-schema@npm:2.0.3" checksum: 10c0/80520eabbfc2d32fe195a93557cef50dfe8c8905de447f022675aaf66abc33ae54098f5ea78548d925aa671cd4ab7c7daa5ad704fe42358c9b5e7db60f80696c @@ -708,9 +712,9 @@ __metadata: linkType: hard "@polka/url@npm:^1.0.0-next.24": - version: 1.0.0-next.25 - resolution: "@polka/url@npm:1.0.0-next.25" - checksum: 10c0/ef61f0a0fe94bb6e1143fc5b9d5a12e6ca9dbd2c57843ebf81db432c21b9f1005c09e8a1ef8b6d5ddfa42146ca65b640feb2d353bd0d3546da46ba59e48a5349 + version: 1.0.0-next.28 + resolution: "@polka/url@npm:1.0.0-next.28" + checksum: 10c0/acc5ea62597e4da2fb42dbee02749d07f102ae7d6d2c966bf7e423c79cd65d1621da305af567e6e7c232f3b565e242d1ec932cbb3dcc0db1508d02e9a2cafa2e languageName: node linkType: hard @@ -853,27 +857,27 @@ __metadata: linkType: hard "@polkadot/keyring@npm:^13.0.2": - version: 13.0.2 - resolution: "@polkadot/keyring@npm:13.0.2" + version: 13.2.1 + resolution: "@polkadot/keyring@npm:13.2.1" dependencies: - "@polkadot/util": "npm:13.0.2" - "@polkadot/util-crypto": "npm:13.0.2" - tslib: "npm:^2.6.2" + "@polkadot/util": "npm:13.2.1" + "@polkadot/util-crypto": "npm:13.2.1" + tslib: "npm:^2.8.0" peerDependencies: - "@polkadot/util": 13.0.2 - "@polkadot/util-crypto": 13.0.2 - checksum: 10c0/102fb4007b682f0ab54cb4a241d97b9028e49c6f1215323a89caea4b62f54376b46be9b1de4712d27e1e842fdaf8c8852c0bae70c4b1d663a21f939129eb99a8 + "@polkadot/util": 13.2.1 + "@polkadot/util-crypto": 13.2.1 + checksum: 10c0/af0cd5c46a418bfe8f884bd6eb9771399feda921be9c5ff10c39d6eb59a5c7d841f24ed4080d96f7b1573c115f349c7172c659275c400c452cb568a4a7280bba languageName: node linkType: hard -"@polkadot/networks@npm:13.0.2, @polkadot/networks@npm:^13.0.2": - version: 13.0.2 - resolution: "@polkadot/networks@npm:13.0.2" +"@polkadot/networks@npm:13.2.1, @polkadot/networks@npm:^13.0.2": + version: 13.2.1 + resolution: "@polkadot/networks@npm:13.2.1" dependencies: - "@polkadot/util": "npm:13.0.2" - "@substrate/ss58-registry": "npm:^1.46.0" - tslib: "npm:^2.6.2" - checksum: 10c0/33fd8348638eb9ad0bc171dbc16cba3f4b904829383bce1f2e2da8b7498ac8ed63d5a0b7d41a6e397c4caf9ae429405085d92b599af920b498b229b52fc0db71 + "@polkadot/util": "npm:13.2.1" + "@substrate/ss58-registry": "npm:^1.51.0" + tslib: "npm:^2.8.0" + checksum: 10c0/ee2e4891f4dfa51717e3c0ea1aa811bd106eb02725b24bcda74f124e6cee375769877b61a733f451a5458043d61427c3409a5530abeb380bca8c00db7605f3c5 languageName: node linkType: hard @@ -928,7 +932,7 @@ __metadata: languageName: node linkType: hard -"@polkadot/types-augment@npm:12.4.2": +"@polkadot/types-augment@npm:12.4.2, @polkadot/types-augment@npm:^12.4.2": version: 12.4.2 resolution: "@polkadot/types-augment@npm:12.4.2" dependencies: @@ -1002,319 +1006,333 @@ __metadata: languageName: node linkType: hard -"@polkadot/util-crypto@npm:13.0.2, @polkadot/util-crypto@npm:^13.0.2": - version: 13.0.2 - resolution: "@polkadot/util-crypto@npm:13.0.2" +"@polkadot/util-crypto@npm:13.2.1, @polkadot/util-crypto@npm:^13.0.2": + version: 13.2.1 + resolution: "@polkadot/util-crypto@npm:13.2.1" dependencies: "@noble/curves": "npm:^1.3.0" "@noble/hashes": "npm:^1.3.3" - "@polkadot/networks": "npm:13.0.2" - "@polkadot/util": "npm:13.0.2" - "@polkadot/wasm-crypto": "npm:^7.3.2" - "@polkadot/wasm-util": "npm:^7.3.2" - "@polkadot/x-bigint": "npm:13.0.2" - "@polkadot/x-randomvalues": "npm:13.0.2" - "@scure/base": "npm:^1.1.5" - tslib: "npm:^2.6.2" + "@polkadot/networks": "npm:13.2.1" + "@polkadot/util": "npm:13.2.1" + "@polkadot/wasm-crypto": "npm:^7.4.1" + "@polkadot/wasm-util": "npm:^7.4.1" + "@polkadot/x-bigint": "npm:13.2.1" + "@polkadot/x-randomvalues": "npm:13.2.1" + "@scure/base": "npm:^1.1.7" + tslib: "npm:^2.8.0" peerDependencies: - "@polkadot/util": 13.0.2 - checksum: 10c0/01c4f592798ec8716e4e199c3f8289d5e9b15cd7aeb52451edc498e45f04c630863e3e613c8aadb3120e531231e4494f389d7fc3c275471f3cd4e1d001a09a0f + "@polkadot/util": 13.2.1 + checksum: 10c0/83e8de9805298dbb2d2ea95f211c71ac876d3699c341d6d8af23f5667448e9bcde474a48c678a7399ab8aeef3bca09f5d3b20f7d03dd6d950b991802f8bbd312 languageName: node linkType: hard -"@polkadot/util@npm:13.0.2, @polkadot/util@npm:^13.0.2": - version: 13.0.2 - resolution: "@polkadot/util@npm:13.0.2" +"@polkadot/util@npm:13.2.1, @polkadot/util@npm:^13.0.2": + version: 13.2.1 + resolution: "@polkadot/util@npm:13.2.1" dependencies: - "@polkadot/x-bigint": "npm:13.0.2" - "@polkadot/x-global": "npm:13.0.2" - "@polkadot/x-textdecoder": "npm:13.0.2" - "@polkadot/x-textencoder": "npm:13.0.2" - "@types/bn.js": "npm:^5.1.5" + "@polkadot/x-bigint": "npm:13.2.1" + "@polkadot/x-global": "npm:13.2.1" + "@polkadot/x-textdecoder": "npm:13.2.1" + "@polkadot/x-textencoder": "npm:13.2.1" + "@types/bn.js": "npm:^5.1.6" bn.js: "npm:^5.2.1" - tslib: "npm:^2.6.2" - checksum: 10c0/2dabe88a6d55867de42dbdd792a08af447e03e1e878c29549790dab66c7147cb750da18dfd257fa02ad9d08248fb701b2110cb6a55ab0690070a3c9dc751f210 + tslib: "npm:^2.8.0" + checksum: 10c0/80ede047de612937311399b5191a0a2801bf4eb09633819c3003017250c0bdebf8aa9e0e5ba275139b4e4691cd4311315d199da3c7729410970d19cdcacc9f6f languageName: node linkType: hard -"@polkadot/wasm-bridge@npm:7.3.2": - version: 7.3.2 - resolution: "@polkadot/wasm-bridge@npm:7.3.2" +"@polkadot/wasm-bridge@npm:7.4.1": + version: 7.4.1 + resolution: "@polkadot/wasm-bridge@npm:7.4.1" dependencies: - "@polkadot/wasm-util": "npm:7.3.2" - tslib: "npm:^2.6.2" + "@polkadot/wasm-util": "npm:7.4.1" + tslib: "npm:^2.7.0" peerDependencies: "@polkadot/util": "*" "@polkadot/x-randomvalues": "*" - checksum: 10c0/8becfcd4efbabe8ea536c353164c8b767a5510d6d62e376813ab1dc0dd4560906f1dfdb1b349d56b4da657ba7c88bc9f074b658218dcae9b1edbd36f4508b710 + checksum: 10c0/8123c2d72ed24f6900185eb982f228789414c1458c8a291e17a9bd70cd36616f0e04fb40cb01e90d27223eb2ce81391af36f6e5b741cb6d9a83850bb5b9e038e languageName: node linkType: hard -"@polkadot/wasm-crypto-asmjs@npm:7.3.2": - version: 7.3.2 - resolution: "@polkadot/wasm-crypto-asmjs@npm:7.3.2" +"@polkadot/wasm-crypto-asmjs@npm:7.4.1": + version: 7.4.1 + resolution: "@polkadot/wasm-crypto-asmjs@npm:7.4.1" dependencies: - tslib: "npm:^2.6.2" + tslib: "npm:^2.7.0" peerDependencies: "@polkadot/util": "*" - checksum: 10c0/c4eb0b2c6bae2cd7b4ada5211c877a0f0cff4d4a4f2716817430c5aab74f4e8d37099add57c809a098033028378ed3e88ba1c56fd85b6fd0a80b181742f7a3f9 + checksum: 10c0/7b19748b2ccdc2d964c137ae5eabdf022d7860c05981270c82392898ac6641d5602a2c2ea1059ef8f8929dd361a75fdb25bfaa7961f3dfcf497f987145c6850a languageName: node linkType: hard -"@polkadot/wasm-crypto-init@npm:7.3.2": - version: 7.3.2 - resolution: "@polkadot/wasm-crypto-init@npm:7.3.2" +"@polkadot/wasm-crypto-init@npm:7.4.1": + version: 7.4.1 + resolution: "@polkadot/wasm-crypto-init@npm:7.4.1" dependencies: - "@polkadot/wasm-bridge": "npm:7.3.2" - "@polkadot/wasm-crypto-asmjs": "npm:7.3.2" - "@polkadot/wasm-crypto-wasm": "npm:7.3.2" - "@polkadot/wasm-util": "npm:7.3.2" - tslib: "npm:^2.6.2" + "@polkadot/wasm-bridge": "npm:7.4.1" + "@polkadot/wasm-crypto-asmjs": "npm:7.4.1" + "@polkadot/wasm-crypto-wasm": "npm:7.4.1" + "@polkadot/wasm-util": "npm:7.4.1" + tslib: "npm:^2.7.0" peerDependencies: "@polkadot/util": "*" "@polkadot/x-randomvalues": "*" - checksum: 10c0/4813a87bf44065d4ec7cdc29b00f37cc6859974969710c6a6fefba8e42f5bb0c7e102293a8418b1c6e1b5fd55540d13beebdff777200b69420ce50b8fad803ed + checksum: 10c0/fdcb96b4ba318680837d728b3c60c0bbbe326c9b8c15d70394cfbfdee06c95f8311b6fe13e4c862472faef4a2a9ccb218519fb15ad2f67d15b4cbb1b7c3eecba languageName: node linkType: hard -"@polkadot/wasm-crypto-wasm@npm:7.3.2": - version: 7.3.2 - resolution: "@polkadot/wasm-crypto-wasm@npm:7.3.2" +"@polkadot/wasm-crypto-wasm@npm:7.4.1": + version: 7.4.1 + resolution: "@polkadot/wasm-crypto-wasm@npm:7.4.1" dependencies: - "@polkadot/wasm-util": "npm:7.3.2" - tslib: "npm:^2.6.2" + "@polkadot/wasm-util": "npm:7.4.1" + tslib: "npm:^2.7.0" peerDependencies: "@polkadot/util": "*" - checksum: 10c0/546ebc5c42929f2f37565190014ff26f6817024e087c56053c1d8c1dcffd1f02014c4638ca70c79145d540f760339699209bb1dc939c235085a7c78efd56bc60 + checksum: 10c0/2673a567cea785f7b9ec5b8371e05a53064651a9c64ac0fc45d7d5c8a080810cb1bd0f1950e2789d2c8895bcca35e9dc84b8a7b77c59b9b2d30beed8a964d043 languageName: node linkType: hard -"@polkadot/wasm-crypto@npm:^7.3.2": - version: 7.3.2 - resolution: "@polkadot/wasm-crypto@npm:7.3.2" +"@polkadot/wasm-crypto@npm:^7.4.1": + version: 7.4.1 + resolution: "@polkadot/wasm-crypto@npm:7.4.1" dependencies: - "@polkadot/wasm-bridge": "npm:7.3.2" - "@polkadot/wasm-crypto-asmjs": "npm:7.3.2" - "@polkadot/wasm-crypto-init": "npm:7.3.2" - "@polkadot/wasm-crypto-wasm": "npm:7.3.2" - "@polkadot/wasm-util": "npm:7.3.2" - tslib: "npm:^2.6.2" + "@polkadot/wasm-bridge": "npm:7.4.1" + "@polkadot/wasm-crypto-asmjs": "npm:7.4.1" + "@polkadot/wasm-crypto-init": "npm:7.4.1" + "@polkadot/wasm-crypto-wasm": "npm:7.4.1" + "@polkadot/wasm-util": "npm:7.4.1" + tslib: "npm:^2.7.0" peerDependencies: "@polkadot/util": "*" "@polkadot/x-randomvalues": "*" - checksum: 10c0/ff3ef6a2a4dcbbdeb257e7a42f906f1bb7e31292600482c1acf9267406011ea75bd9d3d6ceaf4c011f986e25a2416768775ee59ccc7dbfa6c529b11b8ea91eb4 + checksum: 10c0/b896f88ebf6b6864263b9042a14b6e5ef7371e47e56c6f1c297472f6d24b40645ee4e9abed5d32bfd95de4797811cb109c44da6064dd2509db3ce05a53fe2d72 languageName: node linkType: hard -"@polkadot/wasm-util@npm:7.3.2, @polkadot/wasm-util@npm:^7.3.2": - version: 7.3.2 - resolution: "@polkadot/wasm-util@npm:7.3.2" +"@polkadot/wasm-util@npm:7.4.1, @polkadot/wasm-util@npm:^7.3.2, @polkadot/wasm-util@npm:^7.4.1": + version: 7.4.1 + resolution: "@polkadot/wasm-util@npm:7.4.1" dependencies: - tslib: "npm:^2.6.2" + tslib: "npm:^2.7.0" peerDependencies: "@polkadot/util": "*" - checksum: 10c0/58ef58d357e7983c3bb4008b0159262d5c588234d7be64155c031f452fc0daeb078ff0ac8bb4b0377dac307130b0b548c01fd466968869ed308d50e2c162d23b + checksum: 10c0/4e7042f854350a7e0c978d816abc3a8e37adcd6e8a5a35a4893928e79ecc0950fc4073993ad813ad8edd2c5fa6f603a5395018d19c44b8a338f52974747c3a9c languageName: node linkType: hard -"@polkadot/x-bigint@npm:13.0.2, @polkadot/x-bigint@npm:^13.0.2": - version: 13.0.2 - resolution: "@polkadot/x-bigint@npm:13.0.2" +"@polkadot/x-bigint@npm:13.2.1, @polkadot/x-bigint@npm:^13.0.2": + version: 13.2.1 + resolution: "@polkadot/x-bigint@npm:13.2.1" dependencies: - "@polkadot/x-global": "npm:13.0.2" - tslib: "npm:^2.6.2" - checksum: 10c0/506dca890f389a8cdc3f2a816555144e3f8d0947528bf18113dd033fa07644d493dcf52b35a74c735aa8241202ad9cfaa6853266ac456f1c997032ff423ad0b8 + "@polkadot/x-global": "npm:13.2.1" + tslib: "npm:^2.8.0" + checksum: 10c0/5304fff895ecf9d44ddf5acb20ea7dd656115d6bfa6245a7bb832c3f952bb7c298670af689663070b6eaa5230179a22682ec612901822c897ffa230b07a872cc languageName: node linkType: hard "@polkadot/x-fetch@npm:^13.0.2": - version: 13.0.2 - resolution: "@polkadot/x-fetch@npm:13.0.2" + version: 13.2.1 + resolution: "@polkadot/x-fetch@npm:13.2.1" dependencies: - "@polkadot/x-global": "npm:13.0.2" + "@polkadot/x-global": "npm:13.2.1" node-fetch: "npm:^3.3.2" - tslib: "npm:^2.6.2" - checksum: 10c0/4f597769cd920051ba070c7fd49858e53cd035be2aa515de2ad289def83405e6de2856b7800e236239b7122086e40a2e1e581add36f2fa82018ca444d6e7314a + tslib: "npm:^2.8.0" + checksum: 10c0/45e460a71c3076e5c7ef64cee1b0fb4960b6398b8efd92e68c272d54ad40cbd6fa13d2e6025e0cb60a0025e89ff20994013e2883fe54be0ebcd42f084772460b languageName: node linkType: hard -"@polkadot/x-global@npm:13.0.2, @polkadot/x-global@npm:^13.0.2": - version: 13.0.2 - resolution: "@polkadot/x-global@npm:13.0.2" +"@polkadot/x-global@npm:13.2.1, @polkadot/x-global@npm:^13.0.2": + version: 13.2.1 + resolution: "@polkadot/x-global@npm:13.2.1" dependencies: - tslib: "npm:^2.6.2" - checksum: 10c0/68e1e1f15a77fe1ec0ce92c669c2418f796ec84c56639281466a21daaf6a2ce6f1f1ae010767c2f843dfa0430272dada2158e714c3d1f2eacd6ce272b211bd29 + tslib: "npm:^2.8.0" + checksum: 10c0/503ebd36b87e1432026197d636456cac5b2fc0a1fada7aa5d5ad32b2bdf103fd597cdc0a8530d35ad7f8f392cb4a8f2fd9bb4eb19547a82b4d2ab1276c526785 languageName: node linkType: hard -"@polkadot/x-randomvalues@npm:13.0.2": - version: 13.0.2 - resolution: "@polkadot/x-randomvalues@npm:13.0.2" +"@polkadot/x-randomvalues@npm:13.2.1": + version: 13.2.1 + resolution: "@polkadot/x-randomvalues@npm:13.2.1" dependencies: - "@polkadot/x-global": "npm:13.0.2" - tslib: "npm:^2.6.2" + "@polkadot/x-global": "npm:13.2.1" + tslib: "npm:^2.8.0" peerDependencies: - "@polkadot/util": 13.0.2 + "@polkadot/util": 13.2.1 "@polkadot/wasm-util": "*" - checksum: 10c0/81b7e88105a6f2bb7f70bfa28f8cb7b8167064e9bb3fd83c972438695717df101d34998fe648e122f7456ca876abd3a01bdc3847c0c769e3cc9686d7885c95df + checksum: 10c0/023a663b6970d7dd399d5eef3f636dbefe0281c69043f3debd159649df0972dad8fc9fff79a5c6c6c40c2313cc4db73b513da3c103d806a5986274b51cc6c6ea languageName: node linkType: hard -"@polkadot/x-textdecoder@npm:13.0.2": - version: 13.0.2 - resolution: "@polkadot/x-textdecoder@npm:13.0.2" +"@polkadot/x-textdecoder@npm:13.2.1": + version: 13.2.1 + resolution: "@polkadot/x-textdecoder@npm:13.2.1" dependencies: - "@polkadot/x-global": "npm:13.0.2" - tslib: "npm:^2.6.2" - checksum: 10c0/c77054ba8c31fd6a73cfa54b4cc4848712e7c49800bbd1c9144291724cc0b170fe3eb66643741c68b2978050dcf1f120de72b3f677942beb57fd80c0dbb14c38 + "@polkadot/x-global": "npm:13.2.1" + tslib: "npm:^2.8.0" + checksum: 10c0/9b9b78191d6d711ad3bbc8431069d394768fa75e6988c2b86c7583eb87581f368df648d12290964dd676b83ab8c1c5849f514d5425232a33c7e606f392f75ead languageName: node linkType: hard -"@polkadot/x-textencoder@npm:13.0.2": - version: 13.0.2 - resolution: "@polkadot/x-textencoder@npm:13.0.2" +"@polkadot/x-textencoder@npm:13.2.1": + version: 13.2.1 + resolution: "@polkadot/x-textencoder@npm:13.2.1" dependencies: - "@polkadot/x-global": "npm:13.0.2" - tslib: "npm:^2.6.2" - checksum: 10c0/a84d230975e1fea712d99650644c2352c1a7e2f3140a7d4c842a46df6df1ae15ecdc28ec32ea521beddd1978eaf8b6b80b2b89e1d0aaf47328c1c76dfd29f0d7 + "@polkadot/x-global": "npm:13.2.1" + tslib: "npm:^2.8.0" + checksum: 10c0/c23feef3994b17902312c6ec671968129641e292198b32a82c7ec6e0db1f22ce25f4d703bbc6331bae5c381a1bf38c9718e6eccae99dd8a5557dde1e08c5548e languageName: node linkType: hard "@polkadot/x-ws@npm:^13.0.2": - version: 13.0.2 - resolution: "@polkadot/x-ws@npm:13.0.2" + version: 13.2.1 + resolution: "@polkadot/x-ws@npm:13.2.1" dependencies: - "@polkadot/x-global": "npm:13.0.2" - tslib: "npm:^2.6.2" - ws: "npm:^8.16.0" - checksum: 10c0/87b01c6eb52945a6d4f6cb1af6a093cc170230d8bcedd069b226dd041d80e87f6e233fbe19f36f1a9ae00d2f5e9c1b6b901eae5bd3369ab889eaa0ff5c1b723e + "@polkadot/x-global": "npm:13.2.1" + tslib: "npm:^2.8.0" + ws: "npm:^8.18.0" + checksum: 10c0/dba86d8b71f690d9caf10fa66ebcf9bb860d29eb6eaff7241575c1215f90e1b5199675de3e5a600f1bffd71cc058f61c24525404a283eadbcdf783b7e0dac0e8 languageName: node linkType: hard "@rollup/pluginutils@npm:^5.1.0": - version: 5.1.0 - resolution: "@rollup/pluginutils@npm:5.1.0" + version: 5.1.3 + resolution: "@rollup/pluginutils@npm:5.1.3" dependencies: "@types/estree": "npm:^1.0.0" estree-walker: "npm:^2.0.2" - picomatch: "npm:^2.3.1" + picomatch: "npm:^4.0.2" peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true - checksum: 10c0/c7bed15711f942d6fdd3470fef4105b73991f99a478605e13d41888963330a6f9e32be37e6ddb13f012bc7673ff5e54f06f59fd47109436c1c513986a8a7612d + checksum: 10c0/ba46ad588733fb01d184ee3bc7a127d626158bc840b5874a94c129ff62689d12f16f537530709c54da6f3b71f67d705c4e09235b1dc9542e9d47ee8f2d0b8b9e languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.22.4" +"@rollup/rollup-android-arm-eabi@npm:4.24.2": + version: 4.24.2 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.24.2" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-android-arm64@npm:4.22.4" +"@rollup/rollup-android-arm64@npm:4.24.2": + version: 4.24.2 + resolution: "@rollup/rollup-android-arm64@npm:4.24.2" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-darwin-arm64@npm:4.22.4" +"@rollup/rollup-darwin-arm64@npm:4.24.2": + version: 4.24.2 + resolution: "@rollup/rollup-darwin-arm64@npm:4.24.2" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-darwin-x64@npm:4.22.4" +"@rollup/rollup-darwin-x64@npm:4.24.2": + version: 4.24.2 + resolution: "@rollup/rollup-darwin-x64@npm:4.24.2" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.22.4" +"@rollup/rollup-freebsd-arm64@npm:4.24.2": + version: 4.24.2 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.24.2" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-x64@npm:4.24.2": + version: 4.24.2 + resolution: "@rollup/rollup-freebsd-x64@npm:4.24.2" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.24.2": + version: 4.24.2 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.24.2" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.22.4" +"@rollup/rollup-linux-arm-musleabihf@npm:4.24.2": + version: 4.24.2 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.24.2" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.22.4" +"@rollup/rollup-linux-arm64-gnu@npm:4.24.2": + version: 4.24.2 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.24.2" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.22.4" +"@rollup/rollup-linux-arm64-musl@npm:4.24.2": + version: 4.24.2 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.24.2" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.4" +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.24.2": + version: 4.24.2 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.24.2" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.22.4" +"@rollup/rollup-linux-riscv64-gnu@npm:4.24.2": + version: 4.24.2 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.24.2" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.22.4" +"@rollup/rollup-linux-s390x-gnu@npm:4.24.2": + version: 4.24.2 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.24.2" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.22.4" +"@rollup/rollup-linux-x64-gnu@npm:4.24.2": + version: 4.24.2 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.24.2" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.22.4" +"@rollup/rollup-linux-x64-musl@npm:4.24.2": + version: 4.24.2 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.24.2" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.22.4" +"@rollup/rollup-win32-arm64-msvc@npm:4.24.2": + version: 4.24.2 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.24.2" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.22.4" +"@rollup/rollup-win32-ia32-msvc@npm:4.24.2": + version: 4.24.2 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.24.2" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.22.4": - version: 4.22.4 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.22.4" +"@rollup/rollup-win32-x64-msvc@npm:4.24.2": + version: 4.24.2 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.24.2" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -1326,10 +1344,10 @@ __metadata: languageName: node linkType: hard -"@scure/base@npm:^1.1.1, @scure/base@npm:^1.1.5": - version: 1.1.8 - resolution: "@scure/base@npm:1.1.8" - checksum: 10c0/f7a1d2b14bcccf263068210dde1237ad23f7b2381f5d4ac33b9377a077aa41327983863f86562651c4407bbf65e3e9e81f4ae565b045109d21acbcdb29d69cd9 +"@scure/base@npm:^1.1.1, @scure/base@npm:^1.1.7": + version: 1.1.9 + resolution: "@scure/base@npm:1.1.9" + checksum: 10c0/77a06b9a2db8144d22d9bf198338893d77367c51b58c72b99df990c0a11f7cadd066d4102abb15e3ca6798d1529e3765f55c4355742465e49aed7a0c01fe76e8 languageName: node linkType: hard @@ -1348,16 +1366,16 @@ __metadata: linkType: hard "@substrate/connect-extension-protocol@npm:^2.0.0": - version: 2.1.0 - resolution: "@substrate/connect-extension-protocol@npm:2.1.0" - checksum: 10c0/950898136d591fadf4086b040357cbb5f28fbd4b069df48fba2d78eda09025c52cb9c8766d8bad278e9b26431500cc570bc7afa242d43ffbf86405b4d820eaf3 + version: 2.2.0 + resolution: "@substrate/connect-extension-protocol@npm:2.2.0" + checksum: 10c0/ab3a76adc233376e511b6c585ebe3bbac6ef6d7d3ccaf06fb13f19b88207341f22590c6e6ccda5f404e952291e2d8651328ab5fe1eac03a5ac8049b56d9f096c languageName: node linkType: hard "@substrate/connect-known-chains@npm:^1.1.5": - version: 1.4.0 - resolution: "@substrate/connect-known-chains@npm:1.4.0" - checksum: 10c0/5072a5e560fb02538e2366cca48ae987e906e4c8f35d156bef4eba8753163403f3eb65eadcc7813fb45168b295d00d4364df441fde60b9551ea9491fd4ff4759 + version: 1.6.0 + resolution: "@substrate/connect-known-chains@npm:1.6.0" + checksum: 10c0/4ddf3c06d08bbfedf8e0c2e183a236656cb3411e373b8abf90601bfca1f066565734188f9b2731ace4a4810edfe26e64e32d212be0af54cc5a6b9913768bb89b languageName: node linkType: hard @@ -1390,99 +1408,99 @@ __metadata: languageName: node linkType: hard -"@substrate/ss58-registry@npm:^1.46.0": - version: 1.50.0 - resolution: "@substrate/ss58-registry@npm:1.50.0" - checksum: 10c0/49178248445d88b2f06f6e45e7890bd292f91b9d5d6bfa2788f27b5d9e3a08d3f18462440ea905b2fe7fa60dafb690d40ce1f549929bdbbe48562be622748717 +"@substrate/ss58-registry@npm:^1.51.0": + version: 1.51.0 + resolution: "@substrate/ss58-registry@npm:1.51.0" + checksum: 10c0/f568ea2a5011ee1c288e577d23dd48a6ba0dc0db3611f268b1c35f41636b8ec39ae09fe0184f88d411e331b60d924e90054be736b1ff624cdcb9b742c94a9bf6 languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.7.28": - version: 1.7.28 - resolution: "@swc/core-darwin-arm64@npm:1.7.28" +"@swc/core-darwin-arm64@npm:1.7.40": + version: 1.7.40 + resolution: "@swc/core-darwin-arm64@npm:1.7.40" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.7.28": - version: 1.7.28 - resolution: "@swc/core-darwin-x64@npm:1.7.28" +"@swc/core-darwin-x64@npm:1.7.40": + version: 1.7.40 + resolution: "@swc/core-darwin-x64@npm:1.7.40" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.7.28": - version: 1.7.28 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.7.28" +"@swc/core-linux-arm-gnueabihf@npm:1.7.40": + version: 1.7.40 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.7.40" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.7.28": - version: 1.7.28 - resolution: "@swc/core-linux-arm64-gnu@npm:1.7.28" +"@swc/core-linux-arm64-gnu@npm:1.7.40": + version: 1.7.40 + resolution: "@swc/core-linux-arm64-gnu@npm:1.7.40" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.7.28": - version: 1.7.28 - resolution: "@swc/core-linux-arm64-musl@npm:1.7.28" +"@swc/core-linux-arm64-musl@npm:1.7.40": + version: 1.7.40 + resolution: "@swc/core-linux-arm64-musl@npm:1.7.40" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.7.28": - version: 1.7.28 - resolution: "@swc/core-linux-x64-gnu@npm:1.7.28" +"@swc/core-linux-x64-gnu@npm:1.7.40": + version: 1.7.40 + resolution: "@swc/core-linux-x64-gnu@npm:1.7.40" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.7.28": - version: 1.7.28 - resolution: "@swc/core-linux-x64-musl@npm:1.7.28" +"@swc/core-linux-x64-musl@npm:1.7.40": + version: 1.7.40 + resolution: "@swc/core-linux-x64-musl@npm:1.7.40" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.7.28": - version: 1.7.28 - resolution: "@swc/core-win32-arm64-msvc@npm:1.7.28" +"@swc/core-win32-arm64-msvc@npm:1.7.40": + version: 1.7.40 + resolution: "@swc/core-win32-arm64-msvc@npm:1.7.40" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.7.28": - version: 1.7.28 - resolution: "@swc/core-win32-ia32-msvc@npm:1.7.28" +"@swc/core-win32-ia32-msvc@npm:1.7.40": + version: 1.7.40 + resolution: "@swc/core-win32-ia32-msvc@npm:1.7.40" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.7.28": - version: 1.7.28 - resolution: "@swc/core-win32-x64-msvc@npm:1.7.28" +"@swc/core-win32-x64-msvc@npm:1.7.40": + version: 1.7.40 + resolution: "@swc/core-win32-x64-msvc@npm:1.7.40" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@swc/core@npm:^1.7.26": - version: 1.7.28 - resolution: "@swc/core@npm:1.7.28" - dependencies: - "@swc/core-darwin-arm64": "npm:1.7.28" - "@swc/core-darwin-x64": "npm:1.7.28" - "@swc/core-linux-arm-gnueabihf": "npm:1.7.28" - "@swc/core-linux-arm64-gnu": "npm:1.7.28" - "@swc/core-linux-arm64-musl": "npm:1.7.28" - "@swc/core-linux-x64-gnu": "npm:1.7.28" - "@swc/core-linux-x64-musl": "npm:1.7.28" - "@swc/core-win32-arm64-msvc": "npm:1.7.28" - "@swc/core-win32-ia32-msvc": "npm:1.7.28" - "@swc/core-win32-x64-msvc": "npm:1.7.28" + version: 1.7.40 + resolution: "@swc/core@npm:1.7.40" + dependencies: + "@swc/core-darwin-arm64": "npm:1.7.40" + "@swc/core-darwin-x64": "npm:1.7.40" + "@swc/core-linux-arm-gnueabihf": "npm:1.7.40" + "@swc/core-linux-arm64-gnu": "npm:1.7.40" + "@swc/core-linux-arm64-musl": "npm:1.7.40" + "@swc/core-linux-x64-gnu": "npm:1.7.40" + "@swc/core-linux-x64-musl": "npm:1.7.40" + "@swc/core-win32-arm64-msvc": "npm:1.7.40" + "@swc/core-win32-ia32-msvc": "npm:1.7.40" + "@swc/core-win32-x64-msvc": "npm:1.7.40" "@swc/counter": "npm:^0.1.3" - "@swc/types": "npm:^0.1.12" + "@swc/types": "npm:^0.1.13" peerDependencies: "@swc/helpers": "*" dependenciesMeta: @@ -1509,7 +1527,7 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: 10c0/e7a5764fe9c476b606b3c68e9bfcb1945a2a1576458176dbd93edd06bd57e3e0837a119c21162904fa2b0c3f5c3a7049d77b52c4f793e0d4f4f345ba959c5456 + checksum: 10c0/d763413eb649e365282de70994ff6582ecc32b282721d04bd72b8c4403bc3a43327cd4d05fdac2bdb21eb2a6c6de77d9268ace1d358848ee9ffa7d81463b7ee8 languageName: node linkType: hard @@ -1520,12 +1538,12 @@ __metadata: languageName: node linkType: hard -"@swc/types@npm:^0.1.12": - version: 0.1.12 - resolution: "@swc/types@npm:0.1.12" +"@swc/types@npm:^0.1.13": + version: 0.1.13 + resolution: "@swc/types@npm:0.1.13" dependencies: "@swc/counter": "npm:^0.1.3" - checksum: 10c0/f95fea7dee8fc07f8389afbb9578f3d0cd84b429b1d0dbff7fd99b2ef06ed88e96bc33631f36c3bc0505d5a783bee1374acd84b8fc2593001219b6c2caba241b + checksum: 10c0/f85a850dead981ca9a26ae366529f2b383fa26324ffcbbee46d7b48399e6ed36d6a6a3d55398f17f87c65f550e28d642a35877d40f389c78765a31ecdfc88bd9 languageName: node linkType: hard @@ -1536,19 +1554,19 @@ __metadata: languageName: node linkType: hard -"@types/bn.js@npm:^5.1.5": - version: 5.1.5 - resolution: "@types/bn.js@npm:5.1.5" +"@types/bn.js@npm:^5.1.6": + version: 5.1.6 + resolution: "@types/bn.js@npm:5.1.6" dependencies: "@types/node": "npm:*" - checksum: 10c0/e9f375b43d8119ed82aed2090f83d4cda8afbb63ba13223afb02fa7550258ff90acd76d65cd7186838644048f085241cd98a3a512d8d187aa497c6039c746ac8 + checksum: 10c0/073d383d87afea513a8183ce34af7bc0a7a798d057c7ae651982b7f30dd7d93f33247323bca3ba39f1f6af146b564aff547b15467bdf9fc922796c17e8426bf6 languageName: node linkType: hard -"@types/estree@npm:1.0.5, @types/estree@npm:^1.0.0": - version: 1.0.5 - resolution: "@types/estree@npm:1.0.5" - checksum: 10c0/b3b0e334288ddb407c7b3357ca67dbee75ee22db242ca7c56fe27db4e1a31989cb8af48a84dd401deb787fe10cc6b2ab1ee82dc4783be87ededbe3d53c79c70d +"@types/estree@npm:1.0.6, @types/estree@npm:^1.0.0": + version: 1.0.6 + resolution: "@types/estree@npm:1.0.6" + checksum: 10c0/cdfd751f6f9065442cd40957c07fd80361c962869aa853c1c2fd03e101af8b9389d8ff4955a43a6fcfa223dd387a089937f95be0f3eec21ca527039fd2d9859a languageName: node linkType: hard @@ -1560,18 +1578,18 @@ __metadata: linkType: hard "@types/lodash@npm:^4.17.7": - version: 4.17.7 - resolution: "@types/lodash@npm:4.17.7" - checksum: 10c0/40c965b5ffdcf7ff5c9105307ee08b782da228c01b5c0529122c554c64f6b7168fc8f11dc79aa7bae4e67e17efafaba685dc3a47e294dbf52a65ed2b67100561 + version: 4.17.12 + resolution: "@types/lodash@npm:4.17.12" + checksum: 10c0/106008f628ea3c74ed7ee7842dee79e230c84e3721ac38c293700031adb5bd130113048c22f476dbde0d0c119506b0fc447d4bd62eca922682d11e00e1377967 languageName: node linkType: hard "@types/node@npm:*, @types/node@npm:^22.5.3": - version: 22.5.4 - resolution: "@types/node@npm:22.5.4" + version: 22.8.1 + resolution: "@types/node@npm:22.8.1" dependencies: - undici-types: "npm:~6.19.2" - checksum: 10c0/b445daa7eecd761ad4d778b882d6ff7bcc3b4baad2086ea9804db7c5d4a4ab0298b00d7f5315fc640a73b5a1d52bbf9628e09c9fec0cf44dbf9b4df674a8717d + undici-types: "npm:~6.19.8" + checksum: 10c0/83550fdf72a7db5b55eceac3f4fb038844eaee20202bdd2297a8248370cfa08317bda1605b781a8043eda4f173b75e73632e652fc85509eb14dfef78fa17337f languageName: node linkType: hard @@ -1599,20 +1617,20 @@ __metadata: linkType: hard "@typescript-eslint/parser@npm:^8.4.0": - version: 8.4.0 - resolution: "@typescript-eslint/parser@npm:8.4.0" + version: 8.11.0 + resolution: "@typescript-eslint/parser@npm:8.11.0" dependencies: - "@typescript-eslint/scope-manager": "npm:8.4.0" - "@typescript-eslint/types": "npm:8.4.0" - "@typescript-eslint/typescript-estree": "npm:8.4.0" - "@typescript-eslint/visitor-keys": "npm:8.4.0" + "@typescript-eslint/scope-manager": "npm:8.11.0" + "@typescript-eslint/types": "npm:8.11.0" + "@typescript-eslint/typescript-estree": "npm:8.11.0" + "@typescript-eslint/visitor-keys": "npm:8.11.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/19f3358e5bc4bbad693183eefe1a90ea64be054a934bc2c8a972ff4738b94580b55ad4955af5797db42298628caa59b3ba3f9fd960582b5fc2c836da3a4578a5 + checksum: 10c0/e83f239fec60697083e5dcb1c8948340e783ea6e043fe9a65d557faef8882963b09d69aacd736eb8ab18a768769a7bbfc3de0f1251d4bba080613541acb0741c languageName: node linkType: hard @@ -1626,13 +1644,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.4.0": - version: 8.4.0 - resolution: "@typescript-eslint/scope-manager@npm:8.4.0" +"@typescript-eslint/scope-manager@npm:8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/scope-manager@npm:8.11.0" dependencies: - "@typescript-eslint/types": "npm:8.4.0" - "@typescript-eslint/visitor-keys": "npm:8.4.0" - checksum: 10c0/95188c663df7db106529c6b93c4c7c61647ed34ab6dd48114e41ddf49140ff606c5501ce2ae451a988ec49b5d3874ea96ff212fc102802327b10affd2ff80a37 + "@typescript-eslint/types": "npm:8.11.0" + "@typescript-eslint/visitor-keys": "npm:8.11.0" + checksum: 10c0/0910da62d8ae261711dd9f89d5c7d8e96ff13c50054436256e5a661309229cb49e3b8189c9468d36b6c4d3f7cddd121519ea78f9b18c9b869a808834b079b2ea languageName: node linkType: hard @@ -1660,10 +1678,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:8.4.0": - version: 8.4.0 - resolution: "@typescript-eslint/types@npm:8.4.0" - checksum: 10c0/15e09ced84827c349553530a31822f06ae5bad456c03d561b7d0c64b6ad9b5d7ca795e030bd93e65d5a2cd41bfde36ed08dcd2ff9feaa8b60a67080827f47ecb +"@typescript-eslint/types@npm:8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/types@npm:8.11.0" + checksum: 10c0/5ccdd3eeee077a6fc8e7f4bc0e0cbc9327b1205a845253ec5c0c6c49ff915e853161df00c24a0ffb4b8ec745d3f153dd0e066400a021c844c026e31121f46699 languageName: node linkType: hard @@ -1686,12 +1704,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.4.0": - version: 8.4.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.4.0" +"@typescript-eslint/typescript-estree@npm:8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.11.0" dependencies: - "@typescript-eslint/types": "npm:8.4.0" - "@typescript-eslint/visitor-keys": "npm:8.4.0" + "@typescript-eslint/types": "npm:8.11.0" + "@typescript-eslint/visitor-keys": "npm:8.11.0" debug: "npm:^4.3.4" fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" @@ -1701,7 +1719,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/170702b024121cff9268f53de8054796b0ce025f9a78d6f2bc850a360e5f3f7032ba3ee9d4b7392726308273a5f3ade5ab31b1788b504b514bc15afc07302b37 + checksum: 10c0/b629ad3cd32b005d5c1d67c36958a418f8672efebea869399834f4f201ebf90b942165eebb5c9d9799dcabdc2cc26e5fabb00629f76b158847f42e1a491a75a6 languageName: node linkType: hard @@ -1729,13 +1747,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.4.0": - version: 8.4.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.4.0" +"@typescript-eslint/visitor-keys@npm:8.11.0": + version: 8.11.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.11.0" dependencies: - "@typescript-eslint/types": "npm:8.4.0" + "@typescript-eslint/types": "npm:8.11.0" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/339199b7fbb9ac83b530d03ab25f6bc5ceb688c9cd0ae460112cd14ee78ca7284a845aef5620cdf70170980123475ec875e85ebf595c60255ba3c0d6fe48c714 + checksum: 10c0/7a5a49609fdc47e114fe59eee56393c90b122ec8e9520f90b0c5e189635ae1ccfa8e00108f641342c2c8f4637fe9d40c77927cf7c8248a3a660812cb4b7d0c08 languageName: node linkType: hard @@ -1757,12 +1775,12 @@ __metadata: languageName: node linkType: hard -"@vitest/pretty-format@npm:2.1.1": - version: 2.1.1 - resolution: "@vitest/pretty-format@npm:2.1.1" +"@vitest/pretty-format@npm:2.1.3": + version: 2.1.3 + resolution: "@vitest/pretty-format@npm:2.1.3" dependencies: tinyrainbow: "npm:^1.2.0" - checksum: 10c0/21057465a794a037a7af2c48397531eadf9b2d8a7b4d1ee5af9081cf64216cd0039b9e06317319df79aa2240fed1dbb6767b530deae2bd4b42d6fb974297e97d + checksum: 10c0/5a6ee872a8adf5e2764f2b5b2276d8a2199be4ef14777ab693428caf359481851400af10b59721d4972289c955ffe7277954a662b04cfb10233824574c7074ba languageName: node linkType: hard @@ -1798,10 +1816,10 @@ __metadata: linkType: hard "@vitest/ui@npm:^2.1.1": - version: 2.1.1 - resolution: "@vitest/ui@npm:2.1.1" + version: 2.1.3 + resolution: "@vitest/ui@npm:2.1.3" dependencies: - "@vitest/utils": "npm:2.1.1" + "@vitest/utils": "npm:2.1.3" fflate: "npm:^0.8.2" flatted: "npm:^3.3.1" pathe: "npm:^1.1.2" @@ -1809,8 +1827,8 @@ __metadata: tinyglobby: "npm:^0.2.6" tinyrainbow: "npm:^1.2.0" peerDependencies: - vitest: 2.1.1 - checksum: 10c0/52b1580edb9a7c87bdbfdc6521a8b01af1294a2a674f97597a8a923a663f198571972a7b65c66aebe5afb5f886bf1cd4e0828913558c95bc118f568d68afa046 + vitest: 2.1.3 + checksum: 10c0/a0d16c484c139f7dcd3cbc7ef2f2b19f4332222640a0ee941c3fc517493e13a4398633fd7972a127c0eebd1aa5314dcf4e384898777d02b19b353bb6957961b4 languageName: node linkType: hard @@ -1826,14 +1844,14 @@ __metadata: languageName: node linkType: hard -"@vitest/utils@npm:2.1.1": - version: 2.1.1 - resolution: "@vitest/utils@npm:2.1.1" +"@vitest/utils@npm:2.1.3": + version: 2.1.3 + resolution: "@vitest/utils@npm:2.1.3" dependencies: - "@vitest/pretty-format": "npm:2.1.1" + "@vitest/pretty-format": "npm:2.1.3" loupe: "npm:^3.1.1" tinyrainbow: "npm:^1.2.0" - checksum: 10c0/b724c7f23591860bd24cd8e6d0cd803405f4fbff746db160a948290742144463287566a05ca400deb56817603b5185c4429707947869c3d453805860b5e3a3e5 + checksum: 10c0/55a044e43b84c0f8f573d8578107f26440678b6f506c8d9fee88b7ef120d19efd27c9be77985c107113b0f3f3db298dcee57074e1c1c214bee7a097fd08a209b languageName: node linkType: hard @@ -1870,20 +1888,20 @@ __metadata: linkType: hard "acorn-walk@npm:^8.3.2": - version: 8.3.3 - resolution: "acorn-walk@npm:8.3.3" + version: 8.3.4 + resolution: "acorn-walk@npm:8.3.4" dependencies: acorn: "npm:^8.11.0" - checksum: 10c0/4a9e24313e6a0a7b389e712ba69b66b455b4cb25988903506a8d247e7b126f02060b05a8a5b738a9284214e4ca95f383dd93443a4ba84f1af9b528305c7f243b + checksum: 10c0/76537ac5fb2c37a64560feaf3342023dadc086c46da57da363e64c6148dc21b57d49ace26f949e225063acb6fb441eabffd89f7a3066de5ad37ab3e328927c62 languageName: node linkType: hard -"acorn@npm:^8.11.0, acorn@npm:^8.11.3, acorn@npm:^8.12.1, acorn@npm:^8.9.0": - version: 8.12.1 - resolution: "acorn@npm:8.12.1" +"acorn@npm:^8.11.0, acorn@npm:^8.12.1, acorn@npm:^8.9.0": + version: 8.14.0 + resolution: "acorn@npm:8.14.0" bin: acorn: bin/acorn - checksum: 10c0/51fb26cd678f914e13287e886da2d7021f8c2bc0ccc95e03d3e0447ee278dd3b40b9c57dc222acd5881adcf26f3edc40901a4953403232129e3876793cd17386 + checksum: 10c0/6d4ee461a7734b2f48836ee0fbb752903606e576cc100eb49340295129ca0b452f3ba91ddd4424a1d4406a98adfb2ebb6bd0ff4c49d7a0930c10e462719bbfd7 languageName: node linkType: hard @@ -1953,9 +1971,9 @@ __metadata: linkType: hard "ansi-regex@npm:^6.0.1": - version: 6.0.1 - resolution: "ansi-regex@npm:6.0.1" - checksum: 10c0/cbe16dbd2c6b2735d1df7976a7070dd277326434f0212f43abf6d87674095d247968209babdaad31bb00882fa68807256ba9be340eec2f1004de14ca75f52a08 + version: 6.1.0 + resolution: "ansi-regex@npm:6.1.0" + checksum: 10c0/a91daeddd54746338478eef88af3439a7edf30f8e23196e2d6ed182da9add559c601266dbef01c2efa46a958ad6f1f8b176799657616c702b5b02e799e7fd8dc languageName: node linkType: hard @@ -2506,10 +2524,10 @@ __metadata: languageName: node linkType: hard -"confbox@npm:^0.1.7": - version: 0.1.7 - resolution: "confbox@npm:0.1.7" - checksum: 10c0/18b40c2f652196a833f3f1a5db2326a8a579cd14eacabfe637e4fc8cb9b68d7cf296139a38c5e7c688ce5041bf46f9adce05932d43fde44cf7e012840b5da111 +"confbox@npm:^0.1.8": + version: 0.1.8 + resolution: "confbox@npm:0.1.8" + checksum: 10c0/fc2c68d97cb54d885b10b63e45bd8da83a8a71459d3ecf1825143dd4c7f9f1b696b3283e07d9d12a144c1301c2ebc7842380bdf0014e55acc4ae1c9550102418 languageName: node linkType: hard @@ -2596,14 +2614,14 @@ __metadata: linkType: hard "debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4, debug@npm:^4.3.5, debug@npm:~4.3.6": - version: 4.3.6 - resolution: "debug@npm:4.3.6" + version: 4.3.7 + resolution: "debug@npm:4.3.7" dependencies: - ms: "npm:2.1.2" + ms: "npm:^2.1.3" peerDependenciesMeta: supports-color: optional: true - checksum: 10c0/3293416bff072389c101697d4611c402a6bacd1900ac20c0492f61a9cdd6b3b29750fc7f5e299f8058469ef60ff8fb79b86395a30374fbd2490113c1c7112285 + checksum: 10c0/1471db19c3b06d485a622d62f65947a19a23fbd0dd73f7fd3eafb697eec5360cde447fb075919987899b1a2096e85d35d4eb5a4de09a57600ac9cf7e6c8e768b languageName: node linkType: hard @@ -3194,21 +3212,21 @@ __metadata: languageName: node linkType: hard -"eslint-module-utils@npm:^2.8.1, eslint-module-utils@npm:^2.9.0": - version: 2.9.0 - resolution: "eslint-module-utils@npm:2.9.0" +"eslint-module-utils@npm:^2.12.0, eslint-module-utils@npm:^2.8.1": + version: 2.12.0 + resolution: "eslint-module-utils@npm:2.12.0" dependencies: debug: "npm:^3.2.7" peerDependenciesMeta: eslint: optional: true - checksum: 10c0/7c45c5b54402a969e99315890c10e9bf8c8bee16c7890573343af05dfa04566d61546585678c413e5228af0550e39461be47e35a8ff0d1863e113bdbb28d1d29 + checksum: 10c0/4d8b46dcd525d71276f9be9ffac1d2be61c9d54cc53c992e6333cf957840dee09381842b1acbbb15fc6b255ebab99cd481c5007ab438e5455a14abe1a0468558 languageName: node linkType: hard "eslint-plugin-import@npm:^2.30.0": - version: 2.30.0 - resolution: "eslint-plugin-import@npm:2.30.0" + version: 2.31.0 + resolution: "eslint-plugin-import@npm:2.31.0" dependencies: "@rtsao/scc": "npm:^1.1.0" array-includes: "npm:^3.1.8" @@ -3218,7 +3236,7 @@ __metadata: debug: "npm:^3.2.7" doctrine: "npm:^2.1.0" eslint-import-resolver-node: "npm:^0.3.9" - eslint-module-utils: "npm:^2.9.0" + eslint-module-utils: "npm:^2.12.0" hasown: "npm:^2.0.2" is-core-module: "npm:^2.15.1" is-glob: "npm:^4.0.3" @@ -3227,10 +3245,11 @@ __metadata: object.groupby: "npm:^1.0.3" object.values: "npm:^1.2.0" semver: "npm:^6.3.1" + string.prototype.trimend: "npm:^1.0.8" tsconfig-paths: "npm:^3.15.0" peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - checksum: 10c0/4c9dcb1f27505c4d5dd891d2b551f56c70786d136aa3992a77e785bdc67c9f60200a2c7fb0ce55b7647fe550b12bc433d5dfa59e2c00ab44227791c5ab86badf + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + checksum: 10c0/e21d116ddd1900e091ad120b3eb68c5dd5437fe2c930f1211781cd38b246f090a6b74d5f3800b8255a0ed29782591521ad44eb21c5534960a8f1fb4040fd913a languageName: node linkType: hard @@ -3273,7 +3292,7 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": +"eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": version: 3.4.3 resolution: "eslint-visitor-keys@npm:3.4.3" checksum: 10c0/92708e882c0a5ffd88c23c0b404ac1628cf20104a108c745f240a13c332a11aac54f49a22d5762efbffc18ecbc9a580d1b7ad034bf5f3cc3307e5cbff2ec9820 @@ -3281,14 +3300,14 @@ __metadata: linkType: hard "eslint@npm:^8.57.0": - version: 8.57.0 - resolution: "eslint@npm:8.57.0" + version: 8.57.1 + resolution: "eslint@npm:8.57.1" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.6.1" "@eslint/eslintrc": "npm:^2.1.4" - "@eslint/js": "npm:8.57.0" - "@humanwhocodes/config-array": "npm:^0.11.14" + "@eslint/js": "npm:8.57.1" + "@humanwhocodes/config-array": "npm:^0.13.0" "@humanwhocodes/module-importer": "npm:^1.0.1" "@nodelib/fs.walk": "npm:^1.2.8" "@ungap/structured-clone": "npm:^1.2.0" @@ -3324,7 +3343,7 @@ __metadata: text-table: "npm:^0.2.0" bin: eslint: bin/eslint.js - checksum: 10c0/00bb96fd2471039a312435a6776fe1fd557c056755eaa2b96093ef3a8508c92c8775d5f754768be6b1dddd09fdd3379ddb231eeb9b6c579ee17ea7d68000a529 + checksum: 10c0/1fd31533086c1b72f86770a4d9d7058ee8b4643fd1cfd10c7aac1ecb8725698e88352a87805cf4b2ce890aa35947df4b4da9655fb7fdfa60dbb448a43f6ebcf1 languageName: node linkType: hard @@ -3510,15 +3529,15 @@ __metadata: languageName: node linkType: hard -"fdir@npm:^6.4.0": - version: 6.4.0 - resolution: "fdir@npm:6.4.0" +"fdir@npm:^6.4.2": + version: 6.4.2 + resolution: "fdir@npm:6.4.2" peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: picomatch: optional: true - checksum: 10c0/9a03efa1335d78ea386b701799b08ad9e7e8da85d88567dc162cd28dd8e9486e8c269b3e95bfeb21dd6a5b14ebf69d230eb6e18f49d33fbda3cd97432f648c48 + checksum: 10c0/34829886f34a3ca4170eca7c7180ec4de51a3abb4d380344063c0ae2e289b11d2ba8b724afee974598c83027fea363ff598caf2b51bc4e6b1e0d8b80cc530573 languageName: node linkType: hard @@ -3593,12 +3612,12 @@ __metadata: linkType: hard "follow-redirects@npm:^1.15.6": - version: 1.15.8 - resolution: "follow-redirects@npm:1.15.8" + version: 1.15.9 + resolution: "follow-redirects@npm:1.15.9" peerDependenciesMeta: debug: optional: true - checksum: 10c0/ffb8f71338000717f6bfefddc3247dda226326f29fdafb9ef32ef67176339a1ae13c419aea837645b58331f94eba6168704149f4d10a8a976687efd2e45131d2 + checksum: 10c0/5829165bd112c3c0e82be6c15b1a58fa9dcfaede3b3c54697a82fe4a62dd5ae5e8222956b448d2f98e331525f05d00404aba7d696de9e761ef6e42fdc780244f languageName: node linkType: hard @@ -3622,13 +3641,13 @@ __metadata: linkType: hard "form-data@npm:^4.0.0": - version: 4.0.0 - resolution: "form-data@npm:4.0.0" + version: 4.0.1 + resolution: "form-data@npm:4.0.1" dependencies: asynckit: "npm:^0.4.0" combined-stream: "npm:^1.0.8" mime-types: "npm:^2.1.12" - checksum: 10c0/cb6f3ac49180be03ff07ba3ff125f9eba2ff0b277fb33c7fc47569fc5e616882c5b1c69b9904c4c4187e97dd0419dd03b134174756f296dec62041e6527e2c6e + checksum: 10c0/bb102d570be8592c23f4ea72d7df9daa50c7792eb0cf1c5d7e506c1706e7426a4e4ae48a35b109e91c85f1c0ec63774a21ae252b66f4eb981cb8efef7d0463c8 languageName: node linkType: hard @@ -3742,9 +3761,9 @@ __metadata: linkType: hard "get-east-asian-width@npm:^1.0.0": - version: 1.2.0 - resolution: "get-east-asian-width@npm:1.2.0" - checksum: 10c0/914b1e217cf38436c24b4c60b4c45289e39a45bf9e65ef9fd343c2815a1a02b8a0215aeec8bf9c07c516089004b6e3826332481f40a09529fcadbf6e579f286b + version: 1.3.0 + resolution: "get-east-asian-width@npm:1.3.0" + checksum: 10c0/1a049ba697e0f9a4d5514c4623781c5246982bdb61082da6b5ae6c33d838e52ce6726407df285cdbb27ec1908b333cf2820989bd3e986e37bb20979437fdf34b languageName: node linkType: hard @@ -3787,11 +3806,11 @@ __metadata: linkType: hard "get-tsconfig@npm:^4.7.5": - version: 4.8.0 - resolution: "get-tsconfig@npm:4.8.0" + version: 4.8.1 + resolution: "get-tsconfig@npm:4.8.1" dependencies: resolve-pkg-maps: "npm:^1.0.0" - checksum: 10c0/943721c996d9a77351aa7c07956de77baece97f997bd30f3247f46907e4b743f7b9da02c7b3692a36f0884d3724271faeb88ed1c3aca3aba2afe3f27d6c4aeb3 + checksum: 10c0/536ee85d202f604f4b5fb6be81bcd6e6d9a96846811e83e9acc6de4a04fb49506edea0e1b8cf1d5ee7af33e469916ec2809d4c5445ab8ae015a7a51fbd1572f9 languageName: node linkType: hard @@ -4075,11 +4094,11 @@ __metadata: linkType: hard "husky@npm:^9.1.5": - version: 9.1.5 - resolution: "husky@npm:9.1.5" + version: 9.1.6 + resolution: "husky@npm:9.1.6" bin: husky: bin.js - checksum: 10c0/f42efb95a026303eb880898760f802d88409780dd72f17781d2dfc302177d4f80b641cf1f1694f53f6d97c536c7397684133d8c8fe4a4426f7460186a7d1c6b8 + checksum: 10c0/705673db4a247c1febd9c5df5f6a3519106cf0335845027bb50a15fba9b1f542cb2610932ede96fd08008f6d9f49db0f15560509861808b0031cdc0e7c798bac languageName: node linkType: hard @@ -4219,11 +4238,11 @@ __metadata: linkType: hard "is-bun-module@npm:^1.0.2": - version: 1.1.0 - resolution: "is-bun-module@npm:1.1.0" + version: 1.2.1 + resolution: "is-bun-module@npm:1.2.1" dependencies: semver: "npm:^7.6.3" - checksum: 10c0/17cae968c3fe08e2bd66f8477e4d5a166d6299b5e7ce5c7558355551c50267f77dd386297fada6b68e4a32f01ce8920b0423e4d258242ea463b45901ec474beb + checksum: 10c0/819e63cd4468265a3e89cdc241554e37aeb85e40375a56dd559c022f4395491273267a0f843274fda6cad1eac3b0f8dc6d9e06cc349e33e2bf45098761184736 languageName: node linkType: hard @@ -4563,8 +4582,8 @@ __metadata: linkType: hard "listr2@npm:~8.2.4": - version: 8.2.4 - resolution: "listr2@npm:8.2.4" + version: 8.2.5 + resolution: "listr2@npm:8.2.5" dependencies: cli-truncate: "npm:^4.0.0" colorette: "npm:^2.0.20" @@ -4572,7 +4591,7 @@ __metadata: log-update: "npm:^6.1.0" rfdc: "npm:^1.4.1" wrap-ansi: "npm:^9.0.0" - checksum: 10c0/df5b129e9767de1997973cec6103cd4bd6fc3b3367685b7c23048d12b61d5b7e44fecd8a3d3534c0e1c963bd5ac43ca501d14712f46fa101050037be323a5c16 + checksum: 10c0/f5a9599514b00c27d7eb32d1117c83c61394b2a985ec20e542c798bf91cf42b19340215701522736f5b7b42f557e544afeadec47866e35e5d4f268f552729671 languageName: node linkType: hard @@ -4639,11 +4658,9 @@ __metadata: linkType: hard "loupe@npm:^3.1.1": - version: 3.1.1 - resolution: "loupe@npm:3.1.1" - dependencies: - get-func-name: "npm:^2.0.1" - checksum: 10c0/99f88badc47e894016df0c403de846fedfea61154aadabbf776c8428dd59e8d8378007135d385d737de32ae47980af07d22ba7bec5ef7beebd721de9baa0a0af + version: 3.1.2 + resolution: "loupe@npm:3.1.2" + checksum: 10c0/b13c02e3ddd6a9d5f8bf84133b3242de556512d824dddeea71cce2dbd6579c8f4d672381c4e742d45cf4423d0701765b4a6e5fbc24701def16bc2b40f8daa96a languageName: node linkType: hard @@ -4664,11 +4681,11 @@ __metadata: linkType: hard "magic-string@npm:^0.30.5": - version: 0.30.11 - resolution: "magic-string@npm:0.30.11" + version: 0.30.12 + resolution: "magic-string@npm:0.30.12" dependencies: "@jridgewell/sourcemap-codec": "npm:^1.5.0" - checksum: 10c0/b9eb370773d0bd90ca11a848753409d8e5309b1ad56d2a1aa49d6649da710a6d2fe7237ad1a643c5a5d3800de2b9946ed9690acdfc00e6cc1aeafff3ab1752c4 + checksum: 10c0/469f457d18af37dfcca8617086ea8a65bcd8b60ba8a1182cb024ce43e470ace3c9d1cb6bee58d3b311768fb16bc27bd50bdeebcaa63dadd0fd46cac4d2e11d5f languageName: node linkType: hard @@ -4944,15 +4961,15 @@ __metadata: languageName: node linkType: hard -"mlly@npm:^1.4.2, mlly@npm:^1.7.1": - version: 1.7.1 - resolution: "mlly@npm:1.7.1" +"mlly@npm:^1.4.2, mlly@npm:^1.7.2": + version: 1.7.2 + resolution: "mlly@npm:1.7.2" dependencies: - acorn: "npm:^8.11.3" + acorn: "npm:^8.12.1" pathe: "npm:^1.1.2" - pkg-types: "npm:^1.1.1" - ufo: "npm:^1.5.3" - checksum: 10c0/d836a7b0adff4d118af41fb93ad4d9e57f80e694a681185280ba220a4607603c19e86c80f9a6c57512b04280567f2599e3386081705c5b5fd74c9ddfd571d0fa + pkg-types: "npm:^1.2.0" + ufo: "npm:^1.5.4" + checksum: 10c0/e5a990b9d895477f3d3dfceec9797e41d6f029ce3b1b2dcf787d4b7500b4caff4b3cdc0ae5cb82c14b469b85209fe3d7368286415c0ca5415b163219fc6b5f21 languageName: node linkType: hard @@ -4970,14 +4987,7 @@ __metadata: languageName: node linkType: hard -"ms@npm:2.1.2": - version: 2.1.2 - resolution: "ms@npm:2.1.2" - checksum: 10c0/a437714e2f90dbf881b5191d35a6db792efbca5badf112f87b9e1c712aace4b4b9b742dd6537f3edf90fd6f684de897cec230abde57e87883766712ddda297cc - languageName: node - linkType: hard - -"ms@npm:^2.0.0, ms@npm:^2.1.1": +"ms@npm:^2.0.0, ms@npm:^2.1.1, ms@npm:^2.1.3": version: 2.1.3 resolution: "ms@npm:2.1.3" checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 @@ -5019,9 +5029,9 @@ __metadata: linkType: hard "negotiator@npm:^0.6.2, negotiator@npm:^0.6.3": - version: 0.6.3 - resolution: "negotiator@npm:0.6.3" - checksum: 10c0/3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2 + version: 0.6.4 + resolution: "negotiator@npm:0.6.4" + checksum: 10c0/3e677139c7fb7628a6f36335bf11a885a62c21d5390204590a1a214a5631fcbe5ea74ef6a610b60afe84b4d975cbe0566a23f20ee17c77c73e74b80032108dea languageName: node linkType: hard @@ -5037,11 +5047,11 @@ __metadata: linkType: hard "node-abi@npm:^3.3.0": - version: 3.67.0 - resolution: "node-abi@npm:3.67.0" + version: 3.71.0 + resolution: "node-abi@npm:3.71.0" dependencies: semver: "npm:^7.3.5" - checksum: 10c0/72ce2edbdfb84745bc201a4e48aa7146fd88a0d2c80046b6b17f28439c9a7683eab846f40f1e819349c31f7d9331ed5c50d1e741208d938dd5f38b29cab2275e + checksum: 10c0/dbd0792ea729329cd9d099f28a5681ff9e8a6db48cf64e1437bf6a7fd669009d1e758a784619a1c4cc8bfd1ed17162f042c787654edf19a1f64b5018457c9c1f languageName: node linkType: hard @@ -5307,9 +5317,9 @@ __metadata: linkType: hard "package-json-from-dist@npm:^1.0.0": - version: 1.0.0 - resolution: "package-json-from-dist@npm:1.0.0" - checksum: 10c0/e3ffaf6ac1040ab6082a658230c041ad14e72fabe99076a2081bb1d5d41210f11872403fc09082daf4387fc0baa6577f96c9c0e94c90c394fd57794b66aa4033 + version: 1.0.1 + resolution: "package-json-from-dist@npm:1.0.1" + checksum: 10c0/62ba2785eb655fec084a257af34dbe24292ab74516d6aecef97ef72d4897310bc6898f6c85b5cd22770eaa1ce60d55a0230e150fb6a966e3ecd6c511e23d164b languageName: node linkType: hard @@ -5411,10 +5421,10 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1": - version: 1.1.0 - resolution: "picocolors@npm:1.1.0" - checksum: 10c0/86946f6032148801ef09c051c6fb13b5cf942eaf147e30ea79edb91dd32d700934edebe782a1078ff859fb2b816792e97ef4dab03d7f0b804f6b01a0df35e023 +"picocolors@npm:^1.0.0, picocolors@npm:^1.1.0": + version: 1.1.1 + resolution: "picocolors@npm:1.1.1" + checksum: 10c0/e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58 languageName: node linkType: hard @@ -5441,7 +5451,7 @@ __metadata: languageName: node linkType: hard -"pino-abstract-transport@npm:^1.0.0, pino-abstract-transport@npm:^1.2.0": +"pino-abstract-transport@npm:^1.2.0": version: 1.2.0 resolution: "pino-abstract-transport@npm:1.2.0" dependencies: @@ -5451,9 +5461,18 @@ __metadata: languageName: node linkType: hard +"pino-abstract-transport@npm:^2.0.0": + version: 2.0.0 + resolution: "pino-abstract-transport@npm:2.0.0" + dependencies: + split2: "npm:^4.0.0" + checksum: 10c0/02c05b8f2ffce0d7c774c8e588f61e8b77de8ccb5f8125afd4a7325c9ea0e6af7fb78168999657712ae843e4462bb70ac550dfd6284f930ee57f17f486f25a9f + languageName: node + linkType: hard + "pino-pretty@npm:^11.0.0": - version: 11.2.2 - resolution: "pino-pretty@npm:11.2.2" + version: 11.3.0 + resolution: "pino-pretty@npm:11.3.0" dependencies: colorette: "npm:^2.0.7" dateformat: "npm:^4.6.3" @@ -5463,7 +5482,7 @@ __metadata: joycon: "npm:^3.1.1" minimist: "npm:^1.2.6" on-exit-leak-free: "npm:^2.1.0" - pino-abstract-transport: "npm:^1.0.0" + pino-abstract-transport: "npm:^2.0.0" pump: "npm:^3.0.0" readable-stream: "npm:^4.0.0" secure-json-parse: "npm:^2.4.0" @@ -5471,7 +5490,7 @@ __metadata: strip-json-comments: "npm:^3.1.1" bin: pino-pretty: bin.js - checksum: 10c0/3ce1769907886a5584f6c8123d9bc987712ad10a375797733a0fe95a238df587dac8e2b709bab291c4e30d41b0cf65808c708c96f8eb98b2778b6df60afa7e66 + checksum: 10c0/8e4d842bfce5fa3fc69d3a6adb1bca873051e000f0fb4879ae1cc5d1410387b2464a7208f6ecc70ec49bb149a9617ec233cb3ec7a5f017ec141cb482d79917c2 languageName: node linkType: hard @@ -5503,14 +5522,14 @@ __metadata: languageName: node linkType: hard -"pkg-types@npm:^1.0.3, pkg-types@npm:^1.1.1": - version: 1.2.0 - resolution: "pkg-types@npm:1.2.0" +"pkg-types@npm:^1.0.3, pkg-types@npm:^1.2.0": + version: 1.2.1 + resolution: "pkg-types@npm:1.2.1" dependencies: - confbox: "npm:^0.1.7" - mlly: "npm:^1.7.1" + confbox: "npm:^0.1.8" + mlly: "npm:^1.7.2" pathe: "npm:^1.1.2" - checksum: 10c0/111cf6ad4235438821ea195a0d70570b1bd36a71d094d258349027c9c304dea8b4f9669c9f7ce813f9a48a02942fb0d7fe9809127dbe7bb4b18a8de71583a081 + checksum: 10c0/4aef765c039e3ec3ca55171bb8ad776cf060d894c45ddf92b9d680b3fdb1817c8d1c428f74ea6aae144493fa1d6a97df6b8caec6dc31e418f1ce1f728d38014e languageName: node linkType: hard @@ -5522,13 +5541,13 @@ __metadata: linkType: hard "postcss@npm:^8.4.43": - version: 8.4.45 - resolution: "postcss@npm:8.4.45" + version: 8.4.47 + resolution: "postcss@npm:8.4.47" dependencies: nanoid: "npm:^3.3.7" - picocolors: "npm:^1.0.1" - source-map-js: "npm:^1.2.0" - checksum: 10c0/ad6f8b9b1157d678560373696109745ab97a947d449f8a997acac41c7f1e4c0f3ca4b092d6df1387f430f2c9a319987b1780dbdc27e35800a88cde9b606c1e8f + picocolors: "npm:^1.1.0" + source-map-js: "npm:^1.2.1" + checksum: 10c0/929f68b5081b7202709456532cee2a145c1843d391508c5a09de2517e8c4791638f71dd63b1898dba6712f8839d7a6da046c72a5e44c162e908f5911f57b5f44 languageName: node linkType: hard @@ -5650,12 +5669,12 @@ __metadata: linkType: hard "pump@npm:^3.0.0": - version: 3.0.0 - resolution: "pump@npm:3.0.0" + version: 3.0.2 + resolution: "pump@npm:3.0.2" dependencies: end-of-stream: "npm:^1.1.0" once: "npm:^1.3.1" - checksum: 10c0/bbdeda4f747cdf47db97428f3a135728669e56a0ae5f354a9ac5b74556556f5446a46f720a8f14ca2ece5be9b4d5d23c346db02b555f46739934cc6c093a5478 + checksum: 10c0/5ad655cb2a7738b4bcf6406b24ad0970d680649d996b55ad20d1be8e0c02394034e4c45ff7cd105d87f1e9b96a0e3d06fd28e11fae8875da26e7f7a8e2c9726f languageName: node linkType: hard @@ -5740,14 +5759,14 @@ __metadata: linkType: hard "regexp.prototype.flags@npm:^1.5.2": - version: 1.5.2 - resolution: "regexp.prototype.flags@npm:1.5.2" + version: 1.5.3 + resolution: "regexp.prototype.flags@npm:1.5.3" dependencies: - call-bind: "npm:^1.0.6" + call-bind: "npm:^1.0.7" define-properties: "npm:^1.2.1" es-errors: "npm:^1.3.0" - set-function-name: "npm:^2.0.1" - checksum: 10c0/0f3fc4f580d9c349f8b560b012725eb9c002f36daa0041b3fbf6f4238cb05932191a4d7d5db3b5e2caa336d5150ad0402ed2be81f711f9308fe7e1a9bf9bd552 + set-function-name: "npm:^2.0.2" + checksum: 10c0/e1a7c7dc42cc91abf73e47a269c4b3a8f225321b7f617baa25821f6a123a91d23a73b5152f21872c566e699207e1135d075d2251cd3e84cc96d82a910adf6020 languageName: node linkType: hard @@ -5855,26 +5874,28 @@ __metadata: linkType: hard "rollup@npm:^4.20.0": - version: 4.22.4 - resolution: "rollup@npm:4.22.4" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.22.4" - "@rollup/rollup-android-arm64": "npm:4.22.4" - "@rollup/rollup-darwin-arm64": "npm:4.22.4" - "@rollup/rollup-darwin-x64": "npm:4.22.4" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.22.4" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.22.4" - "@rollup/rollup-linux-arm64-gnu": "npm:4.22.4" - "@rollup/rollup-linux-arm64-musl": "npm:4.22.4" - "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.22.4" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.22.4" - "@rollup/rollup-linux-s390x-gnu": "npm:4.22.4" - "@rollup/rollup-linux-x64-gnu": "npm:4.22.4" - "@rollup/rollup-linux-x64-musl": "npm:4.22.4" - "@rollup/rollup-win32-arm64-msvc": "npm:4.22.4" - "@rollup/rollup-win32-ia32-msvc": "npm:4.22.4" - "@rollup/rollup-win32-x64-msvc": "npm:4.22.4" - "@types/estree": "npm:1.0.5" + version: 4.24.2 + resolution: "rollup@npm:4.24.2" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.24.2" + "@rollup/rollup-android-arm64": "npm:4.24.2" + "@rollup/rollup-darwin-arm64": "npm:4.24.2" + "@rollup/rollup-darwin-x64": "npm:4.24.2" + "@rollup/rollup-freebsd-arm64": "npm:4.24.2" + "@rollup/rollup-freebsd-x64": "npm:4.24.2" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.24.2" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.24.2" + "@rollup/rollup-linux-arm64-gnu": "npm:4.24.2" + "@rollup/rollup-linux-arm64-musl": "npm:4.24.2" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.24.2" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.24.2" + "@rollup/rollup-linux-s390x-gnu": "npm:4.24.2" + "@rollup/rollup-linux-x64-gnu": "npm:4.24.2" + "@rollup/rollup-linux-x64-musl": "npm:4.24.2" + "@rollup/rollup-win32-arm64-msvc": "npm:4.24.2" + "@rollup/rollup-win32-ia32-msvc": "npm:4.24.2" + "@rollup/rollup-win32-x64-msvc": "npm:4.24.2" + "@types/estree": "npm:1.0.6" fsevents: "npm:~2.3.2" dependenciesMeta: "@rollup/rollup-android-arm-eabi": @@ -5885,6 +5906,10 @@ __metadata: optional: true "@rollup/rollup-darwin-x64": optional: true + "@rollup/rollup-freebsd-arm64": + optional: true + "@rollup/rollup-freebsd-x64": + optional: true "@rollup/rollup-linux-arm-gnueabihf": optional: true "@rollup/rollup-linux-arm-musleabihf": @@ -5913,7 +5938,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 10c0/4c96b6e2e0c5dbe73b4ba899cea894a05115ab8c65ccff631fbbb944e2b3a9f2eb3b99c2dce3dd91b179647df1892ffc44ecee29381ccf155ba8000b22712a32 + checksum: 10c0/265de71cf6c20854514f0be1727fab3e615aa4afde2431f705c6f535182976c645703d2a21b4d25648a0212fb26a4043f892a83bba4d73c9ea965271a2f4a50e languageName: node linkType: hard @@ -6048,7 +6073,7 @@ __metadata: languageName: node linkType: hard -"set-function-name@npm:^2.0.1": +"set-function-name@npm:^2.0.2": version: 2.0.2 resolution: "set-function-name@npm:2.0.2" dependencies: @@ -6235,18 +6260,18 @@ __metadata: linkType: hard "sonic-boom@npm:^4.0.1": - version: 4.1.0 - resolution: "sonic-boom@npm:4.1.0" + version: 4.2.0 + resolution: "sonic-boom@npm:4.2.0" dependencies: atomic-sleep: "npm:^1.0.0" - checksum: 10c0/4c9e082db296fbfb02e22a1a9b8de8b82f5965697dda3fe7feadc4759bf25d1de0094e3c35f16e015bfdc00fad7b8cf15bef5b0144501a2a5c5b86efb5684096 + checksum: 10c0/ae897e6c2cd6d3cb7cdcf608bc182393b19c61c9413a85ce33ffd25891485589f39bece0db1de24381d0a38fc03d08c9862ded0c60f184f1b852f51f97af9684 languageName: node linkType: hard -"source-map-js@npm:^1.2.0": - version: 1.2.0 - resolution: "source-map-js@npm:1.2.0" - checksum: 10c0/7e5f896ac10a3a50fe2898e5009c58ff0dc102dcb056ed27a354623a0ece8954d4b2649e1a1b2b52ef2e161d26f8859c7710350930751640e71e374fe2d321a4 +"source-map-js@npm:^1.2.1": + version: 1.2.1 + resolution: "source-map-js@npm:1.2.1" + checksum: 10c0/7bda1fc4c197e3c6ff17de1b8b2c20e60af81b63a52cb32ec5a5d67a20a7d42651e2cb34ebe93833c5a2a084377e17455854fee3e21e7925c64a51b6a52b0faf languageName: node linkType: hard @@ -6472,12 +6497,12 @@ __metadata: linkType: hard "synckit@npm:^0.9.1": - version: 0.9.1 - resolution: "synckit@npm:0.9.1" + version: 0.9.2 + resolution: "synckit@npm:0.9.2" dependencies: "@pkgr/core": "npm:^0.1.0" tslib: "npm:^2.6.2" - checksum: 10c0/d8b89e1bf30ba3ffb469d8418c836ad9c0c062bf47028406b4d06548bc66af97155ea2303b96c93bf5c7c0f0d66153a6fbd6924c76521b434e6a9898982abc2e + checksum: 10c0/e0c262817444e5b872708adb6f5ad37951ba33f6b2d1d4477d45db1f57573a784618ceed5e6614e0225db330632b1f6b95bb74d21e4d013e45ad4bde03d0cb59 languageName: node linkType: hard @@ -6569,12 +6594,12 @@ __metadata: linkType: hard "tinyglobby@npm:^0.2.6": - version: 0.2.9 - resolution: "tinyglobby@npm:0.2.9" + version: 0.2.10 + resolution: "tinyglobby@npm:0.2.10" dependencies: - fdir: "npm:^6.4.0" + fdir: "npm:^6.4.2" picomatch: "npm:^4.0.2" - checksum: 10c0/f65f847afe70f56de069d4f1f9c3b0c1a76aaf2b0297656754734a83b9bac8e105b5534dfbea8599560476b88f7b747d0855370a957a07246d18b976addb87ec + checksum: 10c0/ce946135d39b8c0e394e488ad59f4092e8c4ecd675ef1bcd4585c47de1b325e61ec6adfbfbe20c3c2bfa6fd674c5b06de2a2e65c433f752ae170aff11793e5ef languageName: node linkType: hard @@ -6625,8 +6650,8 @@ __metadata: linkType: hard "tsconfck@npm:^3.0.3": - version: 3.1.3 - resolution: "tsconfck@npm:3.1.3" + version: 3.1.4 + resolution: "tsconfck@npm:3.1.4" peerDependencies: typescript: ^5.0.0 peerDependenciesMeta: @@ -6634,7 +6659,7 @@ __metadata: optional: true bin: tsconfck: bin/tsconfck.js - checksum: 10c0/64f7a8ed0a6d36b0902dfc0075e791d2242f7634644f124343ec0dec4f3f70092f929c5a9f59496d51883aa81bb1e595deb92a219593575d2e75b849064713d1 + checksum: 10c0/5120e91b3388574b449d57d08f45d05d9966cf4b9d6aa1018652c1fff6d7d37b1ed099b07e6ebf6099aa40b8a16968dd337198c55b7274892849112b942861ed languageName: node linkType: hard @@ -6650,16 +6675,16 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.1.0, tslib@npm:^2.5.0, tslib@npm:^2.6.2, tslib@npm:^2.6.3": - version: 2.7.0 - resolution: "tslib@npm:2.7.0" - checksum: 10c0/469e1d5bf1af585742128827000711efa61010b699cb040ab1800bcd3ccdd37f63ec30642c9e07c4439c1db6e46345582614275daca3e0f4abae29b0083f04a6 +"tslib@npm:^2.1.0, tslib@npm:^2.5.0, tslib@npm:^2.6.2, tslib@npm:^2.6.3, tslib@npm:^2.7.0, tslib@npm:^2.8.0": + version: 2.8.0 + resolution: "tslib@npm:2.8.0" + checksum: 10c0/31e4d14dc1355e9b89e4d3c893a18abb7f90b6886b089c2da91224d0a7752c79f3ddc41bc1aa0a588ac895bd97bb99c5bc2bfdb2f86de849f31caeb3ba79bbe5 languageName: node linkType: hard "tsx@npm:^4.19.0": - version: 4.19.0 - resolution: "tsx@npm:4.19.0" + version: 4.19.2 + resolution: "tsx@npm:4.19.2" dependencies: esbuild: "npm:~0.23.0" fsevents: "npm:~2.3.3" @@ -6669,7 +6694,7 @@ __metadata: optional: true bin: tsx: dist/cli.mjs - checksum: 10c0/d14463a78067c6db84c677b79b14861de6d7f6fb0ffa5727cc500c4552459e936395a3854ad0112af0fd7b263bcedd62ce3929b036188eb10cd9902a607ffe34 + checksum: 10c0/63164b889b1d170403e4d8753a6755dec371f220f5ce29a8e88f1f4d6085a784a12d8dc2ee669116611f2c72757ac9beaa3eea5c452796f541bdd2dc11753721 languageName: node linkType: hard @@ -6845,26 +6870,26 @@ __metadata: linkType: hard "typescript@npm:^5.6.2": - version: 5.6.2 - resolution: "typescript@npm:5.6.2" + version: 5.6.3 + resolution: "typescript@npm:5.6.3" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/3ed8297a8c7c56b7fec282532503d1ac795239d06e7c4966b42d4330c6cf433a170b53bcf93a130a7f14ccc5235de5560df4f1045eb7f3550b46ebed16d3c5e5 + checksum: 10c0/44f61d3fb15c35359bc60399cb8127c30bae554cd555b8e2b46d68fa79d680354b83320ad419ff1b81a0bdf324197b29affe6cc28988cd6a74d4ac60c94f9799 languageName: node linkType: hard "typescript@patch:typescript@npm%3A^5.6.2#optional!builtin": - version: 5.6.2 - resolution: "typescript@patch:typescript@npm%3A5.6.2#optional!builtin::version=5.6.2&hash=b45daf" + version: 5.6.3 + resolution: "typescript@patch:typescript@npm%3A5.6.3#optional!builtin::version=5.6.3&hash=b45daf" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/e6c1662e4852e22fe4bbdca471dca3e3edc74f6f1df043135c44a18a7902037023ccb0abdfb754595ca9028df8920f2f8492c00fc3cbb4309079aae8b7de71cd + checksum: 10c0/ac8307bb06bbfd08ae7137da740769b7d8c3ee5943188743bb622c621f8ad61d244767480f90fbd840277fbf152d8932aa20c33f867dea1bb5e79b187ca1a92f languageName: node linkType: hard -"ufo@npm:^1.5.3": +"ufo@npm:^1.5.4": version: 1.5.4 resolution: "ufo@npm:1.5.4" checksum: 10c0/b5dc4dc435c49c9ef8890f1b280a19ee4d0954d1d6f9ab66ce62ce64dd04c7be476781531f952a07c678d51638d02ad4b98e16237be29149295b0f7c09cda765 @@ -6883,7 +6908,7 @@ __metadata: languageName: node linkType: hard -"undici-types@npm:~6.19.2": +"undici-types@npm:~6.19.8": version: 6.19.8 resolution: "undici-types@npm:6.19.8" checksum: 10c0/078afa5990fba110f6824823ace86073b4638f1d5112ee26e790155f481f2a868cc3e0615505b6f4282bdf74a3d8caad715fd809e870c2bb0704e3ea6082f344 @@ -6940,8 +6965,8 @@ __metadata: linkType: hard "unplugin@npm:^1.11.0": - version: 1.13.1 - resolution: "unplugin@npm:1.13.1" + version: 1.14.1 + resolution: "unplugin@npm:1.14.1" dependencies: acorn: "npm:^8.12.1" webpack-virtual-modules: "npm:^0.6.2" @@ -6950,7 +6975,7 @@ __metadata: peerDependenciesMeta: webpack-sources: optional: true - checksum: 10c0/a76fffd0989eb56ac1a45a6fb77cdd313a0560cb2ea18082ec9eb095fe9093e4543e34cbaeeb4e01f5bbb6ca095783df91dd2af5347e0b7cc9ab07058ccf1f1b + checksum: 10c0/a74342b8f0cbbdc7b1da1f78f1898c0c915e3f67b22281fcd61a5495a585f4a1fd0fc270a7e59643a41c138c94c852cb69ea17af72965fb15f86f18ee76c2ed1 languageName: node linkType: hard @@ -7011,8 +7036,8 @@ __metadata: linkType: hard "vite@npm:^5.0.0": - version: 5.4.6 - resolution: "vite@npm:5.4.6" + version: 5.4.10 + resolution: "vite@npm:5.4.10" dependencies: esbuild: "npm:^0.21.3" fsevents: "npm:~2.3.3" @@ -7049,7 +7074,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 10c0/5f87be3a10e970eaf9ac52dfab39cf9fff583036685252fb64570b6d7bfa749f6d221fb78058f5ef4b5664c180d45a8e7a7ff68d7f3770e69e24c7c68b958bde + checksum: 10c0/4ef4807d2fd166a920de244dbcec791ba8a903b017a7d8e9f9b4ac40d23f8152c1100610583d08f542b47ca617a0505cfc5f8407377d610599d58296996691ed languageName: node linkType: hard @@ -7233,7 +7258,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:^8.16.0, ws@npm:^8.17.1, ws@npm:^8.8.1": +"ws@npm:^8.17.1, ws@npm:^8.18.0, ws@npm:^8.8.1": version: 8.18.0 resolution: "ws@npm:8.18.0" peerDependencies: