@sentio/cli 2.5.1 → 2.5.2-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/abi.js CHANGED
@@ -113,13 +113,13 @@ export function getABIFilePath(chain, name) {
113
113
  subpath = 'aptos';
114
114
  break;
115
115
  case CHAIN_IDS.APTOS_TESTNET:
116
- subpath = 'aptos/test';
116
+ subpath = 'aptos/testnet';
117
117
  break;
118
118
  case CHAIN_IDS.SUI_MAINNET:
119
119
  subpath = 'sui';
120
120
  break;
121
121
  case CHAIN_IDS.SUI_TESTNET:
122
- subpath = 'sui/test';
122
+ subpath = 'sui/testnet';
123
123
  break;
124
124
  default:
125
125
  subpath = 'eth';
package/lib/abi.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"abi.js","sourceRoot":"","sources":["../src/abi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,MAAM,UAAU,CAAA;AACzB,sBAAsB;AACtB,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAEpC,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,KAAa,EACb,OAAe,EACf,IAAwB;IAExB,IAAI,MAAM,CAAA;IACV,IAAI,WAAoC,CAAA;IACxC,IAAI,SAAsC,CAAA;IAE1C,QAAQ,KAAK,EAAE;QACb,KAAK,SAAS,CAAC,aAAa;YAC1B,WAAW,GAAG,IAAI,WAAW,CAAC,gCAAgC,CAAC,CAAA;YAC/D,MAAK;QACP,KAAK,SAAS,CAAC,aAAa;YAC1B,WAAW,GAAG,IAAI,WAAW,CAAC,gCAAgC,CAAC,CAAA;YAC/D,MAAK;QACP,KAAK,SAAS,CAAC,WAAW;YACxB,MAAM,KAAK,CAAC,iDAAiD,CAAC,CAAA;QAChE,sEAAsE;QACtE,QAAQ;QACR,KAAK,SAAS,CAAC,WAAW;YACxB,SAAS,GAAG,IAAI,eAAe,CAAC,kCAAkC,CAAC,CAAA;YACnE,MAAK;QACP,KAAK,SAAS,CAAC,QAAQ;YACrB,MAAM,GAAG,IAAI,EAAE,CAAA;YACf,MAAK;QACP,0BAA0B;QAC1B,wCAAwC;QACxC,UAAU;QACV,0BAA0B;QAC1B,wCAAwC;QACxC,UAAU;QACV,KAAK,SAAS,CAAC,MAAM;YACnB,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;YAClC,MAAK;QACP,0BAA0B;QAC1B,wCAAwC;QACxC,UAAU;QAEV,KAAK,SAAS,CAAC,QAAQ;YACrB,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;YACpC,MAAK;QACP,KAAK,SAAS,CAAC,eAAe;YAC5B,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAA;YAC5C,MAAK;QACP,KAAK,SAAS,CAAC,SAAS;YACtB,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;YACrC,MAAK;QACP,wBAAwB;QACxB,sCAAsC;QACtC,UAAU;QACV;YACE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,KAAK,iEAAiE,CAAC,CAAC,CAAA;YACzG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAClB;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAC1B,yCAAyC,OAAO,SAAS,KAAK,mEAAmE,CAClI,CAAA;IAED,IAAI,WAAW,EAAE;QACf,IAAI;YACF,OAAO;gBACL,GAAG,EAAE,MAAM,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC;aAClD,CAAA;SACF;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;YAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SAChB;KACF;IACD,IAAI,SAAS,EAAE;QACb,IAAI;YACF,OAAO;gBACL,GAAG,EAAE,MAAM,SAAS,CAAC,iCAAiC,CAAC,OAAO,CAAC;aAChE,CAAA;SACF;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;YAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SAChB;KACF;IAED,IAAI;QACF,IAAI,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAChD,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE;YACvB,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SAC1B;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAA;QAEvB,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;YACzD,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;YACnD,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE;gBACvB,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;aAC1B;YACD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAA;YAChD,IAAI,YAAY,EAAE;gBAChB,IAAI,GAAG,YAAY,CAAA;aACpB;SACF;QACD,OAAO;YACL,IAAI;YACJ,GAAG;SACJ,CAAA;KACF;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;QAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,IAAY;IACxD,IAAI,OAAO,CAAA;IACX,QAAQ,KAAK,EAAE;QACb,KAAK,SAAS,CAAC,aAAa;YAC1B,OAAO,GAAG,OAAO,CAAA;YACjB,MAAK;QACP,KAAK,SAAS,CAAC,aAAa;YAC1B,OAAO,GAAG,YAAY,CAAA;YACtB,MAAK;QACP,KAAK,SAAS,CAAC,WAAW;YACxB,OAAO,GAAG,KAAK,CAAA;YACf,MAAK;QACP,KAAK,SAAS,CAAC,WAAW;YACxB,OAAO,GAAG,UAAU,CAAA;YACpB,MAAK;QACP;YACE,OAAO,GAAG,KAAK,CAAA;KAClB;IAED,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,OAAO,CAAC,CAAA;AACnD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAoB,EAAE,MAAc;IAC/D,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;KACtB;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACzC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACvD,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC,CAAA;AAChE,CAAC","sourcesContent":["import { AptosClient } from 'aptos-sdk'\nimport { JsonRpcProvider } from '@mysten/sui.js'\nimport { CHAIN_IDS } from './chain.js'\nimport chalk from 'chalk'\nimport process from 'process'\nimport path from 'path'\nimport fs from 'fs-extra'\n// @ts-ignore no types\nimport { init } from 'etherscan-api'\n\nexport async function getABI(\n chain: string,\n address: string,\n name: string | undefined\n): Promise<{ name?: string; abi: object | string }> {\n let ethApi\n let aptosClient: AptosClient | undefined\n let suiClient: JsonRpcProvider | undefined\n\n switch (chain) {\n case CHAIN_IDS.APTOS_MAINNET:\n aptosClient = new AptosClient('https://mainnet.aptoslabs.com/')\n break\n case CHAIN_IDS.APTOS_TESTNET:\n aptosClient = new AptosClient('https://testnet.aptoslabs.com/')\n break\n case CHAIN_IDS.SUI_MAINNET:\n throw Error('SUI mainnet is not support yet, try sui/testnet')\n // suiClient = new JsonRpcProvider('https://fullnode.mainnet.sui.io/')\n // break\n case CHAIN_IDS.SUI_TESTNET:\n suiClient = new JsonRpcProvider('https://fullnode.testnet.sui.io/')\n break\n case CHAIN_IDS.ETHEREUM:\n ethApi = init()\n break\n // case CHAIN_IDS.ROPSTEN:\n // ethApi = init(undefined, \"ropsten\")\n // break\n // case CHAIN_IDS.RINKEBY:\n // ethApi = init(undefined, \"rinkeby\")\n // break\n case CHAIN_IDS.GOERLI:\n ethApi = init(undefined, 'goerli')\n break\n // case CHAIN_IDS.SEPOLIA:\n // ethApi = init(undefined, \"sepolia\")\n // break\n\n case CHAIN_IDS.ARBITRUM:\n ethApi = init(undefined, 'arbitrum')\n break\n case CHAIN_IDS.ARBITRUM_GOERLI:\n ethApi = init(undefined, 'arbitrum_rinkeby')\n break\n case CHAIN_IDS.AVALANCHE:\n ethApi = init(undefined, 'avalanche')\n break\n // case CHAIN_IDS.KOVAN:\n // ethApi = init(undefined, \"kovan\")\n // break\n default:\n console.error(chalk.red(`chain ${chain} not supported for direct add, please download the ABI manually`))\n process.exit(1)\n }\n\n const baseErrMsg = chalk.red(\n `Failed to automatic download contract ${address} from ${chain}, please manually download abi and put it into abis/eth directory`\n )\n\n if (aptosClient) {\n try {\n return {\n abi: await aptosClient.getAccountModules(address),\n }\n } catch (e) {\n console.error(baseErrMsg, e)\n process.exit(1)\n }\n }\n if (suiClient) {\n try {\n return {\n abi: await suiClient.getNormalizedMoveModulesByPackage(address),\n }\n } catch (e) {\n console.error(baseErrMsg, e)\n process.exit(1)\n }\n }\n\n try {\n let resp = await ethApi.contract.getabi(address)\n if (resp.status !== '1') {\n throw Error(resp.message)\n }\n const abi = resp.result\n\n if (!name) {\n await new Promise((resolve) => setTimeout(resolve, 1000))\n resp = await ethApi.contract.getsourcecode(address)\n if (resp.status !== '1') {\n throw Error(resp.message)\n }\n const contractName = resp.result[0].ContractName\n if (contractName) {\n name = contractName\n }\n }\n return {\n name,\n abi,\n }\n } catch (e) {\n console.error(baseErrMsg, e)\n process.exit(1)\n }\n}\n\nexport function getABIFilePath(chain: string, name: string): string {\n let subpath\n switch (chain) {\n case CHAIN_IDS.APTOS_MAINNET:\n subpath = 'aptos'\n break\n case CHAIN_IDS.APTOS_TESTNET:\n subpath = 'aptos/test'\n break\n case CHAIN_IDS.SUI_MAINNET:\n subpath = 'sui'\n break\n case CHAIN_IDS.SUI_TESTNET:\n subpath = 'sui/test'\n break\n default:\n subpath = 'eth'\n }\n\n return path.join('abis', subpath, name + '.json')\n}\n\nexport function writeABIFile(obj: string | object, output: string) {\n if (typeof obj === 'string') {\n obj = JSON.parse(obj)\n }\n const data = JSON.stringify(obj, null, 2)\n fs.mkdirSync(path.dirname(output), { recursive: true })\n fs.writeFileSync(output, data)\n console.log(chalk.green('ABI has been downloaded to', output))\n}\n"]}
1
+ {"version":3,"file":"abi.js","sourceRoot":"","sources":["../src/abi.ts"],"names":[],"mappings":"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","sourcesContent":["import { AptosClient } from 'aptos-sdk'\nimport { JsonRpcProvider } from '@mysten/sui.js'\nimport { CHAIN_IDS } from './chain.js'\nimport chalk from 'chalk'\nimport process from 'process'\nimport path from 'path'\nimport fs from 'fs-extra'\n// @ts-ignore no types\nimport { init } from 'etherscan-api'\n\nexport async function getABI(\n chain: string,\n address: string,\n name: string | undefined\n): Promise<{ name?: string; abi: object | string }> {\n let ethApi\n let aptosClient: AptosClient | undefined\n let suiClient: JsonRpcProvider | undefined\n\n switch (chain) {\n case CHAIN_IDS.APTOS_MAINNET:\n aptosClient = new AptosClient('https://mainnet.aptoslabs.com/')\n break\n case CHAIN_IDS.APTOS_TESTNET:\n aptosClient = new AptosClient('https://testnet.aptoslabs.com/')\n break\n case CHAIN_IDS.SUI_MAINNET:\n throw Error('SUI mainnet is not support yet, try sui/testnet')\n // suiClient = new JsonRpcProvider('https://fullnode.mainnet.sui.io/')\n // break\n case CHAIN_IDS.SUI_TESTNET:\n suiClient = new JsonRpcProvider('https://fullnode.testnet.sui.io/')\n break\n case CHAIN_IDS.ETHEREUM:\n ethApi = init()\n break\n // case CHAIN_IDS.ROPSTEN:\n // ethApi = init(undefined, \"ropsten\")\n // break\n // case CHAIN_IDS.RINKEBY:\n // ethApi = init(undefined, \"rinkeby\")\n // break\n case CHAIN_IDS.GOERLI:\n ethApi = init(undefined, 'goerli')\n break\n // case CHAIN_IDS.SEPOLIA:\n // ethApi = init(undefined, \"sepolia\")\n // break\n\n case CHAIN_IDS.ARBITRUM:\n ethApi = init(undefined, 'arbitrum')\n break\n case CHAIN_IDS.ARBITRUM_GOERLI:\n ethApi = init(undefined, 'arbitrum_rinkeby')\n break\n case CHAIN_IDS.AVALANCHE:\n ethApi = init(undefined, 'avalanche')\n break\n // case CHAIN_IDS.KOVAN:\n // ethApi = init(undefined, \"kovan\")\n // break\n default:\n console.error(chalk.red(`chain ${chain} not supported for direct add, please download the ABI manually`))\n process.exit(1)\n }\n\n const baseErrMsg = chalk.red(\n `Failed to automatic download contract ${address} from ${chain}, please manually download abi and put it into abis/eth directory`\n )\n\n if (aptosClient) {\n try {\n return {\n abi: await aptosClient.getAccountModules(address),\n }\n } catch (e) {\n console.error(baseErrMsg, e)\n process.exit(1)\n }\n }\n if (suiClient) {\n try {\n return {\n abi: await suiClient.getNormalizedMoveModulesByPackage(address),\n }\n } catch (e) {\n console.error(baseErrMsg, e)\n process.exit(1)\n }\n }\n\n try {\n let resp = await ethApi.contract.getabi(address)\n if (resp.status !== '1') {\n throw Error(resp.message)\n }\n const abi = resp.result\n\n if (!name) {\n await new Promise((resolve) => setTimeout(resolve, 1000))\n resp = await ethApi.contract.getsourcecode(address)\n if (resp.status !== '1') {\n throw Error(resp.message)\n }\n const contractName = resp.result[0].ContractName\n if (contractName) {\n name = contractName\n }\n }\n return {\n name,\n abi,\n }\n } catch (e) {\n console.error(baseErrMsg, e)\n process.exit(1)\n }\n}\n\nexport function getABIFilePath(chain: string, name: string): string {\n let subpath\n switch (chain) {\n case CHAIN_IDS.APTOS_MAINNET:\n subpath = 'aptos'\n break\n case CHAIN_IDS.APTOS_TESTNET:\n subpath = 'aptos/testnet'\n break\n case CHAIN_IDS.SUI_MAINNET:\n subpath = 'sui'\n break\n case CHAIN_IDS.SUI_TESTNET:\n subpath = 'sui/testnet'\n break\n default:\n subpath = 'eth'\n }\n\n return path.join('abis', subpath, name + '.json')\n}\n\nexport function writeABIFile(obj: string | object, output: string) {\n if (typeof obj === 'string') {\n obj = JSON.parse(obj)\n }\n const data = JSON.stringify(obj, null, 2)\n fs.mkdirSync(path.dirname(output), { recursive: true })\n fs.writeFileSync(output, data)\n console.log(chalk.green('ABI has been downloaded to', output))\n}\n"]}
@@ -74,7 +74,7 @@ export async function runCreate(argv) {
74
74
  const projectFullName = options.name || 'default';
75
75
  let projectSlug = projectFullName;
76
76
  const projectParts = projectSlug.split('/');
77
- if (projectParts.length > 0) {
77
+ if (projectParts.length > 1) {
78
78
  projectSlug = projectParts[1];
79
79
  }
80
80
  const rootDir = options.directory || process.cwd();
@@ -1 +1 @@
1
- {"version":3,"file":"run-create.js","sourceRoot":"","sources":["../../src/commands/run-create.ts"],"names":[],"mappings":"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","sourcesContent":["import commandLineArgs from 'command-line-args'\nimport commandLineUsage from 'command-line-usage'\nimport path from 'path'\nimport fs from 'fs-extra'\nimport chalk from 'chalk'\nimport latestVersion from 'latest-version'\nimport url from 'url'\n\nexport async function runCreate(argv: string[]) {\n const optionDefinitions = [\n {\n name: 'help',\n alias: 'h',\n type: Boolean,\n description: 'Display this usage guide.',\n },\n {\n name: 'name',\n alias: 'n',\n defaultOption: true,\n type: String,\n description: 'Project name',\n },\n {\n name: 'subproject',\n alias: 'p',\n type: Boolean,\n description:\n 'If this is a subproject in mono-repo setup, in this case sdk version is controlled in parent package.json.',\n },\n {\n name: 'directory',\n alias: 'd',\n description: '(Optional) The root direct new project will be created, default current working dir',\n type: String,\n },\n {\n name: 'chain-type',\n alias: 'c',\n description:\n 'The type of project you want to create, can be eth, aptos, solana, raw (if you want to start from scratch and support multiple types of chains)',\n type: String,\n defaultValue: 'eth',\n },\n ]\n\n const options = commandLineArgs(optionDefinitions, { argv })\n const usage = commandLineUsage([\n {\n header: 'Create a template project',\n content: 'sentio create <name>',\n },\n {\n header: 'Options',\n optionList: optionDefinitions,\n },\n ])\n\n if (options.help || !options.name) {\n console.log(usage)\n } else {\n const chainType: string = options['chain-type'].toLowerCase()\n switch (chainType) {\n case 'eth':\n break\n case 'aptos':\n break\n case 'raw':\n break\n case 'solana':\n break\n default:\n console.error(chalk.red('non supported chain-type for template creation, use --help for more information.'))\n console.log(usage)\n process.exit(1)\n }\n\n const templateFolder = url.fileURLToPath(new URL('../../templates/' + chainType, import.meta.url))\n const projectFullName = options.name || 'default'\n let projectSlug = projectFullName\n const projectParts = projectSlug.split('/')\n if (projectParts.length > 0) {\n projectSlug = projectParts[1]\n }\n\n const rootDir = options.directory || process.cwd()\n const dstFolder = path.resolve(rootDir, projectSlug)\n if (fs.existsSync(dstFolder)) {\n console.error(chalk.red(\"can't create project '\" + projectSlug + \"', directory already existed\"))\n process.exit(1)\n }\n\n fs.copySync(templateFolder, dstFolder, {\n filter: (src, _) => {\n // TODO read from .gitignore to be more reliable\n if (\n src.endsWith('types') ||\n src.endsWith('dist') ||\n src.endsWith('node_modules') ||\n src.endsWith('.lock') ||\n src.endsWith('dist')\n ) {\n return false\n }\n return true\n },\n overwrite: false,\n })\n const gitignoreFile = path.join(dstFolder, 'gitignore')\n if (fs.existsSync(gitignoreFile)) {\n fs.renameSync(gitignoreFile, path.join(dstFolder, '.gitignore'))\n }\n if (options.name) {\n const sentioYamlPath = path.resolve(dstFolder, 'sentio.yaml')\n fs.writeFileSync(sentioYamlPath, 'project: ' + projectFullName + '\\n', { flag: 'w+' })\n\n const packageJsonPath = path.resolve(dstFolder, 'package.json')\n const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'))\n\n const sdkVersion = '^' + (await latestVersion('@sentio/sdk'))\n packageJson.dependencies['@sentio/sdk'] = sdkVersion\n\n const cliVersion = '^' + (await latestVersion('@sentio/cli'))\n packageJson.devDependencies['@sentio/cli'] = cliVersion\n packageJson.name = projectSlug\n\n if (options.subproject) {\n delete packageJson.dependencies['@sentio/sdk']\n delete packageJson.devDependencies['@sentio/cli']\n }\n\n // Don't add directly to avoid deps issue\n packageJson.scripts.postinstall = 'sentio gen'\n\n fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2))\n }\n console.log(chalk.green(\"successfully create project '\" + projectFullName + \"'\"))\n }\n}\n"]}
1
+ {"version":3,"file":"run-create.js","sourceRoot":"","sources":["../../src/commands/run-create.ts"],"names":[],"mappings":"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","sourcesContent":["import commandLineArgs from 'command-line-args'\nimport commandLineUsage from 'command-line-usage'\nimport path from 'path'\nimport fs from 'fs-extra'\nimport chalk from 'chalk'\nimport latestVersion from 'latest-version'\nimport url from 'url'\n\nexport async function runCreate(argv: string[]) {\n const optionDefinitions = [\n {\n name: 'help',\n alias: 'h',\n type: Boolean,\n description: 'Display this usage guide.',\n },\n {\n name: 'name',\n alias: 'n',\n defaultOption: true,\n type: String,\n description: 'Project name',\n },\n {\n name: 'subproject',\n alias: 'p',\n type: Boolean,\n description:\n 'If this is a subproject in mono-repo setup, in this case sdk version is controlled in parent package.json.',\n },\n {\n name: 'directory',\n alias: 'd',\n description: '(Optional) The root direct new project will be created, default current working dir',\n type: String,\n },\n {\n name: 'chain-type',\n alias: 'c',\n description:\n 'The type of project you want to create, can be eth, aptos, solana, raw (if you want to start from scratch and support multiple types of chains)',\n type: String,\n defaultValue: 'eth',\n },\n ]\n\n const options = commandLineArgs(optionDefinitions, { argv })\n const usage = commandLineUsage([\n {\n header: 'Create a template project',\n content: 'sentio create <name>',\n },\n {\n header: 'Options',\n optionList: optionDefinitions,\n },\n ])\n\n if (options.help || !options.name) {\n console.log(usage)\n } else {\n const chainType: string = options['chain-type'].toLowerCase()\n switch (chainType) {\n case 'eth':\n break\n case 'aptos':\n break\n case 'raw':\n break\n case 'solana':\n break\n default:\n console.error(chalk.red('non supported chain-type for template creation, use --help for more information.'))\n console.log(usage)\n process.exit(1)\n }\n\n const templateFolder = url.fileURLToPath(new URL('../../templates/' + chainType, import.meta.url))\n const projectFullName = options.name || 'default'\n let projectSlug = projectFullName\n const projectParts = projectSlug.split('/')\n if (projectParts.length > 1) {\n projectSlug = projectParts[1]\n }\n\n const rootDir = options.directory || process.cwd()\n const dstFolder = path.resolve(rootDir, projectSlug)\n if (fs.existsSync(dstFolder)) {\n console.error(chalk.red(\"can't create project '\" + projectSlug + \"', directory already existed\"))\n process.exit(1)\n }\n\n fs.copySync(templateFolder, dstFolder, {\n filter: (src, _) => {\n // TODO read from .gitignore to be more reliable\n if (\n src.endsWith('types') ||\n src.endsWith('dist') ||\n src.endsWith('node_modules') ||\n src.endsWith('.lock') ||\n src.endsWith('dist')\n ) {\n return false\n }\n return true\n },\n overwrite: false,\n })\n const gitignoreFile = path.join(dstFolder, 'gitignore')\n if (fs.existsSync(gitignoreFile)) {\n fs.renameSync(gitignoreFile, path.join(dstFolder, '.gitignore'))\n }\n if (options.name) {\n const sentioYamlPath = path.resolve(dstFolder, 'sentio.yaml')\n fs.writeFileSync(sentioYamlPath, 'project: ' + projectFullName + '\\n', { flag: 'w+' })\n\n const packageJsonPath = path.resolve(dstFolder, 'package.json')\n const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'))\n\n const sdkVersion = '^' + (await latestVersion('@sentio/sdk'))\n packageJson.dependencies['@sentio/sdk'] = sdkVersion\n\n const cliVersion = '^' + (await latestVersion('@sentio/cli'))\n packageJson.devDependencies['@sentio/cli'] = cliVersion\n packageJson.name = projectSlug\n\n if (options.subproject) {\n delete packageJson.dependencies['@sentio/sdk']\n delete packageJson.devDependencies['@sentio/cli']\n }\n\n // Don't add directly to avoid deps issue\n packageJson.scripts.postinstall = 'sentio gen'\n\n fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2))\n }\n console.log(chalk.green(\"successfully create project '\" + projectFullName + \"'\"))\n }\n}\n"]}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "license": "Apache-2.0",
4
4
  "private": false,
5
5
  "type": "module",
6
- "version": "2.5.1",
6
+ "version": "2.5.2-rc.1",
7
7
  "scripts": {
8
8
  "compile": "tsc",
9
9
  "build": "yarn compile",
package/src/abi.ts CHANGED
@@ -124,13 +124,13 @@ export function getABIFilePath(chain: string, name: string): string {
124
124
  subpath = 'aptos'
125
125
  break
126
126
  case CHAIN_IDS.APTOS_TESTNET:
127
- subpath = 'aptos/test'
127
+ subpath = 'aptos/testnet'
128
128
  break
129
129
  case CHAIN_IDS.SUI_MAINNET:
130
130
  subpath = 'sui'
131
131
  break
132
132
  case CHAIN_IDS.SUI_TESTNET:
133
- subpath = 'sui/test'
133
+ subpath = 'sui/testnet'
134
134
  break
135
135
  default:
136
136
  subpath = 'eth'
@@ -79,7 +79,7 @@ export async function runCreate(argv: string[]) {
79
79
  const projectFullName = options.name || 'default'
80
80
  let projectSlug = projectFullName
81
81
  const projectParts = projectSlug.split('/')
82
- if (projectParts.length > 0) {
82
+ if (projectParts.length > 1) {
83
83
  projectSlug = projectParts[1]
84
84
  }
85
85