Browse Source

use codama cli to generate clients (#137)

* feat: use codama cli

* refactor: removed unused scripts
Nick Frostbutter 5 months ago
parent
commit
825d808794

+ 8 - 0
idls/build-codama-clients.sh

@@ -0,0 +1,8 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+# generate all the codama clients (per their respective config files)
+pnpm codama run js --config ./idls/token_metadata/codama.json
+
+# run the repo's prettier settings on the generated files
+pnpm prettier --write './packages/gill/src/programs/**/generated/{*,**/*}.{ts,js}'

+ 10 - 0
idls/token_metadata/codama.json

@@ -0,0 +1,10 @@
+{
+  "idl": "idl.json",
+  "before": [],
+  "scripts": {
+    "js": {
+      "from": "@codama/renderers-js",
+      "args": ["packages/gill/src/programs/token-metadata/generated"]
+    }
+  }
+}

+ 0 - 0
idls/token_metadata.json → idls/token_metadata/idl.json


+ 4 - 2
package.json

@@ -15,6 +15,7 @@
     "clean:root": "rimraf dist build node_modules .turbo",
     "clean:root": "rimraf dist build node_modules .turbo",
     "prebuild": "turbo run --concurrency=${TURBO_CONCURRENCY:-95.84%} build --filter=gill",
     "prebuild": "turbo run --concurrency=${TURBO_CONCURRENCY:-95.84%} build --filter=gill",
     "build": "turbo run --concurrency=${TURBO_CONCURRENCY:-95.84%} build",
     "build": "turbo run --concurrency=${TURBO_CONCURRENCY:-95.84%} build",
+    "codama:generate": "./idls/build-codama-clients.sh",
     "compile:docs": "turbo run --concurrency=${TURBO_CONCURRENCY:-95.84%} compile:docs",
     "compile:docs": "turbo run --concurrency=${TURBO_CONCURRENCY:-95.84%} compile:docs",
     "test": "turbo run --concurrency=${TURBO_CONCURRENCY:-95.84%} test",
     "test": "turbo run --concurrency=${TURBO_CONCURRENCY:-95.84%} test",
     "test:treeshakability:native": "turbo run --concurrency=${TURBO_CONCURRENCY:-95.84%} test:treeshakability:native",
     "test:treeshakability:native": "turbo run --concurrency=${TURBO_CONCURRENCY:-95.84%} test:treeshakability:native",
@@ -33,6 +34,7 @@
   "devDependencies": {
   "devDependencies": {
     "@changesets/changelog-github": "^0.5.0",
     "@changesets/changelog-github": "^0.5.0",
     "@changesets/cli": "^2.27.10",
     "@changesets/cli": "^2.27.10",
+    "@codama/cli": "^1.1.1",
     "@eslint/js": "^9.15.0",
     "@eslint/js": "^9.15.0",
     "@eslint/json": "^0.7.0",
     "@eslint/json": "^0.7.0",
     "@solana/eslint-config-solana": "^4.0.0",
     "@solana/eslint-config-solana": "^4.0.0",
@@ -63,11 +65,11 @@
     "rimraf": "5.0.10",
     "rimraf": "5.0.10",
     "ts-node": "^10.9.2",
     "ts-node": "^10.9.2",
     "tsup": "^8.3.5",
     "tsup": "^8.3.5",
+    "turbo": "^2.3.1",
     "typedoc": "^0.28.4",
     "typedoc": "^0.28.4",
     "typedoc-plugin-frontmatter": "^1.3.0",
     "typedoc-plugin-frontmatter": "^1.3.0",
     "typedoc-plugin-markdown": "^4.6.3",
     "typedoc-plugin-markdown": "^4.6.3",
-    "typedoc-plugin-mdn-links": "^5.0.2",
-    "turbo": "^2.3.1"
+    "typedoc-plugin-mdn-links": "^5.0.2"
   },
   },
   "packageManager": "pnpm@9.1.0",
   "packageManager": "pnpm@9.1.0",
   "author": "Solana Foundation DevRel <devrel@solana.org>",
   "author": "Solana Foundation DevRel <devrel@solana.org>",

+ 214 - 0
pnpm-lock.yaml

@@ -14,6 +14,9 @@ importers:
       '@changesets/cli':
       '@changesets/cli':
         specifier: ^2.27.10
         specifier: ^2.27.10
         version: 2.27.10
         version: 2.27.10
+      '@codama/cli':
+        specifier: ^1.1.1
+        version: 1.1.1(chokidar@3.6.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)
       '@eslint/js':
       '@eslint/js':
         specifier: ^9.15.0
         specifier: ^9.15.0
         version: 9.15.0
         version: 9.15.0
@@ -634,43 +637,84 @@ packages:
   '@codama/cli@1.0.7':
   '@codama/cli@1.0.7':
     resolution: {integrity: sha512-qA+cDhTnx3r4Ds9JAIduGTzaEJjjCSVj+Bt2mm1hEW1hrI4hymAxW+BeLfFehzqjggdTVM3UIrTwkXAkhNJfEw==}
     resolution: {integrity: sha512-qA+cDhTnx3r4Ds9JAIduGTzaEJjjCSVj+Bt2mm1hEW1hrI4hymAxW+BeLfFehzqjggdTVM3UIrTwkXAkhNJfEw==}
 
 
+  '@codama/cli@1.1.1':
+    resolution: {integrity: sha512-9OFLCd40uzpvxaHYHa2hG3YwBm+BPAZQ89fpk04wq5snCK3l8wG6xffQ8T/l21Tqi1ESqhu13+xRcyVDcCAhuA==}
+    hasBin: true
+
   '@codama/errors@1.2.8':
   '@codama/errors@1.2.8':
     resolution: {integrity: sha512-TVPf7oJpbHtxdu52ruftJX+DlTNWi7D65tasysqs7mfRKoiZKzmkatr5hqidBz/M9WzCddUeFAHL9ZiW6g9Ccg==}
     resolution: {integrity: sha512-TVPf7oJpbHtxdu52ruftJX+DlTNWi7D65tasysqs7mfRKoiZKzmkatr5hqidBz/M9WzCddUeFAHL9ZiW6g9Ccg==}
     hasBin: true
     hasBin: true
 
 
+  '@codama/errors@1.3.0':
+    resolution: {integrity: sha512-pYp/gOi1c/9btrybWvH2iK5jj7SOpMmyLm9EqbxrivV+lqzfEogU8IG+BLch9sqnuhPgg/PzCaB4sYd438UC/Q==}
+    hasBin: true
+
   '@codama/node-types@1.2.8':
   '@codama/node-types@1.2.8':
     resolution: {integrity: sha512-PEvPLMN3QGJvkwsQ7R9DmAtdazQXN0RD9WYlmHyeiR4nathV0qy9nZGFDoRh5nbNfPkbeLTgL5o3zAoeeRP6GQ==}
     resolution: {integrity: sha512-PEvPLMN3QGJvkwsQ7R9DmAtdazQXN0RD9WYlmHyeiR4nathV0qy9nZGFDoRh5nbNfPkbeLTgL5o3zAoeeRP6GQ==}
 
 
+  '@codama/node-types@1.3.0':
+    resolution: {integrity: sha512-3dPbMXR/QgKUqXMMxc6PUi2f8Dq6eZ9P/v6+ChTQFLGhSQmqC1PsCbL77PuM7mf4IK9np1RXFqbC/EVpgLvbgA==}
+
   '@codama/nodes-from-anchor@1.1.8':
   '@codama/nodes-from-anchor@1.1.8':
     resolution: {integrity: sha512-eaoGrcMMc5yr1XPnv1H3hPw6cCh0e6BRmmuzOBOIDG4PR2gVm415RnBkfQOX2JqRTX7wKLv8Y1EIZV4IgVxkvw==}
     resolution: {integrity: sha512-eaoGrcMMc5yr1XPnv1H3hPw6cCh0e6BRmmuzOBOIDG4PR2gVm415RnBkfQOX2JqRTX7wKLv8Y1EIZV4IgVxkvw==}
 
 
+  '@codama/nodes-from-anchor@1.2.0':
+    resolution: {integrity: sha512-IiIgNnqxXAu1Qk37tdVx7zq1aqZuqRYyfq4ef+31ktaOyH+bsZex9eA0mzwkAow2Nhgj8d5N6qg+i7pwey7B3A==}
+
   '@codama/nodes@1.2.8':
   '@codama/nodes@1.2.8':
     resolution: {integrity: sha512-tCi7KErG2ChQr5n3Nj3dwciFmUo3O8RQ+S4Qv23w1zvYLaGwhEvdg3KRtgCGEI0wr9uvm2QtTBM670kdLntZiQ==}
     resolution: {integrity: sha512-tCi7KErG2ChQr5n3Nj3dwciFmUo3O8RQ+S4Qv23w1zvYLaGwhEvdg3KRtgCGEI0wr9uvm2QtTBM670kdLntZiQ==}
 
 
+  '@codama/nodes@1.3.0':
+    resolution: {integrity: sha512-Spf+Whm4jBLFxGPtJuDGmteGe+avoIDnh6rsByU1iJlYmcJJLjZayexFkvW8+1IeDclUMPQYBSj6SjuQEItLqQ==}
+
   '@codama/renderers-core@1.0.10':
   '@codama/renderers-core@1.0.10':
     resolution: {integrity: sha512-7NwoyP2j1cZKgHCrd1RRn891gtxpZeiXNSP3aCFdVsRPW8dDNUL1sJ1SNOF9ILHfNP77clCBtL3eoZIFdeNQAg==}
     resolution: {integrity: sha512-7NwoyP2j1cZKgHCrd1RRn891gtxpZeiXNSP3aCFdVsRPW8dDNUL1sJ1SNOF9ILHfNP77clCBtL3eoZIFdeNQAg==}
 
 
+  '@codama/renderers-core@1.0.16':
+    resolution: {integrity: sha512-IJshH6JsX7GUaYmC6KlOd5pLLyW1Yqd0I8B0pVWvvv9BfPNosC4t4RfusHSkYQePkIvs7CJ7YlwUywwW36Vt8A==}
+
+  '@codama/renderers-js-umi@1.1.15':
+    resolution: {integrity: sha512-6f3o+zCF0Fn0fYj4j5SxziPc+NYZzZBhCIKx0npJWcCfbW35TiFYw6nMVNhR1D3amkFQf+PLzQZahjWYjNOqgA==}
+
   '@codama/renderers-js-umi@1.1.9':
   '@codama/renderers-js-umi@1.1.9':
     resolution: {integrity: sha512-rYrm1u3zqqHfYtLnnYmhU+4KXYCqmGJxQP+eiyHIDwxcALzH6y8Ng2zEz3YRGNLXqdlwCB4bx1lJOCjfbRZiwA==}
     resolution: {integrity: sha512-rYrm1u3zqqHfYtLnnYmhU+4KXYCqmGJxQP+eiyHIDwxcALzH6y8Ng2zEz3YRGNLXqdlwCB4bx1lJOCjfbRZiwA==}
 
 
+  '@codama/renderers-js@1.2.14':
+    resolution: {integrity: sha512-KukxwlX5iJpMBMRsiVY6vrmMipw8MbgHdNO3WFkNV1hO2F/ykhZfdHtZVEVL0Z/dNCBNfExLpign00teneCIoA==}
+
   '@codama/renderers-js@1.2.7':
   '@codama/renderers-js@1.2.7':
     resolution: {integrity: sha512-xzWK7tdPneNhbPAMeh5B4ddXjMfkNtTbDDRJ81jNvGv8WRPCvA97c0zMeTskHY+W/C+GlbsSNGMuL4Ga8bEmSA==}
     resolution: {integrity: sha512-xzWK7tdPneNhbPAMeh5B4ddXjMfkNtTbDDRJ81jNvGv8WRPCvA97c0zMeTskHY+W/C+GlbsSNGMuL4Ga8bEmSA==}
 
 
   '@codama/renderers-rust@1.0.16':
   '@codama/renderers-rust@1.0.16':
     resolution: {integrity: sha512-pFHwHN6X4Yuk26Yfh+VT9Ps1i/QEjuK3EoT8BpsCTATOk6ntJNqyD5aQngG2lE4KWx3uQrCYYbQEAN4vG6v+EA==}
     resolution: {integrity: sha512-pFHwHN6X4Yuk26Yfh+VT9Ps1i/QEjuK3EoT8BpsCTATOk6ntJNqyD5aQngG2lE4KWx3uQrCYYbQEAN4vG6v+EA==}
 
 
+  '@codama/renderers-rust@1.0.22':
+    resolution: {integrity: sha512-ovK1UyFYt/oWW8W2B6ghe/nc1kvITakVQqVIlK21l2VHGo6yEFcdWvBRYn5VXMuwW0nMwPuC7Hv0eZmGLRR7xg==}
+
   '@codama/renderers@1.0.16':
   '@codama/renderers@1.0.16':
     resolution: {integrity: sha512-Mj3k1BJ7Rg9BlaCNCvhWY+FRmgLnislwatA6t9zHiReSeukrOFmSW9KKPpWHXm4+i1ueZFKmLeFzGPEt927WBA==}
     resolution: {integrity: sha512-Mj3k1BJ7Rg9BlaCNCvhWY+FRmgLnislwatA6t9zHiReSeukrOFmSW9KKPpWHXm4+i1ueZFKmLeFzGPEt927WBA==}
 
 
+  '@codama/renderers@1.0.23':
+    resolution: {integrity: sha512-5i0RYSsYO9dfqCrFdPYGz/LbsSdhZe6U4MmMNjICBP/y2G+29qvKn2y7cEZe4ZCCdXwKSP7l2lz0dLIzwEB3ng==}
+
   '@codama/validators@1.2.8':
   '@codama/validators@1.2.8':
     resolution: {integrity: sha512-cGyYgV+zhPzhT3RHBKgDLueeOvSTo3ry9QEliPv90+sL6Q9ecKj4Ut9QVxjmwvdv67rNAZq5JBl+GC8SYcDhPg==}
     resolution: {integrity: sha512-cGyYgV+zhPzhT3RHBKgDLueeOvSTo3ry9QEliPv90+sL6Q9ecKj4Ut9QVxjmwvdv67rNAZq5JBl+GC8SYcDhPg==}
 
 
+  '@codama/validators@1.3.0':
+    resolution: {integrity: sha512-s6rG3fJSvS7zc+fQ5yJN1NHlGQiut+P3Bpi5sQcEikjdWDDezu4OOgkxTh8ksTsCu8Rsif2hVzFYDLMcKjNrag==}
+
   '@codama/visitors-core@1.2.8':
   '@codama/visitors-core@1.2.8':
     resolution: {integrity: sha512-sYmZT2Z6Goacgr/HrAhjLSGtu2Udcal10tEfYN8ZJBXs34PGPu0oWOC8kFx7CxvmAvt/6mw8NhKIPtg/UaIKHw==}
     resolution: {integrity: sha512-sYmZT2Z6Goacgr/HrAhjLSGtu2Udcal10tEfYN8ZJBXs34PGPu0oWOC8kFx7CxvmAvt/6mw8NhKIPtg/UaIKHw==}
 
 
+  '@codama/visitors-core@1.3.0':
+    resolution: {integrity: sha512-Lldy0aOc882QYDa1IhjXhwpDsQE7oirBaebRddggXYFQs4+cvFROibHXBqG2npHPvQM4Mot6dJHQqffB/QL4iQ==}
+
   '@codama/visitors@1.2.8':
   '@codama/visitors@1.2.8':
     resolution: {integrity: sha512-LbcTyzTUEJfGRbCTuQIAVR9X5bLdZ1oD7GAuw5kxaq63+H6JHAbigaKwaq9uvr/OXMT4U/2GcWgKfX1oGKXg/g==}
     resolution: {integrity: sha512-LbcTyzTUEJfGRbCTuQIAVR9X5bLdZ1oD7GAuw5kxaq63+H6JHAbigaKwaq9uvr/OXMT4U/2GcWgKfX1oGKXg/g==}
 
 
+  '@codama/visitors@1.3.0':
+    resolution: {integrity: sha512-xcFae6NwC6Omr9tDm6P8rF3IDm5jWe2VMPomixaAc7+mpRhAWLbsg+FYCi0E09NvADo4C1tGo8U/SsvZLATUsQ==}
+
   '@cspotcode/source-map-support@0.8.1':
   '@cspotcode/source-map-support@0.8.1':
     resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
     resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
     engines: {node: '>=12'}
     engines: {node: '>=12'}
@@ -1214,6 +1258,10 @@ packages:
     resolution: {integrity: sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==}
     resolution: {integrity: sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==}
     engines: {node: ^14.21.3 || >=16}
     engines: {node: ^14.21.3 || >=16}
 
 
+  '@noble/hashes@1.8.0':
+    resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
+    engines: {node: ^14.21.3 || >=16}
+
   '@nodelib/fs.scandir@2.1.5':
   '@nodelib/fs.scandir@2.1.5':
     resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
     resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
     engines: {node: '>= 8'}
     engines: {node: '>= 8'}
@@ -2319,6 +2367,10 @@ packages:
     resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==}
     resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==}
     engines: {node: '>= 0.4'}
     engines: {node: '>= 0.4'}
 
 
+  call-bound@1.0.4:
+    resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
+    engines: {node: '>= 0.4'}
+
   callsites@3.1.0:
   callsites@3.1.0:
     resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
     resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
     engines: {node: '>=6'}
     engines: {node: '>=6'}
@@ -3596,6 +3648,10 @@ packages:
     resolution: {integrity: sha512-Lp6HbbBgosLmJbjx0pBLbgvx68FaFU1sdkmBuckmhhJ88kL13OA51CDtR2yJB50eCNMH9wRqtQNNiAqQH4YXnA==}
     resolution: {integrity: sha512-Lp6HbbBgosLmJbjx0pBLbgvx68FaFU1sdkmBuckmhhJ88kL13OA51CDtR2yJB50eCNMH9wRqtQNNiAqQH4YXnA==}
     engines: {node: '>= 0.4'}
     engines: {node: '>= 0.4'}
 
 
+  json-stable-stringify@1.3.0:
+    resolution: {integrity: sha512-qtYiSSFlwot9XHtF9bD9c7rwKjr+RecWT//ZnPvSmEjpV5mmPOCN4j8UjY5hbjNkOwZ/jQv3J6R1/pL7RwgMsg==}
+    engines: {node: '>= 0.4'}
+
   json5@2.2.3:
   json5@2.2.3:
     resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
     resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
     engines: {node: '>=6'}
     engines: {node: '>=6'}
@@ -5265,14 +5321,40 @@ snapshots:
       - fastestsmallesttextencoderdecoder
       - fastestsmallesttextencoderdecoder
       - typescript
       - typescript
 
 
+  '@codama/cli@1.1.1(chokidar@3.6.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)':
+    dependencies:
+      '@codama/nodes': 1.3.0
+      '@codama/nodes-from-anchor': 1.2.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)
+      '@codama/renderers': 1.0.23(chokidar@3.6.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)
+      '@codama/renderers-js': 1.2.14(chokidar@3.6.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)
+      '@codama/renderers-js-umi': 1.1.15(chokidar@3.6.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)
+      '@codama/renderers-rust': 1.0.22(chokidar@3.6.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)
+      '@codama/visitors': 1.3.0
+      '@codama/visitors-core': 1.3.0
+      commander: 13.1.0
+      picocolors: 1.1.1
+      prompts: 2.4.2
+    transitivePeerDependencies:
+      - chokidar
+      - fastestsmallesttextencoderdecoder
+      - typescript
+
   '@codama/errors@1.2.8':
   '@codama/errors@1.2.8':
     dependencies:
     dependencies:
       '@codama/node-types': 1.2.8
       '@codama/node-types': 1.2.8
       chalk: 5.4.1
       chalk: 5.4.1
       commander: 13.1.0
       commander: 13.1.0
 
 
+  '@codama/errors@1.3.0':
+    dependencies:
+      '@codama/node-types': 1.3.0
+      chalk: 5.4.1
+      commander: 13.1.0
+
   '@codama/node-types@1.2.8': {}
   '@codama/node-types@1.2.8': {}
 
 
+  '@codama/node-types@1.3.0': {}
+
   '@codama/nodes-from-anchor@1.1.8(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)':
   '@codama/nodes-from-anchor@1.1.8(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)':
     dependencies:
     dependencies:
       '@codama/errors': 1.2.8
       '@codama/errors': 1.2.8
@@ -5284,17 +5366,54 @@ snapshots:
       - fastestsmallesttextencoderdecoder
       - fastestsmallesttextencoderdecoder
       - typescript
       - typescript
 
 
+  '@codama/nodes-from-anchor@1.2.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)':
+    dependencies:
+      '@codama/errors': 1.3.0
+      '@codama/nodes': 1.3.0
+      '@codama/visitors': 1.3.0
+      '@noble/hashes': 1.8.0
+      '@solana/codecs': 2.1.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)
+    transitivePeerDependencies:
+      - fastestsmallesttextencoderdecoder
+      - typescript
+
   '@codama/nodes@1.2.8':
   '@codama/nodes@1.2.8':
     dependencies:
     dependencies:
       '@codama/errors': 1.2.8
       '@codama/errors': 1.2.8
       '@codama/node-types': 1.2.8
       '@codama/node-types': 1.2.8
 
 
+  '@codama/nodes@1.3.0':
+    dependencies:
+      '@codama/errors': 1.3.0
+      '@codama/node-types': 1.3.0
+
   '@codama/renderers-core@1.0.10':
   '@codama/renderers-core@1.0.10':
     dependencies:
     dependencies:
       '@codama/errors': 1.2.8
       '@codama/errors': 1.2.8
       '@codama/nodes': 1.2.8
       '@codama/nodes': 1.2.8
       '@codama/visitors-core': 1.2.8
       '@codama/visitors-core': 1.2.8
 
 
+  '@codama/renderers-core@1.0.16':
+    dependencies:
+      '@codama/errors': 1.3.0
+      '@codama/nodes': 1.3.0
+      '@codama/visitors-core': 1.3.0
+
+  '@codama/renderers-js-umi@1.1.15(chokidar@3.6.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)':
+    dependencies:
+      '@codama/errors': 1.3.0
+      '@codama/nodes': 1.3.0
+      '@codama/renderers-core': 1.0.16
+      '@codama/validators': 1.3.0
+      '@codama/visitors-core': 1.3.0
+      '@solana/codecs-strings': 2.0.0-rc.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)
+      nunjucks: 3.2.4(chokidar@3.6.0)
+      prettier: 3.5.3
+    transitivePeerDependencies:
+      - chokidar
+      - fastestsmallesttextencoderdecoder
+      - typescript
+
   '@codama/renderers-js-umi@1.1.9(chokidar@3.6.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)':
   '@codama/renderers-js-umi@1.1.9(chokidar@3.6.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)':
     dependencies:
     dependencies:
       '@codama/errors': 1.2.8
       '@codama/errors': 1.2.8
@@ -5310,6 +5429,20 @@ snapshots:
       - fastestsmallesttextencoderdecoder
       - fastestsmallesttextencoderdecoder
       - typescript
       - typescript
 
 
+  '@codama/renderers-js@1.2.14(chokidar@3.6.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)':
+    dependencies:
+      '@codama/errors': 1.3.0
+      '@codama/nodes': 1.3.0
+      '@codama/renderers-core': 1.0.16
+      '@codama/visitors-core': 1.3.0
+      '@solana/codecs-strings': 2.1.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)
+      nunjucks: 3.2.4(chokidar@3.6.0)
+      prettier: 3.5.3
+    transitivePeerDependencies:
+      - chokidar
+      - fastestsmallesttextencoderdecoder
+      - typescript
+
   '@codama/renderers-js@1.2.7(chokidar@3.6.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)':
   '@codama/renderers-js@1.2.7(chokidar@3.6.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)':
     dependencies:
     dependencies:
       '@codama/errors': 1.2.8
       '@codama/errors': 1.2.8
@@ -5338,6 +5471,19 @@ snapshots:
       - fastestsmallesttextencoderdecoder
       - fastestsmallesttextencoderdecoder
       - typescript
       - typescript
 
 
+  '@codama/renderers-rust@1.0.22(chokidar@3.6.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)':
+    dependencies:
+      '@codama/errors': 1.3.0
+      '@codama/nodes': 1.3.0
+      '@codama/renderers-core': 1.0.16
+      '@codama/visitors-core': 1.3.0
+      '@solana/codecs-strings': 2.0.0-rc.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)
+      nunjucks: 3.2.4(chokidar@3.6.0)
+    transitivePeerDependencies:
+      - chokidar
+      - fastestsmallesttextencoderdecoder
+      - typescript
+
   '@codama/renderers@1.0.16(chokidar@3.6.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)':
   '@codama/renderers@1.0.16(chokidar@3.6.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)':
     dependencies:
     dependencies:
       '@codama/renderers-js': 1.2.7(chokidar@3.6.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)
       '@codama/renderers-js': 1.2.7(chokidar@3.6.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)
@@ -5348,24 +5494,52 @@ snapshots:
       - fastestsmallesttextencoderdecoder
       - fastestsmallesttextencoderdecoder
       - typescript
       - typescript
 
 
+  '@codama/renderers@1.0.23(chokidar@3.6.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)':
+    dependencies:
+      '@codama/renderers-js': 1.2.14(chokidar@3.6.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)
+      '@codama/renderers-js-umi': 1.1.15(chokidar@3.6.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)
+      '@codama/renderers-rust': 1.0.22(chokidar@3.6.0)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)
+    transitivePeerDependencies:
+      - chokidar
+      - fastestsmallesttextencoderdecoder
+      - typescript
+
   '@codama/validators@1.2.8':
   '@codama/validators@1.2.8':
     dependencies:
     dependencies:
       '@codama/errors': 1.2.8
       '@codama/errors': 1.2.8
       '@codama/nodes': 1.2.8
       '@codama/nodes': 1.2.8
       '@codama/visitors-core': 1.2.8
       '@codama/visitors-core': 1.2.8
 
 
+  '@codama/validators@1.3.0':
+    dependencies:
+      '@codama/errors': 1.3.0
+      '@codama/nodes': 1.3.0
+      '@codama/visitors-core': 1.3.0
+
   '@codama/visitors-core@1.2.8':
   '@codama/visitors-core@1.2.8':
     dependencies:
     dependencies:
       '@codama/errors': 1.2.8
       '@codama/errors': 1.2.8
       '@codama/nodes': 1.2.8
       '@codama/nodes': 1.2.8
       json-stable-stringify: 1.2.1
       json-stable-stringify: 1.2.1
 
 
+  '@codama/visitors-core@1.3.0':
+    dependencies:
+      '@codama/errors': 1.3.0
+      '@codama/nodes': 1.3.0
+      json-stable-stringify: 1.3.0
+
   '@codama/visitors@1.2.8':
   '@codama/visitors@1.2.8':
     dependencies:
     dependencies:
       '@codama/errors': 1.2.8
       '@codama/errors': 1.2.8
       '@codama/nodes': 1.2.8
       '@codama/nodes': 1.2.8
       '@codama/visitors-core': 1.2.8
       '@codama/visitors-core': 1.2.8
 
 
+  '@codama/visitors@1.3.0':
+    dependencies:
+      '@codama/errors': 1.3.0
+      '@codama/nodes': 1.3.0
+      '@codama/visitors-core': 1.3.0
+
   '@cspotcode/source-map-support@0.8.1':
   '@cspotcode/source-map-support@0.8.1':
     dependencies:
     dependencies:
       '@jridgewell/trace-mapping': 0.3.9
       '@jridgewell/trace-mapping': 0.3.9
@@ -5944,6 +6118,8 @@ snapshots:
 
 
   '@noble/hashes@1.7.1': {}
   '@noble/hashes@1.7.1': {}
 
 
+  '@noble/hashes@1.8.0': {}
+
   '@nodelib/fs.scandir@2.1.5':
   '@nodelib/fs.scandir@2.1.5':
     dependencies:
     dependencies:
       '@nodelib/fs.stat': 2.0.5
       '@nodelib/fs.stat': 2.0.5
@@ -6158,6 +6334,11 @@ snapshots:
       '@solana/errors': 2.0.0-rc.4(typescript@5.6.3)
       '@solana/errors': 2.0.0-rc.4(typescript@5.6.3)
       typescript: 5.6.3
       typescript: 5.6.3
 
 
+  '@solana/codecs-core@2.0.0-rc.4(typescript@5.8.3)':
+    dependencies:
+      '@solana/errors': 2.0.0-rc.4(typescript@5.8.3)
+      typescript: 5.8.3
+
   '@solana/codecs-core@2.1.1(typescript@5.6.3)':
   '@solana/codecs-core@2.1.1(typescript@5.6.3)':
     dependencies:
     dependencies:
       '@solana/errors': 2.1.1(typescript@5.6.3)
       '@solana/errors': 2.1.1(typescript@5.6.3)
@@ -6201,6 +6382,12 @@ snapshots:
       '@solana/errors': 2.0.0-rc.4(typescript@5.6.3)
       '@solana/errors': 2.0.0-rc.4(typescript@5.6.3)
       typescript: 5.6.3
       typescript: 5.6.3
 
 
+  '@solana/codecs-numbers@2.0.0-rc.4(typescript@5.8.3)':
+    dependencies:
+      '@solana/codecs-core': 2.0.0-rc.4(typescript@5.8.3)
+      '@solana/errors': 2.0.0-rc.4(typescript@5.8.3)
+      typescript: 5.8.3
+
   '@solana/codecs-numbers@2.1.1(typescript@5.6.3)':
   '@solana/codecs-numbers@2.1.1(typescript@5.6.3)':
     dependencies:
     dependencies:
       '@solana/codecs-core': 2.1.1(typescript@5.6.3)
       '@solana/codecs-core': 2.1.1(typescript@5.6.3)
@@ -6229,6 +6416,14 @@ snapshots:
       fastestsmallesttextencoderdecoder: 1.0.22
       fastestsmallesttextencoderdecoder: 1.0.22
       typescript: 5.6.3
       typescript: 5.6.3
 
 
+  '@solana/codecs-strings@2.0.0-rc.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.3)':
+    dependencies:
+      '@solana/codecs-core': 2.0.0-rc.4(typescript@5.8.3)
+      '@solana/codecs-numbers': 2.0.0-rc.4(typescript@5.8.3)
+      '@solana/errors': 2.0.0-rc.4(typescript@5.8.3)
+      fastestsmallesttextencoderdecoder: 1.0.22
+      typescript: 5.8.3
+
   '@solana/codecs-strings@2.1.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)':
   '@solana/codecs-strings@2.1.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)':
     dependencies:
     dependencies:
       '@solana/codecs-core': 2.1.1(typescript@5.6.3)
       '@solana/codecs-core': 2.1.1(typescript@5.6.3)
@@ -6290,6 +6485,12 @@ snapshots:
       commander: 12.1.0
       commander: 12.1.0
       typescript: 5.6.3
       typescript: 5.6.3
 
 
+  '@solana/errors@2.0.0-rc.4(typescript@5.8.3)':
+    dependencies:
+      chalk: 5.4.1
+      commander: 12.1.0
+      typescript: 5.8.3
+
   '@solana/errors@2.1.1(typescript@5.6.3)':
   '@solana/errors@2.1.1(typescript@5.6.3)':
     dependencies:
     dependencies:
       chalk: 5.4.1
       chalk: 5.4.1
@@ -7585,6 +7786,11 @@ snapshots:
       call-bind-apply-helpers: 1.0.2
       call-bind-apply-helpers: 1.0.2
       get-intrinsic: 1.3.0
       get-intrinsic: 1.3.0
 
 
+  call-bound@1.0.4:
+    dependencies:
+      call-bind-apply-helpers: 1.0.2
+      get-intrinsic: 1.3.0
+
   callsites@3.1.0: {}
   callsites@3.1.0: {}
 
 
   camelcase@5.3.1: {}
   camelcase@5.3.1: {}
@@ -9354,6 +9560,14 @@ snapshots:
       jsonify: 0.0.1
       jsonify: 0.0.1
       object-keys: 1.1.1
       object-keys: 1.1.1
 
 
+  json-stable-stringify@1.3.0:
+    dependencies:
+      call-bind: 1.0.8
+      call-bound: 1.0.4
+      isarray: 2.0.5
+      jsonify: 0.0.1
+      object-keys: 1.1.1
+
   json5@2.2.3: {}
   json5@2.2.3: {}
 
 
   jsonc-parser@3.3.1: {}
   jsonc-parser@3.3.1: {}

+ 0 - 51
scripts/.gitignore

@@ -1,51 +0,0 @@
-# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
-
-# dependencies
-/node_modules
-/.cache
-/.pnp
-.pnp.js
-
-# testing
-/coverage
-
-# next.js
-/.next/
-/out/
-
-# production
-/build
-/dist
-/bin
-
-# misc
-.DS_Store
-*.pem
-
-# debug
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-
-# local env files
-.env
-!.env.example
-
-# vercel
-.vercel
-
-# contentlayer
-.contentlayer
-
-# typescript
-*.tsbuildinfo
-next-env.d.ts
-
-# sitemaps / robots
-public/sitemap*
-public/robot*
-
-test-ledger
-temp
-
-.cache

+ 0 - 20
scripts/package.json

@@ -1,20 +0,0 @@
-{
-  "name": "gill-scripts",
-  "version": "1.0.0",
-  "description": "",
-  "type": "module",
-  "author": "nickfrosty",
-  "license": "MIT",
-  "dependencies": {
-    "@codama/nodes-from-anchor": "^1.1.8",
-    "@codama/renderers-js": "^1.2.7",
-    "codama": "^1.2.8",
-    "dotenv": "^16.4.5",
-    "esrun": "^3.2.26",
-    "gill": "workspace:*"
-  },
-  "devDependencies": {
-    "@types/node": "^22.9.0",
-    "typescript": "^5.6.3"
-  }
-}

+ 0 - 108
scripts/src/codama.ts

@@ -1,108 +0,0 @@
-// npx esrun codama-script/generate-client.ts --idl=./path/to/idl.json --js-out=./js-output --rust-out=./rust-output
-// script to generate the codama client sdks from the anchor idl
-
-import { createFromRoot, updateProgramsVisitor } from "codama";
-import { AnchorIdl, rootNodeFromAnchor } from "@codama/nodes-from-anchor";
-import { renderVisitor as renderJavaScriptVisitor } from "@codama/renderers-js";
-// import { renderVisitor as renderRustVisitor } from "@codama/renderers-rust";
-import * as path from "path";
-import { ensureDirectoryExists, ensureFileExist, loadJsonFile } from "./utils.js";
-
-type CodamaInputArgNames = "idl" | "js-out" | "program-name";
-
-type CodamaInputArgs = Record<CodamaInputArgNames, string | undefined>;
-
-// Parse command line arguments without external dependencies
-function parseArgs() {
-  const args = process.argv.slice(2);
-  const result: CodamaInputArgs = {
-    idl: undefined,
-    "js-out": undefined,
-    "program-name": undefined,
-    // idl: "./counter_program.json",
-    // "js-out": "./codama-sdks/js/src/generated",
-    // "program-name": "counter",
-  };
-
-  for (let i = 0; i < args.length; i++) {
-    const arg = args[i];
-
-    // Check for help flag
-    if (arg === "--help" || arg === "-h") {
-      showHelp();
-      process.exit(0);
-    }
-
-    // Parse arguments with format --key=value
-    if (arg.startsWith("--")) {
-      const parts = arg.substring(2).split("=");
-      if (parts.length === 2) {
-        result[parts[0] as CodamaInputArgNames] = parts[1];
-      }
-      // Handle format --key value
-      else if (parts.length === 1 && i + 1 < args.length && !args[i + 1].startsWith("--")) {
-        result[parts[0] as CodamaInputArgNames] = args[i + 1];
-        i++; // Skip the next argument since we've used it as a value
-      }
-    }
-  }
-
-  return result;
-}
-
-function showHelp() {
-  console.log(`
-Usage: npx esrun codama.ts [options]
-
-Options:
-  --idl=<path>          Path to the Anchor IDL JSON file
-  --js-out=<path>       Output directory for JavaScript client
-  --program-name=<name> Name of the program
-  --help, -h            Show this help message
-  `);
-}
-
-try {
-  // Parse arguments
-  const args = parseArgs();
-
-  if (!args.idl || !args["js-out"] || !args["program-name"]) {
-    showHelp();
-    console.log("Missing one or more input arguments.");
-    console.log(args);
-    process.exit();
-  }
-
-  // special parse some input args
-  args["idl"] = path.resolve(args["idl"]);
-  args["js-out"] = path.resolve(args["js-out"]);
-
-  ensureDirectoryExists(args["js-out"]);
-  ensureFileExist(args["idl"]);
-
-  const idl = loadJsonFile<AnchorIdl>(args["idl"]);
-  console.log(idl);
-
-  // Generate the client SDKs
-  const rootNode = rootNodeFromAnchor(idl);
-  const codama = createFromRoot(rootNode);
-
-  // Create a dynamic program configuration
-  const programConfig: Record<string, { name: string }> = {};
-  programConfig["name" in idl ? idl.name : "program"] = { name: args["program-name"] };
-
-  codama.update(updateProgramsVisitor(programConfig));
-
-  // Generate the JavaScript SDK
-  console.log(`Generating JavaScript SDK at: ${args["js-out"]}`);
-  codama.accept(renderJavaScriptVisitor(args["js-out"]));
-
-  // // Generate the Rust SDK
-  // console.log(`Generating Rust SDK at: ${argv["rust-out"]}`);
-  // codama.accept(renderRustVisitor(argv["rust-out"]));
-
-  console.log("SDK generation completed successfully!");
-} catch (error) {
-  console.error("Error generating SDKs:", error);
-  process.exit(1);
-}

+ 0 - 83
scripts/src/utils.ts

@@ -1,83 +0,0 @@
-import fs from "fs";
-import path from "path";
-import { homedir } from "os";
-
-/**
- * Resolve tilde based file paths for the current user's home directory
- */
-export function resolveTilde(filePath: string) {
-  if (filePath.startsWith("~")) {
-    return path.join(homedir(), filePath.slice(1));
-  }
-  return filePath;
-}
-
-/**
- * Load a plaintext file from the local filesystem
- */
-export function loadPlaintextFile(filePath: string): string {
-  try {
-    const data = fs.readFileSync(resolveTilde(filePath), "utf-8");
-    return data;
-  } catch (err: any) {
-    if (err.code === "ENOENT") {
-      throw new Error(`File not found: ${filePath}`);
-    } else {
-      throw new Error(`Error reading file: ${err.message}`);
-    }
-  }
-}
-
-/**
- *
- */
-export function loadJsonFile<T = object>(filePath: string): T {
-  try {
-    const parsedData = parseJson<T>(loadPlaintextFile(filePath));
-    if (!parsedData) throw new Error("Unable to parse JSON");
-    return parsedData;
-  } catch (err) {
-    if (err instanceof SyntaxError) {
-      throw new Error(`Error: The file at ${filePath} is not valid JSON.`);
-    }
-    throw err;
-  }
-}
-
-/**
- *
- */
-export function parseJson<T = object>(input: string): T | null {
-  try {
-    const parsedData: T = JSON.parse(input);
-    return parsedData;
-  } catch (error) {
-    if (error instanceof SyntaxError) {
-      console.error("Error parsing JSON:", error.message);
-    }
-    return null;
-  }
-}
-
-/**
- * Ensure the output directories exist
- */
-export function ensureDirectoryExists(dirPath: string) {
-  const dirname = path.dirname(dirPath);
-  if (!fs.existsSync(dirname)) {
-    fs.mkdirSync(dirname, { recursive: true });
-  }
-}
-
-/**
- * Check if a file exists in the local file system
- */
-export function ensureFileExist(filePath: string, resolve: boolean = true) {
-  try {
-    filePath = resolveTilde(filePath);
-    if (resolve) filePath = path.resolve(filePath);
-    fs.statfsSync(filePath);
-  } catch (err) {
-    throw new Error(`File does not exist: ${filePath}`);
-  }
-}

+ 0 - 6
scripts/tsconfig.json

@@ -1,6 +0,0 @@
-{
-  "$schema": "https://json.schemastore.org/tsconfig",
-  "extends": "../packages/tsconfig/base.json",
-  "display": "gill-scripts",
-  "include": ["src"]
-}