diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml
index e63706c..bdc0c34 100644
--- a/.github/workflows/e2e.yml
+++ b/.github/workflows/e2e.yml
@@ -48,6 +48,8 @@ jobs:
VITE_APP_NETWORK: local
VITE_NETWORK_TYPE: testnet
VITE_RPC_URL_1337: http://127.0.0.1:8545
+ VITE_RPC_URL_80002: https://rpc-amoy.polygon.technology/
+ VITE_RPC_URL_137: https://rpc.ankr.com/polygon
- name: Wait for dev server
run: npx wait-on http://localhost:5173 --timeout 180000
diff --git a/e2e/fixtures/pol-amoy/amoy/oa-amoy-minted.json b/e2e/fixtures/pol-amoy/amoy/oa-amoy-minted.json
new file mode 100644
index 0000000..ea26b38
--- /dev/null
+++ b/e2e/fixtures/pol-amoy/amoy/oa-amoy-minted.json
@@ -0,0 +1,34 @@
+{
+ "version": "https://schema.openattestation.com/2.0/schema.json",
+ "data": {
+ "version": "e701574c-bce2-4e96-8c5c-cb9d02c4ce28:string:https://schema.openattestation.com/2.0/schema.json",
+ "$template": {
+ "name": "c1fe588b-da05-45af-afee-3680a9414b39:string:GOVTECH_DEMO",
+ "type": "f2779150-a9f7-48be-a4f4-7685ca9b6f33:string:EMBEDDED_RENDERER",
+ "url": "c3b6972d-e54a-43cf-83c4-11d2063207a6:string:https://demo-renderer.opencerts.io"
+ },
+ "issuers": [
+ {
+ "name": "14003050-4b55-47d2-9cc5-24e17b05275d:string:TrustVC Amoy Issuer",
+ "tokenRegistry": "ab2394fd-f6b9-4094-8f3c-37da1515abe7:string:0xa5f9a7106a599E4caAFacE6872da097aa802Cc64",
+ "identityProof": {
+ "type": "ef0308c9-0a7f-4fae-a38f-7d1f3797712b:string:DNS-TXT",
+ "location": "c8155f34-c97a-4745-a576-7e52eee1f5f0:string:example.tradetrust.io"
+ }
+ }
+ ],
+ "recipient": {
+ "name": "0f987694-19cf-4b29-a5ab-3aa7cde13246:string:TrustVC Amoy Test"
+ },
+ "network": {
+ "chain": "f999cdb8-445e-4e0e-92b1-5d554bc3c852:string:POL",
+ "chainId": "a5a27920-e63b-49a9-b4df-2f2af37a8c24:string:80002"
+ }
+ },
+ "signature": {
+ "type": "SHA3MerkleProof",
+ "targetHash": "8d4ddb4f0252c1d61f0b72ad585573317c2d3f9268ebbd6d785699e12ebbb077",
+ "proof": [],
+ "merkleRoot": "8d4ddb4f0252c1d61f0b72ad585573317c2d3f9268ebbd6d785699e12ebbb077"
+ }
+}
diff --git a/e2e/fixtures/pol-amoy/amoy/w3c-amoy-minted.json b/e2e/fixtures/pol-amoy/amoy/w3c-amoy-minted.json
new file mode 100644
index 0000000..b39b74b
--- /dev/null
+++ b/e2e/fixtures/pol-amoy/amoy/w3c-amoy-minted.json
@@ -0,0 +1,64 @@
+{
+ "@context": [
+ "https://www.w3.org/ns/credentials/v2",
+ "https://w3id.org/security/data-integrity/v2",
+ "https://trustvc.io/context/render-method-context-v2.json",
+ "https://trustvc.io/context/promissory-note.json",
+ "https://trustvc.io/context/transferable-records-context.json",
+ "https://trustvc.io/context/qrcode-context.json"
+ ],
+ "renderMethod": [
+ {
+ "type": "EMBEDDED_RENDERER",
+ "templateName": "PROMISSORY_NOTE",
+ "id": "https://generic-templates.tradetrust.io"
+ }
+ ],
+ "credentialSubject": {
+ "type": [
+ "PromissoryNote"
+ ],
+ "drawerCompanyName": "XYZ Exports Pvt. Ltd.",
+ "drawerCompanyNo": "CIN-XYZ1234567",
+ "drawerJurisdiction": "India",
+ "drawerWalletAddress": "0x433097a1C1b8a3e9188d8C54eCC057B1D69f1638",
+ "drawerPlaceOfIssue": "Mumbai, India",
+ "draweeCompanyName": "XYZ Imports Ltd.",
+ "draweeCompanyNo": "REG-XYZ9876543",
+ "draweeJurisdiction": "California, United States",
+ "draweeWalletAddress": "0xca93690bb57eeab273c796a9309246bc0fb93649",
+ "dueDate": "2025-06-19",
+ "currency": "USD",
+ "amount": "50,000.00",
+ "clause": "Payment to be made in full without set-off or counterclaim, subject to terms agreed between Drawer and Drawee.",
+ "signerName": "John Doe",
+ "signerPosition": "Chief Financial Officer",
+ "signerTimeStamp": "2025-06-10",
+ "logo": "data:image/png;base64,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",
+ "pNoteId": "PN-9081-2231-SGP",
+ "commitmentDate": "2025-12-10"
+ },
+ "type": [
+ "VerifiableCredential"
+ ],
+ "credentialStatus": {
+ "type": "TransferableRecords",
+ "tokenNetwork": {
+ "chain": "POL",
+ "chainId": 80002
+ },
+ "tokenRegistry": "0xa5f9a7106a599E4caAFacE6872da097aa802Cc64",
+ "tokenId": "d320d1e7eaf6a0f9ec185c8b25470d027115ef2059e5b1bcb41cde09f799be75"
+ },
+ "issuer": "did:web:trustvc.github.io:did:1",
+ "validFrom": "2024-04-01T12:19:52Z",
+ "id": "urn:uuid:019ea8ea-2cf5-7662-9ab6-4b8b261174c7",
+ "proof": {
+ "type": "DataIntegrityProof",
+ "created": "2026-06-08T20:26:19Z",
+ "verificationMethod": "did:web:trustvc.github.io:did:1#multikey-1",
+ "cryptosuite": "ecdsa-sd-2023",
+ "proofPurpose": "assertionMethod",
+ "proofValue": "u2V0AhVhA2a6bF4PPP3Mnid815CspDt-DMcGPm-iDwkYPBY2KgbprArYR9urtjfaaarNzxxsnBVuLUVJRmgBJdPAKkPhp0lgjgCQCcxtBLaHQBHKdzPUjrOoAUVnAqpYInt6hFitn3f96aotYIPgjo4q0O9-JKXdEK5MyNbPcr2XTCY0MD2hJ_gWjp6hdmB9YQCP8qUh7sZnTA9ATmpuIjMPwVkUQTACNPWiM1LYUHlPMxSVOChUnWnCXL7DRs2ZcwbDkBzLjHOoDMi1JxdjnzJ9YQG_tUBTFL8R9cKH04hvAdaNi71BK8qoQqNNe0f_89R2yuWR1fFe2dtI9edydW6qiNvSwXtuCFAhRQOZqlt_8Q3lYQPob4-pdjgIMUnLjYP64LYKq45uwgd6XyXGwUO1l7W7GpO_kgAKuM99t1MXp6IB6A9XbRNYaCSiJAgCbyqodHbJYQNPsYqo-lf-CPvcv0fC2kOXvaFQsouhiuCVdWSYXEsVCvxw96-Z-lZm9ywHLl1ZTCefxgikLkcYnLod232LGVqJYQDdGVqY1bWtTC6A_knvz9l_JGLJlFE_VFg4Ke4_Ipmzfu9mBQU-47e_11FB9ksO4cvvTstFWuxpAEC_JP7RqRJ5YQA3cxqybEuYIqSRkyDvmSaYIdcLrOsNWXL2kI-24SvhplRJH5S44BVPK_cvVAtHXLtDurfqeHjrmRnC0Cid_0DdYQEi0vKYmHUQGVuJuvUpmtoWsPCiW3uXUhrQUzXqK02YpLwV9Rv7mpi8Ttf4ZKyB94sdTh6YIJ9I3-A9OXjQsvFxYQDAl3ueb3hT243goN3x8oZWZ10whyuR8FOGUCBH0OLHBBvFDGvYJxgGpoyTanZP3rda5KTGp8FwRg0GPWJYL4wRYQJxc7azJM-xLzBNvdaRkXo79nFW44uNVh5MdURrVr8o-ZtBcSEAih0M22Si56IHwJEOdEeBg7-gR7T5Id1ERSpZYQMIuWoTRj1efe2uYiZyf1Ls65uCjTmdLXlstDDgGNVSeZY25cKuxiFORPkWDzxYF-f8UMXzN933O3f-eeB5bnPNYQGbc5MuhppkPQMSTO720vxYfXNSTT9efTsnx6JViQGsyNKlk01Uq5Q7uEyAl60bBFIfOCvwS8Fi5wlSs_dPb-uFYQMbKw4rwwtb9a4DGVHMOJ5jfDQ4sdHFUY3OC3tFf5L8M_shEJSbj_b6_9eNAuZ2GYIrKXM_md3UiWYHQX73TIXdYQGPFJpDLxCtFLpwd1Zc9_yXpRhG1TKKX9yJZArFM8x0ZZwAHSMUXt6mqADMDR1kd3o1jT4WsKZ9am3pWugyDFtJYQA5iROJ_BPhMBm1gPmJF71XcIFhMRSbxq_EZIKHTN4zrNKvJth4_tPir8IQpES8DxuV_25bYvmUMTh2RA3XAMlxYQBenzrw26uucwbHZ7wo_QpkLQFroVPJhBbgPoOHyO9nwkm77jOagHUHapviZdyCCXF6e_zia4dWek5kB5DmcMglYQJO44U9o4BUZ59DFch5dYDIdk7nUSKAd4TUK9QTYQMjauUaNAxpFeuwZdAh8oSSfQ3chjFmg1jpn9kesq43xWQxYQABM0ACr639sNX4x3jH_NRkfxFbiKDQJ-DukfF8UYD_Y1aY-j47JcHpIJhu1WhafVCqKkrRvr0dZ3PymQZnt7LVYQCXMa2Z1j_p28XLE0SqvKae10V-q-dwc_hGI_Eyx_obbPEw02ErzOd4dMpUTffsIU3Tauc-UwNs7iK_FdJYzaBtYQOSssxQPNn1qMR_AHonbY_UPNYb6aY9ek4HMrh2FEUWBllKOO_-j5nRIs1M_e9yrmMaxPYJWi4wxpaFgR1SkXZhYQBGUhHcZ7fEHYGkCuWcofP8VNs_z2FifSzQ-U2pok0Mz4M6hZ1Kn-r6c6AD0KyJUZq7yARCa6ZVwJB2OoF9Wy0hYQI7QjPqTZoDArXYrSa21EN_5zmCn7yWeXzyyDe3bEsV0jTbuQ14sTj5-OCXsqf8PITGVbWp2cZgE6dBch4KRR7hYQLcw1Pcl94lXpeNzjPIg3jtPgklA9_R3fNthHSt1PHOkEznmowHnZgZWo-3C4oyeD8Lpt0ARBOYSqbUqLGk6mGtYQIrpRQ5AyxUYZGtEXvcMe1Vbyc7Tn1rRB7Ev6Z0h__iAum798w81mnJU5eIlyRwAyIQ0cwnGf6Zo74JcQyh4sH9YQIfhd4d0Y23Cufs2VQBHi86tlqMtrHk2RTJy455m_DzX0qm_nQty90WDKDC92A3rRxPqi_ZxX2c-ChLrPoxLja9YQF_6ODroXBzfXkm9MYcyQVZ0SsfLdPliMmy9gem22PV7fdrSNvPY0hiqs6qPlFuVt2zBNEpf03R6axXzV2iAJhpYQNXGgigVpkgO8BrYvQWvDMKslyi6oQwG3i2AjcdzxCot72c79Kj-54G1kMMZs1E5jbyYuYzTOuFcXUjbJp0taYpYQKTpzL3cXC7dXgGDN6ke18BJ6pRvSuTAqK1UqIbfq6PyP3pys3fm_O4xsbEvAJjXddMBEigQ3dQOoQiBPX1GRrVYQMD5sLp7muEOz0LBub6_bJDvJmOwL2duPrU3FVXN1po0pcddNcBCYB7XGPHK-ptrqGpVIX4jyxJprKLQR0bsyJZYQJBIZ6wZV0yCPzN7p9q6-qMOCb1wa5jIew9NnG9akwDMiAciLZuR5TE0NQoalY7m7aICiM8lbEVByAdddwECxJZYQJXbLhIt1YYHRxAygGPM2m-i7E98ySYHLZ99MdZ6SSMvP_FnakQMlDeHoN7Z5V9f9von_QoqS4mijhOhR5wsfKpYQKFsz3VVgvYOYtvs-6mwX97tTOv6OlYYwa5NTzptPz_tttNjbtqT_8D0cwCVWjlc4M4daOmjXZo7KmXtqDnh3WGCZy9pc3N1ZXJqL3ZhbGlkRnJvbQ"
+ }
+}
\ No newline at end of file
diff --git a/e2e/fixtures/pol-amoy/pol/oa-pol-minted.json b/e2e/fixtures/pol-amoy/pol/oa-pol-minted.json
new file mode 100644
index 0000000..31cafa3
--- /dev/null
+++ b/e2e/fixtures/pol-amoy/pol/oa-pol-minted.json
@@ -0,0 +1,33 @@
+{
+ "version": "https://schema.openattestation.com/2.0/schema.json",
+ "data": {
+ "$template": {
+ "name": "d08b56ed-9f91-44d8-8748-4ef17c10084e:string:GOVTECH_DEMO",
+ "type": "17fbeec8-9712-4e3a-bf17-dd74ba348644:string:EMBEDDED_RENDERER",
+ "url": "a1061e20-318c-4bde-89d5-1ec42ef1eea9:string:https://demo-renderer.opencerts.io"
+ },
+ "issuers": [
+ {
+ "name": "7c8c3632-df92-492d-84fa-bb59363c9cf0:string:TrustVC POL Issuer",
+ "tokenRegistry": "0a0be8f4-c4af-4ec2-8bd8-ef787f72ea0a:string:0x0961d9C2dA9a7105fDFC9DC4ec45951C024F88B0",
+ "identityProof": {
+ "type": "21a24a77-34fc-4d8a-9cd4-7678304ce11d:string:DNS-TXT",
+ "location": "e201feac-f6cc-466c-98ae-3cc35dd03891:string:example.tradetrust.io"
+ }
+ }
+ ],
+ "recipient": {
+ "name": "9847a1cf-8151-42d7-b240-607d7a0f2fb7:string:TrustVC POL Test"
+ },
+ "network": {
+ "chain": "da056415-f675-49d8-942b-6c4c76bf664e:string:POL",
+ "chainId": "39922aa7-aaa1-49b8-a77c-d230eae018fb:string:137"
+ }
+ },
+ "signature": {
+ "type": "SHA3MerkleProof",
+ "targetHash": "5382d7c3c19d4b5730537a234b01b2084fdd71c3196dd0f5df00b23d9756d8d0",
+ "proof": [],
+ "merkleRoot": "5382d7c3c19d4b5730537a234b01b2084fdd71c3196dd0f5df00b23d9756d8d0"
+ }
+}
diff --git a/e2e/fixtures/pol-amoy/pol/w3c-pol-minted.json b/e2e/fixtures/pol-amoy/pol/w3c-pol-minted.json
new file mode 100644
index 0000000..2cf74bb
--- /dev/null
+++ b/e2e/fixtures/pol-amoy/pol/w3c-pol-minted.json
@@ -0,0 +1,64 @@
+{
+ "@context": [
+ "https://www.w3.org/ns/credentials/v2",
+ "https://w3id.org/security/data-integrity/v2",
+ "https://trustvc.io/context/render-method-context-v2.json",
+ "https://trustvc.io/context/promissory-note.json",
+ "https://trustvc.io/context/transferable-records-context.json",
+ "https://trustvc.io/context/qrcode-context.json"
+ ],
+ "renderMethod": [
+ {
+ "type": "EMBEDDED_RENDERER",
+ "templateName": "PROMISSORY_NOTE",
+ "id": "https://generic-templates.tradetrust.io"
+ }
+ ],
+ "credentialSubject": {
+ "type": [
+ "PromissoryNote"
+ ],
+ "drawerCompanyName": "XYZ Exports Pvt. Ltd.",
+ "drawerCompanyNo": "CIN-XYZ1234567",
+ "drawerJurisdiction": "India",
+ "drawerWalletAddress": "0x433097a1C1b8a3e9188d8C54eCC057B1D69f1638",
+ "drawerPlaceOfIssue": "Mumbai, India",
+ "draweeCompanyName": "XYZ Imports Ltd.",
+ "draweeCompanyNo": "REG-XYZ9876543",
+ "draweeJurisdiction": "California, United States",
+ "draweeWalletAddress": "0xca93690bb57eeab273c796a9309246bc0fb93649",
+ "dueDate": "2025-06-19",
+ "currency": "USD",
+ "amount": "50,000.00",
+ "clause": "Payment to be made in full without set-off or counterclaim, subject to terms agreed between Drawer and Drawee.",
+ "signerName": "John Doe",
+ "signerPosition": "Chief Financial Officer",
+ "signerTimeStamp": "2025-06-10",
+ "logo": "data:image/png;base64,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",
+ "pNoteId": "PN-9081-2231-SGP",
+ "commitmentDate": "2025-12-10"
+ },
+ "type": [
+ "VerifiableCredential"
+ ],
+ "credentialStatus": {
+ "type": "TransferableRecords",
+ "tokenNetwork": {
+ "chain": "POL",
+ "chainId": 137
+ },
+ "tokenRegistry": "0x0961d9C2dA9a7105fDFC9DC4ec45951C024F88B0",
+ "tokenId": "1174afa500e1b265450b55200cb16487e92e7c5410cff84b693eda59194b10fd"
+ },
+ "issuer": "did:web:trustvc.github.io:did:1",
+ "validFrom": "2024-04-01T12:19:52Z",
+ "id": "urn:uuid:019ea68d-006c-7887-9ea8-3f54f562ac65",
+ "proof": {
+ "type": "DataIntegrityProof",
+ "created": "2026-06-08T09:25:19Z",
+ "verificationMethod": "did:web:trustvc.github.io:did:1#multikey-1",
+ "cryptosuite": "ecdsa-sd-2023",
+ "proofPurpose": "assertionMethod",
+ "proofValue": "u2V0AhVhAHlKJtL9UV-_snL5rOlLyCznZu_oNyzOE3s6XAFR4USM0D68IJsm6qf5M01opyFXDW3Xn8mtLb6AZEgRWH6C4fVgjgCQD-WN_Q-KfWRbl6pQ5HB4u4khdD6xR1mPuWcTcLYNwPkhYIJy9GT0cT7-l_I9XOnoDDJyy5IV9LvUECuSSvNoluakUmB9YQDn8hL0e7mW-1DC0i74pcWcskNkMU82TgfA0P1eeJLFHdkuhd-HhqWH2wTd9CG48KJ0UvVkt3jzPXWHMhkkxzMRYQCnL8QQIZ-Ki2Cjf1_u43B3AM5BwAAXiC2NkfK6AhcWVoBnVtEBN2vBZc4pWJveWd_qVJU5ALqL3Dz1JmIAwkHlYQNfW5JmtYILhhIZufZ9j4FX9IA4x9hk0ULLhEenxAaYlfnYnewVsI3AvRdGmJc6QwL1PTR-hTVG3txGVL3SNWBtYQABtgC4W-r6VH649Et1xGg1NB2VE_ZshNSK2yQN1hDok36f6bwcAJ1n91y52u3XmpxOYyGmsPM8yp6udzO9YRwtYQAQz4UhnkiIQovoJHD6Y-kq3X2YegxXFTnh4zH_qNWvjhZVa0nx9CCDvBDpmlH0lWqSAkNiTTx0XWE298vAK54xYQGFfs4um2IWamhe_4da7qsInmTR5VZgIhqPlkfaQd4-Vw9INv8orNrqXOhIMssCG1MCAr1vnsM6zVq75fVnABP5YQA0idgyw13Uwb8N4e_CFH_kIX9M21lLmeZ_ZWA9z5HfsN8qxBEU4VeODqi97QjgRtVBKL4ijHXT1_-YZyZZByB5YQHcGLRUvnezhWKd8kDw2cn12hfnc6rLlyy3dXUDvUzfr6n3zUqCA_cDopBbmhtGIQTHMff4uuiiFnT0a9dRkC09YQKbQ0HIMNzM2IkbGp14_JouEXXhvR3rMCKb8y2S4QzrqrZZMbbTNQaoHvTi07DbEeZINZlfJa-OhtIt82ulauc1YQJGDTkF2B9txoMSEZqHn5dKuw5-XVxIt7c-FGeeMQ0cZ3bW3P5EorCyF3Vq3iCP2a8gGyndXbXRp0ZiJhxLp2y5YQGNf8SRVKhEMF5FSH4xgFokxbcp4Kl2T70gCfGVJigO_kjxyZt8H69gNDnNYSc8QzpkFKT3UxWz_tZSQ9Ia8IIJYQJx0MTX75Tw_qBhANFD_brQ6L-AzNBjm_OH5bh8gAVusyVhnDpmXY51gQrN6JyjqtLxaYtjY1cfDJwuC35atF8xYQHAl47bk03u2wlrCHigRI5e37vqpR1JDzegTysqwLWqduOWqgU948Rk2upFSrQyhmgFX7Fl7DtBuHo8ZpgMujUlYQChDnKQjbDqWalmDH8w8LX474u9CYIFWK4cQwBlKhBADVfKU1Qqica4w9bzA5GNfjB33CX9XUMplTJSowJEUr1FYQBkKA9cJV4Um_B88M2n5_baaiAPFznINZpMLK5EJgQ-0wUuvI50_t6K8bWegTer1fnQOSnAlfBtUcK8yYL_QOfJYQLlh6ZzWPSorsSl3JZm9rp2L_lxiTbY0DWY9pSJMMiA9EKQaTZkpZqeSKEmoT6Aq-eFAuTbwr906jhg4NprWI1RYQEghFR8i1Dc8TpbjkoLndak2DYuG1SxtPZgzVgp1BPyEj5GPyL4FL1a-ikORWgV-HVJMEfarAkSiarXyUgvNxMRYQHkm3JeRRLKAKaP6gAf657NnGmmA1uxzFQ4Gq--ypILf-bpWEE4cTvEWCqfQSD3am8bFOhUJXFB5Kw4UqcTsQMFYQP0klTeYpKIXTeZQfVGBu7TBu2ZAwpDQ2lVVP0mXhP84NSdKKq9sIhD2GczdN_WMe89fSLvOEFY89y_h2SEyWqNYQNkQsRlN7U6tNJClz7rTiRXBEYfJGcHr8DzOsbckVOcovkhLIXPQvza8k87XZVLbCQiM9EZjS-Qi_izstH7RBZ5YQP5o3vy24Z8-mdlf6gyILBobX49kkTJ_-K5QLVNRH49pbxMNri4y2TPRHK6dlH-RmqB0ODEJUtD22k2ctVpvZxlYQODUnQlNDHujgjU-zv2OKx8VULunh8F2Zc5a8zSe8et7nbYiHoR1zoJpny2FJNrcpaZsyCfYkFdMBY92-2fIMMVYQLriZAVY1yLNmVMmsvp1eNLJGuLhVbNW5Yeg0Q7MUDKiQWwfCIUAdpssw4NCzttMVc2BFOIUfLWeY2gOWZGeABJYQMFdZ5HH3AuukE_nIvGY3L7pCFj-fPC98peSXOrlSDndTpMD5YpAJ7llX1mu6eQh-3HM8pcXRyPMgIJ8Mts7brZYQCMMCir0KK66Cwn0PBloywyFio9K9FCVUNwm7EmR6cDET2f1eCMBuAWmogHnQq6Uaq9zbmPlh_61a2AX3plYA1NYQDTEXLX4HprsDgr6z9NQ4zsGughnID20MqLH8Ekcc-oaC-jePS9Oza-aF9AU83JPeYdixWUN_wIJzzp7HxPkCidYQOpN0b7tWiFYXRRF_WeNDkXzRKzUyx_AoysQSnjQ2tibBzdN0-YvGEkeHrxvurr1hh8K9YL4yNsaw7Xpx6CrjSJYQO9Q0rdzs8UlnYhVQYxFbEbmaJppeTTFYjH3rXZ9SmDvPTdkL57r8cqxHCPTpG1xgxL1fuYOrE__p7PZohCwiy1YQHJaNYwpgjeDOPO6Txoz0Q-jkVMDr9XUWM1qp-SL8JtLpqImZ9iw54uHKFxuMuETSSKXEN6ZnKlpbpLDM4FL3i1YQEUVVNdExM1KWU3orB-s5n50br-e7LubUo6FhZYghz1RFvSwFkGmtsqGOk67W0rtUd8TERoHjDq137ocHM4LRrNYQCG5DS_HAcrUXBI_eoxy1AJlKx9L4lY4VsNum6b4_F3lJJQ7wLor0NhbcpK3-0U-Iuf_J4_NKFiFwiQ9ZhE_Ll-CZy9pc3N1ZXJqL3ZhbGlkRnJvbQ"
+ }
+}
\ No newline at end of file
diff --git a/e2e/helpers/verify-helpers.ts b/e2e/helpers/verify-helpers.ts
new file mode 100644
index 0000000..80a0cb7
--- /dev/null
+++ b/e2e/helpers/verify-helpers.ts
@@ -0,0 +1,88 @@
+import path from 'path'
+import fs from 'fs'
+import os from 'os'
+import { expect, type Page } from '@playwright/test'
+
+export const TEMP_DIR = path.join(os.tmpdir(), 'trustvc-pol-amoy-tests')
+fs.mkdirSync(TEMP_DIR, { recursive: true })
+
+const UNUSED_HASH = 'deadbeef' + '0'.repeat(56)
+
+export function writeTamperedOa(srcPath: string, name: string): string {
+ const doc = JSON.parse(fs.readFileSync(srcPath, 'utf8'))
+ doc.signature = { ...doc.signature, targetHash: UNUSED_HASH }
+ const dest = path.join(TEMP_DIR, name)
+ fs.writeFileSync(dest, JSON.stringify(doc))
+ return dest
+}
+
+export function writeNotMintedOa(srcPath: string, name: string): string {
+ const doc = JSON.parse(fs.readFileSync(srcPath, 'utf8'))
+ doc.signature = { ...doc.signature, targetHash: UNUSED_HASH, merkleRoot: UNUSED_HASH }
+ const dest = path.join(TEMP_DIR, name)
+ fs.writeFileSync(dest, JSON.stringify(doc))
+ return dest
+}
+
+export function writeTamperedW3c(srcPath: string, name: string): string {
+ const doc = JSON.parse(fs.readFileSync(srcPath, 'utf8'))
+ const pv: string = doc.proof.proofValue
+ doc.proof = { ...doc.proof, proofValue: pv.slice(0, -1) + (pv.endsWith('A') ? 'B' : 'A') }
+ const dest = path.join(TEMP_DIR, name)
+ fs.writeFileSync(dest, JSON.stringify(doc))
+ return dest
+}
+
+export function writeNotMintedW3c(srcPath: string, name: string): string {
+ const doc = JSON.parse(fs.readFileSync(srcPath, 'utf8'))
+ doc.credentialStatus = { ...doc.credentialStatus, tokenId: UNUSED_HASH }
+ const dest = path.join(TEMP_DIR, name)
+ fs.writeFileSync(dest, JSON.stringify(doc))
+ return dest
+}
+
+export async function uploadDoc(page: Page, filePath: string) {
+ const resetBtn = page.locator('[data-testid="upload-new-file-btn"]')
+ if (await resetBtn.isVisible({ timeout: 2_000 }).catch(() => false)) {
+ await resetBtn.click()
+ }
+ const tryAnotherBtn = page.locator('[data-testid="try-another-btn"]')
+ if (await tryAnotherBtn.isVisible({ timeout: 2_000 }).catch(() => false)) {
+ await tryAnotherBtn.click()
+ }
+
+ await page.locator('#file-upload').setInputFiles(filePath)
+
+ const verifying = page.locator('[data-testid="verifying-state"]')
+ // Loader may appear too briefly or be delayed by React batching; don't fail if missed.
+ await verifying.waitFor({ state: 'visible', timeout: 5_000 }).catch(() => {})
+ await verifying.waitFor({ state: 'hidden', timeout: 90_000 }).catch(() => {})
+
+ // VerifyResult shown for valid docs; VerifyError (try-another-btn) for invalid/error.
+ await page
+ .locator('[data-testid="verify-result"], [data-testid="try-another-btn"]')
+ .first()
+ .waitFor({ state: 'visible', timeout: 60_000 })
+}
+
+export async function assertCheckStatus(
+ page: Page,
+ check: 'document_integrity' | 'document_status' | 'issuer_identity',
+ status: 'VALID',
+) {
+ await expect(
+ page.locator(`[data-testid="check-${check}"][data-status="${status}"]`),
+ ).toBeVisible()
+}
+
+// The component renders VerifyError (not VerifyResult) for invalid/error docs,
+// so individual check statuses are not in the DOM for failing scenarios.
+export async function assertVerificationFailed(page: Page) {
+ await expect(page.locator('[data-testid="try-another-btn"]')).toBeVisible()
+}
+
+export async function assertAllValid(page: Page) {
+ await assertCheckStatus(page, 'document_integrity', 'VALID')
+ await assertCheckStatus(page, 'document_status', 'VALID')
+ await assertCheckStatus(page, 'issuer_identity', 'VALID')
+}
diff --git a/e2e/tests/amoy-verify.spec.ts b/e2e/tests/amoy-verify.spec.ts
new file mode 100644
index 0000000..d778c9a
--- /dev/null
+++ b/e2e/tests/amoy-verify.spec.ts
@@ -0,0 +1,90 @@
+/**
+ * End-to-end verification tests for Polygon Amoy testnet (chainId 80002).
+ * Covers OA v2 and W3C VC document types.
+ *
+ * Prerequisites: the app must be running on http://localhost:5173
+ */
+
+import path from 'path'
+import { fileURLToPath } from 'url'
+import { test } from '@playwright/test'
+import {
+ uploadDoc,
+ assertAllValid,
+ assertVerificationFailed,
+ writeTamperedOa,
+ writeNotMintedOa,
+ writeTamperedW3c,
+ writeNotMintedW3c,
+} from '../helpers/verify-helpers'
+
+const __filename = fileURLToPath(import.meta.url)
+const __dirname = path.dirname(__filename)
+
+const FIXTURE_DIR = path.resolve(__dirname, '../fixtures/pol-amoy/amoy')
+
+const OA_AMOY_MINTED = path.join(FIXTURE_DIR, 'oa-amoy-minted.json')
+const W3C_AMOY_MINTED = path.join(FIXTURE_DIR, 'w3c-amoy-minted.json')
+
+const OA_AMOY_TAMPERED = writeTamperedOa( OA_AMOY_MINTED, 'oa-amoy-tampered.json')
+const OA_AMOY_NOT_MINTED = writeNotMintedOa(OA_AMOY_MINTED, 'oa-amoy-not-minted.json')
+const W3C_AMOY_TAMPERED = writeTamperedW3c( W3C_AMOY_MINTED, 'w3c-amoy-tampered.json')
+const W3C_AMOY_NOT_MINTED = writeNotMintedW3c(W3C_AMOY_MINTED, 'w3c-amoy-not-minted.json')
+
+// ══════════════════════════════════════════════════════════════════════════
+// Polygon Amoy testnet (chainId 80002) – OA v2
+// ══════════════════════════════════════════════════════════════════════════
+
+test.describe('Amoy testnet – OA v2 document', () => {
+ test.beforeEach(async ({ page }) => {
+ await page.goto('/')
+ const dismissBtn = page.locator('[data-testid="dismiss-modal"]')
+ if (await dismissBtn.isVisible({ timeout: 2_000 }).catch(() => false)) {
+ await dismissBtn.click()
+ }
+ })
+
+ test('[Amoy OA] valid minted document – all three checks VALID', async ({ page }) => {
+ await uploadDoc(page, OA_AMOY_MINTED)
+ await assertAllValid(page)
+ })
+
+ test('[Amoy OA] tampered document (targetHash mutated) – DOCUMENT_INTEGRITY INVALID', async ({ page }) => {
+ await uploadDoc(page, OA_AMOY_TAMPERED)
+ await assertVerificationFailed(page)
+ })
+
+ test('[Amoy OA] not-minted document (merkleRoot replaced) – DOCUMENT_STATUS INVALID', async ({ page }) => {
+ await uploadDoc(page, OA_AMOY_NOT_MINTED)
+ await assertVerificationFailed(page)
+ })
+})
+
+// ──────────────────────────────────────────────────────────────────────────
+// Polygon Amoy testnet – W3C VC
+// ──────────────────────────────────────────────────────────────────────────
+
+test.describe('Amoy testnet – W3C VC document', () => {
+ test.beforeEach(async ({ page }) => {
+ await page.goto('/')
+ const dismissBtn = page.locator('[data-testid="dismiss-modal"]')
+ if (await dismissBtn.isVisible({ timeout: 2_000 }).catch(() => false)) {
+ await dismissBtn.click()
+ }
+ })
+
+ test('[Amoy W3C] valid minted document – all three checks VALID', async ({ page }) => {
+ await uploadDoc(page, W3C_AMOY_MINTED)
+ await assertAllValid(page)
+ })
+
+ test('[Amoy W3C] tampered document (proofValue mutated) – DOCUMENT_INTEGRITY INVALID', async ({ page }) => {
+ await uploadDoc(page, W3C_AMOY_TAMPERED)
+ await assertVerificationFailed(page)
+ })
+
+ test('[Amoy W3C] not-minted document (tokenId replaced) – DOCUMENT_STATUS INVALID', async ({ page }) => {
+ await uploadDoc(page, W3C_AMOY_NOT_MINTED)
+ await assertVerificationFailed(page)
+ })
+})
diff --git a/e2e/tests/pol-verify.spec.ts b/e2e/tests/pol-verify.spec.ts
new file mode 100644
index 0000000..2728e7d
--- /dev/null
+++ b/e2e/tests/pol-verify.spec.ts
@@ -0,0 +1,99 @@
+/**
+ * End-to-end verification tests for Polygon POL mainnet (chainId 137).
+ * Covers OA v2 and W3C VC document types.
+ *
+ * Prerequisites: the app must be running on http://localhost:5173
+ */
+
+import path from 'path'
+import { fileURLToPath } from 'url'
+import { test } from '@playwright/test'
+import {
+ uploadDoc,
+ assertAllValid,
+ assertVerificationFailed,
+ writeTamperedOa,
+ writeNotMintedOa,
+ writeTamperedW3c,
+ writeNotMintedW3c,
+} from '../helpers/verify-helpers'
+
+const __filename = fileURLToPath(import.meta.url)
+const __dirname = path.dirname(__filename)
+
+const FIXTURE_DIR = path.resolve(__dirname, '../fixtures/pol-amoy/pol')
+
+const OA_POL_MINTED = path.join(FIXTURE_DIR, 'oa-pol-minted.json')
+const W3C_POL_MINTED = path.join(FIXTURE_DIR, 'w3c-pol-minted.json')
+
+const OA_POL_TAMPERED = writeTamperedOa( OA_POL_MINTED, 'oa-pol-tampered.json')
+const OA_POL_NOT_MINTED = writeNotMintedOa(OA_POL_MINTED, 'oa-pol-not-minted.json')
+const W3C_POL_TAMPERED = writeTamperedW3c( W3C_POL_MINTED, 'w3c-pol-tampered.json')
+const W3C_POL_NOT_MINTED = writeNotMintedW3c(W3C_POL_MINTED, 'w3c-pol-not-minted.json')
+
+// ══════════════════════════════════════════════════════════════════════════
+// Polygon POL mainnet (chainId 137) – OA v2
+// ══════════════════════════════════════════════════════════════════════════
+
+test.describe('POL mainnet – OA v2 document', () => {
+ test.describe.configure({ retries: 2 })
+ test.beforeEach(async ({ page }) => {
+ await page.goto('/')
+ const dismissBtn = page.locator('[data-testid="dismiss-modal"]')
+ if (await dismissBtn.isVisible({ timeout: 2_000 }).catch(() => false)) {
+ await dismissBtn.click()
+ }
+ })
+
+ // fixme: requires POL mainnet infrastructure — deploy token registry
+ // 0x0961d9C2dA9a7105fDFC9DC4ec45951C024F88B0 on chainId 137, mint the
+ // merkleRoot in oa-pol-minted.json, and add DNS-TXT records for that
+ // registry to example.tradetrust.io before enabling this test.
+ test.fixme('[POL OA] valid minted document – all three checks VALID', async ({ page }) => {
+ await uploadDoc(page, OA_POL_MINTED)
+ await assertAllValid(page)
+ })
+
+ test('[POL OA] tampered document (targetHash mutated) – DOCUMENT_INTEGRITY INVALID', async ({ page }) => {
+ await uploadDoc(page, OA_POL_TAMPERED)
+ await assertVerificationFailed(page)
+ })
+
+ test('[POL OA] not-minted document (merkleRoot replaced) – DOCUMENT_STATUS INVALID', async ({ page }) => {
+ await uploadDoc(page, OA_POL_NOT_MINTED)
+ await assertVerificationFailed(page)
+ })
+})
+
+// ──────────────────────────────────────────────────────────────────────────
+// Polygon POL mainnet – W3C VC
+// ──────────────────────────────────────────────────────────────────────────
+
+test.describe('POL mainnet – W3C VC document', () => {
+ test.describe.configure({ retries: 2 })
+ test.beforeEach(async ({ page }) => {
+ await page.goto('/')
+ const dismissBtn = page.locator('[data-testid="dismiss-modal"]')
+ if (await dismissBtn.isVisible({ timeout: 2_000 }).catch(() => false)) {
+ await dismissBtn.click()
+ }
+ })
+
+ // fixme: requires POL mainnet infrastructure — token registry
+ // 0x0961d9C2dA9a7105fDFC9DC4ec45951C024F88B0 on chainId 137 must have
+ // the tokenId from w3c-pol-minted.json minted before enabling this test.
+ test.fixme('[POL W3C] valid minted document – all three checks VALID', async ({ page }) => {
+ await uploadDoc(page, W3C_POL_MINTED)
+ await assertAllValid(page)
+ })
+
+ test('[POL W3C] tampered document (proofValue mutated) – DOCUMENT_INTEGRITY INVALID', async ({ page }) => {
+ await uploadDoc(page, W3C_POL_TAMPERED)
+ await assertVerificationFailed(page)
+ })
+
+ test('[POL W3C] not-minted document (tokenId replaced) – DOCUMENT_STATUS INVALID', async ({ page }) => {
+ await uploadDoc(page, W3C_POL_NOT_MINTED)
+ await assertVerificationFailed(page)
+ })
+})
diff --git a/package-lock.json b/package-lock.json
index f9cacc3..0554aa4 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,7 +11,7 @@
"@sanity/client": "^7.20.0",
"@sanity/image-url": "^2.1.1",
"@trustvc/decentralized-renderer-react-components": "^1.0.3",
- "@trustvc/trustvc": "^2.12.4",
+ "@trustvc/trustvc": "^2.14.1",
"@types/lodash": "^4.17.24",
"clsx": "^2.1.1",
"date-fns": "^4.1.0",
@@ -1517,32 +1517,42 @@
"node": ">=18"
}
},
+ "node_modules/@digitalbazaar/bbs-2023-cryptosuite/node_modules/cborg": {
+ "version": "4.5.8",
+ "resolved": "https://registry.npmjs.org/cborg/-/cborg-4.5.8.tgz",
+ "integrity": "sha512-6/viltD51JklRhq4L7jC3zgy6gryuG5xfZ3kzpE+PravtyeQLeQmCYLREhQH7pWENg5pY4Yu/XCd6a7dKScVlw==",
+ "license": "Apache-2.0",
+ "bin": {
+ "cborg": "lib/bin.js"
+ }
+ },
"node_modules/@digitalbazaar/bbs-signatures": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@digitalbazaar/bbs-signatures/-/bbs-signatures-3.0.0.tgz",
- "integrity": "sha512-mQMCMnCWAraVSswJg1kJK/qmUrb3jMoWB9c8kOmztsWfnMZJcyYAcavuF8jgrVZ5cl/ZRNMK61ZbIvkqd6BE6g==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@digitalbazaar/bbs-signatures/-/bbs-signatures-3.1.0.tgz",
+ "integrity": "sha512-wx86l/PFOaRcoLBPmzwpF9Oo4uYJrm4uq/B1rHX5OHD15NakmUINfRr8NAGDG356GeTBDGZkMsBFgNj1x0dc+g==",
"license": "BSD-3-Clause",
"dependencies": {
- "@noble/curves": "^1.3.0"
+ "@noble/curves": "^2.2.0",
+ "@noble/hashes": "^2.2.0"
},
"engines": {
"node": ">=18"
}
},
"node_modules/@digitalbazaar/bls12-381-multikey": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@digitalbazaar/bls12-381-multikey/-/bls12-381-multikey-2.1.0.tgz",
- "integrity": "sha512-JelU85fNhvHl2/mqRdmrtrE2ZQJ0//+UwI0l/YFmvsOr6YN2GuKPzdkfXjpm7f3UvnBqz5f8QKFTb9mVa7mVVg==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@digitalbazaar/bls12-381-multikey/-/bls12-381-multikey-2.2.0.tgz",
+ "integrity": "sha512-C71W5QIVSkLK24XsDWENOqihfy8ITKXqP2c+aKtx09j4vbHstwG6grn4sF9qKEQ2FOMm3KPIrL2byiIIqt61ow==",
"license": "BSD-3-Clause",
"dependencies": {
"@digitalbazaar/bbs-signatures": "^3.0.0",
- "@noble/curves": "^1.3.0",
+ "@noble/curves": "^2.2.0",
"base58-universal": "^2.0.0",
"base64url-universal": "^2.0.0",
- "cborg": "^4.2.0"
+ "cborg": "^5.1.1"
},
"engines": {
- "node": ">=18"
+ "node": ">=22"
}
},
"node_modules/@digitalbazaar/data-integrity": {
@@ -1560,19 +1570,18 @@
}
},
"node_modules/@digitalbazaar/di-sd-primitives": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/@digitalbazaar/di-sd-primitives/-/di-sd-primitives-3.2.0.tgz",
- "integrity": "sha512-DydbRtDPY2vVVk7hLicSFfCCzd1d5e3GLjzqamLV4t9f9mGbHtnU2IeNhtUDGJZRpviFmtFjPMZwuns6sCAP9A==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/@digitalbazaar/di-sd-primitives/-/di-sd-primitives-3.3.0.tgz",
+ "integrity": "sha512-ljbopcxLts2ALg6ce1EG3AjIlXOC77EHmkqvghtyZBNl3XwOZueBQJmTDD6XvRQq930n6kfCtvt4JUWOrg5CrQ==",
"license": "BSD-3-Clause",
"dependencies": {
"base64url-universal": "^2.0.0",
"jsonld": "^9.0.0",
"klona": "^2.0.6",
- "rdf-canonize": "^5.0.0",
- "uuid": "^10.0.0"
+ "rdf-canonize": "^5.0.0"
},
"engines": {
- "node": ">=18"
+ "node": ">=20"
}
},
"node_modules/@digitalbazaar/di-sd-primitives/node_modules/@digitalbazaar/http-client": {
@@ -1649,27 +1658,14 @@
}
},
"node_modules/@digitalbazaar/di-sd-primitives/node_modules/undici": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/undici/-/undici-6.23.0.tgz",
- "integrity": "sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==",
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-6.26.0.tgz",
+ "integrity": "sha512-4yqz8a3n5HmGTlsbADNtr/dJlhkh/55Rq798G6ibiULcXbDtaLpTl1pvdqcbFfeoj3iSi52lePFM7h9H21cw/A==",
"license": "MIT",
"engines": {
"node": ">=18.17"
}
},
- "node_modules/@digitalbazaar/di-sd-primitives/node_modules/uuid": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz",
- "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
"node_modules/@digitalbazaar/di-sd-primitives/node_modules/yallist": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
@@ -1706,6 +1702,15 @@
"node": ">=18"
}
},
+ "node_modules/@digitalbazaar/ecdsa-sd-2023-cryptosuite/node_modules/cborg": {
+ "version": "4.5.8",
+ "resolved": "https://registry.npmjs.org/cborg/-/cborg-4.5.8.tgz",
+ "integrity": "sha512-6/viltD51JklRhq4L7jC3zgy6gryuG5xfZ3kzpE+PravtyeQLeQmCYLREhQH7pWENg5pY4Yu/XCd6a7dKScVlw==",
+ "license": "Apache-2.0",
+ "bin": {
+ "cborg": "lib/bin.js"
+ }
+ },
"node_modules/@digitalbazaar/http-client": {
"version": "3.4.1",
"resolved": "https://registry.npmjs.org/@digitalbazaar/http-client/-/http-client-3.4.1.tgz",
@@ -4372,15 +4377,15 @@
}
},
"node_modules/@noble/curves": {
- "version": "1.9.7",
- "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz",
- "integrity": "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-2.2.0.tgz",
+ "integrity": "sha512-T/BoHgFXirb0ENSPBquzX0rcjXeM6Lo892a2jlYJkqk83LqZx0l1Of7DzlKJ6jkpvMrkHSnAcgb5JegL8SeIkQ==",
"license": "MIT",
"dependencies": {
- "@noble/hashes": "1.8.0"
+ "@noble/hashes": "2.2.0"
},
"engines": {
- "node": "^14.21.3 || >=16"
+ "node": ">= 20.19.0"
},
"funding": {
"url": "https://paulmillr.com/funding/"
@@ -4396,12 +4401,12 @@
}
},
"node_modules/@noble/hashes": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz",
- "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.2.0.tgz",
+ "integrity": "sha512-IYqDGiTXab6FniAgnSdZwgWbomxpy9FtYvLKs7wCUs2a8RkITG+DFGO1DM9cr+E3/RgADRpFjrKVaJ1z6sjtEg==",
"license": "MIT",
"engines": {
- "node": "^14.21.3 || >=16"
+ "node": ">= 20.19.0"
},
"funding": {
"url": "https://paulmillr.com/funding/"
@@ -5186,18 +5191,6 @@
"@noble/hashes": "^2.0.0"
}
},
- "node_modules/@sanity/signed-urls/node_modules/@noble/hashes": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.0.1.tgz",
- "integrity": "sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==",
- "license": "MIT",
- "engines": {
- "node": ">= 20.19.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
"node_modules/@scure/base": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz",
@@ -7376,13 +7369,23 @@
"node": ">=8"
}
},
+ "node_modules/@tradetrust-tt/tradetrust/node_modules/web-did-resolver": {
+ "version": "2.0.32",
+ "resolved": "https://registry.npmjs.org/web-did-resolver/-/web-did-resolver-2.0.32.tgz",
+ "integrity": "sha512-L91/ApTmDjgzS0UDstTKn3kN/1hlQBnVcUN8K29e3xhVBpPktHYC6uvVAQ8ohbIg9D6wrrbaBQvfRArDxgJG2g==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "cross-fetch": "^4.1.0",
+ "did-resolver": "^4.1.0"
+ }
+ },
"node_modules/@tradetrust-tt/tt-verify": {
- "version": "9.7.2",
- "resolved": "https://registry.npmjs.org/@tradetrust-tt/tt-verify/-/tt-verify-9.7.2.tgz",
- "integrity": "sha512-LZvjF/1Lj0a0TwLiyRAhygVxe7jnwlmcDiaFu/rpiHCvwySUh5iehJeha0erpU7xeSyMZPRqeWOKQE3XXbtLRA==",
+ "version": "9.7.5",
+ "resolved": "https://registry.npmjs.org/@tradetrust-tt/tt-verify/-/tt-verify-9.7.5.tgz",
+ "integrity": "sha512-LoVrJLiWB9ZnMHoe7IGBAc4edK2upKYsfCRgo9T7VNLo3XiBM4cIr25RQ5e1AQ58m+3gKWRnpP9ZKj0qqN+xFg==",
"license": "Apache-2.0",
"dependencies": {
- "@tradetrust-tt/dnsprove": "^2.20.0",
+ "@tradetrust-tt/dnsprove": "^2.21.0",
"@tradetrust-tt/token-registry": "^5.5.0",
"@tradetrust-tt/tradetrust": "^6.10.3",
"@trustvc/document-store": "^1.0.3",
@@ -7402,25 +7405,6 @@
"ethers": "^5.8.0"
}
},
- "node_modules/@tradetrust-tt/tt-verify/node_modules/cross-fetch": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz",
- "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==",
- "license": "MIT",
- "dependencies": {
- "node-fetch": "^2.7.0"
- }
- },
- "node_modules/@tradetrust-tt/tt-verify/node_modules/web-did-resolver": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/web-did-resolver/-/web-did-resolver-2.0.4.tgz",
- "integrity": "sha512-PORpoA4P0I3m0cLJX2IIDZ0gMKgC1PjS8DuDeg9/JCdIlFiXrZCyTG1hxvw4a4vhDKr0sZKSZL1pQDXTgqLm8w==",
- "license": "Apache-2.0",
- "dependencies": {
- "cross-fetch": "^3.1.2",
- "did-resolver": "^3.1.0"
- }
- },
"node_modules/@trustvc/decentralized-renderer-react-components": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@trustvc/decentralized-renderer-react-components/-/decentralized-renderer-react-components-1.0.3.tgz",
@@ -7459,9 +7443,9 @@
"license": "Apache-2.0"
},
"node_modules/@trustvc/trustvc": {
- "version": "2.12.4",
- "resolved": "https://registry.npmjs.org/@trustvc/trustvc/-/trustvc-2.12.4.tgz",
- "integrity": "sha512-9Ff/BuXmT5guZBjBLtEXNynCHnxLeH7awsS8/LMoZSPXcFczk8vAAFtx+4iTEBv2mRXQ3hZpe+T4zoueSe/gxQ==",
+ "version": "2.14.1",
+ "resolved": "https://registry.npmjs.org/@trustvc/trustvc/-/trustvc-2.14.1.tgz",
+ "integrity": "sha512-vGR6/s8nn69sl3Ntr/rE8+kg64RuqsRN2AeB0yeNOAUwTWEmQRk16cvB4g1xW7+CsLc5yI5sRuAqeAmbhHdV0g==",
"license": "Apache-2.0",
"dependencies": {
"@tradetrust-tt/dnsprove": "^2.18.0",
@@ -7469,13 +7453,13 @@
"@tradetrust-tt/token-registry-v4": "npm:@tradetrust-tt/token-registry@^4.16.0",
"@tradetrust-tt/token-registry-v5": "npm:@tradetrust-tt/token-registry@^5.5.0",
"@tradetrust-tt/tradetrust": "^6.10.3",
- "@tradetrust-tt/tt-verify": "^9.7.2",
+ "@tradetrust-tt/tt-verify": "^9.7.5",
"@trustvc/document-store": "^1.0.3",
- "@trustvc/w3c": "^2.0.0",
- "@trustvc/w3c-context": "^2.0.0",
- "@trustvc/w3c-credential-status": "^2.0.0",
- "@trustvc/w3c-issuer": "^2.0.0",
- "@trustvc/w3c-vc": "^2.0.0",
+ "@trustvc/w3c": "^2.2.0",
+ "@trustvc/w3c-context": "^2.2.0",
+ "@trustvc/w3c-credential-status": "^2.2.0",
+ "@trustvc/w3c-issuer": "^2.2.0",
+ "@trustvc/w3c-vc": "^2.2.0",
"ethers": "^5.8.0",
"ethersV6": "npm:ethers@^6.14.4",
"js-sha3": "^0.9.3",
@@ -7516,24 +7500,24 @@
}
},
"node_modules/@trustvc/w3c": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@trustvc/w3c/-/w3c-2.0.2.tgz",
- "integrity": "sha512-xWgyhdVjw1mR0GdLjzeoH1s4jseaEJpmJ2ndM0Xcn0zCzqeUql2C1ijnb0Sb/76R7XLUuc0hgAo1CzLp27lQKw==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@trustvc/w3c/-/w3c-2.2.0.tgz",
+ "integrity": "sha512-2WhAoYZW7JLt9H1OrT1qcwTL0g6LymMVg9uiZ3xxlaRgYzOmEqClN3Pq6apo1kRZTzJMHcKWECKADkHGa0Jgqw==",
"license": "Apache-2.0",
"dependencies": {
- "@trustvc/w3c-context": "^2.0.2",
- "@trustvc/w3c-credential-status": "^2.0.2",
- "@trustvc/w3c-issuer": "^2.0.2",
- "@trustvc/w3c-vc": "^2.0.2"
+ "@trustvc/w3c-context": "^2.2.0",
+ "@trustvc/w3c-credential-status": "^2.2.0",
+ "@trustvc/w3c-issuer": "^2.2.0",
+ "@trustvc/w3c-vc": "^2.2.0"
},
"engines": {
"node": ">=18.x"
}
},
"node_modules/@trustvc/w3c-context": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@trustvc/w3c-context/-/w3c-context-2.0.2.tgz",
- "integrity": "sha512-2DM73n1z2FXML9/suGHea6BcJqs7GKiJsvpozRf6lE9d3ZyFRmCd6H84f7Z7zGvacuLXMRnPX2A9DKE0ETs8HA==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@trustvc/w3c-context/-/w3c-context-2.2.0.tgz",
+ "integrity": "sha512-p9mtIWZ1v1hhqiGLJ5Fu+2PK9ClIRsdo04vgCVC8BxhIjwUU7ZHb95sYF1E8Ay9pP2BRyFujBdoaYXHH8n5v4A==",
"license": "Apache-2.0",
"dependencies": {
"did-resolver": "^4.1.0",
@@ -7550,13 +7534,13 @@
"license": "Apache-2.0"
},
"node_modules/@trustvc/w3c-credential-status": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@trustvc/w3c-credential-status/-/w3c-credential-status-2.0.2.tgz",
- "integrity": "sha512-8f5sHoDAT8YqLlHm82t/wh1HrZdmR3PgRGfDcgbKWrJtA+X2769kk6qVXCNP6tq1Ghyqe8v/HLortrXp9JSdGw==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@trustvc/w3c-credential-status/-/w3c-credential-status-2.2.0.tgz",
+ "integrity": "sha512-lfgnvAUSwdi5hWnuf+wqTkpPTYxmZyZ8kdzVPRQeKWqb0ysdWN+n32ROoNpQAFSPqYlSL0pLWuI/vg35WuhnEA==",
"license": "Apache-2.0",
"dependencies": {
- "@trustvc/w3c-context": "^2.0.2",
- "@trustvc/w3c-issuer": "^2.0.2",
+ "@trustvc/w3c-context": "^2.2.0",
+ "@trustvc/w3c-issuer": "^2.2.0",
"base64url-universal": "^2.0.0",
"pako": "^2.1.0"
},
@@ -7565,9 +7549,9 @@
}
},
"node_modules/@trustvc/w3c-issuer": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@trustvc/w3c-issuer/-/w3c-issuer-2.0.2.tgz",
- "integrity": "sha512-NDtEcGV7ryuWHbaX3hwlz2cN/hhDWHzA+D2AF56I7teNfev+X62pro+HrXYAa3EclPET7BI+fYmLgh61/DAl7w==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@trustvc/w3c-issuer/-/w3c-issuer-2.2.0.tgz",
+ "integrity": "sha512-o5XWh52c3KeNqrrIpSvjPt+3zwZ/wwh2hlGOst6PZXVzS9nMab+jUwhs52d+HBhe2r8BL4Z81sdMGA8YAEnk6Q==",
"license": "Apache-2.0",
"dependencies": {
"@digitalbazaar/bls12-381-multikey": "^2.1.0",
@@ -7588,10 +7572,20 @@
"integrity": "sha512-S6fWHvCXkZg2IhS4RcVHxwuyVejPR7c+a4Go0xbQ9ps5kILa8viiYQgrM4gfTyeTjJ0ekgJH9gk/BawTpmkbZA==",
"license": "Apache-2.0"
},
+ "node_modules/@trustvc/w3c-issuer/node_modules/web-did-resolver": {
+ "version": "2.0.32",
+ "resolved": "https://registry.npmjs.org/web-did-resolver/-/web-did-resolver-2.0.32.tgz",
+ "integrity": "sha512-L91/ApTmDjgzS0UDstTKn3kN/1hlQBnVcUN8K29e3xhVBpPktHYC6uvVAQ8ohbIg9D6wrrbaBQvfRArDxgJG2g==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "cross-fetch": "^4.1.0",
+ "did-resolver": "^4.1.0"
+ }
+ },
"node_modules/@trustvc/w3c-vc": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@trustvc/w3c-vc/-/w3c-vc-2.0.2.tgz",
- "integrity": "sha512-3A488DgukqrKXDSNdtZE02tOfj6V9C6uRJAEKEnMiaUevxNzFO9TFpqXkeOdxNhg9yHEH7m68b6SqfwU/tbVXQ==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@trustvc/w3c-vc/-/w3c-vc-2.2.0.tgz",
+ "integrity": "sha512-QAfoEgNndi2X+V0Nz9nBGiUk4Ko0XUFVLn0BY6qJK8GHJndMMCEcZ14PlaHyKG8nIossQeKZbsBwnavm2jRFdg==",
"license": "Apache-2.0",
"dependencies": {
"@digitalbazaar/bbs-2023-cryptosuite": "^2.0.1",
@@ -7600,8 +7594,8 @@
"@digitalbazaar/ecdsa-multikey": "^1.8.0",
"@digitalbazaar/ecdsa-sd-2023-cryptosuite": "^3.4.1",
"@mattrglobal/jsonld-signatures-bbs": "^1.2.0",
- "@trustvc/w3c-credential-status": "^2.0.2",
- "@trustvc/w3c-issuer": "^2.0.2",
+ "@trustvc/w3c-credential-status": "^2.2.0",
+ "@trustvc/w3c-issuer": "^2.2.0",
"base64url-universal": "^2.0.0",
"cbor": "^9.0.2",
"did-resolver": "^4.1.0",
@@ -7627,6 +7621,7 @@
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz",
"integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==",
+ "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).",
"funding": [
"https://github.com/sponsors/broofa",
"https://github.com/sponsors/ctavan"
@@ -9596,6 +9591,18 @@
"@noble/hashes": "^1.2.0"
}
},
+ "node_modules/bip39/node_modules/@noble/hashes": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz",
+ "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==",
+ "license": "MIT",
+ "engines": {
+ "node": "^14.21.3 || >=16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
"node_modules/bluebird": {
"version": "3.4.7",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz",
@@ -10211,9 +10218,9 @@
}
},
"node_modules/cborg": {
- "version": "4.5.8",
- "resolved": "https://registry.npmjs.org/cborg/-/cborg-4.5.8.tgz",
- "integrity": "sha512-6/viltD51JklRhq4L7jC3zgy6gryuG5xfZ3kzpE+PravtyeQLeQmCYLREhQH7pWENg5pY4Yu/XCd6a7dKScVlw==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/cborg/-/cborg-5.1.1.tgz",
+ "integrity": "sha512-BDbSRIp6XrQXkTc7g+DN0RB9RrDPTUfals2ecWUlt3juPLjbAvy/V72mJcXY0Ehu0Dq/3WpNCOCT68HUTbW+lw==",
"license": "Apache-2.0",
"bin": {
"cborg": "lib/bin.js"
@@ -15952,9 +15959,9 @@
}
},
"node_modules/jsonld-signatures/node_modules/undici": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/undici/-/undici-6.23.0.tgz",
- "integrity": "sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==",
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-6.26.0.tgz",
+ "integrity": "sha512-4yqz8a3n5HmGTlsbADNtr/dJlhkh/55Rq798G6ibiULcXbDtaLpTl1pvdqcbFfeoj3iSi52lePFM7h9H21cw/A==",
"license": "MIT",
"engines": {
"node": ">=18.17"
@@ -16999,9 +17006,9 @@
}
},
"node_modules/neon-cli/node_modules/semver": {
- "version": "7.7.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
- "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
+ "version": "7.8.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.4.tgz",
+ "integrity": "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==",
"license": "ISC",
"optional": true,
"bin": {
@@ -18607,7 +18614,7 @@
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
- "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
+ "deprecated": "uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).",
"license": "MIT",
"bin": {
"uuid": "bin/uuid"
@@ -21130,621 +21137,88 @@
"webidl-conversions": "^4.0.2"
}
},
- "node_modules/tsx": {
- "version": "4.22.3",
- "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.22.3.tgz",
- "integrity": "sha512-mdoNxBC/cSQObGGVQ5Bpn5i+yv7j68gk3Nfm3wFjcJg3Z0Mix9jzAFfP12prmm5eVGmDKtp0yyArrs0Q+8gZHg==",
+ "node_modules/tty-browserify": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz",
+ "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "peer": true,
+ "license": "MIT"
+ },
+ "node_modules/tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
+ "license": "Apache-2.0",
"dependencies": {
- "esbuild": "~0.28.0"
- },
- "bin": {
- "tsx": "dist/cli.mjs"
+ "safe-buffer": "^5.0.1"
},
"engines": {
- "node": ">=18.0.0"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.3"
+ "node": "*"
}
},
- "node_modules/tsx/node_modules/@esbuild/aix-ppc64": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz",
- "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "aix"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
+ "node_modules/tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==",
+ "license": "Unlicense"
},
- "node_modules/tsx/node_modules/@esbuild/android-arm": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz",
- "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==",
- "cpu": [
- "arm"
- ],
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "peer": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1"
+ },
"engines": {
- "node": ">=18"
+ "node": ">= 0.8.0"
}
},
- "node_modules/tsx/node_modules/@esbuild/android-arm64": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz",
- "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
+ "node_modules/type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
"license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
"peer": true,
"engines": {
- "node": ">=18"
+ "node": ">=4"
}
},
- "node_modules/tsx/node_modules/@esbuild/android-x64": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz",
- "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "peer": true,
+ "node_modules/type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "license": "(MIT OR CC0-1.0)",
"engines": {
- "node": ">=18"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tsx/node_modules/@esbuild/darwin-arm64": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz",
- "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
+ "node_modules/typechain": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.3.2.tgz",
+ "integrity": "sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==",
"license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
"peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/darwin-x64": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz",
- "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/freebsd-arm64": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz",
- "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/freebsd-x64": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz",
- "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/linux-arm": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz",
- "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/linux-arm64": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz",
- "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/linux-ia32": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz",
- "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/linux-loong64": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz",
- "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/linux-mips64el": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz",
- "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==",
- "cpu": [
- "mips64el"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/linux-ppc64": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz",
- "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/linux-riscv64": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz",
- "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/linux-s390x": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz",
- "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/linux-x64": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz",
- "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/netbsd-arm64": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz",
- "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/netbsd-x64": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz",
- "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/openbsd-arm64": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz",
- "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/openbsd-x64": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz",
- "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/openharmony-arm64": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz",
- "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openharmony"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/sunos-x64": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz",
- "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "sunos"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/win32-arm64": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz",
- "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/win32-ia32": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz",
- "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/@esbuild/win32-x64": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz",
- "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/tsx/node_modules/esbuild": {
- "version": "0.28.0",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz",
- "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "optional": true,
- "peer": true,
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=18"
- },
- "optionalDependencies": {
- "@esbuild/aix-ppc64": "0.28.0",
- "@esbuild/android-arm": "0.28.0",
- "@esbuild/android-arm64": "0.28.0",
- "@esbuild/android-x64": "0.28.0",
- "@esbuild/darwin-arm64": "0.28.0",
- "@esbuild/darwin-x64": "0.28.0",
- "@esbuild/freebsd-arm64": "0.28.0",
- "@esbuild/freebsd-x64": "0.28.0",
- "@esbuild/linux-arm": "0.28.0",
- "@esbuild/linux-arm64": "0.28.0",
- "@esbuild/linux-ia32": "0.28.0",
- "@esbuild/linux-loong64": "0.28.0",
- "@esbuild/linux-mips64el": "0.28.0",
- "@esbuild/linux-ppc64": "0.28.0",
- "@esbuild/linux-riscv64": "0.28.0",
- "@esbuild/linux-s390x": "0.28.0",
- "@esbuild/linux-x64": "0.28.0",
- "@esbuild/netbsd-arm64": "0.28.0",
- "@esbuild/netbsd-x64": "0.28.0",
- "@esbuild/openbsd-arm64": "0.28.0",
- "@esbuild/openbsd-x64": "0.28.0",
- "@esbuild/openharmony-arm64": "0.28.0",
- "@esbuild/sunos-x64": "0.28.0",
- "@esbuild/win32-arm64": "0.28.0",
- "@esbuild/win32-ia32": "0.28.0",
- "@esbuild/win32-x64": "0.28.0"
- }
- },
- "node_modules/tty-browserify": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz",
- "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/tunnel-agent": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
- "license": "Apache-2.0",
- "dependencies": {
- "safe-buffer": "^5.0.1"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/tweetnacl": {
- "version": "0.14.5",
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==",
- "license": "Unlicense"
- },
- "node_modules/type-check": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
- "dev": true,
- "dependencies": {
- "prelude-ls": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/type-fest": {
- "version": "0.21.3",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
- "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
- "license": "(MIT OR CC0-1.0)",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/typechain": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.3.2.tgz",
- "integrity": "sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@types/prettier": "^2.1.1",
- "debug": "^4.3.1",
- "fs-extra": "^7.0.0",
- "glob": "7.1.7",
- "js-sha3": "^0.8.0",
- "lodash": "^4.17.15",
- "mkdirp": "^1.0.4",
- "prettier": "^2.3.1",
- "ts-command-line-args": "^2.2.0",
- "ts-essentials": "^7.0.1"
- },
- "bin": {
- "typechain": "dist/cli/cli.js"
- },
- "peerDependencies": {
- "typescript": ">=4.3.0"
+ "dependencies": {
+ "@types/prettier": "^2.1.1",
+ "debug": "^4.3.1",
+ "fs-extra": "^7.0.0",
+ "glob": "7.1.7",
+ "js-sha3": "^0.8.0",
+ "lodash": "^4.17.15",
+ "mkdirp": "^1.0.4",
+ "prettier": "^2.3.1",
+ "ts-command-line-args": "^2.2.0",
+ "ts-essentials": "^7.0.1"
+ },
+ "bin": {
+ "typechain": "dist/cli/cli.js"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.3.0"
}
},
"node_modules/typechain/node_modules/glob": {
@@ -23593,20 +23067,23 @@
}
},
"node_modules/web-did-resolver": {
- "version": "2.0.32",
- "resolved": "https://registry.npmjs.org/web-did-resolver/-/web-did-resolver-2.0.32.tgz",
- "integrity": "sha512-L91/ApTmDjgzS0UDstTKn3kN/1hlQBnVcUN8K29e3xhVBpPktHYC6uvVAQ8ohbIg9D6wrrbaBQvfRArDxgJG2g==",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/web-did-resolver/-/web-did-resolver-2.0.4.tgz",
+ "integrity": "sha512-PORpoA4P0I3m0cLJX2IIDZ0gMKgC1PjS8DuDeg9/JCdIlFiXrZCyTG1hxvw4a4vhDKr0sZKSZL1pQDXTgqLm8w==",
"license": "Apache-2.0",
"dependencies": {
- "cross-fetch": "^4.1.0",
- "did-resolver": "^4.1.0"
+ "cross-fetch": "^3.1.2",
+ "did-resolver": "^3.1.0"
}
},
- "node_modules/web-did-resolver/node_modules/did-resolver": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/did-resolver/-/did-resolver-4.1.0.tgz",
- "integrity": "sha512-S6fWHvCXkZg2IhS4RcVHxwuyVejPR7c+a4Go0xbQ9ps5kILa8viiYQgrM4gfTyeTjJ0ekgJH9gk/BawTpmkbZA==",
- "license": "Apache-2.0"
+ "node_modules/web-did-resolver/node_modules/cross-fetch": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz",
+ "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==",
+ "license": "MIT",
+ "dependencies": {
+ "node-fetch": "^2.7.0"
+ }
},
"node_modules/web-streams-polyfill": {
"version": "3.3.3",
@@ -24076,9 +23553,9 @@
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
},
"node_modules/yaml": {
- "version": "2.8.3",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz",
- "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==",
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz",
+ "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==",
"dev": true,
"license": "ISC",
"bin": {
diff --git a/package.json b/package.json
index a413919..dd35c6f 100644
--- a/package.json
+++ b/package.json
@@ -32,7 +32,7 @@
"@sanity/client": "^7.20.0",
"@sanity/image-url": "^2.1.1",
"@trustvc/decentralized-renderer-react-components": "^1.0.3",
- "@trustvc/trustvc": "^2.12.4",
+ "@trustvc/trustvc": "^2.14.1",
"@types/lodash": "^4.17.24",
"clsx": "^2.1.1",
"date-fns": "^4.1.0",
diff --git a/src/components/home/VerifySection/NetworkModal.test.tsx b/src/components/home/VerifySection/NetworkModal.test.tsx
index 881bdfa..313d459 100644
--- a/src/components/home/VerifySection/NetworkModal.test.tsx
+++ b/src/components/home/VerifySection/NetworkModal.test.tsx
@@ -111,7 +111,7 @@ describe('NetworkModal', () => {
expect(screen.getAllByText('Sepolia').length).toBeGreaterThan(0)
expect(screen.getByText('Polygon Amoy')).toBeInTheDocument()
expect(screen.getByText('Apothem')).toBeInTheDocument()
- expect(screen.queryByText('Polygon')).not.toBeInTheDocument()
+ expect(screen.queryByText('Polygon (POL)')).not.toBeInTheDocument()
expect(screen.queryByText('XDC Network')).not.toBeInTheDocument()
})
@@ -146,7 +146,7 @@ describe('NetworkModal', () => {
render()
fireEvent.click(getDropdownToggle())
expect(screen.getAllByText('Ethereum').length).toBeGreaterThan(0)
- expect(screen.getByText('Polygon')).toBeInTheDocument()
+ expect(screen.getByText('Polygon (POL)')).toBeInTheDocument()
expect(screen.getByText('XDC Network')).toBeInTheDocument()
expect(screen.queryByText('Sepolia')).not.toBeInTheDocument()
expect(screen.queryByText('Polygon Amoy')).not.toBeInTheDocument()
@@ -180,7 +180,7 @@ describe('NetworkModal', () => {
/>
)
fireEvent.click(getDropdownToggle())
- fireEvent.click(screen.getByText('Polygon'))
+ fireEvent.click(screen.getByText('Polygon (POL)'))
fireEvent.click(screen.getByRole('button', { name: /proceed/i }))
expect(onConfirm).toHaveBeenCalledWith('137')
})
diff --git a/src/components/home/VerifySection/NetworkModal.tsx b/src/components/home/VerifySection/NetworkModal.tsx
index e03cc36..e700659 100644
--- a/src/components/home/VerifySection/NetworkModal.tsx
+++ b/src/components/home/VerifySection/NetworkModal.tsx
@@ -17,7 +17,7 @@ const NETWORK_OPTIONS: NetworkOption[] = [
},
{
chainId: '137',
- label: 'Polygon',
+ label: 'Polygon (POL)',
group: 'Mainnet',
logo: '/images/networks/polygon.gif',
},
diff --git a/src/components/home/VerifySection/VerifySection.tsx b/src/components/home/VerifySection/VerifySection.tsx
index 13f08ba..8a9600a 100644
--- a/src/components/home/VerifySection/VerifySection.tsx
+++ b/src/components/home/VerifySection/VerifySection.tsx
@@ -19,7 +19,7 @@ interface VerifySectionProps {
const CHAIN_NAMES: Record = {
'1': 'Ethereum',
- '137': 'Polygon',
+ '137': 'Polygon (POL)',
'50': 'XDC Network',
'101010': 'Stability (Beta)',
'1338': 'Astron',
diff --git a/src/configs/chain-config.ts b/src/configs/chain-config.ts
index c9fe533..0fb3807 100644
--- a/src/configs/chain-config.ts
+++ b/src/configs/chain-config.ts
@@ -8,7 +8,7 @@ export { NETWORK_NAME, IS_TESTNET, INFURA_API_KEY } from './env-config'
*/
export const MAIN_NETWORKS = [
CHAIN_ID.mainnet, //
- CHAIN_ID.matic,
+ CHAIN_ID.pol,
CHAIN_ID.xdc,
CHAIN_ID.stability,
CHAIN_ID.astron,
diff --git a/src/utils/chain-info.ts b/src/utils/chain-info.ts
index 5a0589e..45e315a 100644
--- a/src/utils/chain-info.ts
+++ b/src/utils/chain-info.ts
@@ -16,7 +16,7 @@ export type Network =
export const InitialAddress = '0x0000000000000000000000000000000000000000'
export const BurnAddress = '0x000000000000000000000000000000000000dEaD'
-export type AvailableBlockChains = 'ETH' | 'MATIC' | 'XDC' | 'FREE' | 'ASTRON'
+export type AvailableBlockChains = 'ETH' | 'POL' | 'XDC' | 'FREE' | 'ASTRON'
type IChainInfo = Record
@@ -24,8 +24,8 @@ export const CHAIN: Record = {
[CHAIN_ID.local]: 'ETH',
[CHAIN_ID.mainnet]: 'ETH',
[CHAIN_ID.sepolia]: 'ETH',
- [CHAIN_ID.matic]: 'MATIC',
- [CHAIN_ID.amoy]: 'MATIC',
+ [CHAIN_ID.pol]: 'POL',
+ [CHAIN_ID.amoy]: 'POL',
[CHAIN_ID.xdc]: 'XDC',
[CHAIN_ID.xdcapothem]: 'XDC',
[CHAIN_ID.stability]: 'FREE',
@@ -56,7 +56,7 @@ export const ChainInfo: IChainInfo = {
export const supportedMainnet = [
ChainInfo[CHAIN_ID.mainnet].name,
- ChainInfo[CHAIN_ID.matic].name,
+ ChainInfo[CHAIN_ID.pol].name,
ChainInfo[CHAIN_ID.xdc].name,
ChainInfo[CHAIN_ID.stability].name,
ChainInfo[CHAIN_ID.astron].name,