diff --git a/package.json b/package.json index 36245d8..1ac5e88 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "supabase:types:data": "npx supabase gen types typescript --local > ./src/types/supabaseData.ts", "preintegration": "pnpm --dir ./lib/hypercerts-indexer i", "lint": "eslint", + "scripts:blueprint-batch-mint": "tsx scripts/blueprint_batch_mint.ts", "test": "vitest", "test:coverage": "vitest --coverage.enabled true", "prepare": "husky", @@ -90,6 +91,7 @@ "@graphql-tools/schema": "^10.0.2", "@graphql-tools/stitch": "^9.0.3", "@graphql-tools/wrap": "^10.0.1", + "@inquirer/prompts": "^7.2.3", "@rollup/plugin-typescript": "^11.1.6", "@sentry/types": "^8.2.1", "@swc/cli": "^0.3.12", @@ -103,6 +105,7 @@ "chai": "^5.0.0", "chai-assertions-count": "^1.0.2", "concurrently": "^8.2.2", + "csv-parse": "^5.6.0", "dotenv": "^16.3.1", "eslint": "8.56.0", "husky": "^9.1.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2ad5800..d90d3d1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -189,6 +189,9 @@ importers: '@graphql-tools/wrap': specifier: ^10.0.1 version: 10.0.1(graphql@16.8.1) + '@inquirer/prompts': + specifier: ^7.2.3 + version: 7.2.3(@types/node@20.10.6) '@rollup/plugin-typescript': specifier: ^11.1.6 version: 11.1.6(rollup@4.12.0)(tslib@2.6.2)(typescript@5.5.3) @@ -197,7 +200,7 @@ importers: version: 8.2.1 '@swc/cli': specifier: ^0.3.12 - version: 0.3.12(@swc/core@1.4.15)(chokidar@4.0.1) + version: 0.3.12(@swc/core@1.4.15)(chokidar@3.6.0) '@swc/core': specifier: ^1.4.15 version: 1.4.15 @@ -228,6 +231,9 @@ importers: concurrently: specifier: ^8.2.2 version: 8.2.2 + csv-parse: + specifier: ^5.6.0 + version: 5.6.0 dotenv: specifier: ^16.3.1 version: 16.3.1 @@ -339,6 +345,7 @@ packages: '@ardatan/relay-compiler@12.0.0': resolution: {integrity: sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q==} + hasBin: true peerDependencies: graphql: '*' @@ -476,14 +483,17 @@ packages: '@babel/parser@7.23.9': resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==} engines: {node: '>=6.0.0'} + hasBin: true '@babel/parser@7.24.7': resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} engines: {node: '>=6.0.0'} + hasBin: true '@babel/parser@7.26.3': resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==} engines: {node: '>=6.0.0'} + hasBin: true '@babel/plugin-proposal-class-properties@7.18.6': resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} @@ -675,6 +685,7 @@ packages: '@commitlint/cli@19.4.1': resolution: {integrity: sha512-EerFVII3ZcnhXsDT9VePyIdCJoh3jEzygN1L37MjQXgPfGS6fJTWL/KHClVMod1d8w94lFC3l4Vh/y5ysVAz2A==} engines: {node: '>=v18'} + hasBin: true '@commitlint/config-conventional@19.4.1': resolution: {integrity: sha512-D5S5T7ilI5roybWGc8X35OBlRXLAwuTseH1ro0XgqkOWrhZU8yOwBOslrNmSDlTXhXLq8cnfhQyC42qaUCzlXA==} @@ -930,6 +941,7 @@ packages: '@ethereumjs/rlp@4.0.1': resolution: {integrity: sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==} engines: {node: '>=14'} + hasBin: true '@ethereumjs/util@8.1.0': resolution: {integrity: sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==} @@ -1062,6 +1074,7 @@ packages: '@graphql-codegen/cli@5.0.2': resolution: {integrity: sha512-MBIaFqDiLKuO4ojN6xxG9/xL9wmfD3ZjZ7RsPjwQnSHBCUXnEkdKvX+JVpx87Pq29Ycn8wTJUguXnTZ7Di0Mlw==} + hasBin: true peerDependencies: '@parcel/watcher': ^2.1.0 graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 @@ -1484,10 +1497,26 @@ packages: resolution: {integrity: sha512-3V0OSykTkE/38GG1DhxRGLBmqefgzRg2EK5A375zz+XEvIWfAHcac31e+zlBDPypRHxhmXc/Oh6v9eOPbH3nAg==} engines: {node: '>=18'} + '@inquirer/checkbox@4.0.6': + resolution: {integrity: sha512-PgP35JfmGjHU0LSXOyRew0zHuA9N6OJwOlos1fZ20b7j8ISeAdib3L+n0jIxBtX958UeEpte6xhG/gxJ5iUqMw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + '@inquirer/confirm@3.1.9': resolution: {integrity: sha512-UF09aejxCi4Xqm6N/jJAiFXArXfi9al52AFaSD+2uIHnhZGtd1d6lIGTRMPouVSJxbGEi+HkOWSYaiEY/+szUw==} engines: {node: '>=18'} + '@inquirer/confirm@5.1.3': + resolution: {integrity: sha512-fuF9laMmHoOgWapF9h9hv6opA5WvmGFHsTYGCmuFxcghIhEhb3dN0CdQR4BUMqa2H506NCj8cGX4jwMsE4t6dA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + + '@inquirer/core@10.1.4': + resolution: {integrity: sha512-5y4/PUJVnRb4bwWY67KLdebWOhOc7xj5IP2J80oWXa64mVag24rwQ1VAdnj7/eDY/odhguW0zQ1Mp1pj6fO/2w==} + engines: {node: '>=18'} + '@inquirer/core@8.2.2': resolution: {integrity: sha512-K8SuNX45jEFlX3EBJpu9B+S2TISzMPGXZIuJ9ME924SqbdW6Pt6fIkKvXg7mOEOKJ4WxpQsxj0UTfcL/A434Ww==} engines: {node: '>=18'} @@ -1496,38 +1525,102 @@ packages: resolution: {integrity: sha512-5xCD7CoCh993YqXcsZPt45qkE3gl+03Yfv9vmAkptRi4nrzaUDmyhgBzndKdRG8SrKbQLBmOtztnRLGxvG/ahg==} engines: {node: '>=18'} + '@inquirer/editor@4.2.3': + resolution: {integrity: sha512-S9KnIOJuTZpb9upeRSBBhoDZv7aSV3pG9TECrBj0f+ZsFwccz886hzKBrChGrXMJwd4NKY+pOA9Vy72uqnd6Eg==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + '@inquirer/expand@2.1.9': resolution: {integrity: sha512-ymnR8qu2ie/3JpOeyZ3QSGJ+ai8qqtjBwopxLjzIZm7mZVKT6SV1sURzijkOLRgGUHwPemOfYX5biqXuqhpoBg==} engines: {node: '>=18'} + '@inquirer/expand@4.0.6': + resolution: {integrity: sha512-TRTfi1mv1GeIZGyi9PQmvAaH65ZlG4/FACq6wSzs7Vvf1z5dnNWsAAXBjWMHt76l+1hUY8teIqJFrWBk5N6gsg==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + '@inquirer/figures@1.0.3': resolution: {integrity: sha512-ErXXzENMH5pJt5/ssXV0DfWUZqly8nGzf0UcBV9xTnP+KyffE2mqyxIMBrZ8ijQck2nU0TQm40EQB53YreyWHw==} engines: {node: '>=18'} + '@inquirer/figures@1.0.9': + resolution: {integrity: sha512-BXvGj0ehzrngHTPTDqUoDT3NXL8U0RxUk2zJm2A66RhCEIWdtU1v6GuUqNAgArW4PQ9CinqIWyHdQgdwOj06zQ==} + engines: {node: '>=18'} + '@inquirer/input@2.1.9': resolution: {integrity: sha512-1xTCHmIe48x9CG1+8glAHrVVdH+QfYhzgBUbgyoVpp5NovnXgRcjSn/SNulepxf9Ol8HDq3gzw3ZCAUr+h1Eyg==} engines: {node: '>=18'} + '@inquirer/input@4.1.3': + resolution: {integrity: sha512-zeo++6f7hxaEe7OjtMzdGZPHiawsfmCZxWB9X1NpmYgbeoyerIbWemvlBxxl+sQIlHC0WuSAG19ibMq3gbhaqQ==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + + '@inquirer/number@3.0.6': + resolution: {integrity: sha512-xO07lftUHk1rs1gR0KbqB+LJPhkUNkyzV/KhH+937hdkMazmAYHLm1OIrNKpPelppeV1FgWrgFDjdUD8mM+XUg==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + '@inquirer/password@2.1.9': resolution: {integrity: sha512-QPtVcT12Fkn0TyuZJelR7QOtc5l1d/6pB5EfkHOivTzC6QTFxRCHl+Gx7Q3E2U/kgJeCCmDov6itDFggk9nkgA==} engines: {node: '>=18'} + '@inquirer/password@4.0.6': + resolution: {integrity: sha512-QLF0HmMpHZPPMp10WGXh6F+ZPvzWE7LX6rNoccdktv/Rov0B+0f+eyXkAcgqy5cH9V+WSpbLxu2lo3ysEVK91w==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + '@inquirer/prompts@5.0.5': resolution: {integrity: sha512-LV2XZzc8ls4zhUzYNSpsXcnA8djOptY4G01lFzp3Bey6E1oiZMzIU25N9cb5AOwNz6pqDXpjLwRFQmLQ8h6PaQ==} engines: {node: '>=18'} + '@inquirer/prompts@7.2.3': + resolution: {integrity: sha512-hzfnm3uOoDySDXfDNOm9usOuYIaQvTgKp/13l1uJoe6UNY+Zpcn2RYt0jXz3yA+yemGHvDOxVzqWl3S5sQq53Q==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + '@inquirer/rawlist@2.1.9': resolution: {integrity: sha512-GuMmfa/v1ZJqEWSkUx1hMxzs5/0DCUP0S8IicV/wu8QrbjfBOh+7mIQgtsvh8IJ3sRkRcQ+9wh9CE9jiYqyMgw==} engines: {node: '>=18'} + '@inquirer/rawlist@4.0.6': + resolution: {integrity: sha512-QoE4s1SsIPx27FO4L1b1mUjVcoHm1pWE/oCmm4z/Hl+V1Aw5IXl8FYYzGmfXaBT0l/sWr49XmNSiq7kg3Kd/Lg==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + + '@inquirer/search@3.0.6': + resolution: {integrity: sha512-eFZ2hiAq0bZcFPuFFBmZEtXU1EarHLigE+ENCtpO+37NHCl4+Yokq1P/d09kUblObaikwfo97w+0FtG/EXl5Ng==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + '@inquirer/select@2.3.5': resolution: {integrity: sha512-IyBj8oEtmdF2Gx4FJTPtEya37MD6s0KATKsHqgmls0lK7EQbhYSq9GQlcFq6cBsYe/cgQ0Fg2cCqYYPi/d/fxQ==} engines: {node: '>=18'} + '@inquirer/select@4.0.6': + resolution: {integrity: sha512-yANzIiNZ8fhMm4NORm+a74+KFYHmf7BZphSOBovIzYPVLquseTGEkU5l2UTnBOf5k0VLmTgPighNDLE9QtbViQ==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + '@inquirer/type@1.3.3': resolution: {integrity: sha512-xTUt0NulylX27/zMx04ZYar/kr1raaiFTVvQ5feljQsiAgdm0WPj4S73/ye0fbslh+15QrIuDvfCXTek7pMY5A==} engines: {node: '>=18'} + '@inquirer/type@3.0.2': + resolution: {integrity: sha512-ZhQ4TvhwHZF+lGhQ2O/rsjo80XoZR5/5qhOY3t6FJuX5XBg5Be8YzYTvaUGJnc12AUGI2nr4QSUE4PhKSigx7g==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + '@ipld/car@5.2.5': resolution: {integrity: sha512-YTmMM00RJtjLoNnPpI3nsYI8DCZV10tqzjQ2Tw4yJkEpu/WnF8VH7/n7Ep+AwI+yPCjt9iXE6yNvWtJcSZkyXA==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} @@ -1700,6 +1793,7 @@ packages: '@nomicfoundation/ethereumjs-rlp@5.0.4': resolution: {integrity: sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw==} engines: {node: '>=18'} + hasBin: true '@nomicfoundation/ethereumjs-tx@5.0.4': resolution: {integrity: sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw==} @@ -2037,6 +2131,7 @@ packages: '@openzeppelin/hardhat-upgrades@3.2.1': resolution: {integrity: sha512-Zy5M3QhkzwGdpzQmk+xbWdYOGJWjoTvwbBKYLhctu9B91DoprlhDRaZUwCtunwTdynkTDGdVfGr0kIkvycyKjw==} + hasBin: true peerDependencies: '@nomicfoundation/hardhat-ethers': ^3.0.0 '@nomicfoundation/hardhat-verify': ^2.0.0 @@ -2054,6 +2149,7 @@ packages: '@openzeppelin/upgrades-core@1.35.1': resolution: {integrity: sha512-FzbOzMrrNtXpL+DoM6jtOGZOvUdp6F4KTsb0niqfrd2BxMecL9fUA0aupi09p1Of+9BELcYozX/Gt7tr91Z2TA==} + hasBin: true '@peculiar/asn1-schema@2.3.8': resolution: {integrity: sha512-ULB1XqHKx1WBU/tTFIA+uARuRoBVZ4pNdOA878RDrRbBfBGcSzi5HBkdScC6ZbHn8z7L8gmKCgPC1LHRrP46tA==} @@ -2325,6 +2421,7 @@ packages: '@sentry/profiling-node@8.2.1': resolution: {integrity: sha512-oHjKXu8rROlaM1GZHQNyt8lG/58XSD6lUHgxx33IuqUTZjIzise8AB7fE1fzg4+JNFZITag6zzYqrQqPGSN3HQ==} engines: {node: '>=14.18'} + hasBin: true '@sentry/tracing@5.30.0': resolution: {integrity: sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==} @@ -2389,6 +2486,7 @@ packages: '@snaplet/seed@0.97.20': resolution: {integrity: sha512-+lnqESgwP92O1266vsTyoRgrg4hMCUTybBUxDT1ICMBFcvdjgwcOaUt8Xjj81YvxYkZlu5+TTBIjyNQT4nP4jQ==} engines: {node: '>=18.5.0'} + hasBin: true peerDependencies: '@prisma/client': '>=5' '@snaplet/copycat': '>=2' @@ -2447,6 +2545,7 @@ packages: '@swc/cli@0.3.12': resolution: {integrity: sha512-h7bvxT+4+UDrLWJLFHt6V+vNAcUNii2G4aGSSotKz1ECEk4MyEh5CWxmeSscwuz5K3i+4DWTgm4+4EyMCQKn+g==} engines: {node: '>= 16.14.0'} + hasBin: true peerDependencies: '@swc/core': ^1.2.66 chokidar: ^3.5.1 @@ -2643,6 +2742,7 @@ packages: '@tsoa/cli@6.2.1': resolution: {integrity: sha512-SS28cvL2uurau2PZbBO8Ks6O9LF497iMlnUfMr7hffbgxh81SftfG+qvddeniNw0ttSB593Mljvv+fPabEbrfQ==} engines: {node: '>=18.0.0', yarn: '>=1.9.4'} + hasBin: true '@tsoa/runtime@6.2.1': resolution: {integrity: sha512-YOA7ha6W6GQsSr3Pvb5omb5AwizvQd7GUu54Oi2TjNWYOzfczBROZonReMfKBiNULiZBDmEc5r1Hs+Kbbfjgyw==} @@ -3049,6 +3149,7 @@ packages: JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} @@ -3105,6 +3206,7 @@ packages: acorn@8.11.3: resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} + hasBin: true actor@2.3.1: resolution: {integrity: sha512-ST/3wnvcP2tKDXnum7nLCLXm+/rsf8vPocXH2Fre6D8FQwNkGDd4JEitBlXj007VQJfiGYRQvXqwOBZVi+JtRg==} @@ -3417,6 +3519,7 @@ packages: browserslist@4.23.0: resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true bs58@4.0.1: resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} @@ -3510,6 +3613,7 @@ packages: cborg@4.0.6: resolution: {integrity: sha512-McNIJHMQKQv/WgSE1JqWfqS4kaeN5g9GRA5MqVCt1+66TGsywkpzBUywpZ/HWF3Ik8yudSR+ZPlq6TRBEZXQyA==} + hasBin: true chai-assertions-count@1.0.2: resolution: {integrity: sha512-TnhoI68Mh7GYsdrvQuxK+kKOTfEXQZjePP8lTvYhXGv8KOKY+GaOY3PemMq8mBAa0gqQRKsISdi7QFJ/Lxdt+g==} @@ -3727,6 +3831,7 @@ packages: concurrently@8.2.2: resolution: {integrity: sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==} engines: {node: ^14.13.0 || >=16.0.0} + hasBin: true conf@11.0.2: resolution: {integrity: sha512-jjyhlQ0ew/iwmtwsS2RaB6s8DBifcE2GYBEaw2SJDUY/slJJbNfY4GlDVzOs/ff8cM/Wua5CikqXgbFl5eu85A==} @@ -3761,6 +3866,7 @@ packages: conventional-commits-parser@5.0.0: resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} engines: {node: '>=16'} + hasBin: true convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} @@ -3839,6 +3945,9 @@ packages: resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + csv-parse@5.6.0: + resolution: {integrity: sha512-l3nz3euub2QMg5ouu5U09Ew9Wf6/wQ8I++ch1loQ0ljmzhmfZYrH9fflS22i/PQEvsPvxCwxgz5q7UB8K1JO4Q==} + dargs@8.1.0: resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} engines: {node: '>=12'} @@ -4070,6 +4179,7 @@ packages: ebnf@1.9.1: resolution: {integrity: sha512-uW2UKSsuty9ANJ3YByIQE4ANkD8nqUPO7r6Fwcc1ADKPe9FRdcPpMl3VEput4JSvKBJ4J86npIC2MLP0pYkCuw==} + hasBin: true ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} @@ -4165,6 +4275,7 @@ packages: esbuild@0.19.11: resolution: {integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==} engines: {node: '>=12'} + hasBin: true escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -4196,6 +4307,7 @@ packages: eslint@8.56.0: resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} @@ -4434,6 +4546,7 @@ packages: flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true flatted@3.2.9: resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} @@ -4576,10 +4689,12 @@ packages: giget@1.2.3: resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==} + hasBin: true git-raw-commits@4.0.0: resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} engines: {node: '>=16'} + hasBin: true glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} @@ -4592,9 +4707,11 @@ packages: glob@10.3.10: resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} engines: {node: '>=16 || 14 >=14.17'} + hasBin: true glob@10.4.5: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true glob@7.2.0: resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} @@ -4637,6 +4754,7 @@ packages: gql.tada@1.8.3: resolution: {integrity: sha512-0H81I3M54jKTDHbnNWhXDf57Ie2d2raxnFCc93zdYjXHnrXe522jrio9AAFwqBlGx/xtaP3ILSSUw7J9H31LAA==} + hasBin: true peerDependencies: typescript: ^5.0.0 @@ -4712,12 +4830,14 @@ packages: handlebars@4.7.8: resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} engines: {node: '>=0.4.7'} + hasBin: true hardhat-deploy@0.11.45: resolution: {integrity: sha512-aC8UNaq3JcORnEUIwV945iJuvBwi65tjHVDU3v6mOcqik7WAzHVCJ7cwmkkipsHrWysrB5YvGF1q9S1vIph83w==} hardhat@2.22.17: resolution: {integrity: sha512-tDlI475ccz4d/dajnADUTRc1OJ3H8fpP9sWhXhBPpYsQOg8JHq5xrDimo53UhWPl7KJmAeDCm1bFG74xvpGRpg==} + hasBin: true peerDependencies: ts-node: '*' typescript: '*' @@ -4770,6 +4890,7 @@ packages: he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true header-case@2.0.4: resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} @@ -4814,6 +4935,7 @@ packages: husky@9.1.5: resolution: {integrity: sha512-rowAVRUBfI0b4+niA4SJMhfQwc107VLkBUgEYYAOQAbqDCnra1nYh83hF/MDmhYs9t9n1E3DuKOrs2LYNC+0Ag==} engines: {node: '>=18'} + hasBin: true iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} @@ -4958,6 +5080,7 @@ packages: is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} + hasBin: true is-electron@2.2.2: resolution: {integrity: sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==} @@ -5179,6 +5302,7 @@ packages: jiti@1.21.0: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + hasBin: true jose@5.2.3: resolution: {integrity: sha512-KUXdbctm1uHVL8BYhnyHkgp3zDX5KW8ZhAKVFEfUbU2P8Alpzjb+48hHvjOdQIyPshoblhzsuqOwEEAbtHVirA==} @@ -5197,10 +5321,12 @@ packages: js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} + hasBin: true json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -5241,6 +5367,7 @@ packages: json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} + hasBin: true jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} @@ -5307,6 +5434,7 @@ packages: lint-staged@15.2.9: resolution: {integrity: sha512-BZAt8Lk3sEnxw7tfxM7jeZlPRuT4M68O0/CwZhhaw6eeWu0Lz5eERE3m386InivXB64fp/mDID452h48tvKlRQ==} engines: {node: '>=18.12.0'} + hasBin: true listr2@4.0.5: resolution: {integrity: sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==} @@ -5405,6 +5533,7 @@ packages: loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true loupe@3.0.2: resolution: {integrity: sha512-Tzlkbynv7dtqxTROe54Il+J4e/zG2iehtJGZUYpTv8WzlkW9qyEcE83UhGJCeuF3SCfzHuM5VWhBi47phV3+AQ==} @@ -5469,6 +5598,7 @@ packages: markdown-it@14.1.0: resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} + hasBin: true match-all@1.2.6: resolution: {integrity: sha512-0EESkXiTkWzrQQntBu2uzKvLu6vVkUGz40nGPbSZuegcfE5UuSzNjLaIu76zJWuaT/2I3Z/8M06OlUOZLGwLlQ==} @@ -5554,6 +5684,7 @@ packages: mime@1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} engines: {node: '>=4'} + hasBin: true mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} @@ -5637,18 +5768,22 @@ packages: mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true mkdirp@1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} + hasBin: true mkdirp@2.1.6: resolution: {integrity: sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==} engines: {node: '>=10'} + hasBin: true mkdirp@3.0.1: resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} engines: {node: '>=10'} + hasBin: true mlly@1.4.2: resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} @@ -5662,6 +5797,7 @@ packages: mocha@10.2.0: resolution: {integrity: sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==} engines: {node: '>= 14.0.0'} + hasBin: true module-details-from-path@1.0.3: resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==} @@ -5713,13 +5849,19 @@ packages: resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + mute-stream@2.0.0: + resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} + engines: {node: ^18.17.0 || >=20.5.0} + nanoid@3.3.3: resolution: {integrity: sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true native-fetch@3.0.0: resolution: {integrity: sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==} @@ -5732,9 +5874,11 @@ packages: ndjson@2.0.0: resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==} engines: {node: '>=10'} + hasBin: true nearley@2.20.1: resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} + hasBin: true negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} @@ -5793,6 +5937,7 @@ packages: node-gyp-build@4.7.1: resolution: {integrity: sha512-wTSrZ+8lsRRa3I3H8Xr65dLWSgCvY2l4AOnaeKdPA9TB/WYMPaTcrzf3rXvFoVvjKNVnu0CcWSx54qq9GKRUYg==} + hasBin: true node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} @@ -5807,6 +5952,7 @@ packages: nodemon@3.0.3: resolution: {integrity: sha512-7jH/NXbFPxVaMwmBCC2B9F/V6X1VkEdNgx3iu9jji8WxWcvhMWkmhNWhI5077zknOnZnBzba9hZP6bCPJLSReQ==} engines: {node: '>=10'} + hasBin: true nofilter@3.1.0: resolution: {integrity: sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==} @@ -5814,6 +5960,7 @@ packages: nopt@1.0.10: resolution: {integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==} + hasBin: true normalize-path@2.1.1: resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} @@ -5853,6 +6000,7 @@ packages: nypm@0.3.8: resolution: {integrity: sha512-IGWlC6So2xv6V4cIDmoV0SwwWx7zLG086gyqkyumteH2fIgCAM4nDVFB2iDRszDvmdSVW9xb1N+2KjQ6C7d4og==} engines: {node: ^14.16.0 || >=16.10.0} + hasBin: true object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -6164,6 +6312,7 @@ packages: pidtree@0.6.0: resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} engines: {node: '>=0.10'} + hasBin: true pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} @@ -6240,6 +6389,7 @@ packages: prettier@3.3.2: resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} engines: {node: '>=14'} + hasBin: true process@0.11.10: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} @@ -6417,6 +6567,7 @@ packages: resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true responselike@2.0.1: resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} @@ -6457,16 +6608,19 @@ packages: rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true rimraf@5.0.5: resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} engines: {node: '>=14'} + hasBin: true ripemd160@2.0.2: resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} rlp@2.2.7: resolution: {integrity: sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==} + hasBin: true rollup-plugin-swc3@0.11.2: resolution: {integrity: sha512-o1ih9B806fV2wBSNk46T0cYfTF2eiiKmYXRpWw3K4j/Cp3tCAt10UCVsTqvUhGP58pcB3/GZcAVl5e7TCSKN6Q==} @@ -6483,6 +6637,7 @@ packages: rollup@4.12.0: resolution: {integrity: sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} @@ -6531,21 +6686,26 @@ packages: semver@5.7.2: resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true semver@7.5.4: resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} + hasBin: true semver@7.6.0: resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} engines: {node: '>=10'} + hasBin: true semver@7.6.3: resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} + hasBin: true send@0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} @@ -6580,6 +6740,7 @@ packages: sha.js@2.4.11: resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} + hasBin: true shebang-command@1.2.0: resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} @@ -6665,6 +6826,7 @@ packages: solc@0.8.26: resolution: {integrity: sha512-yiPQNVf5rBFHwN6SIf3TUUvVAFKcQqmSUFeq+fb6pNRCo0ZCgpYOZDi3BVoezCPIAcKrVYd/qXlBLUP9wVrZ9g==} engines: {node: '>=10.0.0'} + hasBin: true solidity-ast@0.4.56: resolution: {integrity: sha512-HgmsA/Gfklm/M8GFbCX/J1qkVH0spXHgALCNZ8fA8x5X+MFdn/8CP2gr5OVyXjXw6RZTPC/Sxl2RUDQOXyNMeA==} @@ -6813,6 +6975,7 @@ packages: supabase@1.191.3: resolution: {integrity: sha512-5tIG7mPc5lZ9QRbkZssyHiOsx42qGFaVqclauXv+1fJAkZnfA28d0pzEDvfs33+w8YTReO5nNaWAgyzkWQQwfA==} engines: {npm: '>=8'} + hasBin: true supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} @@ -6953,12 +7116,14 @@ packages: touch@3.1.0: resolution: {integrity: sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==} + hasBin: true tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true treeify@1.1.0: resolution: {integrity: sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==} @@ -6997,6 +7162,7 @@ packages: ts-node@10.9.2: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true peerDependencies: '@swc/core': '>=1.2.50' '@swc/wasm': '>=1.2.50' @@ -7011,6 +7177,7 @@ packages: tsconfck@3.1.4: resolution: {integrity: sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==} engines: {node: ^18 || >=20} + hasBin: true peerDependencies: typescript: ^5.0.0 peerDependenciesMeta: @@ -7037,6 +7204,7 @@ packages: tsoa@6.2.1: resolution: {integrity: sha512-cK+Wmw99IdkVMuNPl8OM+SufIxvS1b5XY9mwjLrTJ4ytwiUkF1AOKvF6pX5k/xDnHXFLCrfHzbgaogj0JJO9EA==} engines: {node: '>=18.0.0', yarn: '>=1.9.4'} + hasBin: true tsort@0.0.1: resolution: {integrity: sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==} @@ -7044,6 +7212,7 @@ packages: tsx@4.7.1: resolution: {integrity: sha512-8d6VuibXHtlN5E3zFkgY8u4DX7Y3Z27zvvPKVmLon/D4AjuKzarkUBTLDBgj9iTQ0hg5xM7c/mYiRVM+HETf0g==} engines: {node: '>=18.0.0'} + hasBin: true tsyringe@4.8.0: resolution: {integrity: sha512-YB1FG+axdxADa3ncEtRnQCFq/M0lALGLxSZeVNbTU8NqhOVc51nnv2CISTcvc1kyv6EGPtXVr0v6lWeDxiijOA==} @@ -7121,6 +7290,7 @@ packages: typedoc@0.26.5: resolution: {integrity: sha512-Vn9YKdjKtDZqSk+by7beZ+xzkkr8T8CYoiasqyt4TTRFy5+UHzL/mF/o4wGBjRF+rlWQHDb0t6xCpA3JNL5phg==} engines: {node: '>= 18'} + hasBin: true peerDependencies: typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x @@ -7137,10 +7307,12 @@ packages: typescript@5.5.3: resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==} engines: {node: '>=14.17'} + hasBin: true typescript@5.5.4: resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} engines: {node: '>=14.17'} + hasBin: true ua-parser-js@1.0.37: resolution: {integrity: sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==} @@ -7157,6 +7329,7 @@ packages: uglify-js@3.17.4: resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} engines: {node: '>=0.8.0'} + hasBin: true uint8arraylist@2.4.8: resolution: {integrity: sha512-vc1PlGOzglLF0eae1M8mLRTBivsvrGsdmJ5RbK3e+QRvRLOZfZhQROTwH/OfyF3+ZVUg9/8hE8bmKP2CvP9quQ==} @@ -7219,6 +7392,7 @@ packages: update-browserslist-db@1.0.13: resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -7252,12 +7426,15 @@ packages: uuid@3.4.0: resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + hasBin: true uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true uuid@9.0.1: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} @@ -7303,6 +7480,7 @@ packages: vite-node@2.1.8: resolution: {integrity: sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg==} engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true vite-tsconfig-paths@5.1.4: resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} @@ -7315,6 +7493,7 @@ packages: vite@5.0.11: resolution: {integrity: sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==} engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true peerDependencies: '@types/node': ^18.0.0 || >=20.0.0 less: '*' @@ -7348,6 +7527,7 @@ packages: vitest@2.1.8: resolution: {integrity: sha512-1vBKTZskHw/aosXqQUlVWWlGUxSJR8YtiyZDJAFeW2kPAeX6S3Sool0mjspO+kXLuxVWlEDDowBAeqeAQefqLQ==} engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 @@ -7407,14 +7587,17 @@ packages: which@1.3.1: resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} + hasBin: true why-is-node-running@2.3.0: resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} engines: {node: '>=8'} + hasBin: true widest-line@3.1.0: resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} @@ -7570,10 +7753,12 @@ packages: yaml@2.4.1: resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} engines: {node: '>= 14'} + hasBin: true yaml@2.5.0: resolution: {integrity: sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==} engines: {node: '>= 14'} + hasBin: true yargs-parser@18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} @@ -7619,6 +7804,10 @@ packages: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} + yoctocolors-cjs@2.1.2: + resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} + engines: {node: '>=18'} + zen-observable-ts@0.8.21: resolution: {integrity: sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==} @@ -8309,7 +8498,7 @@ snapshots: '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) espree: 9.6.1 globals: 13.24.0 ignore: 5.3.0 @@ -9054,7 +9243,7 @@ snapshots: '@types/json-stable-stringify': 1.0.36 '@whatwg-node/fetch': 0.9.15 chalk: 4.1.2 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) dotenv: 16.3.1 graphql: 16.8.1 graphql-request: 6.1.0(encoding@0.1.13)(graphql@16.8.1) @@ -9376,7 +9565,7 @@ snapshots: '@humanwhocodes/config-array@0.11.13': dependencies: '@humanwhocodes/object-schema': 2.0.1 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -9487,11 +9676,40 @@ snapshots: ansi-escapes: 4.3.2 chalk: 4.1.2 + '@inquirer/checkbox@4.0.6(@types/node@20.10.6)': + dependencies: + '@inquirer/core': 10.1.4(@types/node@20.10.6) + '@inquirer/figures': 1.0.9 + '@inquirer/type': 3.0.2(@types/node@20.10.6) + '@types/node': 20.10.6 + ansi-escapes: 4.3.2 + yoctocolors-cjs: 2.1.2 + '@inquirer/confirm@3.1.9': dependencies: '@inquirer/core': 8.2.2 '@inquirer/type': 1.3.3 + '@inquirer/confirm@5.1.3(@types/node@20.10.6)': + dependencies: + '@inquirer/core': 10.1.4(@types/node@20.10.6) + '@inquirer/type': 3.0.2(@types/node@20.10.6) + '@types/node': 20.10.6 + + '@inquirer/core@10.1.4(@types/node@20.10.6)': + dependencies: + '@inquirer/figures': 1.0.9 + '@inquirer/type': 3.0.2(@types/node@20.10.6) + ansi-escapes: 4.3.2 + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.2 + transitivePeerDependencies: + - '@types/node' + '@inquirer/core@8.2.2': dependencies: '@inquirer/figures': 1.0.3 @@ -9514,25 +9732,60 @@ snapshots: '@inquirer/type': 1.3.3 external-editor: 3.1.0 + '@inquirer/editor@4.2.3(@types/node@20.10.6)': + dependencies: + '@inquirer/core': 10.1.4(@types/node@20.10.6) + '@inquirer/type': 3.0.2(@types/node@20.10.6) + '@types/node': 20.10.6 + external-editor: 3.1.0 + '@inquirer/expand@2.1.9': dependencies: '@inquirer/core': 8.2.2 '@inquirer/type': 1.3.3 chalk: 4.1.2 + '@inquirer/expand@4.0.6(@types/node@20.10.6)': + dependencies: + '@inquirer/core': 10.1.4(@types/node@20.10.6) + '@inquirer/type': 3.0.2(@types/node@20.10.6) + '@types/node': 20.10.6 + yoctocolors-cjs: 2.1.2 + '@inquirer/figures@1.0.3': {} + '@inquirer/figures@1.0.9': {} + '@inquirer/input@2.1.9': dependencies: '@inquirer/core': 8.2.2 '@inquirer/type': 1.3.3 + '@inquirer/input@4.1.3(@types/node@20.10.6)': + dependencies: + '@inquirer/core': 10.1.4(@types/node@20.10.6) + '@inquirer/type': 3.0.2(@types/node@20.10.6) + '@types/node': 20.10.6 + + '@inquirer/number@3.0.6(@types/node@20.10.6)': + dependencies: + '@inquirer/core': 10.1.4(@types/node@20.10.6) + '@inquirer/type': 3.0.2(@types/node@20.10.6) + '@types/node': 20.10.6 + '@inquirer/password@2.1.9': dependencies: '@inquirer/core': 8.2.2 '@inquirer/type': 1.3.3 ansi-escapes: 4.3.2 + '@inquirer/password@4.0.6(@types/node@20.10.6)': + dependencies: + '@inquirer/core': 10.1.4(@types/node@20.10.6) + '@inquirer/type': 3.0.2(@types/node@20.10.6) + '@types/node': 20.10.6 + ansi-escapes: 4.3.2 + '@inquirer/prompts@5.0.5': dependencies: '@inquirer/checkbox': 2.3.5 @@ -9544,12 +9797,41 @@ snapshots: '@inquirer/rawlist': 2.1.9 '@inquirer/select': 2.3.5 + '@inquirer/prompts@7.2.3(@types/node@20.10.6)': + dependencies: + '@inquirer/checkbox': 4.0.6(@types/node@20.10.6) + '@inquirer/confirm': 5.1.3(@types/node@20.10.6) + '@inquirer/editor': 4.2.3(@types/node@20.10.6) + '@inquirer/expand': 4.0.6(@types/node@20.10.6) + '@inquirer/input': 4.1.3(@types/node@20.10.6) + '@inquirer/number': 3.0.6(@types/node@20.10.6) + '@inquirer/password': 4.0.6(@types/node@20.10.6) + '@inquirer/rawlist': 4.0.6(@types/node@20.10.6) + '@inquirer/search': 3.0.6(@types/node@20.10.6) + '@inquirer/select': 4.0.6(@types/node@20.10.6) + '@types/node': 20.10.6 + '@inquirer/rawlist@2.1.9': dependencies: '@inquirer/core': 8.2.2 '@inquirer/type': 1.3.3 chalk: 4.1.2 + '@inquirer/rawlist@4.0.6(@types/node@20.10.6)': + dependencies: + '@inquirer/core': 10.1.4(@types/node@20.10.6) + '@inquirer/type': 3.0.2(@types/node@20.10.6) + '@types/node': 20.10.6 + yoctocolors-cjs: 2.1.2 + + '@inquirer/search@3.0.6(@types/node@20.10.6)': + dependencies: + '@inquirer/core': 10.1.4(@types/node@20.10.6) + '@inquirer/figures': 1.0.9 + '@inquirer/type': 3.0.2(@types/node@20.10.6) + '@types/node': 20.10.6 + yoctocolors-cjs: 2.1.2 + '@inquirer/select@2.3.5': dependencies: '@inquirer/core': 8.2.2 @@ -9558,8 +9840,21 @@ snapshots: ansi-escapes: 4.3.2 chalk: 4.1.2 + '@inquirer/select@4.0.6(@types/node@20.10.6)': + dependencies: + '@inquirer/core': 10.1.4(@types/node@20.10.6) + '@inquirer/figures': 1.0.9 + '@inquirer/type': 3.0.2(@types/node@20.10.6) + '@types/node': 20.10.6 + ansi-escapes: 4.3.2 + yoctocolors-cjs: 2.1.2 + '@inquirer/type@1.3.3': {} + '@inquirer/type@3.0.2(@types/node@20.10.6)': + dependencies: + '@types/node': 20.10.6 + '@ipld/car@5.2.5': dependencies: '@ipld/dag-cbor': 9.0.7 @@ -10643,7 +10938,7 @@ snapshots: c12: 1.10.0 change-case: 5.4.4 ci-info: 4.0.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) dedent: 1.5.3 deepmerge: 4.3.1 execa: 8.0.1 @@ -10723,7 +11018,7 @@ snapshots: - bufferutil - utf-8-validate - '@swc/cli@0.3.12(@swc/core@1.4.15)(chokidar@4.0.1)': + '@swc/cli@0.3.12(@swc/core@1.4.15)(chokidar@3.6.0)': dependencies: '@mole-inc/bin-wrapper': 8.0.1 '@swc/core': 1.4.15 @@ -10736,7 +11031,7 @@ snapshots: slash: 3.0.0 source-map: 0.7.4 optionalDependencies: - chokidar: 4.0.1 + chokidar: 3.6.0 '@swc/core-darwin-arm64@1.4.15': optional: true @@ -10856,7 +11151,7 @@ snapshots: fs-extra: 10.1.0 hardhat: 2.22.17(ts-node@10.9.2(@swc/core@1.4.15)(@types/node@20.10.6)(typescript@5.5.3))(typescript@5.5.3) hardhat-deploy: 0.11.45 - tenderly: 0.9.1(ts-node@10.9.2(@swc/core@1.4.15)(@types/node@20.10.6)(typescript@5.5.4))(typescript@5.5.4) + tenderly: 0.9.1(ts-node@10.9.2(@swc/core@1.4.15)(@types/node@20.10.6)(typescript@5.5.3))(typescript@5.5.4) ts-node: 10.9.2(@swc/core@1.4.15)(@types/node@20.10.6)(typescript@5.5.4) tslog: 4.9.3 typescript: 5.5.4 @@ -10883,7 +11178,7 @@ snapshots: fs-extra: 10.1.0 hardhat: 2.22.17(ts-node@10.9.2(@swc/core@1.4.15)(@types/node@20.10.6)(typescript@5.5.3))(typescript@5.5.3) hardhat-deploy: 0.11.45 - tenderly: 0.9.1(ts-node@10.9.2(@swc/core@1.6.5)(@types/node@20.10.6)(typescript@5.5.4))(typescript@5.5.4) + tenderly: 0.9.1(ts-node@10.9.2(@swc/core@1.4.15)(@types/node@20.10.6)(typescript@5.5.3))(typescript@5.5.4) ts-node: 10.9.2(@swc/core@1.6.5)(@types/node@20.10.6)(typescript@5.5.4) tslog: 4.9.3 typescript: 5.5.4 @@ -11183,7 +11478,7 @@ snapshots: '@typescript-eslint/type-utils': 7.7.0(eslint@8.56.0)(typescript@5.5.3) '@typescript-eslint/utils': 7.7.0(eslint@8.56.0)(typescript@5.5.3) '@typescript-eslint/visitor-keys': 7.7.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) eslint: 8.56.0 graphemer: 1.4.0 ignore: 5.3.1 @@ -11201,7 +11496,7 @@ snapshots: '@typescript-eslint/types': 7.7.0 '@typescript-eslint/typescript-estree': 7.7.0(typescript@5.5.3) '@typescript-eslint/visitor-keys': 7.7.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) eslint: 8.56.0 optionalDependencies: typescript: 5.5.3 @@ -12526,6 +12821,8 @@ snapshots: mdn-data: 2.0.30 source-map-js: 1.2.0 + csv-parse@5.6.0: {} + dargs@8.1.0: {} data-uri-to-buffer@4.0.1: {} @@ -12881,7 +13178,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -13309,7 +13606,7 @@ snapshots: follow-redirects@1.15.4(debug@4.3.4): optionalDependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) follow-redirects@1.15.6(debug@4.3.6): optionalDependencies: @@ -13815,7 +14112,7 @@ snapshots: https-proxy-agent@7.0.4: dependencies: agent-base: 7.1.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.4(supports-color@5.5.0) transitivePeerDependencies: - supports-color @@ -14705,6 +15002,8 @@ snapshots: mute-stream@1.0.0: {} + mute-stream@2.0.0: {} + nanoid@3.3.3: {} nanoid@3.3.7: {} @@ -15977,7 +16276,7 @@ snapshots: mkdirp: 3.0.1 yallist: 5.0.0 - tenderly@0.9.1(ts-node@10.9.2(@swc/core@1.4.15)(@types/node@20.10.6)(typescript@5.5.4))(typescript@5.5.4): + tenderly@0.9.1(ts-node@10.9.2(@swc/core@1.4.15)(@types/node@20.10.6)(typescript@5.5.3))(typescript@5.5.4): dependencies: axios: 0.27.2 cli-table3: 0.6.5 @@ -15987,22 +16286,7 @@ snapshots: prompts: 2.4.2 tslog: 4.9.3 optionalDependencies: - ts-node: 10.9.2(@swc/core@1.4.15)(@types/node@20.10.6)(typescript@5.5.4) - typescript: 5.5.4 - transitivePeerDependencies: - - debug - - tenderly@0.9.1(ts-node@10.9.2(@swc/core@1.6.5)(@types/node@20.10.6)(typescript@5.5.4))(typescript@5.5.4): - dependencies: - axios: 0.27.2 - cli-table3: 0.6.5 - commander: 9.5.0 - js-yaml: 4.1.0 - open: 8.4.2 - prompts: 2.4.2 - tslog: 4.9.3 - optionalDependencies: - ts-node: 10.9.2(@swc/core@1.6.5)(@types/node@20.10.6)(typescript@5.5.4) + ts-node: 10.9.2(@swc/core@1.4.15)(@types/node@20.10.6)(typescript@5.5.3) typescript: 5.5.4 transitivePeerDependencies: - debug @@ -16728,6 +17012,8 @@ snapshots: yocto-queue@1.0.0: {} + yoctocolors-cjs@2.1.2: {} + zen-observable-ts@0.8.21: dependencies: tslib: 1.14.1 diff --git a/scripts/blueprint_batch_mint.csv b/scripts/blueprint_batch_mint.csv new file mode 100644 index 0000000..b166552 --- /dev/null +++ b/scripts/blueprint_batch_mint.csv @@ -0,0 +1,14 @@ +title,description,link,logo_image,banner_image,work_time_from,work_time_to,work_scope,contributors,allowlist_entries +allocator.tech tooling,"**This hypercert represents the proof of funding for the following contribution to the Filecoin ecosystem.** + +Allocator.tech has made a significant contribution to the Filecoin ecosystem by improving the efficiency and transparency of DataCap distribution. This project is crucial for both storage providers and clients who depend on streamlined workflows and clear compliance measures to onboard valuable data. By automating the application, review, and approval processes, Allocator.tech reduces friction, saves time, and ensures fair access to DataCap. Tangible benefits include real-time tracking, improved decision-making, and increased trust in the network, enabling faster onboarding of data and fostering a healthier and more transparent decentralized storage ecosystem.",https://github.com/filecoin-project/filplus-registry,https://pbs.twimg.com/profile_images/1832082403956797440/YYl01u22_400x400.jpg,https://wxdtbk3zaxupvzj0.public.blob.vercel-storage.com/filplus-logo-UiZSaLcdE5S2IjK0AXSjjKAePMlo0H.png,2024-04-01,2024-09-30,"allocator.tech tooling, FIL RetroPGF 2, Funding, Governance","0x676703E18b2d03Aa36d6A3124B4F58716dBf61dB, 0x7C2e6D50d476ecc9E38617e517c0730be238cb0c, 0xC593505e99290D21D1A3dbc87993A078CC4bF8DA","{""address"":""0x596e04472cE53fdF0bE4A0F6C969a11D15EBd61A"",""units"":""81660000""},{""address"":""0x27afcf4761eb48473aa010927E33485297Bb52aa"",""units"":""16670000""},{""address"":""0x04cB3c98C6D3D7E9b3AD661ec8d3945cC6e4974B"",""units"":""1670000""}" +Asia Storage Provider Working Group,"**This hypercert represents the proof of funding for the following contribution to the Filecoin ecosystem.** + +Bridges the gaps between community governance / FF and Asia SP community in forms of bi-weekly meetings, a community hub and much more, lubricating communications and increasing overall governance engagement. +- Provides general information, constructive feedbacks and critical insights regarding the challenges and obstacles community has been facing on the ground so that the network could steer to the best path forward. +- Educate and pass on informations regarding announcements, intricacies of network changes, key components of technical roadmaps etc to broader community members. +- Contributes to FIP discussion, proposals and related Slack threads with a perspective from Asia SP community. +- on-board new Filecoin ecosystem participants into governance, creating more engagement.",https://github.com/Asia-SPWG/retroPGF,https://upload.wikimedia.org/wikipedia/commons/thumb/4/4b/Filecoin.svg/1200px-Filecoin.svg.png,https://wxdtbk3zaxupvzj0.public.blob.vercel-storage.com/retropgf-hero2-uHFIp3tWSrwZBoR3gBegVa7SJaJiep.jpg,2024-05-01,2024-09-15,"Asia Storage Provider Working Group, FIL RetroPGF 2, Funding, Governance",0x586260a50519c8B26d9A25DF341636D9141F6615,"{""address"":""0x596e04472cE53fdF0bE4A0F6C969a11D15EBd61A"",""units"":""100000000""}" +Beryx Explorer,"**This hypercert represents the proof of funding for the following contribution to the Filecoin ecosystem.** + +Beryx serves as a central hub for exploring Filecoin network, offering robust developer tools. Beryx is primarily important for developers, data scientists, Filecoin network participants, and businesses involved in decentralized storage. ",https://github.com/Zondax/web-beryx-explorer,https://pbs.twimg.com/profile_images/1832082403956797440/YYl01u22_400x400.jpg,https://wxdtbk3zaxupvzj0.public.blob.vercel-storage.com/beryx-project-bg-FzwS017xivMxTc4XHN7CPksafxbeZp.png,2024-01-01,2024-09-15,"Beryx Explorer, FIL RetroPGF 2, Funding, Tooling","0x586260a50519c8B26d9A25DF341636D9141F6615, 0x9F07b08409A8a41A0C0A6a3bAEAD174bEc277cF2","{""address"":""0x596e04472cE53fdF0bE4A0F6C969a11D15EBd61A"",""units"":""81660000""},{""address"":""0x27afcf4761eb48473aa010927E33485297Bb52aa"",""units"":""16670000""},{""address"":""0x04cB3c98C6D3D7E9b3AD661ec8d3945cC6e4974B"",""units"":""1670000""}" \ No newline at end of file diff --git a/scripts/blueprint_batch_mint.ts b/scripts/blueprint_batch_mint.ts new file mode 100644 index 0000000..65620d1 --- /dev/null +++ b/scripts/blueprint_batch_mint.ts @@ -0,0 +1,187 @@ +import fs from "fs"; +import path, { dirname } from "path"; +import { fileURLToPath } from "url"; +import { parse } from "csv-parse/sync"; +import { privateKeyToAccount } from "viem/accounts"; +import { createWalletClient, http } from "viem"; +import { + arbitrum, + arbitrumSepolia, + base, + baseSepolia, + celo, + filecoinCalibration, + optimism, + sepolia, +} from "viem/chains"; +import { input, select } from "@inquirer/prompts"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); + +interface FormValues { + title: string; + description: string; + logo: string; + banner: string; + cardImage?: string; + tags: string[]; + projectDates: { + from: Date; + to: Date; + }; + link: string; + contributors: string[]; + allowlistEntries?: { + address: string; + units: string; + }[]; +} + +interface BlueprintCreateRequest { + form_values: FormValues; + minter_address: string; + admin_address: string; + signature: string; + chain_id: number; +} + +export const hypercertApiSigningDomain = (chainId: number) => ({ + name: "Hypercerts", + version: "1", + chainId, +}); + +async function main() { + // Parse the csv file from the current directory + const privateKey = await input({ + message: "Enter your private key", + required: true, + }); + // console.log("privateKey", privateKey); + + if (!privateKey) { + console.error("PRIVATE_KEY is not set"); + return; + } + + const csv = await input({ + message: "Enter the path to the csv file", + required: true, + default: path.join(__dirname, "blueprint_batch_mint.csv"), + }); + + const chains = [ + sepolia, + arbitrumSepolia, + baseSepolia, + filecoinCalibration, + optimism, + celo, + base, + arbitrum, + ]; + const chainId = await select({ + message: "Select chain", + choices: [...chains.map((c) => ({ name: c.name, value: c.id }))], + }); + + const chain = chains.find((c) => c.id === chainId); + + if (!chain) { + console.error("Chain not found"); + return; + } + + const csvContent = fs.readFileSync(csv, "utf8"); + const records = parse(csvContent, { + columns: true, + }); + + const account = privateKeyToAccount( + privateKey.startsWith("0x") + ? (privateKey as `0x${string}`) + : `0x${privateKey}`, + ); + const wallet = createWalletClient({ + account, + chain, + transport: http(), + }); + console.log("Using account", account.address); + + const signature = await wallet.signTypedData({ + account: account, + domain: hypercertApiSigningDomain(chain.id), + types: { Message: [{ name: "message", type: "string" }] }, + primaryType: "Message", + message: { + message: `Create blueprint for ${account.address}`, + }, + }); + + console.log("signature", signature); + + // const TESTNET_API_URL = "http://localhost:4000/v1"; + const TESTNET_API_URL = "https://staging-api.hypercerts.org/v1"; + const PROD_API_URL = "https://api.hypercerts.org/v1"; + const ENDPOINT = chain.testnet ? TESTNET_API_URL : PROD_API_URL; + + for (const record of records) { + const { + title, + description, + logo_image, + banner_image, + link, + contributors, + allowlist_entries, + work_scope, + work_time_from, + work_time_to, + } = record; + const formValues: FormValues = { + title, + description, + logo: logo_image, + banner: banner_image, + tags: work_scope.split(",").map((tag) => tag.trim()), + projectDates: { + from: new Date(work_time_from), + to: new Date(work_time_to), + }, + link, + contributors: contributors + .split(",") + .map((contributor) => contributor.trim()), + }; + + if (allowlist_entries) { + formValues.allowlistEntries = JSON.parse(`[${allowlist_entries}]`); + } + + console.log("formValues", formValues); + + const blueprint: BlueprintCreateRequest = { + form_values: formValues, + minter_address: account.address, + admin_address: account.address, + signature, + chain_id: chain.id, + }; + + const response = await fetch(`${ENDPOINT}/blueprints`, { + method: "POST", + body: JSON.stringify(blueprint), + headers: { + "Content-Type": "application/json", + }, + }).then((res) => { + return res.json(); + }); + + console.log("blueprint created", JSON.stringify(response, null, 2)); + } +} + +main(); diff --git a/src/controllers/BlueprintController.ts b/src/controllers/BlueprintController.ts index b2d4373..8d5a661 100644 --- a/src/controllers/BlueprintController.ts +++ b/src/controllers/BlueprintController.ts @@ -46,7 +46,10 @@ export class BlueprintController extends Controller { .max(100, "Max 100 characters"), logo: z.string().url("Logo URL is not valid"), banner: z.string().url("Banner URL is not valid"), - cardImage: z.string().url("Card image could not be generated"), + cardImage: z + .string() + .url("Card image could not be generated") + .optional(), description: z .string() .trim()