diff --git a/.github/workflows/cypress-tests.yaml b/.github/workflows/cypress-tests.yaml index 25e7d93c..9a66705c 100644 --- a/.github/workflows/cypress-tests.yaml +++ b/.github/workflows/cypress-tests.yaml @@ -62,16 +62,16 @@ jobs: # custom test command to run command: yarn test:ci # store the screenshots if the tests fail - - name: Store screenshots - uses: actions/upload-artifact@v1 - if: failure() - with: - name: cypress-screenshots - path: packages/ui/cypress/screenshots - # store the videos if the tests fail - - name: Store videos - uses: actions/upload-artifact@v1 - if: failure() - with: - name: cypress-videos - path: packages/ui/cypress/videos + # - name: Store screenshots + # uses: actions/upload-artifact@v4 + # if: failure() + # with: + # name: cypress-screenshots + # path: packages/ui/cypress/screenshots + # # store the videos if the tests fail + # - name: Store videos + # uses: actions/upload-artifact@v4 + # if: failure() + # with: + # name: cypress-videos + # path: packages/ui/cypress/videos diff --git a/packages/ui/README.md b/packages/ui/README.md index d87db1bf..21a08e99 100644 --- a/packages/ui/README.md +++ b/packages/ui/README.md @@ -27,7 +27,7 @@ It correctly bundles React in production mode and optimizes the build for the be To ease the development of the front-end, you don't have to run an indexer. After `yarn && yarn start` you can directly visit the locally hosted front-end at [http://localhost:3333](http://localhost:3333). -You will be connected to the default network, e.g http://localhost:3333?network=rococo +You will be connected to the default network, e.g http://localhost:3333?network=paseo The front-end will automatically connect to a hosted blockchain node, as well as its associated indexer. diff --git a/packages/ui/cypress/fixtures/knownMultisigs.ts b/packages/ui/cypress/fixtures/knownMultisigs.ts index a6da17dd..06d8f08f 100644 --- a/packages/ui/cypress/fixtures/knownMultisigs.ts +++ b/packages/ui/cypress/fixtures/knownMultisigs.ts @@ -1,24 +1,54 @@ import { testAccounts } from './testAccounts' export const knownMultisigs = { - 'test-multisig-1': { - address: '5CmwqwwLEkEtsmB9gFaTJdCfurz33xyggHnvwHaGKtvmQNxq', + // this multisig is doing transactions and + // has logic to remove the pending tx + 'test-simple-multisig-1': { + address: '1iEzHCQ6XWNKJBfdtdTSn2pmUygkGXpknXR6aZcsyxHaped', + publicKey: '0x1f7425dfe88e50fbef6826d117bb06c9d7d672b6ddfc1d578c581c7359beeb52', threshold: 2, signatories: [ testAccounts['Multisig Member Account 1'].address, testAccounts['Multisig Member Account 2'].address ] }, - 'multisig-with-unknown-transaction': { - address: '5CNUH7K6RgXqEo4zK3i9cEDX1CDozJkmvuK6cRZ3z8ovY5CN', - pureAddress: '5GeQBX3xT9oV5PVjnuakx6tRFEwxKGqnohfduWpp4MVt1uC6', - purePublicKey: '0xcaa3c7393cdc0d101797a216222c1d44a92bdc3653f6d0fadfad040adad4e091', + 'multisig-with-pure': { + name: 'Multisig With Pure', + address: '1gkDr5CdZZ6BodjWkVTgALLH75vVKU1SSSgibBC7UPMXS3A', + pureAddress: '161hfudUKvdgBMRzHviDGm6MZM55VoyA1thjnUFN12fYD7Jv', + purePublicKey: '0xddb613d315b4a0bb1aeb28fb256cc28d41f4704cc92191faae0881ebf99412d4', threshold: 2, - hashOfUknownCall: '0x49478dcdda5a328ba4918e8faca68f347462f41903c461122a36b7c51483768f', - callData: '0x000060556e6b6e6f776e205472616e73616374696f6e2054657374', signatories: [ - testAccounts['Signatory 1 Of Multisig With Unknown Tx'].address, - testAccounts['Signatory 2 Of Multisig With Unknown Tx'].address + testAccounts['Multisig Member Account 1'].address, + testAccounts['Multisig Member Account 2'].address, + testAccounts['Multisig Member Account 3'].address + ] + }, + // this multisig has 2 unkown tx that should + // not be removed + // it needs to have unique users never used in any other multisig + 'multisigs-unique-users': { + name: 'Unique multisig', + address: '1MJF5WZd31i3vvsLmvgVx4uN1y9AqAGrCXhjnNThxPUVbM1', + publicKey: '0x0f7af3c714b7cb4b0365aca43c586371bb10560b770f53f20a2dddad8db1365d', + threshold: 2, + hashOfUknownCall: '0x15d556c6576d26ff46f46ce9032d4a2a2107ceb2974a7bfc84124faa36d5cee7', + callData: '0x0000286d756c74697820667477', + signatories: [ + testAccounts['Multisig Member Account 4'].address, + testAccounts['Multisig Member Account 5'].address + ] + }, + 'watched-multisig-with-pure': { + name: 'Multisig With Pure', + address: '12sRk3vQ8CQb8HjXwBpp22QBT8ep6L9x919evDrwZXbsvaYi', + publicKey: '0x52b1cb22ddaf992455d8a0bec7f7aec86095715292f08f55fcd28b178b2de545', + pureAddress: '13RLuy3muymPYb8JR3Yqyy5uYP2fuA3WvKiZtCLo2XfcGj5Z', + purePublicKey: '0x6b0963f535d131f0fbf49a064b91f27d6106cf1522a93669e0d45175481665a3', + threshold: 2, + signatories: [ + '13EUU9775dB3Cai7fuR92UitxW4gZ3erzjcPFqyn3BUXWRtL', + '16Am9gucwcbW92W4P7Y8gqXvNb3U98KGWBsg4zkBUyfePfn4' ] } } diff --git a/packages/ui/cypress/fixtures/landingData.ts b/packages/ui/cypress/fixtures/landingData.ts index d9d1ca02..0865a0cd 100644 --- a/packages/ui/cypress/fixtures/landingData.ts +++ b/packages/ui/cypress/fixtures/landingData.ts @@ -1,8 +1,8 @@ export const baseUrl = 'http://localhost:3333' -export const defaultNetwork = 'rococo' +export const defaultNetwork = 'paseo' const WATCH_ACCOUNT_ANCHOR = 'watched-accounts' export const landingPageNetwork = (networkName: string) => `${baseUrl}?network=${networkName}` -export const landingPageUrl = landingPageNetwork('rococo') +export const landingPageUrl = landingPageNetwork(defaultNetwork) export const getSettingsPageUrl = (network = defaultNetwork) => `${baseUrl}/settings?network=${network}` export const getSettingsPageWatchAccountUrl = (network = defaultNetwork) => diff --git a/packages/ui/cypress/fixtures/testAccounts.ts b/packages/ui/cypress/fixtures/testAccounts.ts index 25bb1297..97004ef8 100644 --- a/packages/ui/cypress/fixtures/testAccounts.ts +++ b/packages/ui/cypress/fixtures/testAccounts.ts @@ -7,21 +7,43 @@ export interface InjectedAccountWitMnemonic extends InjectedAccount { export const testAccounts = { 'Multisig Member Account 1': { - address: '5H679cx9tkuHqyReUgBxeTqXKjVikVwLySDH1buiYuoqhi2w', + address: '162QHxDDkYAmHWSASKExncfgBMVNSoVV3vwmAtu56zqMt1mJ', publicKey: '0xde3ed24acdfe71c13b4d42539c5390ddee147ba6b29b0593ce842e77ff034445', name: 'Multisig Member Account 1', type: 'sr25519', mnemonic: 'climb worth pioneer mushroom cloth expose tube high half final curtain toward' } as InjectedAccountWitMnemonic, 'Multisig Member Account 2': { - address: '5GCXBrumiRDQ8KQsgbG39HdBNLQKt6XCQbeHZJccGdZbYTgt', + address: '158pLCAqaCUsZrRPeEK3HSTLDxPyaQ5LV6Nmibbxpib7iu4R', publicKey: '0xb6e6fb4f2a2268bf6e8a211d958cbf602881418bcc533216cadfae3e24785f28', name: 'Multisig Member Account 2', type: 'sr25519', mnemonic: 'divorce lottery slender again adapt process slow pigeon suit chase news begin' } as InjectedAccountWitMnemonic, + 'Multisig Member Account 3': { + address: '14fm5WcyMvkVkEpTyEhFFgjDQRZspee5jfuX9QtsyNEuc9if', + publicKey: '0xa244679c3186eb336beb3a8335e0a6f6ab0256618f0fcb0cbc493a14cfdc765d', + name: 'Multisig Member Account 3', + type: 'sr25519', + mnemonic: 'double smoke neglect nasty door atom general health doctor subject regret romance' + } as InjectedAccountWitMnemonic, + 'Multisig Member Account 4': { + address: '15a1VoMnixXyQnCf7nae89gkmbu5WMGZTniWiixxJD36NGLZ', + publicKey: '0xca1db422d29bc27114e68e10e98f6ae6d5981ae412de2e21b8647b46a221ae53', + name: 'Multisig Member Account 4', + type: 'sr25519', + mnemonic: 'prefer live muscle virtual embrace arm stone museum weasel escape ten float' + } as InjectedAccountWitMnemonic, + 'Multisig Member Account 5': { + address: '1t8g1ZXypq36LpGCDG5nbiW42chjTScGPhAVBiejZFU5A5s', + publicKey: '0x26ff58054d290e16efedc0e9be37d9197791d50ad071c1a9bff12eda2737992a', + name: 'Multisig Member Account 5', + type: 'sr25519', + mnemonic: 'hunt pause dawn identify month ahead ship ribbon brother fit fabric fabric' + } as InjectedAccountWitMnemonic, + 'Non Multisig Member 1': { - address: '5EnfL3AjWckttY6xuUqfFsfjcbxr1KqdzUKHTmh7cWrDKjGd', + address: '13ixUNRoNQ2NL57Us7tfQ2VtUDxVhdPn4y3md4gUAbsjW8PS', publicKey: '0x78784374dbeba13ff9789fca0e46c4960e219a1fff11ea69d6f0b57a7f3bfb61', name: 'Non Multisig Member 1', type: 'sr25519', @@ -34,13 +56,6 @@ export const testAccounts = { type: 'sr25519', mnemonic: 'erosion never fee pill vocal fetch enforce soap betray zero answer hollow' } as InjectedAccountWitMnemonic, - 'Many Multisig And Pure Member 1': { - address: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY', - publicKey: '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d', - name: 'Many Multisig And Pure Member 1', - type: 'sr25519', - mnemonic: 'bottom drive obey lake curtain smoke basket hold race lonely fit walk//Alice' - } as InjectedAccountWitMnemonic, 'Funded Account 1 Chopsticks Kusama': { address: 'JEqfw2FPda5eycsqqXN2Ay67eEh5R85aSHcArs3XdUYjj5H', publicKey: '0xfa8e003cb5d22db1e8658e05245c3bab0851e516b71a8256bc3edf006b817161', @@ -68,19 +83,5 @@ export const testAccounts = { name: 'Not Funded Account 4 Chopsticks', type: 'sr25519', mnemonic: 'bottom drive obey lake curtain smoke basket hold race lonely fit walk//chopsticks/4' - } as InjectedAccountWitMnemonic, - 'Signatory 1 Of Multisig With Unknown Tx': { - address: '5C5RWYL7zoV6V2vdwXENSpSzWHXUxyhHBrEzhfySdQmkiF9d', - publicKey: '0x008c37659f858da7ec1416ce01b975af4c6eb5931805047d173d63123174a74e', - name: 'Signatory 1 Of Multisig With Unknown Tx', - type: 'sr25519', - mnemonic: 'various sun sell patch follow stove warfare worry cupboard kick wise wild' - } as InjectedAccountWitMnemonic, - 'Signatory 2 Of Multisig With Unknown Tx': { - address: '5DAA5LQP8C4Cus1caXr3rwDa5LuPCJmXeoj3HrCUWEpGUV7g', - publicKey: '0x3064b82d59077c4d2d7b924b72e63fb9b829b5cd0706b9236c35b79ffa89995b', - name: 'Signatory 2 Of Multisig With Unknown Tx', - type: 'sr25519', - mnemonic: 'canyon narrow primary zoo purpose double rice faculty critic embark trophy economy' } as InjectedAccountWitMnemonic } diff --git a/packages/ui/cypress/fixtures/watchAccounts/watchMultisigs.ts b/packages/ui/cypress/fixtures/watchAccounts/watchMultisigs.ts deleted file mode 100644 index d16bfb17..00000000 --- a/packages/ui/cypress/fixtures/watchAccounts/watchMultisigs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { watchSignatories } from './watchSignatories' - -export const watchMultisigs = { - 'multisig-with-pure': { - name: 'Multisig With Pure', - address: '5EwAYK9noidJUqDXT7RmDABzh8Ag1PEd4HWy9DW82KU3H6tq', - publicKey: '0x7ef48fd94cff8f6a6e03f3bf1d3b7a9606b1b85ad09f7a056fe56ba484942974', - pureAddress: '5EfdqwwuyjjtEa4UhdjbZJu3UxHEHbzh8LMRvE13xTD7z6Wd', - purePublicKey: '0x731c8c8da47c7b980f4f6968fdc461dc7d67b6d255974937761e510a927b6e55', - threshold: 2, - signatories: [watchSignatories[0].address, watchSignatories[1].address] - }, - - 'multisig-without-pure': { - name: 'Multisig No Pure', - address: '5GysXAKXrGjNvpQruKWH3RwxtYrJqqWLN1A15gUMht6EXmzC', - publicKey: '0xd97d7896b3cc0410dbb83bf0a8d9c5a87b293c077165fc1c154546718d1a10e0', - threshold: 2, - signatories: [watchSignatories[2].address, watchSignatories[3].address] - } -} diff --git a/packages/ui/cypress/fixtures/watchAccounts/watchSignatories.ts b/packages/ui/cypress/fixtures/watchAccounts/watchSignatories.ts deleted file mode 100644 index b2b5d249..00000000 --- a/packages/ui/cypress/fixtures/watchAccounts/watchSignatories.ts +++ /dev/null @@ -1,44 +0,0 @@ -export const watchSignatories = [ - // signatories of multisig-with-pure - { - address: '5GGjPYsz8B8mxAzNScFNDPkZ1g97VWFCPCMexPSkPnibPBez', - name: 'Pure Signatory 1', - type: 'sr25519', - mnemonic: 'citizen heavy warrior cattle enter chef label split differ seek turtle gorilla', - publickey: '0xba1d098e50bdca49f03b9f0c702a65762a04dfc5868ae1c3788a2bc1939dbf4b' - }, - { - address: '5E9XHcUfeDCL2HEvH8c8rcfroNDSzbLwhV5A1fq7J7RUwAkd', - name: 'Pure Signatory 2', - type: 'sr25519', - mnemonic: 'script spoon elder spawn kite burst theme property hip fatal flight amount' - }, - - // signatories of multisig-without-pure - { - address: '5HfzjVSWj6mxBnqgJhPfUTpkAJKro9BKToxXB3nozbu2MTpV', - name: 'No Pure Signatory 1', - type: 'sr25519', - mnemonic: 'spring banana desert horse ecology resist tag matrix burden heart stereo fix' - }, - { - address: '5Df1JyC6KSbjSp3pQEn85PCnvTtknGiN7JyE7bSZ9zqNL76E', - name: 'No Pure Signatory 2', - type: 'sr25519', - mnemonic: 'mutual pluck punch boy gym key brush dune master aunt track dynamic' - } -] - -// signatory that is a member of 5 multisigs. 3 multisig with a pure, 2 multisig without a pure -export const signatoryOfMultipleMultisigs = { - address: '5CUZNrH9eMCvyz3wL5n8V9oJuaaNPKWCGCZZj7UfUV4otHMN', - name: 'Signatory of Multiple Multisigs', - type: 'sr25519', - mnemonic: 'cement risk mutual large fluid run witness vintage civil pipe cost weasel', - publicKey: '0x12315840d264e4274a7122d8150bb8c5205d3cdc1b92a5c854ce90ae9b0f9e77', - multisigWithPureAddress1: '5EKfTP24LJvTDLf3GP3vvJASv1jXmcZumFWGcSzVQ66epXZe', - multisigWithPureAddress2: '5ENJzVn5CcVrzSi9dfmysrFWQ6Ce5iX3L22sa1bnZN8KvGBT', - multisigWithPureAddress3: '5DgQei7KwXUJvBC6TKVHYGMA61guzQXvAcYvjYyv6CSuWv6j', - multisigWithoutPureAddress1: '5HoPXnwfDpqhgNYGMSZTzhdvc3TDSvd41XDaVMg7yUo8W5un', - multisigWithoutPureAddress2: '5FVY41XvzFSA5ZdeGU6PX283MLDYxc6juPD1JRLuCuKAoDDP' -} diff --git a/packages/ui/cypress/tests/address-bar.cy.ts b/packages/ui/cypress/tests/address-bar.cy.ts index 2bebbc44..1013620c 100644 --- a/packages/ui/cypress/tests/address-bar.cy.ts +++ b/packages/ui/cypress/tests/address-bar.cy.ts @@ -1,8 +1,6 @@ import { knownMultisigs } from '../fixtures/knownMultisigs' import { landingPageAddressUrl, landingPageUrl } from '../fixtures/landingData' import { testAccounts } from '../fixtures/testAccounts' -import { watchMultisigs } from '../fixtures/watchAccounts/watchMultisigs' -import { watchSignatories } from '../fixtures/watchAccounts/watchSignatories' import { accountDisplay } from '../support/page-objects/components/accountDisplay' import { landingPage } from '../support/page-objects/landingPage' import { multisigPage } from '../support/page-objects/multisigPage' @@ -10,7 +8,7 @@ import { topMenuItems } from '../support/page-objects/topMenuItems' describe('Account address in the address bar', () => { it('shows multi and update address with 1 watched (multi), 0 connected account, no linked address', () => { - const { address, publicKey } = watchMultisigs['multisig-without-pure'] + const { address, publicKey } = knownMultisigs['test-simple-multisig-1'] // we have a watched account that is a multisig cy.setupAndVisit({ @@ -27,12 +25,12 @@ describe('Account address in the address bar', () => { }) it('shows multi and update address with 0 watched, 1 connected account (multi), no linked address', () => { - const { address } = knownMultisigs['test-multisig-1'] + const { address } = knownMultisigs['multisigs-unique-users'] cy.setupAndVisit({ url: landingPageUrl, extensionConnectionAllowed: true, - injectExtensionWithAccounts: [testAccounts['Multisig Member Account 1']] + injectExtensionWithAccounts: [testAccounts['Multisig Member Account 4']] }) cy.url({ timeout: 10000 }).should('include', address) @@ -48,13 +46,13 @@ describe('Account address in the address bar', () => { .linkedAddressNotFound() .should( 'contain.text', - "The linked address can't be found in your accounts or watched accounts on rococo" + "The linked address can't be found in your accounts or watched accounts on paseo" ) topMenuItems.multiproxySelectorDesktop().should('not.exist') }) it('shows an error and can reset with 1 watched (multi), 0 connected account, unknown linked address', () => { - const { publicKey, address: multisigAddress } = watchMultisigs['multisig-without-pure'] + const { publicKey, address: multisigAddress } = knownMultisigs['test-simple-multisig-1'] // we have a watched account that is a multisig cy.setupAndVisit({ @@ -67,7 +65,7 @@ describe('Account address in the address bar', () => { .linkedAddressNotFound() .should( 'contain.text', - "The linked address can't be found in your accounts or watched accounts on rococo" + "The linked address can't be found in your accounts or watched accounts on paseo" ) cy.url().should('include', testAccounts['Non Multisig Member 1'].address) topMenuItems.multiproxySelectorDesktop().should('be.visible') @@ -84,7 +82,7 @@ describe('Account address in the address bar', () => { }) it('shows an error and can reset with 1 watched (pure), 0 connected account, unknown linked address', () => { - const { purePublicKey, pureAddress } = watchMultisigs['multisig-with-pure'] + const { purePublicKey, pureAddress } = knownMultisigs['watched-multisig-with-pure'] // we have a watched account that is a pure cy.setupAndVisit({ @@ -96,7 +94,7 @@ describe('Account address in the address bar', () => { .linkedAddressNotFound() .should( 'contain.text', - "The linked address can't be found in your accounts or watched accounts on rococo" + "The linked address can't be found in your accounts or watched accounts on paseo" ) cy.url().should('include', testAccounts['Non Multisig Member 1'].address) topMenuItems.multiproxySelectorDesktop().should('be.visible') @@ -113,20 +111,20 @@ describe('Account address in the address bar', () => { }) it('shows an error and can reset with 0 watched, 1 connected account (multi), unknown linked address', () => { - const { address } = knownMultisigs['test-multisig-1'] + const { address } = knownMultisigs['multisigs-unique-users'] const nonMulitisigAccountAddress = testAccounts['Non Multisig Member 1'].address cy.setupAndVisit({ url: landingPageAddressUrl(nonMulitisigAccountAddress), extensionConnectionAllowed: true, - injectExtensionWithAccounts: [testAccounts['Multisig Member Account 1']] + injectExtensionWithAccounts: [testAccounts['Multisig Member Account 4']] }) landingPage .linkedAddressNotFound() .should( 'contain.text', - "The linked address can't be found in your accounts or watched accounts on rococo" + "The linked address can't be found in your accounts or watched accounts on paseo" ) cy.url().should('include', nonMulitisigAccountAddress) topMenuItems.multiproxySelectorDesktop().should('be.visible') @@ -143,7 +141,7 @@ describe('Account address in the address bar', () => { }) it('shows the pure with 1 watched (pure), 0 connected account, pure linked address', () => { - const { purePublicKey, pureAddress } = watchMultisigs['multisig-with-pure'] + const { purePublicKey, pureAddress } = knownMultisigs['multisig-with-pure'] // we have a watched account that is a pure cy.setupAndVisit({ @@ -159,7 +157,7 @@ describe('Account address in the address bar', () => { }) it('shows the pure with 1 watched (multi), 0 connected account, pure linked address', () => { - const { publicKey, pureAddress } = watchMultisigs['multisig-with-pure'] + const { publicKey, pureAddress } = knownMultisigs['watched-multisig-with-pure'] // we have a watched account that is a pure cy.setupAndVisit({ @@ -176,8 +174,8 @@ describe('Account address in the address bar', () => { }) it('shows the pure with 1 watched (signatory pure), 0 connected account, pure linked address', () => { - const { pureAddress } = watchMultisigs['multisig-with-pure'] - const { publickey: signatoryPublicKey } = watchSignatories[0] + const { pureAddress } = knownMultisigs['multisig-with-pure'] + const { publicKey: signatoryPublicKey } = testAccounts['Multisig Member Account 3'] // we have a watched account that is a pure cy.setupAndVisit({ @@ -194,11 +192,11 @@ describe('Account address in the address bar', () => { }) it('shows a pure with 0 watched, 1 connected account (many multi & pure), pure linked address', () => { - const expectedPureAddress = '5EXePPDNnucmLgrirMPQatFfu4WjncVbVoDZXx1gq75e3JcF' + const expectedPureAddress = '161hfudUKvdgBMRzHviDGm6MZM55VoyA1thjnUFN12fYD7Jv' cy.setupAndVisit({ url: landingPageAddressUrl(expectedPureAddress), extensionConnectionAllowed: true, - injectExtensionWithAccounts: [testAccounts['Many Multisig And Pure Member 1']] + injectExtensionWithAccounts: [testAccounts['Multisig Member Account 1']] }) cy.url().should('include', expectedPureAddress) @@ -209,12 +207,12 @@ describe('Account address in the address bar', () => { }) it('shows a multi with 0 watched, 1 connected account (many multi & pure), multi linked address', () => { - const expectedMultiAddress = '5DxNgjvfJLfDTAAgFD1kWtJAh2KVNTTkwytr7S37dZwVpXd7' + const expectedMultiAddress = '1iEzHCQ6XWNKJBfdtdTSn2pmUygkGXpknXR6aZcsyxHaped' cy.setupAndVisit({ url: landingPageAddressUrl(expectedMultiAddress), extensionConnectionAllowed: true, - injectExtensionWithAccounts: [testAccounts['Many Multisig And Pure Member 1']] + injectExtensionWithAccounts: [testAccounts['Multisig Member Account 1']] }) cy.url().should('include', expectedMultiAddress) @@ -225,13 +223,13 @@ describe('Account address in the address bar', () => { }) it('switching accounts changes the address in the address bar', () => { - const expectedPureAddress = '5EXePPDNnucmLgrirMPQatFfu4WjncVbVoDZXx1gq75e3JcF' - const multiAddress = '5DxNgjvfJLfDTAAgFD1kWtJAh2KVNTTkwytr7S37dZwVpXd7' + const expectedPureAddress = knownMultisigs['multisig-with-pure'].pureAddress + const multiAddress = knownMultisigs['test-simple-multisig-1'].address const first6Letters = multiAddress.slice(0, 6) cy.setupAndVisit({ url: landingPageAddressUrl(expectedPureAddress), - watchedAccounts: [testAccounts['Many Multisig And Pure Member 1'].publicKey!] + watchedAccounts: [testAccounts['Multisig Member Account 1'].publicKey!] }) // check that there is the pure address in the address bar @@ -249,7 +247,7 @@ describe('Account address in the address bar', () => { }) it('switching networks resets address in the address bar', () => { - const { address, publicKey } = watchMultisigs['multisig-without-pure'] + const { address, publicKey } = knownMultisigs['test-simple-multisig-1'] // we have a watched account that is a multisig cy.setupAndVisit({ @@ -270,7 +268,7 @@ describe('Account address in the address bar', () => { }) it('navigating to home, settings, about, overview does not change the address bar', () => { - const { address, publicKey } = watchMultisigs['multisig-without-pure'] + const { address, publicKey } = knownMultisigs['test-simple-multisig-1'] // we have a watched account that is a multisig cy.setupAndVisit({ diff --git a/packages/ui/cypress/tests/landing-messaging.cy.ts b/packages/ui/cypress/tests/landing-messaging.cy.ts index cc3664dd..5a3bdd11 100644 --- a/packages/ui/cypress/tests/landing-messaging.cy.ts +++ b/packages/ui/cypress/tests/landing-messaging.cy.ts @@ -47,7 +47,7 @@ describe('Landing Page Messaging', () => { cy.connectAccounts([testAccounts['Non Multisig Member 1'].address]) landingPage .noMultisigFoundError() - .should('contain.text', 'No multisig found for your accounts or watched accounts on rococo.') + .should('contain.text', 'No multisig found for your accounts or watched accounts on paseo.') landingPage.createOneButton().should('be.visible').should('be.enabled') landingPage.watchAccountButton().should('be.visible').should('be.enabled') }) @@ -77,7 +77,7 @@ describe('Landing Page Messaging', () => { }) landingPage .noMultisigFoundError() - .should('contain.text', 'No multisig found for your accounts or watched accounts on rococo.') + .should('contain.text', 'No multisig found for your accounts or watched accounts on paseo.') landingPage.connectWalletButton().should('be.visible').should('be.enabled') landingPage.watchAccountButton().should('be.visible').should('be.enabled') }) @@ -93,7 +93,7 @@ describe('Landing Page Messaging', () => { landingPage .noMultisigFoundError() - .should('contain.text', 'No multisig found for your accounts or watched accounts on rococo.') + .should('contain.text', 'No multisig found for your accounts or watched accounts on paseo.') landingPage.createOneButton().should('be.visible').should('be.enabled') landingPage.watchAccountButton().should('be.visible').should('be.enabled') }) diff --git a/packages/ui/cypress/tests/name-edition-display.cy.ts b/packages/ui/cypress/tests/name-edition-display.cy.ts index 9f4c05eb..ae3be2d9 100644 --- a/packages/ui/cypress/tests/name-edition-display.cy.ts +++ b/packages/ui/cypress/tests/name-edition-display.cy.ts @@ -2,13 +2,13 @@ import { accountDisplay } from '../support/page-objects/components/accountDispla import { getSettingsPageWatchAccountUrl, landingPageNetwork } from '../fixtures/landingData' import { settingsPage } from '../support/page-objects/settingsPage' import { topMenuItems } from '../support/page-objects/topMenuItems' -import { watchMultisigs } from '../fixtures/watchAccounts/watchMultisigs' import { multisigPage } from '../support/page-objects/multisigPage' import { multisigWithKusamaIdentity } from '../fixtures/nameDisplay' +import { knownMultisigs } from '../fixtures/knownMultisigs' describe('Name Edition and Display', () => { it('can see the edit button with no name', () => { - const { purePublicKey } = watchMultisigs['multisig-with-pure'] + const { purePublicKey } = knownMultisigs['watched-multisig-with-pure'] cy.setupAndVisit({ url: getSettingsPageWatchAccountUrl('polkadot'), @@ -24,7 +24,7 @@ describe('Name Edition and Display', () => { }) it('can edit with no name before', () => { - const { purePublicKey } = watchMultisigs['multisig-with-pure'] + const { purePublicKey } = knownMultisigs['watched-multisig-with-pure'] const newName = 'some name' const newName2 = 'new name 2' cy.setupAndVisit({ @@ -53,7 +53,7 @@ describe('Name Edition and Display', () => { }) it('can edit and cancel with a name before', () => { - const { purePublicKey } = watchMultisigs['multisig-with-pure'] + const { purePublicKey } = knownMultisigs['watched-multisig-with-pure'] const originalName = 'some name' const newName = 'new name' cy.setupAndVisit({ diff --git a/packages/ui/cypress/tests/network-switch.cy.ts b/packages/ui/cypress/tests/network-switch.cy.ts index 13879d0d..709383f0 100644 --- a/packages/ui/cypress/tests/network-switch.cy.ts +++ b/packages/ui/cypress/tests/network-switch.cy.ts @@ -2,15 +2,15 @@ import { accountDisplay } from '../support/page-objects/components/accountDispla import { getSettingsPageWatchAccountUrl } from '../fixtures/landingData' import { settingsPage } from '../support/page-objects/settingsPage' import { topMenuItems } from '../support/page-objects/topMenuItems' -import { watchMultisigs } from '../fixtures/watchAccounts/watchMultisigs' import { encodeAddress } from '@polkadot/util-crypto' +import { knownMultisigs } from '../fixtures/knownMultisigs' const { publicKey: multisigPublicKey, address: multisigAddress, pureAddress: multisigPureAddress, name: multisigName -} = watchMultisigs['multisig-with-pure'] +} = knownMultisigs['watched-multisig-with-pure'] const KUSAMA_S58_PREFIX = 2 const kusamaAddress = encodeAddress(multisigAddress, KUSAMA_S58_PREFIX) @@ -23,7 +23,7 @@ describe('Network can be switched', () => { watchedAccounts: [multisigPublicKey] }) - cy.url().should('contain', 'network=rococo') + cy.url().should('contain', 'network=paseo') cy.url().should('contain', `address=${multisigPureAddress}`) settingsPage.accountContainer().within(() => { diff --git a/packages/ui/cypress/tests/setIdentity.cy.ts b/packages/ui/cypress/tests/setIdentity.cy.ts index ee31116a..a44a167c 100644 --- a/packages/ui/cypress/tests/setIdentity.cy.ts +++ b/packages/ui/cypress/tests/setIdentity.cy.ts @@ -25,7 +25,7 @@ describe('Set an identity', () => { sendTxModal.selectionEasySetupSetIdentity().should('not.exist') }) - it('Can set an identity from the options menu', () => { + it.skip('Can set an identity from the options menu', () => { const multisigSignatoryWithoutIdentity = setIdentitySignatories[1] cy.setupAndVisit({ url: landingPageUrl, diff --git a/packages/ui/cypress/tests/transactions.cy.ts b/packages/ui/cypress/tests/transactions.cy.ts index 5e6c6f19..0e2e0cc6 100644 --- a/packages/ui/cypress/tests/transactions.cy.ts +++ b/packages/ui/cypress/tests/transactions.cy.ts @@ -56,13 +56,13 @@ describe('Perform transactions', () => { cy.rejectCurrentMultisigTx({ account: testAccounts['Multisig Member Account 1'], multisigInfo: { - address: knownMultisigs['test-multisig-1'].address, - threshold: knownMultisigs['test-multisig-1'].threshold, - otherSignatories: knownMultisigs['test-multisig-1'].signatories.filter( + address: knownMultisigs['test-simple-multisig-1'].address, + threshold: knownMultisigs['test-simple-multisig-1'].threshold, + otherSignatories: knownMultisigs['test-simple-multisig-1'].signatories.filter( (address) => address !== testAccount1Address ) }, - WSendpoint: 'wss://rococo-rpc.polkadot.io' + WSendpoint: 'wss://paseo.rpc.amforc.com' }) multisigPage.accountHeader().within(() => { accountDisplay.addressLabel().should('not.have.text', '') diff --git a/packages/ui/cypress/tests/unknown-transaction.cy.ts b/packages/ui/cypress/tests/unknown-transaction.cy.ts index 06f65522..b99f8125 100644 --- a/packages/ui/cypress/tests/unknown-transaction.cy.ts +++ b/packages/ui/cypress/tests/unknown-transaction.cy.ts @@ -10,8 +10,8 @@ describe('Unknown Transaction', () => { url: landingPageUrl, extensionConnectionAllowed: true, injectExtensionWithAccounts: [ - testAccounts['Signatory 1 Of Multisig With Unknown Tx'], - testAccounts['Signatory 2 Of Multisig With Unknown Tx'] + testAccounts['Multisig Member Account 4'], + testAccounts['Multisig Member Account 5'] ] }) }) @@ -35,8 +35,8 @@ describe('Unknown Transaction', () => { }) const { hashOfUknownCall: expectedCallHash, callData } = - knownMultisigs['multisig-with-unknown-transaction'] - const testAccount2Address = testAccounts['Signatory 2 Of Multisig With Unknown Tx'].address + knownMultisigs['multisigs-unique-users'] + const testAccount2Address = testAccounts['Multisig Member Account 5'].address txSigningModal .body() @@ -63,14 +63,13 @@ describe('Unknown Transaction', () => { .callInfoContainer() .should('be.visible') .should('contain.text', 'system.remark') - .should('contain.text', 'remark: Unknown Transaction Test') + .should('contain.text', 'remark: multix ftw') txSigningModal.approveButton().should('be.enabled') }) }) it('can see the expected buttons on an unknown tx without call data', () => { - const callData = - '0x0403000d8cb5267b1ff606b8c087f546f98390af50d38951bfcc0f1fd8555c707221a302286bee' + const callData = '0x000010736f6d65' multisigPage .pendingTransactionItem(8000) .eq(0) diff --git a/packages/ui/cypress/tests/watched-accounts.cy.ts b/packages/ui/cypress/tests/watched-accounts.cy.ts index 0cc968d4..f606e640 100644 --- a/packages/ui/cypress/tests/watched-accounts.cy.ts +++ b/packages/ui/cypress/tests/watched-accounts.cy.ts @@ -7,11 +7,10 @@ import { import { landingPage } from '../support/page-objects/landingPage' import { settingsPage } from '../support/page-objects/settingsPage' import { topMenuItems } from '../support/page-objects/topMenuItems' -import { watchMultisigs } from '../fixtures/watchAccounts/watchMultisigs' import { multisigPage } from '../support/page-objects/multisigPage' import { editNamesModal } from '../support/page-objects/modals/editNamesModal' import { testAccounts } from '../fixtures/testAccounts' -import { signatoryOfMultipleMultisigs } from '../fixtures/watchAccounts/watchSignatories' +import { knownMultisigs } from '../fixtures/knownMultisigs' const addWatchAccount = (address: string, name?: string) => { settingsPage.accountAddressInput().type(`${address}{enter}`, { delay: 20 }) @@ -74,7 +73,7 @@ describe('Watched Accounts', () => { it('can see the expected account details displayed for a watched multisig', () => { const { name: multisigName, publicKey: multisigPublicKey } = - watchMultisigs['multisig-without-pure'] + knownMultisigs['multisigs-unique-users'] cy.setupAndVisit({ url: getSettingsPageWatchAccountUrl(), @@ -109,7 +108,7 @@ describe('Watched Accounts', () => { }) it('can see the expected account details displayed for a watched pure', () => { - const { name: pureName, purePublicKey } = watchMultisigs['multisig-with-pure'] + const { name: pureName, purePublicKey } = knownMultisigs['watched-multisig-with-pure'] cy.setupAndVisit({ url: getSettingsPageWatchAccountUrl(), @@ -144,7 +143,7 @@ describe('Watched Accounts', () => { }) it('can edit the name of a watched pure', () => { - const { name: pureName, purePublicKey } = watchMultisigs['multisig-with-pure'] + const { name: pureName, purePublicKey } = knownMultisigs['watched-multisig-with-pure'] cy.setupAndVisit({ url: landingPageUrl, @@ -174,7 +173,7 @@ describe('Watched Accounts', () => { }) it('can open the correct subscan link for a watched pure', () => { - const { purePublicKey, name: pureName, pureAddress } = watchMultisigs['multisig-with-pure'] + const { purePublicKey, name: pureName, pureAddress } = knownMultisigs['multisig-with-pure'] cy.setupAndVisit({ url: landingPageUrl, @@ -193,12 +192,12 @@ describe('Watched Accounts', () => { // ensure the correct subscan url is opened cy.get('@open').should( 'have.been.calledOnceWith', - `https://rococo.subscan.io/account/${pureAddress}` + `https://paseo.subscan.io/account/${pureAddress}` ) }) it('can not see the "New Transaction" button when in watched account mode', () => { - const { purePublicKey } = watchMultisigs['multisig-with-pure'] + const { purePublicKey } = knownMultisigs['watched-multisig-with-pure'] cy.setupAndVisit({ url: landingPageUrl, @@ -209,7 +208,7 @@ describe('Watched Accounts', () => { }) it('can not utilize wallet connect when in watched account mode', () => { - const { purePublicKey } = watchMultisigs['multisig-with-pure'] + const { purePublicKey } = knownMultisigs['watched-multisig-with-pure'] cy.setupAndVisit({ url: getSettingsPageUrl(), @@ -228,7 +227,7 @@ describe('Watched Accounts', () => { }) it('can see but not interact with txs when in watched account mode', () => { - const { purePublicKey } = watchMultisigs['multisig-with-pure'] + const { purePublicKey } = knownMultisigs['multisig-with-pure'] cy.setupAndVisit({ url: landingPageUrl, @@ -250,7 +249,7 @@ describe('Watched Accounts', () => { pureAddress, publicKey: multisigPublicKey, address: multisigAddress - } = watchMultisigs['multisig-with-pure'] + } = knownMultisigs['watched-multisig-with-pure'] const pureCheck = () => { multisigPage @@ -303,38 +302,43 @@ describe('Watched Accounts', () => { pureCheck() }) - it.only('can see all multisigs that a watched signatory is a member of', () => { - const { publicKey: signatoryPublicKey } = signatoryOfMultipleMultisigs + it('can see all multisigs that a watched signatory is a member of', () => { + const { publicKey: signatoryPublicKey } = testAccounts['Multisig Member Account 1'] const expectedAddresses = [ - signatoryOfMultipleMultisigs.multisigWithPureAddress1, - signatoryOfMultipleMultisigs.multisigWithPureAddress2, - signatoryOfMultipleMultisigs.multisigWithPureAddress3, - signatoryOfMultipleMultisigs.multisigWithoutPureAddress1, - signatoryOfMultipleMultisigs.multisigWithoutPureAddress2 + { + address: knownMultisigs['multisig-with-pure'].pureAddress, + expectedBadge: 'pure' + }, + { + address: knownMultisigs['test-simple-multisig-1'].address, + expectedBadge: 'multi' + } ] cy.setupAndVisit({ url: landingPageUrl, - watchedAccounts: [signatoryPublicKey] + watchedAccounts: [signatoryPublicKey!] }) topMenuItems.multiproxySelectorDesktop().should('be.visible').click() // ensure all multisigs are displayed in the multiproxy selector topMenuItems .multiproxySelectorOptionDesktop() - .should('have.length', 5) + .should('have.length', expectedAddresses.length) .each(($el, index) => { cy.wrap($el).within(() => { - accountDisplay.addressLabel().should('contain.text', expectedAddresses[index].slice(0, 6)) + accountDisplay + .addressLabel() + .should('contain.text', expectedAddresses[index].address.slice(0, 6)) accountDisplay.watchedIcon().should('be.visible') - if (index < 3) { - accountDisplay.pureBadge().should('exist') + if (expectedAddresses[index].expectedBadge === 'pure') { + accountDisplay.pureBadge().should('be.visible') } else { - accountDisplay.multisigBadge().should('exist') + accountDisplay.multisigBadge().should('be.visible') } }) }) // ensure each multisig that the signatory is a member of can be viewed - expectedAddresses.forEach((address, index) => { + expectedAddresses.forEach(({ address }, index) => { topMenuItems.multiproxySelectorDesktop().click() topMenuItems.multiproxySelectorOptionDesktop().eq(index).click() multisigPage diff --git a/packages/ui/src/constants.ts b/packages/ui/src/constants.ts index c4127c0a..4b52b3f8 100644 --- a/packages/ui/src/constants.ts +++ b/packages/ui/src/constants.ts @@ -2,7 +2,6 @@ import { nodesKhalaSVG } from './logos/khalaSVG' import { chainsKusamaSVG } from './logos/kusamaSVG ' import { localSVG } from './logos/localSVG' import { chainsPolkadotCircleSVG } from './logos/polkadot-circleSVG' -import { chainsRococoSVG } from './logos/rococoSVG' import { phalaSVG } from './logos/phalaSVG' import { nodesAstarPNG } from './logos/astarPNG' import { nodesAssetHubSVG } from './logos/assetHubSVG' @@ -35,7 +34,7 @@ export interface NetworkInfo { pplChainRpcUrl?: string } -export const HTTP_GRAPHQL_URL = `https://squid.subsquid.io/multix-arrow/v/v3/graphql` +export const HTTP_GRAPHQL_URL = `https://chainsafe.squids.live/multix-arrow/v/v4/graphql` export const PAYMENT_INFO_ACCOUNT = '5CXQZrh1MSgnGGCdJu3tqvRfCv7t5iQXGGV9UKotrbfhkavs' @@ -146,13 +145,13 @@ export const networkList: Record = { httpGraphqlUrl: HTTP_GRAPHQL_URL, logo: nodesKhalaSVG }, - rococo: { - chainId: 'rococo', - explorerNetworkName: 'rococo', - rpcUrl: 'wss://rococo-rpc.polkadot.io', - httpGraphqlUrl: HTTP_GRAPHQL_URL, - logo: chainsRococoSVG - }, + // rococo: { + // chainId: 'rococo', + // explorerNetworkName: 'rococo', + // rpcUrl: 'wss://rococo-rpc.polkadot.io', + // httpGraphqlUrl: HTTP_GRAPHQL_URL, + // logo: chainsRococoSVG + // }, westend: { chainId: 'westend', explorerNetworkName: 'westend', @@ -163,7 +162,7 @@ export const networkList: Record = { }, paseo: { chainId: 'paseo', - explorerNetworkName: '', + explorerNetworkName: 'paseo', rpcUrl: 'wss://paseo.rpc.amforc.com', httpGraphqlUrl: HTTP_GRAPHQL_URL, logo: paseoSVG @@ -237,7 +236,7 @@ export const soloChains: Partial[] = [ //joystream ] export const testChains: Partial[] = [ - 'rococo', + // 'rococo', 'paseo', 'rhala testnet', 'westend', diff --git a/squid/assets/envs/.env.paseo b/squid/assets/envs/.env.paseo index 65aa9adf..78a186d5 100644 --- a/squid/assets/envs/.env.paseo +++ b/squid/assets/envs/.env.paseo @@ -1,4 +1,4 @@ BLOCK_START=0 -PREFIX=42 +PREFIX=0 RPC_WS="wss://paseo.rpc.amforc.com" CHAIN_ID='paseo' \ No newline at end of file diff --git a/squid/package-lock.json b/squid/package-lock.json index ca1caf1a..fed1c54f 100644 --- a/squid/package-lock.json +++ b/squid/package-lock.json @@ -2412,9 +2412,9 @@ "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -2424,7 +2424,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -2963,9 +2963,9 @@ } }, "node_modules/dset": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.3.tgz", - "integrity": "sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.4.tgz", + "integrity": "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==", "engines": { "node": ">=4" } @@ -2997,9 +2997,9 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "engines": { "node": ">= 0.8" } @@ -3342,36 +3342,36 @@ } }, "node_modules/express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", + "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -3510,12 +3510,12 @@ } }, "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -4457,9 +4457,12 @@ } }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/merge2": { "version": "1.4.1", @@ -4862,9 +4865,9 @@ } }, "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" }, "node_modules/path-type": { "version": "4.0.0", @@ -5082,11 +5085,11 @@ } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -5303,9 +5306,9 @@ } }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -5338,20 +5341,28 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/send/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dependencies": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" }, "engines": { "node": ">= 0.8.0" diff --git a/squid/squid-manifests/large-squid.yaml b/squid/squid-manifests/large-squid.yaml index b04f3b6b..83071138 100644 --- a/squid/squid-manifests/large-squid.yaml +++ b/squid/squid-manifests/large-squid.yaml @@ -1,6 +1,6 @@ manifestVersion: subsquid.io/v0.1 name: multix-arrow -version: 3 +version: 4 description: |- Arrow Squid for Multix @@ -14,8 +14,8 @@ deploy: cmd: ['sqd', 'start-asset-hub-kusama'] - name: asset-hub-polkadot-processor cmd: ['sqd', 'start-asset-hub-polkadot'] - - name: rococo-processor - cmd: ['sqd', 'start-rococo'] + # - name: rococo-processor + # cmd: ['sqd', 'start-rococo'] - name: kusama-processor cmd: ['sqd', 'start-kusama'] - name: polkadot-processor diff --git a/yarn.lock b/yarn.lock index d31d5dbb..989be32b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7673,9 +7673,9 @@ __metadata: linkType: hard "dset@npm:^3.1.2": - version: 3.1.3 - resolution: "dset@npm:3.1.3" - checksum: b1ff68f1f42af373baa85b00b04d89094cd0d7f74f94bd11364cba575f2762ed52a0a0503bbfcc92eccd07c6d55426813c8a7a6cfa020338eaea1f4edfd332c2 + version: 3.1.4 + resolution: "dset@npm:3.1.4" + checksum: b67bbd28dd8a539e90c15ffb61100eb64ef995c5270a124d4f99bbb53f4d82f55a051b731ba81f3215dd9dce2b4c8d69927dc20b3be1c5fc88bab159467aa438 languageName: node linkType: hard @@ -10593,12 +10593,12 @@ __metadata: linkType: hard "micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": - version: 4.0.7 - resolution: "micromatch@npm:4.0.7" + version: 4.0.8 + resolution: "micromatch@npm:4.0.8" dependencies: braces: ^3.0.3 picomatch: ^2.3.1 - checksum: 58fa99bc5265edec206e9163a1d2cec5fabc46a5b473c45f4a700adce88c2520456ae35f2b301e4410fb3afb27e9521fb2813f6fc96be0a48a89430e0916a772 + checksum: 166fa6eb926b9553f32ef81f5f531d27b4ce7da60e5baf8c021d043b27a388fb95e46a8038d5045877881e673f8134122b59624d5cecbd16eb50a42e7a6b5ca8 languageName: node linkType: hard