{"_id":"@ansonhkg/abi-extractor","_rev":"2-3a7128c50b8321c012dd685cbd5a68bd","name":"@ansonhkg/abi-extractor","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@ansonhkg/abi-extractor","version":"1.0.0","keywords":["abi","ethereum","smart-contracts","typescript","extractor"],"author":{"name":"https://github.com/Ansonhkg"},"license":"MIT","_id":"@ansonhkg/abi-extractor@1.0.0","maintainers":[{"name":"ansonhkg","email":"ansoncwork@gmail.com"}],"bin":{"abi-to-signature":"dist/cli.js"},"dist":{"shasum":"cc96fdbca75c83c9a3faa6714a371e82246fea3f","tarball":"https://registry.npmjs.org/@ansonhkg/abi-extractor/-/abi-extractor-1.0.0.tgz","fileCount":17,"integrity":"sha512-EESDOHFh7OmA8XW54IAgfWOL7CTcdnldsO8j19nACewf4YP7x1mqKNgTneDCiQbRVHue3gWTCzq7q7SylHSvdw==","signatures":[{"sig":"MEQCIBR1GMez9sFwVnmqPJMg3S2CLRrew+CGdCB3w8BNhFOYAiAsCSdny/tvsx3SrZPFtc5zQXcxRBASGgIXRXo83b1dJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32536},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"97cf585991936f4a6cf09cbee3f9f9ffb892ae9d","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist output","example":"ts-node example/example.ts"},"_npmUser":{"name":"ansonhkg","actor":{"name":"ansonhkg","type":"user","email":"ansoncwork@gmail.com"},"email":"ansoncwork@gmail.com"},"_npmVersion":"11.0.0","description":"A library to extract ABI methods from JSON files and generate TypeScript/JavaScript signature files","directories":{},"_nodeVersion":"23.3.0","dependencies":{"ethers":"^6.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/abi-extractor_1.0.0_1750786199442_0.6319049701817803","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@ansonhkg/abi-extractor","version":"1.1.0","description":"A library to extract ABI methods from JSON files and generate TypeScript/JavaScript signature files","main":"dist/index.js","types":"dist/index.d.ts","bin":{"abi-to-signature":"dist/cli.js","forge-to-signature":"dist/forge-cli.js"},"scripts":{"build":"tsc","dev":"tsc --watch","example":"ts-node example/example.ts","clean":"rm -rf dist output"},"keywords":["abi","ethereum","smart-contracts","typescript","extractor"],"author":{"name":"https://github.com/Ansonhkg"},"license":"MIT","dependencies":{"ethers":"^6.0.0"},"devDependencies":{"@types/node":"^20.0.0","ts-node":"^10.9.0","typescript":"^5.0.0"},"publishConfig":{"access":"public"},"_id":"@ansonhkg/abi-extractor@1.1.0","gitHead":"4291330dbf657455a9876d81056794eb2091dc57","_nodeVersion":"23.3.0","_npmVersion":"11.0.0","dist":{"integrity":"sha512-jjLIs+UVyzAMfkfKxowZMOL9rfK9Vcz6Go4ryF9lf9Ucsk0XUoJJnv7H44LueyZBq6O/0hPJhhYt/StHF7fbLg==","shasum":"f301089f65d5cf00eaee0d06145a72d63fd4b646","tarball":"https://registry.npmjs.org/@ansonhkg/abi-extractor/-/abi-extractor-1.1.0.tgz","fileCount":27,"unpackedSize":59360,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDbfi3D6ssxIJqju3Fgl+q8KZ5WhWUxWr1zkFoqprVxDgIgQ4pfPmzSseDy2GCXmwlF17kWE76sLkQIq7K+s57m4x4="}]},"_npmUser":{"name":"ansonhkg","email":"ansoncwork@gmail.com","actor":{"name":"ansonhkg","email":"ansoncwork@gmail.com","type":"user"}},"directories":{},"maintainers":[{"name":"ansonhkg","email":"ansoncwork@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/abi-extractor_1.1.0_1750868125460_0.14412207551464262"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-24T17:29:59.330Z","modified":"2025-06-25T16:15:25.856Z","1.0.0":"2025-06-24T17:29:59.624Z","1.1.0":"2025-06-25T16:15:25.666Z"},"author":{"name":"https://github.com/Ansonhkg"},"license":"MIT","keywords":["abi","ethereum","smart-contracts","typescript","extractor"],"description":"A library to extract ABI methods from JSON files and generate TypeScript/JavaScript signature files","maintainers":[{"name":"ansonhkg","email":"ansoncwork@gmail.com"}],"readme":"# ABI Extractor\n\nA library to extract specific ABI methods from JSON files and generate TypeScript/JavaScript signature files.\n\n## Installation\n\n```bash\nnpm install\nnpm run build\nnpm link  # To use the CLI globally\n```\n\n## CLI Usage\n\n### Basic usage:\n```bash\nabi-to-signature <path-to-json> <output-dir>\n```\n\n### With options:\n```bash\n# Extract specific methods\nabi-to-signature ./contract.abi.json ./output -m \"transfer,approve,balanceOf\"\n\n# Specify output file name and contract details\nabi-to-signature ./contract.abi.json ./output -n mySignatures -c MyContract -a 0x1234...\n\n# Show help\nabi-to-signature --help\n```\n\n### CLI Options:\n- `-m, --methods <methods>` - Comma-separated list of method names to extract (default: all methods)\n- `-n, --name <name>` - Output file name (default: signatures)\n- `-c, --contract <name>` - Contract name (default: derived from filename)\n- `-a, --address <address>` - Contract address (default: 0x0...0)\n- `-h, --help` - Show help\n\n## Programmatic Usage\n\n### Extract from a single ABI file\n\n```typescript\nimport { extractAndGenerate } from 'abi-extractor';\n\nconst methodsToExtract = [\n  'addAuthorizedRedirectUri',\n  'registerApp',\n  'deleteApp',\n  'updateAppName',\n];\n\nextractAndGenerate(\n  './path/to/contract.abi.json',\n  methodsToExtract,\n  './output',\n  {\n    outputFileName: 'contractSignatures',\n    contractName: 'MyContract', // optional, defaults to filename\n    contractAddress: '0x1234...' // optional, defaults to zero address\n  }\n);\n```\n\n### Extract from multiple ABI files\n\n```typescript\nimport { extractMultipleAndGenerate } from 'abi-extractor';\n\nextractMultipleAndGenerate(\n  [\n    {\n      filePath: './Contract1.abi.json',\n      contractName: 'Contract1',\n      contractAddress: '0x1234...'\n    },\n    {\n      filePath: './Contract2.abi.json',\n      contractName: 'Contract2',\n      contractAddress: '0xabcd...'\n    }\n  ],\n  ['method1', 'method2', 'method3'],\n  './output',\n  'multiContractSignatures'\n);\n```\n\n### Direct extraction without file generation\n\n```typescript\nimport { extractAbiFromJson } from 'abi-extractor';\n\nconst signatures = extractAbiFromJson(\n  './contract.abi.json',\n  ['method1', 'method2'],\n  {\n    contractName: 'MyContract',\n    contractAddress: '0x1234...'\n  }\n);\n```\n\n## Output Format\n\nThe library generates two files:\n- `.ts` file with TypeScript const assertion\n- `.js` file with CommonJS export\n\nExample output structure:\n```typescript\nexport const signatures = {\n  \"address\": \"0x1234567890123456789012345678901234567890\",\n  \"methods\": {\n    \"registerApp\": { /* ABI item */ },\n    \"deleteApp\": { /* ABI item */ }\n  },\n  \"events\": [\n    { /* Event ABI items */ }\n  ]\n} as const;\n```\n\n## Features\n\n- Extract specific methods by name from ABI files\n- Handle duplicate event names with automatic suffixing\n- Support for single or multiple ABI file processing\n- Generate both TypeScript and JavaScript output files\n- Flexible contract naming and addressing options","readmeFilename":"README.md"}