diff --git a/.changeset/hungry-laws-jam.md b/.changeset/hungry-laws-jam.md new file mode 100644 index 0000000..65b9cbc --- /dev/null +++ b/.changeset/hungry-laws-jam.md @@ -0,0 +1,5 @@ +--- +"create-solana-program": patch +--- + +Use Codama v1.0.0 (See https://github.com/codama-idl/codama/pull/234) diff --git a/template/clients/base/package.json b/template/clients/base/package.json index fdf6aa1..85ac94f 100644 --- a/template/clients/base/package.json +++ b/template/clients/base/package.json @@ -7,7 +7,7 @@ "validator:stop": "zx ./scripts/stop-validator.mjs" }, "devDependencies": { - "kinobi": "^0.21.5", - "@kinobi-so/nodes-from-anchor": "^0.21.3" + "codama": "^1.0.0", + "@codama/nodes-from-anchor": "^1.0.0" } } diff --git a/template/clients/base/scripts/generate-clients.mjs.njk b/template/clients/base/scripts/generate-clients.mjs.njk index 292a185..e2e08e3 100755 --- a/template/clients/base/scripts/generate-clients.mjs.njk +++ b/template/clients/base/scripts/generate-clients.mjs.njk @@ -1,38 +1,38 @@ #!/usr/bin/env zx import 'zx/globals'; -import * as k from 'kinobi'; -import { rootNodeFromAnchor } from '@kinobi-so/nodes-from-anchor'; +import * as c from 'codama'; +import { rootNodeFromAnchor } from '@codama/nodes-from-anchor'; {% if jsClient %} -import { renderVisitor as renderJavaScriptVisitor } from '@kinobi-so/renderers-js'; +import { renderVisitor as renderJavaScriptVisitor } from '@codama/renderers-js'; {% endif %} {% if rustClient %} -import { renderVisitor as renderRustVisitor } from '@kinobi-so/renderers-rust'; +import { renderVisitor as renderRustVisitor } from '@codama/renderers-rust'; {% endif %} import { getAllProgramIdls } from './utils.mjs'; -// Instanciate Kinobi. +// Instanciate Codama. const [idl, ...additionalIdls] = getAllProgramIdls().map((idl) => rootNodeFromAnchor(require(idl)) ); -const kinobi = k.createFromRoot(idl, additionalIdls); +const codama = c.createFromRoot(idl, additionalIdls); // Update programs. -kinobi.update( - k.updateProgramsVisitor({ +codama.update( + c.updateProgramsVisitor({ {{ programCrateName | camelCase }}: { name: '{{ programName | camelCase }}' }, }) ); {% if programFramework === 'shank' %} // Update accounts. -kinobi.update( - k.updateAccountsVisitor({ +codama.update( + c.updateAccountsVisitor({ counter: { seeds: [ - k.constantPdaSeedNodeFromString('utf8', 'counter'), - k.variablePdaSeedNode( + c.constantPdaSeedNodeFromString('utf8', 'counter'), + c.variablePdaSeedNode( 'authority', - k.publicKeyTypeNode(), + c.publicKeyTypeNode(), 'The authority of the counter account' ), ], @@ -41,30 +41,30 @@ kinobi.update( ); // Update instructions. -kinobi.update( - k.updateInstructionsVisitor({ +codama.update( + c.updateInstructionsVisitor({ create: { - byteDeltas: [k.instructionByteDeltaNode(k.accountLinkNode('counter'))], + byteDeltas: [c.instructionByteDeltaNode(c.accountLinkNode('counter'))], accounts: { - counter: { defaultValue: k.pdaValueNode('counter') }, - payer: { defaultValue: k.accountValueNode('authority') }, + counter: { defaultValue: c.pdaValueNode('counter') }, + payer: { defaultValue: c.accountValueNode('authority') }, }, }, increment: { accounts: { - counter: { defaultValue: k.pdaValueNode('counter') }, + counter: { defaultValue: c.pdaValueNode('counter') }, }, arguments: { - amount: { defaultValue: k.noneValueNode() }, + amount: { defaultValue: c.noneValueNode() }, }, }, }) ); // Set account discriminators. -const key = (name) => ({ field: 'key', value: k.enumValueNode('Key', name) }); -kinobi.update( - k.setAccountDiscriminatorFromFieldVisitor({ +const key = (name) => ({ field: 'key', value: c.enumValueNode('Key', name) }); +codama.update( + c.setAccountDiscriminatorFromFieldVisitor({ counter: key('counter'), }) ); @@ -73,7 +73,7 @@ kinobi.update( {% if jsClient %} // Render JavaScript. const jsClient = path.join(__dirname, '..', 'clients', 'js'); -kinobi.accept( +codama.accept( renderJavaScriptVisitor(path.join(jsClient, 'src', 'generated'), { prettierOptions: require(path.join(jsClient, '.prettierrc.json')), }) @@ -83,7 +83,7 @@ kinobi.accept( {% if rustClient %} // Render Rust. const rustClient = path.join(__dirname, '..', 'clients', 'rust'); -kinobi.accept( +codama.accept( renderRustVisitor(path.join(rustClient, 'src', 'generated'), { formatCode: true, crateFolder: rustClient, diff --git a/template/clients/js/package.json b/template/clients/js/package.json index 5621b71..4adcd6d 100644 --- a/template/clients/js/package.json +++ b/template/clients/js/package.json @@ -6,6 +6,6 @@ "clients:js:test": "zx ./scripts/client/test-js.mjs" }, "devDependencies": { - "@kinobi-so/renderers-js": "^0.21.9" + "@codama/renderers-js": "^1.0.0" } } diff --git a/template/clients/rust/package.json b/template/clients/rust/package.json index 9cd05c9..54bba49 100644 --- a/template/clients/rust/package.json +++ b/template/clients/rust/package.json @@ -6,6 +6,6 @@ "clients:rust:test": "zx ./scripts/client/test-rust.mjs" }, "devDependencies": { - "@kinobi-so/renderers-rust": "^0.21.7" + "@codama/renderers-rust": "^1.0.0" } }