Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changeset/smart-worms-ring.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@codama/renderers-js-umi': patch
'@codama/renderers-rust': patch
'@codama/renderers-js': patch
---

Fix JS rendering issues for instruction edge cases
22 changes: 22 additions & 0 deletions packages/renderers-js-umi/e2e/dummy/.eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
module.exports = {
extends: ['@solana/eslint-config-solana'],
ignorePatterns: [
'.eslintrc.cjs',
'start.js',
'tsup.config.ts',
'env-shim.ts',
],
parserOptions: {
project: 'tsconfig.json',
tsconfigRootDir: __dirname,
sourceType: 'module',
},
rules: {
'@typescript-eslint/ban-types': 'off',
'@typescript-eslint/sort-type-constituents': 'off',
'prefer-destructuring': 'off',
'simple-import-sort/imports': 'off',
'sort-keys-fix/sort-keys-fix': 'off',
'typescript-sort-keys/interface': 'off',
},
};
9 changes: 9 additions & 0 deletions packages/renderers-js-umi/e2e/dummy/.prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"semi": true,
"singleQuote": true,
"trailingComma": "es5",
"useTabs": false,
"tabWidth": 2,
"arrowParens": "always",
"printWidth": 80
}
3 changes: 3 additions & 0 deletions packages/renderers-js-umi/e2e/dummy/env-shim.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
// Clever obfuscation to prevent the build system from inlining the value of `NODE_ENV`
export const __DEV__ = /* @__PURE__ */ (() =>
(process as any)['en' + 'v'].NODE_ENV === 'development')();
149 changes: 149 additions & 0 deletions packages/renderers-js-umi/e2e/dummy/idl.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
{
"kind": "rootNode",
"program": {
"kind": "programNode",
"pdas": [],
"accounts": [],
"instructions": [
{
"kind": "instructionNode",
"name": "instruction1",
"optionalAccountStrategy": "programId",
"docs": ["Testing instructions with no accounts or arguments"],
"accounts": [],
"arguments": [],
"remainingAccounts": []
},
{
"kind": "instructionNode",
"name": "instruction2",
"optionalAccountStrategy": "programId",
"docs": ["Testing instructions with remaining accounts only"],
"accounts": [],
"arguments": [],
"remainingAccounts": [
{
"kind": "instructionRemainingAccountsNode",
"value": {
"kind": "argumentValueNode",
"name": "remainingAccounts"
},
"isOptional": true,
"isSigner": false
}
]
},
{
"kind": "instructionNode",
"name": "instruction3",
"optionalAccountStrategy": "programId",
"docs": ["Testing instructions with discriminator only"],
"accounts": [],
"arguments": [
{
"kind": "instructionArgumentNode",
"name": "discriminator",
"type": {
"kind": "numberTypeNode",
"format": "u32",
"endian": "le"
},
"docs": [],
"defaultValue": { "kind": "numberValueNode", "number": 42 },
"defaultValueStrategy": "omitted"
}
],
"discriminators": [
{
"kind": "fieldDiscriminatorNode",
"name": "discriminator",
"offset": 0
}
]
},
{
"kind": "instructionNode",
"name": "instruction4",
"optionalAccountStrategy": "programId",
"docs": ["Testing instructions with arguments only"],
"accounts": [],
"arguments": [
{
"kind": "instructionArgumentNode",
"name": "myArgument",
"type": {
"kind": "numberTypeNode",
"format": "u64",
"endian": "le"
},
"docs": []
}
]
},
{
"kind": "instructionNode",
"name": "instruction5",
"optionalAccountStrategy": "programId",
"docs": ["Testing instructions with optional arguments only"],
"accounts": [],
"arguments": [
{
"kind": "instructionArgumentNode",
"name": "myArgument",
"type": {
"kind": "numberTypeNode",
"format": "u64",
"endian": "le"
},
"defaultValue": { "kind": "numberValueNode", "number": 42 },
"docs": []
}
]
},
{
"kind": "instructionNode",
"name": "instruction6",
"optionalAccountStrategy": "programId",
"docs": ["Testing instructions with accounts only"],
"accounts": [
{
"kind": "instructionAccountNode",
"name": "myAccount",
"isWritable": true,
"isSigner": false,
"isOptional": false,
"docs": []
}
],
"arguments": []
},
{
"kind": "instructionNode",
"name": "instruction7",
"optionalAccountStrategy": "programId",
"docs": ["Testing instructions with optional accounts only"],
"accounts": [
{
"kind": "instructionAccountNode",
"name": "myAccount",
"isWritable": true,
"isSigner": false,
"isOptional": true,
"docs": []
}
],
"arguments": []
}
],
"definedTypes": [],
"errors": [],
"name": "dummy",
"prefix": "",
"publicKey": "Dummy1111111111111111111111111111111111",
"version": "3.0.1",
"origin": "shank"
},
"additionalPrograms": [],
"standard": "codama",
"version": "1.0.0"
}
47 changes: 47 additions & 0 deletions packages/renderers-js-umi/e2e/dummy/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
{
"name": "@codama/renderers-js-umi-e2e-dummy",
"private": true,
"version": "0.0.0",
"type": "commonjs",
"sideEffects": false,
"scripts": {
"build": "rimraf dist && tsup && tsc -p ./tsconfig.declarations.json",
"test": "ava",
"lint": "eslint --ext js,ts,tsx src && prettier --check src test",
"lint:fix": "eslint --fix --ext js,ts,tsx src && prettier --write src test"
},
"publishConfig": {
"access": "public",
"registry": "https://registry.npmjs.org"
},
"license": "MIT",
"peerDependencies": {
"@metaplex-foundation/umi": "^0.9.0"
},
"devDependencies": {
"@ava/typescript": "^4.1.0",
"@metaplex-foundation/umi": "^0.9.0",
"@metaplex-foundation/umi-bundle-tests": "^0.9.0",
"@solana/eslint-config-solana": "^3.0.0",
"@solana/web3.js": "1.91.7",
"@typescript-eslint/eslint-plugin": "^7.3.1",
"@typescript-eslint/parser": "^7.3.1",
"ava": "^6.1.2",
"eslint": "^8.57.0",
"prettier": "^3.2.5",
"rimraf": "^5.0.5",
"tsup": "^8.0.2",
"typedoc": "^0.25.12",
"typedoc-plugin-missing-exports": "^2.2.0",
"typescript": "^5.4.2"
},
"ava": {
"typescript": {
"compile": false,
"rewritePaths": {
"test/": "dist/test/"
}
}
},
"packageManager": "[email protected]"
}
Loading