@layerzerolabs/lz-initia-cli 3.0.16 → 3.0.17
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/CHANGELOG.md +12 -0
- package/dist/cli.cjs +2 -3
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.mjs +3 -4
- package/dist/cli.mjs.map +1 -1
- package/dist/index.cjs +2 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +3 -4
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @layerzerolabs/lz-initia-cli
|
|
2
2
|
|
|
3
|
+
## 3.0.17
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 40f2269: islander mainnet
|
|
8
|
+
- 40f2269: testnets
|
|
9
|
+
- Updated dependencies [40f2269]
|
|
10
|
+
- Updated dependencies [40f2269]
|
|
11
|
+
- @layerzerolabs/lz-definitions@3.0.17
|
|
12
|
+
- @layerzerolabs/lz-config-types@3.0.17
|
|
13
|
+
- @layerzerolabs/lz-utilities@3.0.17
|
|
14
|
+
|
|
3
15
|
## 3.0.16
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/dist/cli.cjs
CHANGED
|
@@ -43,8 +43,7 @@ var __defProp = Object.defineProperty;
|
|
|
43
43
|
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
44
44
|
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
45
45
|
}) : x)(function(x) {
|
|
46
|
-
if (typeof require !== "undefined")
|
|
47
|
-
return require.apply(this, arguments);
|
|
46
|
+
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
48
47
|
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
49
48
|
});
|
|
50
49
|
var __export = (target, all) => {
|
|
@@ -484,5 +483,5 @@ main().then(() => process2__default.default.exit(process2__default.default.exitC
|
|
|
484
483
|
logger.error(error);
|
|
485
484
|
process2__default.default.exit(1);
|
|
486
485
|
});
|
|
487
|
-
//# sourceMappingURL=
|
|
486
|
+
//# sourceMappingURL=cli.cjs.map
|
|
488
487
|
//# sourceMappingURL=cli.cjs.map
|
package/dist/cli.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli.ts","../src/loader.ts","../src/subCommands/index.ts","../src/deploy.ts","../src/client.ts","../src/deployer.ts","../src/errors.ts","../src/move.ts","../src/subCommands/deploy.ts","../src/build.ts","../src/options.ts","../src/subCommands/build.ts"],"names":["fs","path","process","Command","$","command","AccAddress","deploymentPath","moduleName","glob","createOption"],"mappings":"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","sourcesContent":["import fs from 'fs'\nimport path from 'path'\nimport process from 'process'\n\nimport { loadConfig } from '@/loader'\nimport { Command } from '@commander-js/extra-typings'\nimport { sync as findUpSync } from 'find-up'\nimport { $ } from 'zx/core'\n\nimport { getLogger } from '@layerzerolabs/lz-utilities'\n\nimport * as subCommands from './subCommands'\n\nconst program = new Command()\n// iterate over subCommands and add them to the program\nconst logger = getLogger()\n\nprogram\n .name('lz-initia-cli')\n .description('Wrapper of Initia cli')\n .version('0.1.0')\n .action((_, command: Command) => {\n logger.info('Please specify a subcommand')\n command.help()\n })\n\nasync function checkIfInitiaInstalled(): Promise<void> {\n try {\n await $`initiad version`\n } catch (e) {\n throw new Error('Initia cli is not installed')\n }\n}\n\nfunction checkIfInitiaConfigExists(): string {\n const packagePath = findUpSync('package.json', { cwd: process.cwd() })\n if (packagePath === undefined) {\n throw new Error('package.json not found')\n }\n const configPath = path.join(path.dirname(packagePath), 'lz-initia.config.ts')\n if (!fs.existsSync(configPath)) {\n throw new Error('lz-initia.config.ts not found, please create one in the same directory as package.json')\n }\n return configPath\n}\n\nasync function main(): Promise<void> {\n await checkIfInitiaInstalled()\n const configPath = checkIfInitiaConfigExists()\n const config = loadConfig(configPath)\n Object.values(subCommands).forEach((subCommand: Command) => {\n subCommand.setOptionValue('__CONTEXT__', config)\n program.addCommand(subCommand)\n })\n await program.parseAsync()\n}\n\nmain()\n .then(() => process.exit(process.exitCode))\n .catch((error: unknown) => {\n logger.error(error)\n process.exit(1)\n })\n","import { LzInitiaConfig } from '@/types'\n\nexport function loadConfig(configPath: string): LzInitiaConfig {\n // WARNING: require('ts-node') will cause '[ERROR] Unterminated template (867:31) [plugin commonjs]' in some cases\n // this error can be eliminated by assigning the name to a variable and require that variable\n const moduleName = 'ts-node'\n const tsnode = require(moduleName) as typeof import('ts-node')\n tsnode.register({\n transpileOnly: true,\n typeCheck: false,\n })\n\n try {\n type ImportType = LzInitiaConfig | { default: LzInitiaConfig }\n const imported = require(configPath) as ImportType\n return 'default' in imported ? imported.default : imported\n } catch (e) {\n if (e !== null && typeof e === 'object' && 'code' in e && e.code === 'ERR_REQUIRE_ESM') {\n throw new Error(\n `Your project is an ESM project (you have \"type\": \"module\" set in your package.json) but your LayerZero config file uses the .js extension.`\n )\n }\n\n throw e\n }\n}\n","export { command as deploy } from './deploy'\nexport { command as build } from './build'\n","import fs from 'fs'\nimport * as crypto from 'node:crypto'\nimport path from 'path'\n\nimport { getInitiaClient } from '@/client'\nimport { getDeployer } from '@/deployer'\nimport { handleError } from '@/errors'\nimport { getMoveContext } from '@/move'\nimport { LzInitiaConfig } from '@/types'\nimport { AccAddress, MsgPublish, TxError, Wallet } from '@initia/initia.js'\nimport { glob } from 'glob'\n\nimport { EndpointVersion, Network, Stage, networkToEnv, networkToStage } from '@layerzerolabs/lz-definitions'\n\nfunction deploymentPath(pkgName: string, dest: string, network: Network, variant?: string): string {\n const deploymentPath = path.join(dest, network)\n return path.join(deploymentPath, `${pkgWithVariant(pkgName, variant)}.json`)\n}\n\nexport function saveDeployment(\n moduleName: string,\n pkgName: string,\n address: string,\n dest: string,\n network: Network,\n bytecodeHash: string,\n hash: string,\n variant?: string,\n compatibleVersions = [EndpointVersion.V1, EndpointVersion.V2]\n): void {\n const destPath = deploymentPath(pkgName, dest, network, variant)\n const deploymentDir = path.dirname(destPath)\n if (!fs.existsSync(deploymentDir)) {\n fs.mkdirSync(deploymentDir, { recursive: true })\n }\n fs.writeFileSync(\n destPath,\n JSON.stringify(\n {\n address,\n name: pkgWithVariant(pkgName, variant),\n moduleName,\n network,\n compatibleVersions,\n bytecodeHash,\n transactionHash: hash,\n },\n null,\n 2\n )\n )\n console.log(`Deployment saved to ${destPath}`)\n}\n\nfunction needDeploy(pkgName: string, dest: string, network: Network, bytecodeHash: string, variant?: string): boolean {\n if (networkToStage(network) === Stage.SANDBOX) {\n return true\n }\n const destPath = deploymentPath(pkgName, dest, network, variant)\n if (fs.existsSync(destPath)) {\n const deployment = JSON.parse(fs.readFileSync(destPath, 'utf-8')) as { bytecodeHash: string }\n return deployment.bytecodeHash !== bytecodeHash\n }\n return true\n}\n\nfunction pkgWithVariant(pkgName: string, variant?: string): string {\n return variant !== undefined && variant.length > 0 ? `${pkgName}-${variant}` : pkgName\n}\n\nfunction getBytecodesHash(bytecodes: Uint8Array[]): string {\n // sha256 hash of all bytecodes\n const hash = crypto.createHash('sha256')\n bytecodes.forEach((bytecode) => {\n hash.update(bytecode)\n })\n return hash.digest('hex')\n}\n\nexport async function deploy(\n moduleName: string,\n lzInitiaConfig: LzInitiaConfig,\n network: Network,\n variant?: string\n): Promise<void> {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n throw new Error(`module ${moduleName} not found`)\n }\n const env = networkToEnv(network, EndpointVersion.V2)\n const client = getInitiaClient(env, lzInitiaConfig)\n const deployer = getDeployer(moduleName, lzInitiaConfig, network)\n const context = getMoveContext(moduleName, lzInitiaConfig, network)\n const pkgName = lzInitiaConfig.modules[moduleName]?.alias ?? context[moduleName]!.package.name\n const moduleDir = path.join(lzInitiaConfig.artifactsPath, `${pkgWithVariant(pkgName, variant)}/bytecode_modules`)\n\n const moduleNames: string[] = glob.sync('*.mv', { cwd: moduleDir })\n const moduleBuffers = moduleNames.map((moduleName) => fs.readFileSync(path.join(moduleDir, moduleName)))\n const bytecodeHash = getBytecodesHash(moduleBuffers)\n if (!needDeploy(pkgName, lzInitiaConfig.deploymentPath, network, bytecodeHash, variant)) {\n console.warn(`Code of ${moduleName} has not changed, skipping deploy`)\n return\n }\n try {\n // TODO policy from config\n const msgs = [\n new MsgPublish(\n deployer.accAddress,\n moduleBuffers.map((codeBytes) => codeBytes.toString('base64')),\n MsgPublish.Policy.COMPATIBLE\n ),\n ]\n const wallet = new Wallet(client, deployer)\n const gasPrices =\n lzInitiaConfig.gasPrice?.[network] === undefined ? undefined : `${lzInitiaConfig.gasPrice[network]}uinit`\n const signedTx = await wallet.createAndSignTx({ msgs, gasPrices })\n const tx = await client.tx.broadcast(signedTx)\n if (((tx as TxError).code as number) !== 0) {\n throw new Error(tx.raw_log)\n }\n console.log(`Deploy transaction ${tx.txhash} successfully`)\n saveDeployment(\n moduleName,\n pkgName,\n AccAddress.toHex(deployer.accAddress),\n lzInitiaConfig.deploymentPath,\n network,\n bytecodeHash,\n tx.txhash,\n variant,\n lzInitiaConfig.compatibleVersions\n )\n } catch (e: unknown) {\n if (e instanceof Error) {\n handleError(e, moduleName, context, network)\n } else {\n throw e\n }\n }\n}\n","import { LzInitiaConfig } from '@/types'\nimport { LCDClient } from '@initia/initia.js'\n\nimport { Environment } from '@layerzerolabs/lz-definitions'\n\nexport function getInitiaClient(env: Environment, config: LzInitiaConfig): LCDClient {\n const url = config.network?.[env] as string | undefined\n if (url === undefined) {\n throw new Error(`No network url for ${env} found in lz-initia.config.ts`)\n }\n const lcd = new LCDClient(url)\n return lcd\n}\n","import { loadConfig } from '@/loader'\nimport { LzInitiaConfig } from '@/types'\nimport { MnemonicKey } from '@initia/initia.js'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nexport function isInitiaAccount(account: object | undefined): account is MnemonicKey {\n return account !== undefined && account instanceof MnemonicKey\n}\n\nexport function getDeployer(moduleName: string, lzInitiaConfig: LzInitiaConfig, network: Network): MnemonicKey {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n if (lzInitiaConfig.baseModules && lzInitiaConfig.baseModules.length > 0) {\n for (const baseModule of lzInitiaConfig.baseModules) {\n const baseConfig = loadConfig(baseModule)\n try {\n return getDeployer(moduleName, baseConfig, network)\n } catch (e) {\n /* ignore */\n }\n }\n }\n throw new Error(\n `Module ${moduleName} not found. Make sure it is defined in lz-initia.config.ts and double check the key is the package name in Move.toml.`\n )\n }\n const moduleDeployer = isInitiaAccount(module.deployer) ? module.deployer : module.deployer?.[network]\n const defaultDeployer = isInitiaAccount(lzInitiaConfig.defaultDeployer)\n ? lzInitiaConfig.defaultDeployer\n : lzInitiaConfig.defaultDeployer?.[network]\n const deployer = moduleDeployer ?? defaultDeployer\n if (!deployer) {\n throw new Error(`deployer for module ${moduleName} not found`)\n }\n return deployer\n}\n","import { AxiosError, MoveContext } from '@/types'\nimport { AccAddress } from '@initia/initia.js'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nfunction isAxiosError(error: any): error is AxiosError {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return error?.response?.data?.message !== undefined\n}\n\nfunction handleDepMissingError(error: AxiosError, moduleName: string, context: MoveContext): void {\n if (error.response.data.message.includes('EPACKAGE_DEP_MISSING')) {\n throw new Error(\n `Deploy ${moduleName} failed with EPACKAGE_DEP_MISSING, make sure you have deployed the dependent module [${Object.keys(\n context\n )\n .filter((module) => module !== moduleName)\n .join(',')}]`\n )\n }\n}\n\nfunction handleAccountNotFoundError(\n error: AxiosError,\n moduleName: string,\n context: MoveContext,\n network: Network\n): void {\n const address = context[moduleName]?.addresses[moduleName]\n if (address === undefined) {\n return\n }\n if (error.response.data.message.includes(`account ${AccAddress.fromHex(address)} not found`)) {\n throw new Error(\n `${error.response.data.message}, make sure you have funded the account ${AccAddress.fromHex(address)}(${address}) on ${network}`\n )\n }\n}\n\nfunction handleSenderNotMatchError(error: AxiosError, moduleName: string): void {\n if (error.response.data.message.includes('MODULE_ADDRESS_DOES_NOT_MATCH_SENDER')) {\n throw new Error(\n `Deploy ${moduleName} failed with MODULE_ADDRESS_DOES_NOT_MATCH_SENDER, make sure you compile ${moduleName} with the deployer account address`\n )\n }\n}\n\nfunction handleOtherAxiosError(error: AxiosError): void {\n throw new Error(error.response.data.message)\n}\n\nexport function handleError(error: Error, moduleName: string, context: MoveContext, network: Network): void {\n if (isAxiosError(error)) {\n handleDepMissingError(error, moduleName, context)\n handleAccountNotFoundError(error, moduleName, context, network)\n handleSenderNotMatchError(error, moduleName)\n handleOtherAxiosError(error)\n }\n throw error\n}\n","import fs from 'fs'\nimport path from 'path'\n\nimport { getDeployer } from '@/deployer'\nimport { LzInitiaConfig, ModuleAddresses, MoveContext, MoveToml } from '@/types'\nimport { AccAddress } from '@initia/initia.js'\nimport { parse } from 'smol-toml'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nexport function getRawMoveContextByPath(modulePath: string): MoveContext {\n const tomlPath = path.join(modulePath, 'Move.toml')\n if (!fs.existsSync(tomlPath)) {\n throw new Error(`Move.toml not found in ${tomlPath}`)\n }\n const toml = parse(fs.readFileSync(tomlPath, 'utf-8')) as unknown as MoveToml\n const { dependencies } = toml\n let result: MoveContext = { [toml.package.name]: toml } satisfies MoveContext\n if (dependencies !== undefined) {\n Object.keys(dependencies)\n .filter((key) => {\n return dependencies[key]?.local !== undefined\n })\n .forEach((key) => {\n const dependency = dependencies[key] as { local: string }\n const dependencyPath = path.join(modulePath, dependency.local)\n result = { ...getRawMoveContextByPath(dependencyPath), ...result } satisfies MoveContext\n })\n }\n return result\n}\n\nexport function parseAddresses(addresses: ModuleAddresses, network: Network): { [key in string]?: string } {\n if (addresses === undefined) {\n return {}\n }\n const result: { [key in string]?: string } = {}\n for (const key of Object.keys(addresses)) {\n const value = addresses[key]\n if (typeof value === 'string') {\n result[key] = value\n } else {\n const networkAddress = value[network]\n if (networkAddress === undefined) {\n throw new Error(`${key} address not found for network ${network}`)\n }\n result[key] = networkAddress\n }\n }\n return result\n}\n\nexport function getMoveContext(moduleName: string, lzInitiaConfig: LzInitiaConfig, network: Network): MoveContext {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n throw new Error(`module ${moduleName} not found when getting Move context`)\n }\n const context = getRawMoveContextByPath(module.modulePath)\n for (const key of Object.keys(context)) {\n const toml = context[key]!\n for (const addressKey of Object.keys(toml.addresses)) {\n const address = toml.addresses[addressKey]\n const presetAddresses = {\n ...parseAddresses(lzInitiaConfig.modules[key]?.addresses, network),\n ...parseAddresses(lzInitiaConfig.modules[moduleName]?.addresses, network),\n }\n if (address === '_') {\n if (presetAddresses[addressKey] !== undefined && presetAddresses[addressKey] !== '') {\n toml.addresses[addressKey] = presetAddresses[addressKey]!\n } else {\n try {\n toml.addresses[addressKey] = AccAddress.toHex(\n getDeployer(addressKey, lzInitiaConfig, network).accAddress\n )\n } catch (e) {\n if (key === moduleName) {\n throw new Error(`Fail to generate context for ${key}. ${(e as Error).toString()}`)\n } else {\n throw new Error(\n `Fail to generate context for dependent module ${key}. ${(e as Error).toString()}`\n )\n }\n }\n }\n }\n }\n }\n return context\n}\n","import { deploy } from '@/deploy'\nimport { Command, createOption } from '@commander-js/extra-typings'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nimport { LzInitiaConfig } from '../types'\n\nconst command = new Command()\n\nexport { command }\n\ncommand\n .name('deploy')\n .description('deploy Initia modules')\n .addOption(createOption('-m, --modules <modules...>', 'modules').makeOptionMandatory(true))\n .addOption(createOption('-n, --network <network>', 'network').makeOptionMandatory(true))\n .addOption(createOption('-v, --variant <variant>', 'variant').makeOptionMandatory(false))\n .action(async (options: { network: string; modules: string[]; variant?: string }, cmd: Command) => {\n const context = cmd.getOptionValue('__CONTEXT__') as LzInitiaConfig\n\n const { modules, variant, network } = options\n for (const module of modules) {\n await deploy(module, context, network as Network, variant ?? context.modules[module]?.variant)\n }\n })\n","import fs from 'fs'\nimport path from 'path'\n\nimport { getMoveContext } from '@/move'\nimport { parseOptions } from '@/options'\nimport { CmdOptions, LzInitiaConfig, MoveToml } from '@/types'\nimport { glob } from 'glob'\nimport { $, ProcessOutput } from 'zx'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\n// eslint-disable-next-line @typescript-eslint/promise-function-async\nexport function buildProcess(\n modulePath: string,\n addresses: { [key: string]: string },\n toml: MoveToml,\n customOptions: CmdOptions = {}\n): Promise<ProcessOutput> {\n const addressesParam = Object.keys(addresses)\n .map((key) => `${key}=${addresses[key]}`)\n .join(',')\n const defaultOptions = {\n '--skip-fetch-latest-git-deps': true,\n '--named-addresses': addressesParam,\n }\n const args = parseOptions(defaultOptions, customOptions)\n return $({\n cwd: modulePath,\n stdio: ['inherit', 'pipe', process.stderr],\n verbose: true,\n })`initiad move build ${args}`\n}\n\nexport async function copyArtifacts(src: string, dest: string): Promise<void> {\n // remove existing artifacts, this is necessary to avoid leaving old artifacts\n if (fs.existsSync(dest)) {\n console.log(`Removing existing artifacts at ${dest}`)\n fs.rmSync(dest, { recursive: true })\n }\n fs.mkdirSync(dest, { recursive: true })\n const moduleDir = path.join(src, 'bytecode_modules')\n const modules = glob.sync('*.mv', { cwd: moduleDir })\n for (const module of modules) {\n const destByteCodePath = path.join(dest, 'bytecode_modules')\n if (!fs.existsSync(destByteCodePath)) {\n fs.mkdirSync(destByteCodePath, { recursive: true })\n }\n await $({\n verbose: true,\n })`cp ${path.join(moduleDir, module)} ${path.join(destByteCodePath, module)}`\n }\n}\n\nexport async function build(\n moduleName: string,\n lzInitiaConfig: LzInitiaConfig,\n network: Network,\n skipBuild = false,\n variant?: string\n): Promise<void> {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n throw new Error(`module ${moduleName} not found`)\n }\n const { modulePath } = module\n const context = getMoveContext(moduleName, lzInitiaConfig, network)\n const pkgName = context[moduleName]!.package.name\n const srcPath = path.join(modulePath, 'build', pkgName)\n const outputDir = lzInitiaConfig.modules[moduleName]?.alias ?? pkgName\n const outputPath = path.join(\n lzInitiaConfig.artifactsPath,\n variant !== undefined && variant.length > 0 ? `${outputDir}-${variant}` : outputDir\n )\n let addresses: { [key: string]: string } = {}\n for (const key of Object.keys(context)) {\n const toml = context[key]!\n if (!(key in toml.addresses)) {\n throw new Error(`address not found for ${key}`)\n }\n addresses = { ...addresses, ...toml.addresses }\n }\n addresses = { ...addresses, ...context[moduleName]!.addresses }\n if (!skipBuild) {\n await buildProcess(modulePath, addresses, context[moduleName]!, {\n ...lzInitiaConfig.compileOptions,\n ...module.compileOptions,\n })\n }\n await copyArtifacts(srcPath, outputPath)\n}\n","import { CmdOptions } from '@/types'\n\nexport function parseOptions(defaultOptions: CmdOptions, customOptions: CmdOptions): string[] {\n const options: CmdOptions = { ...defaultOptions, ...customOptions }\n const res: string[] = []\n for (const key of Object.keys(options)) {\n if (typeof options[key] === 'boolean') {\n if (options[key] === true) {\n res.push(key)\n }\n } else {\n res.push(key)\n res.push(options[key] as string)\n }\n }\n return res\n}\n","import { build } from '@/build'\nimport { Command, createOption } from '@commander-js/extra-typings'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nimport { LzInitiaConfig } from '../types'\n\nconst command = new Command()\n\nexport { command }\n\ncommand\n .name('build')\n .description('build Initia program')\n .addOption(createOption('-m, --modules <modules...>', 'modules').makeOptionMandatory(true))\n .addOption(\n createOption(\n '-p, --module-paths <paths...>',\n 'module paths of modules, use the path in lz-initia.config.ts if not specify'\n ).makeOptionMandatory(false)\n )\n .addOption(createOption('-n, --network <network>', 'network').makeOptionMandatory(true))\n .addOption(createOption('-v, --variant <variant>', 'variant').makeOptionMandatory(false))\n .addOption(createOption('-sb, --skip-build', 'skip build').default(false))\n .action(\n async (\n options: {\n network: string\n modules: string[]\n modulePaths?: string[]\n variant?: string\n skipBuild: boolean\n },\n cmd\n ) => {\n const context = cmd.getOptionValue('__CONTEXT__') as LzInitiaConfig\n const { skipBuild, modules, network, variant, modulePaths } = options\n // replace the modulePath in context with the modulePaths from command line\n if (modulePaths !== undefined) {\n for (let i = 0; i < modulePaths.length; i++) {\n const module = modules[i]\n const moduleConfig = context.modules[module]\n if (moduleConfig !== undefined) {\n moduleConfig.modulePath = modulePaths[i]\n }\n }\n }\n for (const module of modules) {\n await build(module, context, network as Network, skipBuild, variant ?? context.modules[module]?.variant)\n }\n }\n )\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/loader.ts","../src/subCommands/index.ts","../src/client.ts","../src/deployer.ts","../src/errors.ts","../src/move.ts","../src/deploy.ts","../src/subCommands/deploy.ts","../src/options.ts","../src/build.ts","../src/subCommands/build.ts","../src/cli.ts"],"names":["command","LCDClient","MnemonicKey","AccAddress","path","fs","parse","deploymentPath","EndpointVersion","networkToStage","Stage","crypto","networkToEnv","glob","moduleName","MsgPublish","Wallet","Command","createOption","$","getLogger","findUpSync","process"],"mappings":"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","file":"cli.cjs","sourcesContent":["import { LzInitiaConfig } from '@/types'\n\nexport function loadConfig(configPath: string): LzInitiaConfig {\n // WARNING: require('ts-node') will cause '[ERROR] Unterminated template (867:31) [plugin commonjs]' in some cases\n // this error can be eliminated by assigning the name to a variable and require that variable\n const moduleName = 'ts-node'\n const tsnode = require(moduleName) as typeof import('ts-node')\n tsnode.register({\n transpileOnly: true,\n typeCheck: false,\n })\n\n try {\n type ImportType = LzInitiaConfig | { default: LzInitiaConfig }\n const imported = require(configPath) as ImportType\n return 'default' in imported ? imported.default : imported\n } catch (e) {\n if (e !== null && typeof e === 'object' && 'code' in e && e.code === 'ERR_REQUIRE_ESM') {\n throw new Error(\n `Your project is an ESM project (you have \"type\": \"module\" set in your package.json) but your LayerZero config file uses the .js extension.`\n )\n }\n\n throw e\n }\n}\n","export { command as deploy } from './deploy'\nexport { command as build } from './build'\n","import { LzInitiaConfig } from '@/types'\nimport { LCDClient } from '@initia/initia.js'\n\nimport { Environment } from '@layerzerolabs/lz-definitions'\n\nexport function getInitiaClient(env: Environment, config: LzInitiaConfig): LCDClient {\n const url = config.network?.[env] as string | undefined\n if (url === undefined) {\n throw new Error(`No network url for ${env} found in lz-initia.config.ts`)\n }\n const lcd = new LCDClient(url)\n return lcd\n}\n","import { loadConfig } from '@/loader'\nimport { LzInitiaConfig } from '@/types'\nimport { MnemonicKey } from '@initia/initia.js'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nexport function isInitiaAccount(account: object | undefined): account is MnemonicKey {\n return account !== undefined && account instanceof MnemonicKey\n}\n\nexport function getDeployer(moduleName: string, lzInitiaConfig: LzInitiaConfig, network: Network): MnemonicKey {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n if (lzInitiaConfig.baseModules && lzInitiaConfig.baseModules.length > 0) {\n for (const baseModule of lzInitiaConfig.baseModules) {\n const baseConfig = loadConfig(baseModule)\n try {\n return getDeployer(moduleName, baseConfig, network)\n } catch (e) {\n /* ignore */\n }\n }\n }\n throw new Error(\n `Module ${moduleName} not found. Make sure it is defined in lz-initia.config.ts and double check the key is the package name in Move.toml.`\n )\n }\n const moduleDeployer = isInitiaAccount(module.deployer) ? module.deployer : module.deployer?.[network]\n const defaultDeployer = isInitiaAccount(lzInitiaConfig.defaultDeployer)\n ? lzInitiaConfig.defaultDeployer\n : lzInitiaConfig.defaultDeployer?.[network]\n const deployer = moduleDeployer ?? defaultDeployer\n if (!deployer) {\n throw new Error(`deployer for module ${moduleName} not found`)\n }\n return deployer\n}\n","import { AxiosError, MoveContext } from '@/types'\nimport { AccAddress } from '@initia/initia.js'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nfunction isAxiosError(error: any): error is AxiosError {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return error?.response?.data?.message !== undefined\n}\n\nfunction handleDepMissingError(error: AxiosError, moduleName: string, context: MoveContext): void {\n if (error.response.data.message.includes('EPACKAGE_DEP_MISSING')) {\n throw new Error(\n `Deploy ${moduleName} failed with EPACKAGE_DEP_MISSING, make sure you have deployed the dependent module [${Object.keys(\n context\n )\n .filter((module) => module !== moduleName)\n .join(',')}]`\n )\n }\n}\n\nfunction handleAccountNotFoundError(\n error: AxiosError,\n moduleName: string,\n context: MoveContext,\n network: Network\n): void {\n const address = context[moduleName]?.addresses[moduleName]\n if (address === undefined) {\n return\n }\n if (error.response.data.message.includes(`account ${AccAddress.fromHex(address)} not found`)) {\n throw new Error(\n `${error.response.data.message}, make sure you have funded the account ${AccAddress.fromHex(address)}(${address}) on ${network}`\n )\n }\n}\n\nfunction handleSenderNotMatchError(error: AxiosError, moduleName: string): void {\n if (error.response.data.message.includes('MODULE_ADDRESS_DOES_NOT_MATCH_SENDER')) {\n throw new Error(\n `Deploy ${moduleName} failed with MODULE_ADDRESS_DOES_NOT_MATCH_SENDER, make sure you compile ${moduleName} with the deployer account address`\n )\n }\n}\n\nfunction handleOtherAxiosError(error: AxiosError): void {\n throw new Error(error.response.data.message)\n}\n\nexport function handleError(error: Error, moduleName: string, context: MoveContext, network: Network): void {\n if (isAxiosError(error)) {\n handleDepMissingError(error, moduleName, context)\n handleAccountNotFoundError(error, moduleName, context, network)\n handleSenderNotMatchError(error, moduleName)\n handleOtherAxiosError(error)\n }\n throw error\n}\n","import fs from 'fs'\nimport path from 'path'\n\nimport { getDeployer } from '@/deployer'\nimport { LzInitiaConfig, ModuleAddresses, MoveContext, MoveToml } from '@/types'\nimport { AccAddress } from '@initia/initia.js'\nimport { parse } from 'smol-toml'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nexport function getRawMoveContextByPath(modulePath: string): MoveContext {\n const tomlPath = path.join(modulePath, 'Move.toml')\n if (!fs.existsSync(tomlPath)) {\n throw new Error(`Move.toml not found in ${tomlPath}`)\n }\n const toml = parse(fs.readFileSync(tomlPath, 'utf-8')) as unknown as MoveToml\n const { dependencies } = toml\n let result: MoveContext = { [toml.package.name]: toml } satisfies MoveContext\n if (dependencies !== undefined) {\n Object.keys(dependencies)\n .filter((key) => {\n return dependencies[key]?.local !== undefined\n })\n .forEach((key) => {\n const dependency = dependencies[key] as { local: string }\n const dependencyPath = path.join(modulePath, dependency.local)\n result = { ...getRawMoveContextByPath(dependencyPath), ...result } satisfies MoveContext\n })\n }\n return result\n}\n\nexport function parseAddresses(addresses: ModuleAddresses, network: Network): { [key in string]?: string } {\n if (addresses === undefined) {\n return {}\n }\n const result: { [key in string]?: string } = {}\n for (const key of Object.keys(addresses)) {\n const value = addresses[key]\n if (typeof value === 'string') {\n result[key] = value\n } else {\n const networkAddress = value[network]\n if (networkAddress === undefined) {\n throw new Error(`${key} address not found for network ${network}`)\n }\n result[key] = networkAddress\n }\n }\n return result\n}\n\nexport function getMoveContext(moduleName: string, lzInitiaConfig: LzInitiaConfig, network: Network): MoveContext {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n throw new Error(`module ${moduleName} not found when getting Move context`)\n }\n const context = getRawMoveContextByPath(module.modulePath)\n for (const key of Object.keys(context)) {\n const toml = context[key]!\n for (const addressKey of Object.keys(toml.addresses)) {\n const address = toml.addresses[addressKey]\n const presetAddresses = {\n ...parseAddresses(lzInitiaConfig.modules[key]?.addresses, network),\n ...parseAddresses(lzInitiaConfig.modules[moduleName]?.addresses, network),\n }\n if (address === '_') {\n if (presetAddresses[addressKey] !== undefined && presetAddresses[addressKey] !== '') {\n toml.addresses[addressKey] = presetAddresses[addressKey]!\n } else {\n try {\n toml.addresses[addressKey] = AccAddress.toHex(\n getDeployer(addressKey, lzInitiaConfig, network).accAddress\n )\n } catch (e) {\n if (key === moduleName) {\n throw new Error(`Fail to generate context for ${key}. ${(e as Error).toString()}`)\n } else {\n throw new Error(\n `Fail to generate context for dependent module ${key}. ${(e as Error).toString()}`\n )\n }\n }\n }\n }\n }\n }\n return context\n}\n","import fs from 'fs'\nimport * as crypto from 'node:crypto'\nimport path from 'path'\n\nimport { getInitiaClient } from '@/client'\nimport { getDeployer } from '@/deployer'\nimport { handleError } from '@/errors'\nimport { getMoveContext } from '@/move'\nimport { LzInitiaConfig } from '@/types'\nimport { AccAddress, MsgPublish, TxError, Wallet } from '@initia/initia.js'\nimport { glob } from 'glob'\n\nimport { EndpointVersion, Network, Stage, networkToEnv, networkToStage } from '@layerzerolabs/lz-definitions'\n\nfunction deploymentPath(pkgName: string, dest: string, network: Network, variant?: string): string {\n const deploymentPath = path.join(dest, network)\n return path.join(deploymentPath, `${pkgWithVariant(pkgName, variant)}.json`)\n}\n\nexport function saveDeployment(\n moduleName: string,\n pkgName: string,\n address: string,\n dest: string,\n network: Network,\n bytecodeHash: string,\n hash: string,\n variant?: string,\n compatibleVersions = [EndpointVersion.V1, EndpointVersion.V2]\n): void {\n const destPath = deploymentPath(pkgName, dest, network, variant)\n const deploymentDir = path.dirname(destPath)\n if (!fs.existsSync(deploymentDir)) {\n fs.mkdirSync(deploymentDir, { recursive: true })\n }\n fs.writeFileSync(\n destPath,\n JSON.stringify(\n {\n address,\n name: pkgWithVariant(pkgName, variant),\n moduleName,\n network,\n compatibleVersions,\n bytecodeHash,\n transactionHash: hash,\n },\n null,\n 2\n )\n )\n console.log(`Deployment saved to ${destPath}`)\n}\n\nfunction needDeploy(pkgName: string, dest: string, network: Network, bytecodeHash: string, variant?: string): boolean {\n if (networkToStage(network) === Stage.SANDBOX) {\n return true\n }\n const destPath = deploymentPath(pkgName, dest, network, variant)\n if (fs.existsSync(destPath)) {\n const deployment = JSON.parse(fs.readFileSync(destPath, 'utf-8')) as { bytecodeHash: string }\n return deployment.bytecodeHash !== bytecodeHash\n }\n return true\n}\n\nfunction pkgWithVariant(pkgName: string, variant?: string): string {\n return variant !== undefined && variant.length > 0 ? `${pkgName}-${variant}` : pkgName\n}\n\nfunction getBytecodesHash(bytecodes: Uint8Array[]): string {\n // sha256 hash of all bytecodes\n const hash = crypto.createHash('sha256')\n bytecodes.forEach((bytecode) => {\n hash.update(bytecode)\n })\n return hash.digest('hex')\n}\n\nexport async function deploy(\n moduleName: string,\n lzInitiaConfig: LzInitiaConfig,\n network: Network,\n variant?: string\n): Promise<void> {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n throw new Error(`module ${moduleName} not found`)\n }\n const env = networkToEnv(network, EndpointVersion.V2)\n const client = getInitiaClient(env, lzInitiaConfig)\n const deployer = getDeployer(moduleName, lzInitiaConfig, network)\n const context = getMoveContext(moduleName, lzInitiaConfig, network)\n const pkgName = lzInitiaConfig.modules[moduleName]?.alias ?? context[moduleName]!.package.name\n const moduleDir = path.join(lzInitiaConfig.artifactsPath, `${pkgWithVariant(pkgName, variant)}/bytecode_modules`)\n\n const moduleNames: string[] = glob.sync('*.mv', { cwd: moduleDir })\n const moduleBuffers = moduleNames.map((moduleName) => fs.readFileSync(path.join(moduleDir, moduleName)))\n const bytecodeHash = getBytecodesHash(moduleBuffers)\n if (!needDeploy(pkgName, lzInitiaConfig.deploymentPath, network, bytecodeHash, variant)) {\n console.warn(`Code of ${moduleName} has not changed, skipping deploy`)\n return\n }\n try {\n // TODO policy from config\n const msgs = [\n new MsgPublish(\n deployer.accAddress,\n moduleBuffers.map((codeBytes) => codeBytes.toString('base64')),\n MsgPublish.Policy.COMPATIBLE\n ),\n ]\n const wallet = new Wallet(client, deployer)\n const gasPrices =\n lzInitiaConfig.gasPrice?.[network] === undefined ? undefined : `${lzInitiaConfig.gasPrice[network]}uinit`\n const signedTx = await wallet.createAndSignTx({ msgs, gasPrices })\n const tx = await client.tx.broadcast(signedTx)\n if (((tx as TxError).code as number) !== 0) {\n throw new Error(tx.raw_log)\n }\n console.log(`Deploy transaction ${tx.txhash} successfully`)\n saveDeployment(\n moduleName,\n pkgName,\n AccAddress.toHex(deployer.accAddress),\n lzInitiaConfig.deploymentPath,\n network,\n bytecodeHash,\n tx.txhash,\n variant,\n lzInitiaConfig.compatibleVersions\n )\n } catch (e: unknown) {\n if (e instanceof Error) {\n handleError(e, moduleName, context, network)\n } else {\n throw e\n }\n }\n}\n","import { deploy } from '@/deploy'\nimport { Command, createOption } from '@commander-js/extra-typings'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nimport { LzInitiaConfig } from '../types'\n\nconst command = new Command()\n\nexport { command }\n\ncommand\n .name('deploy')\n .description('deploy Initia modules')\n .addOption(createOption('-m, --modules <modules...>', 'modules').makeOptionMandatory(true))\n .addOption(createOption('-n, --network <network>', 'network').makeOptionMandatory(true))\n .addOption(createOption('-v, --variant <variant>', 'variant').makeOptionMandatory(false))\n .action(async (options: { network: string; modules: string[]; variant?: string }, cmd: Command) => {\n const context = cmd.getOptionValue('__CONTEXT__') as LzInitiaConfig\n\n const { modules, variant, network } = options\n for (const module of modules) {\n await deploy(module, context, network as Network, variant ?? context.modules[module]?.variant)\n }\n })\n","import { CmdOptions } from '@/types'\n\nexport function parseOptions(defaultOptions: CmdOptions, customOptions: CmdOptions): string[] {\n const options: CmdOptions = { ...defaultOptions, ...customOptions }\n const res: string[] = []\n for (const key of Object.keys(options)) {\n if (typeof options[key] === 'boolean') {\n if (options[key] === true) {\n res.push(key)\n }\n } else {\n res.push(key)\n res.push(options[key] as string)\n }\n }\n return res\n}\n","import fs from 'fs'\nimport path from 'path'\n\nimport { getMoveContext } from '@/move'\nimport { parseOptions } from '@/options'\nimport { CmdOptions, LzInitiaConfig, MoveToml } from '@/types'\nimport { glob } from 'glob'\nimport { $, ProcessOutput } from 'zx'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\n// eslint-disable-next-line @typescript-eslint/promise-function-async\nexport function buildProcess(\n modulePath: string,\n addresses: { [key: string]: string },\n toml: MoveToml,\n customOptions: CmdOptions = {}\n): Promise<ProcessOutput> {\n const addressesParam = Object.keys(addresses)\n .map((key) => `${key}=${addresses[key]}`)\n .join(',')\n const defaultOptions = {\n '--skip-fetch-latest-git-deps': true,\n '--named-addresses': addressesParam,\n }\n const args = parseOptions(defaultOptions, customOptions)\n return $({\n cwd: modulePath,\n stdio: ['inherit', 'pipe', process.stderr],\n verbose: true,\n })`initiad move build ${args}`\n}\n\nexport async function copyArtifacts(src: string, dest: string): Promise<void> {\n // remove existing artifacts, this is necessary to avoid leaving old artifacts\n if (fs.existsSync(dest)) {\n console.log(`Removing existing artifacts at ${dest}`)\n fs.rmSync(dest, { recursive: true })\n }\n fs.mkdirSync(dest, { recursive: true })\n const moduleDir = path.join(src, 'bytecode_modules')\n const modules = glob.sync('*.mv', { cwd: moduleDir })\n for (const module of modules) {\n const destByteCodePath = path.join(dest, 'bytecode_modules')\n if (!fs.existsSync(destByteCodePath)) {\n fs.mkdirSync(destByteCodePath, { recursive: true })\n }\n await $({\n verbose: true,\n })`cp ${path.join(moduleDir, module)} ${path.join(destByteCodePath, module)}`\n }\n}\n\nexport async function build(\n moduleName: string,\n lzInitiaConfig: LzInitiaConfig,\n network: Network,\n skipBuild = false,\n variant?: string\n): Promise<void> {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n throw new Error(`module ${moduleName} not found`)\n }\n const { modulePath } = module\n const context = getMoveContext(moduleName, lzInitiaConfig, network)\n const pkgName = context[moduleName]!.package.name\n const srcPath = path.join(modulePath, 'build', pkgName)\n const outputDir = lzInitiaConfig.modules[moduleName]?.alias ?? pkgName\n const outputPath = path.join(\n lzInitiaConfig.artifactsPath,\n variant !== undefined && variant.length > 0 ? `${outputDir}-${variant}` : outputDir\n )\n let addresses: { [key: string]: string } = {}\n for (const key of Object.keys(context)) {\n const toml = context[key]!\n if (!(key in toml.addresses)) {\n throw new Error(`address not found for ${key}`)\n }\n addresses = { ...addresses, ...toml.addresses }\n }\n addresses = { ...addresses, ...context[moduleName]!.addresses }\n if (!skipBuild) {\n await buildProcess(modulePath, addresses, context[moduleName]!, {\n ...lzInitiaConfig.compileOptions,\n ...module.compileOptions,\n })\n }\n await copyArtifacts(srcPath, outputPath)\n}\n","import { build } from '@/build'\nimport { Command, createOption } from '@commander-js/extra-typings'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nimport { LzInitiaConfig } from '../types'\n\nconst command = new Command()\n\nexport { command }\n\ncommand\n .name('build')\n .description('build Initia program')\n .addOption(createOption('-m, --modules <modules...>', 'modules').makeOptionMandatory(true))\n .addOption(\n createOption(\n '-p, --module-paths <paths...>',\n 'module paths of modules, use the path in lz-initia.config.ts if not specify'\n ).makeOptionMandatory(false)\n )\n .addOption(createOption('-n, --network <network>', 'network').makeOptionMandatory(true))\n .addOption(createOption('-v, --variant <variant>', 'variant').makeOptionMandatory(false))\n .addOption(createOption('-sb, --skip-build', 'skip build').default(false))\n .action(\n async (\n options: {\n network: string\n modules: string[]\n modulePaths?: string[]\n variant?: string\n skipBuild: boolean\n },\n cmd\n ) => {\n const context = cmd.getOptionValue('__CONTEXT__') as LzInitiaConfig\n const { skipBuild, modules, network, variant, modulePaths } = options\n // replace the modulePath in context with the modulePaths from command line\n if (modulePaths !== undefined) {\n for (let i = 0; i < modulePaths.length; i++) {\n const module = modules[i]\n const moduleConfig = context.modules[module]\n if (moduleConfig !== undefined) {\n moduleConfig.modulePath = modulePaths[i]\n }\n }\n }\n for (const module of modules) {\n await build(module, context, network as Network, skipBuild, variant ?? context.modules[module]?.variant)\n }\n }\n )\n","import fs from 'fs'\nimport path from 'path'\nimport process from 'process'\n\nimport { loadConfig } from '@/loader'\nimport { Command } from '@commander-js/extra-typings'\nimport { sync as findUpSync } from 'find-up'\nimport { $ } from 'zx/core'\n\nimport { getLogger } from '@layerzerolabs/lz-utilities'\n\nimport * as subCommands from './subCommands'\n\nconst program = new Command()\n// iterate over subCommands and add them to the program\nconst logger = getLogger()\n\nprogram\n .name('lz-initia-cli')\n .description('Wrapper of Initia cli')\n .version('0.1.0')\n .action((_, command: Command) => {\n logger.info('Please specify a subcommand')\n command.help()\n })\n\nasync function checkIfInitiaInstalled(): Promise<void> {\n try {\n await $`initiad version`\n } catch (e) {\n throw new Error('Initia cli is not installed')\n }\n}\n\nfunction checkIfInitiaConfigExists(): string {\n const packagePath = findUpSync('package.json', { cwd: process.cwd() })\n if (packagePath === undefined) {\n throw new Error('package.json not found')\n }\n const configPath = path.join(path.dirname(packagePath), 'lz-initia.config.ts')\n if (!fs.existsSync(configPath)) {\n throw new Error('lz-initia.config.ts not found, please create one in the same directory as package.json')\n }\n return configPath\n}\n\nasync function main(): Promise<void> {\n await checkIfInitiaInstalled()\n const configPath = checkIfInitiaConfigExists()\n const config = loadConfig(configPath)\n Object.values(subCommands).forEach((subCommand: Command) => {\n subCommand.setOptionValue('__CONTEXT__', config)\n program.addCommand(subCommand)\n })\n await program.parseAsync()\n}\n\nmain()\n .then(() => process.exit(process.exitCode))\n .catch((error: unknown) => {\n logger.error(error)\n process.exit(1)\n })\n"]}
|
package/dist/cli.mjs
CHANGED
|
@@ -5,7 +5,7 @@ import { Command, createOption } from '@commander-js/extra-typings';
|
|
|
5
5
|
import { sync } from 'find-up';
|
|
6
6
|
import { $ as $$1 } from 'zx/core';
|
|
7
7
|
import { getLogger } from '@layerzerolabs/lz-utilities';
|
|
8
|
-
import * as crypto from 'crypto';
|
|
8
|
+
import * as crypto from 'node:crypto';
|
|
9
9
|
import { MsgPublish, Wallet, AccAddress, LCDClient, MnemonicKey } from '@initia/initia.js';
|
|
10
10
|
import { parse } from 'smol-toml';
|
|
11
11
|
import { glob } from 'glob';
|
|
@@ -16,8 +16,7 @@ var __defProp = Object.defineProperty;
|
|
|
16
16
|
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
17
17
|
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
18
18
|
}) : x)(function(x) {
|
|
19
|
-
if (typeof require !== "undefined")
|
|
20
|
-
return require.apply(this, arguments);
|
|
19
|
+
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
21
20
|
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
22
21
|
});
|
|
23
22
|
var __export = (target, all) => {
|
|
@@ -457,5 +456,5 @@ main().then(() => process2.exit(process2.exitCode)).catch((error) => {
|
|
|
457
456
|
logger.error(error);
|
|
458
457
|
process2.exit(1);
|
|
459
458
|
});
|
|
460
|
-
//# sourceMappingURL=
|
|
459
|
+
//# sourceMappingURL=cli.mjs.map
|
|
461
460
|
//# sourceMappingURL=cli.mjs.map
|
package/dist/cli.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli.ts","../src/loader.ts","../src/subCommands/index.ts","../src/deploy.ts","../src/client.ts","../src/deployer.ts","../src/errors.ts","../src/move.ts","../src/subCommands/deploy.ts","../src/build.ts","../src/options.ts","../src/subCommands/build.ts"],"names":["fs","path","process","Command","$","command","AccAddress","deploymentPath","moduleName","glob","createOption"],"mappings":"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","sourcesContent":["import fs from 'fs'\nimport path from 'path'\nimport process from 'process'\n\nimport { loadConfig } from '@/loader'\nimport { Command } from '@commander-js/extra-typings'\nimport { sync as findUpSync } from 'find-up'\nimport { $ } from 'zx/core'\n\nimport { getLogger } from '@layerzerolabs/lz-utilities'\n\nimport * as subCommands from './subCommands'\n\nconst program = new Command()\n// iterate over subCommands and add them to the program\nconst logger = getLogger()\n\nprogram\n .name('lz-initia-cli')\n .description('Wrapper of Initia cli')\n .version('0.1.0')\n .action((_, command: Command) => {\n logger.info('Please specify a subcommand')\n command.help()\n })\n\nasync function checkIfInitiaInstalled(): Promise<void> {\n try {\n await $`initiad version`\n } catch (e) {\n throw new Error('Initia cli is not installed')\n }\n}\n\nfunction checkIfInitiaConfigExists(): string {\n const packagePath = findUpSync('package.json', { cwd: process.cwd() })\n if (packagePath === undefined) {\n throw new Error('package.json not found')\n }\n const configPath = path.join(path.dirname(packagePath), 'lz-initia.config.ts')\n if (!fs.existsSync(configPath)) {\n throw new Error('lz-initia.config.ts not found, please create one in the same directory as package.json')\n }\n return configPath\n}\n\nasync function main(): Promise<void> {\n await checkIfInitiaInstalled()\n const configPath = checkIfInitiaConfigExists()\n const config = loadConfig(configPath)\n Object.values(subCommands).forEach((subCommand: Command) => {\n subCommand.setOptionValue('__CONTEXT__', config)\n program.addCommand(subCommand)\n })\n await program.parseAsync()\n}\n\nmain()\n .then(() => process.exit(process.exitCode))\n .catch((error: unknown) => {\n logger.error(error)\n process.exit(1)\n })\n","import { LzInitiaConfig } from '@/types'\n\nexport function loadConfig(configPath: string): LzInitiaConfig {\n // WARNING: require('ts-node') will cause '[ERROR] Unterminated template (867:31) [plugin commonjs]' in some cases\n // this error can be eliminated by assigning the name to a variable and require that variable\n const moduleName = 'ts-node'\n const tsnode = require(moduleName) as typeof import('ts-node')\n tsnode.register({\n transpileOnly: true,\n typeCheck: false,\n })\n\n try {\n type ImportType = LzInitiaConfig | { default: LzInitiaConfig }\n const imported = require(configPath) as ImportType\n return 'default' in imported ? imported.default : imported\n } catch (e) {\n if (e !== null && typeof e === 'object' && 'code' in e && e.code === 'ERR_REQUIRE_ESM') {\n throw new Error(\n `Your project is an ESM project (you have \"type\": \"module\" set in your package.json) but your LayerZero config file uses the .js extension.`\n )\n }\n\n throw e\n }\n}\n","export { command as deploy } from './deploy'\nexport { command as build } from './build'\n","import fs from 'fs'\nimport * as crypto from 'node:crypto'\nimport path from 'path'\n\nimport { getInitiaClient } from '@/client'\nimport { getDeployer } from '@/deployer'\nimport { handleError } from '@/errors'\nimport { getMoveContext } from '@/move'\nimport { LzInitiaConfig } from '@/types'\nimport { AccAddress, MsgPublish, TxError, Wallet } from '@initia/initia.js'\nimport { glob } from 'glob'\n\nimport { EndpointVersion, Network, Stage, networkToEnv, networkToStage } from '@layerzerolabs/lz-definitions'\n\nfunction deploymentPath(pkgName: string, dest: string, network: Network, variant?: string): string {\n const deploymentPath = path.join(dest, network)\n return path.join(deploymentPath, `${pkgWithVariant(pkgName, variant)}.json`)\n}\n\nexport function saveDeployment(\n moduleName: string,\n pkgName: string,\n address: string,\n dest: string,\n network: Network,\n bytecodeHash: string,\n hash: string,\n variant?: string,\n compatibleVersions = [EndpointVersion.V1, EndpointVersion.V2]\n): void {\n const destPath = deploymentPath(pkgName, dest, network, variant)\n const deploymentDir = path.dirname(destPath)\n if (!fs.existsSync(deploymentDir)) {\n fs.mkdirSync(deploymentDir, { recursive: true })\n }\n fs.writeFileSync(\n destPath,\n JSON.stringify(\n {\n address,\n name: pkgWithVariant(pkgName, variant),\n moduleName,\n network,\n compatibleVersions,\n bytecodeHash,\n transactionHash: hash,\n },\n null,\n 2\n )\n )\n console.log(`Deployment saved to ${destPath}`)\n}\n\nfunction needDeploy(pkgName: string, dest: string, network: Network, bytecodeHash: string, variant?: string): boolean {\n if (networkToStage(network) === Stage.SANDBOX) {\n return true\n }\n const destPath = deploymentPath(pkgName, dest, network, variant)\n if (fs.existsSync(destPath)) {\n const deployment = JSON.parse(fs.readFileSync(destPath, 'utf-8')) as { bytecodeHash: string }\n return deployment.bytecodeHash !== bytecodeHash\n }\n return true\n}\n\nfunction pkgWithVariant(pkgName: string, variant?: string): string {\n return variant !== undefined && variant.length > 0 ? `${pkgName}-${variant}` : pkgName\n}\n\nfunction getBytecodesHash(bytecodes: Uint8Array[]): string {\n // sha256 hash of all bytecodes\n const hash = crypto.createHash('sha256')\n bytecodes.forEach((bytecode) => {\n hash.update(bytecode)\n })\n return hash.digest('hex')\n}\n\nexport async function deploy(\n moduleName: string,\n lzInitiaConfig: LzInitiaConfig,\n network: Network,\n variant?: string\n): Promise<void> {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n throw new Error(`module ${moduleName} not found`)\n }\n const env = networkToEnv(network, EndpointVersion.V2)\n const client = getInitiaClient(env, lzInitiaConfig)\n const deployer = getDeployer(moduleName, lzInitiaConfig, network)\n const context = getMoveContext(moduleName, lzInitiaConfig, network)\n const pkgName = lzInitiaConfig.modules[moduleName]?.alias ?? context[moduleName]!.package.name\n const moduleDir = path.join(lzInitiaConfig.artifactsPath, `${pkgWithVariant(pkgName, variant)}/bytecode_modules`)\n\n const moduleNames: string[] = glob.sync('*.mv', { cwd: moduleDir })\n const moduleBuffers = moduleNames.map((moduleName) => fs.readFileSync(path.join(moduleDir, moduleName)))\n const bytecodeHash = getBytecodesHash(moduleBuffers)\n if (!needDeploy(pkgName, lzInitiaConfig.deploymentPath, network, bytecodeHash, variant)) {\n console.warn(`Code of ${moduleName} has not changed, skipping deploy`)\n return\n }\n try {\n // TODO policy from config\n const msgs = [\n new MsgPublish(\n deployer.accAddress,\n moduleBuffers.map((codeBytes) => codeBytes.toString('base64')),\n MsgPublish.Policy.COMPATIBLE\n ),\n ]\n const wallet = new Wallet(client, deployer)\n const gasPrices =\n lzInitiaConfig.gasPrice?.[network] === undefined ? undefined : `${lzInitiaConfig.gasPrice[network]}uinit`\n const signedTx = await wallet.createAndSignTx({ msgs, gasPrices })\n const tx = await client.tx.broadcast(signedTx)\n if (((tx as TxError).code as number) !== 0) {\n throw new Error(tx.raw_log)\n }\n console.log(`Deploy transaction ${tx.txhash} successfully`)\n saveDeployment(\n moduleName,\n pkgName,\n AccAddress.toHex(deployer.accAddress),\n lzInitiaConfig.deploymentPath,\n network,\n bytecodeHash,\n tx.txhash,\n variant,\n lzInitiaConfig.compatibleVersions\n )\n } catch (e: unknown) {\n if (e instanceof Error) {\n handleError(e, moduleName, context, network)\n } else {\n throw e\n }\n }\n}\n","import { LzInitiaConfig } from '@/types'\nimport { LCDClient } from '@initia/initia.js'\n\nimport { Environment } from '@layerzerolabs/lz-definitions'\n\nexport function getInitiaClient(env: Environment, config: LzInitiaConfig): LCDClient {\n const url = config.network?.[env] as string | undefined\n if (url === undefined) {\n throw new Error(`No network url for ${env} found in lz-initia.config.ts`)\n }\n const lcd = new LCDClient(url)\n return lcd\n}\n","import { loadConfig } from '@/loader'\nimport { LzInitiaConfig } from '@/types'\nimport { MnemonicKey } from '@initia/initia.js'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nexport function isInitiaAccount(account: object | undefined): account is MnemonicKey {\n return account !== undefined && account instanceof MnemonicKey\n}\n\nexport function getDeployer(moduleName: string, lzInitiaConfig: LzInitiaConfig, network: Network): MnemonicKey {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n if (lzInitiaConfig.baseModules && lzInitiaConfig.baseModules.length > 0) {\n for (const baseModule of lzInitiaConfig.baseModules) {\n const baseConfig = loadConfig(baseModule)\n try {\n return getDeployer(moduleName, baseConfig, network)\n } catch (e) {\n /* ignore */\n }\n }\n }\n throw new Error(\n `Module ${moduleName} not found. Make sure it is defined in lz-initia.config.ts and double check the key is the package name in Move.toml.`\n )\n }\n const moduleDeployer = isInitiaAccount(module.deployer) ? module.deployer : module.deployer?.[network]\n const defaultDeployer = isInitiaAccount(lzInitiaConfig.defaultDeployer)\n ? lzInitiaConfig.defaultDeployer\n : lzInitiaConfig.defaultDeployer?.[network]\n const deployer = moduleDeployer ?? defaultDeployer\n if (!deployer) {\n throw new Error(`deployer for module ${moduleName} not found`)\n }\n return deployer\n}\n","import { AxiosError, MoveContext } from '@/types'\nimport { AccAddress } from '@initia/initia.js'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nfunction isAxiosError(error: any): error is AxiosError {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return error?.response?.data?.message !== undefined\n}\n\nfunction handleDepMissingError(error: AxiosError, moduleName: string, context: MoveContext): void {\n if (error.response.data.message.includes('EPACKAGE_DEP_MISSING')) {\n throw new Error(\n `Deploy ${moduleName} failed with EPACKAGE_DEP_MISSING, make sure you have deployed the dependent module [${Object.keys(\n context\n )\n .filter((module) => module !== moduleName)\n .join(',')}]`\n )\n }\n}\n\nfunction handleAccountNotFoundError(\n error: AxiosError,\n moduleName: string,\n context: MoveContext,\n network: Network\n): void {\n const address = context[moduleName]?.addresses[moduleName]\n if (address === undefined) {\n return\n }\n if (error.response.data.message.includes(`account ${AccAddress.fromHex(address)} not found`)) {\n throw new Error(\n `${error.response.data.message}, make sure you have funded the account ${AccAddress.fromHex(address)}(${address}) on ${network}`\n )\n }\n}\n\nfunction handleSenderNotMatchError(error: AxiosError, moduleName: string): void {\n if (error.response.data.message.includes('MODULE_ADDRESS_DOES_NOT_MATCH_SENDER')) {\n throw new Error(\n `Deploy ${moduleName} failed with MODULE_ADDRESS_DOES_NOT_MATCH_SENDER, make sure you compile ${moduleName} with the deployer account address`\n )\n }\n}\n\nfunction handleOtherAxiosError(error: AxiosError): void {\n throw new Error(error.response.data.message)\n}\n\nexport function handleError(error: Error, moduleName: string, context: MoveContext, network: Network): void {\n if (isAxiosError(error)) {\n handleDepMissingError(error, moduleName, context)\n handleAccountNotFoundError(error, moduleName, context, network)\n handleSenderNotMatchError(error, moduleName)\n handleOtherAxiosError(error)\n }\n throw error\n}\n","import fs from 'fs'\nimport path from 'path'\n\nimport { getDeployer } from '@/deployer'\nimport { LzInitiaConfig, ModuleAddresses, MoveContext, MoveToml } from '@/types'\nimport { AccAddress } from '@initia/initia.js'\nimport { parse } from 'smol-toml'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nexport function getRawMoveContextByPath(modulePath: string): MoveContext {\n const tomlPath = path.join(modulePath, 'Move.toml')\n if (!fs.existsSync(tomlPath)) {\n throw new Error(`Move.toml not found in ${tomlPath}`)\n }\n const toml = parse(fs.readFileSync(tomlPath, 'utf-8')) as unknown as MoveToml\n const { dependencies } = toml\n let result: MoveContext = { [toml.package.name]: toml } satisfies MoveContext\n if (dependencies !== undefined) {\n Object.keys(dependencies)\n .filter((key) => {\n return dependencies[key]?.local !== undefined\n })\n .forEach((key) => {\n const dependency = dependencies[key] as { local: string }\n const dependencyPath = path.join(modulePath, dependency.local)\n result = { ...getRawMoveContextByPath(dependencyPath), ...result } satisfies MoveContext\n })\n }\n return result\n}\n\nexport function parseAddresses(addresses: ModuleAddresses, network: Network): { [key in string]?: string } {\n if (addresses === undefined) {\n return {}\n }\n const result: { [key in string]?: string } = {}\n for (const key of Object.keys(addresses)) {\n const value = addresses[key]\n if (typeof value === 'string') {\n result[key] = value\n } else {\n const networkAddress = value[network]\n if (networkAddress === undefined) {\n throw new Error(`${key} address not found for network ${network}`)\n }\n result[key] = networkAddress\n }\n }\n return result\n}\n\nexport function getMoveContext(moduleName: string, lzInitiaConfig: LzInitiaConfig, network: Network): MoveContext {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n throw new Error(`module ${moduleName} not found when getting Move context`)\n }\n const context = getRawMoveContextByPath(module.modulePath)\n for (const key of Object.keys(context)) {\n const toml = context[key]!\n for (const addressKey of Object.keys(toml.addresses)) {\n const address = toml.addresses[addressKey]\n const presetAddresses = {\n ...parseAddresses(lzInitiaConfig.modules[key]?.addresses, network),\n ...parseAddresses(lzInitiaConfig.modules[moduleName]?.addresses, network),\n }\n if (address === '_') {\n if (presetAddresses[addressKey] !== undefined && presetAddresses[addressKey] !== '') {\n toml.addresses[addressKey] = presetAddresses[addressKey]!\n } else {\n try {\n toml.addresses[addressKey] = AccAddress.toHex(\n getDeployer(addressKey, lzInitiaConfig, network).accAddress\n )\n } catch (e) {\n if (key === moduleName) {\n throw new Error(`Fail to generate context for ${key}. ${(e as Error).toString()}`)\n } else {\n throw new Error(\n `Fail to generate context for dependent module ${key}. ${(e as Error).toString()}`\n )\n }\n }\n }\n }\n }\n }\n return context\n}\n","import { deploy } from '@/deploy'\nimport { Command, createOption } from '@commander-js/extra-typings'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nimport { LzInitiaConfig } from '../types'\n\nconst command = new Command()\n\nexport { command }\n\ncommand\n .name('deploy')\n .description('deploy Initia modules')\n .addOption(createOption('-m, --modules <modules...>', 'modules').makeOptionMandatory(true))\n .addOption(createOption('-n, --network <network>', 'network').makeOptionMandatory(true))\n .addOption(createOption('-v, --variant <variant>', 'variant').makeOptionMandatory(false))\n .action(async (options: { network: string; modules: string[]; variant?: string }, cmd: Command) => {\n const context = cmd.getOptionValue('__CONTEXT__') as LzInitiaConfig\n\n const { modules, variant, network } = options\n for (const module of modules) {\n await deploy(module, context, network as Network, variant ?? context.modules[module]?.variant)\n }\n })\n","import fs from 'fs'\nimport path from 'path'\n\nimport { getMoveContext } from '@/move'\nimport { parseOptions } from '@/options'\nimport { CmdOptions, LzInitiaConfig, MoveToml } from '@/types'\nimport { glob } from 'glob'\nimport { $, ProcessOutput } from 'zx'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\n// eslint-disable-next-line @typescript-eslint/promise-function-async\nexport function buildProcess(\n modulePath: string,\n addresses: { [key: string]: string },\n toml: MoveToml,\n customOptions: CmdOptions = {}\n): Promise<ProcessOutput> {\n const addressesParam = Object.keys(addresses)\n .map((key) => `${key}=${addresses[key]}`)\n .join(',')\n const defaultOptions = {\n '--skip-fetch-latest-git-deps': true,\n '--named-addresses': addressesParam,\n }\n const args = parseOptions(defaultOptions, customOptions)\n return $({\n cwd: modulePath,\n stdio: ['inherit', 'pipe', process.stderr],\n verbose: true,\n })`initiad move build ${args}`\n}\n\nexport async function copyArtifacts(src: string, dest: string): Promise<void> {\n // remove existing artifacts, this is necessary to avoid leaving old artifacts\n if (fs.existsSync(dest)) {\n console.log(`Removing existing artifacts at ${dest}`)\n fs.rmSync(dest, { recursive: true })\n }\n fs.mkdirSync(dest, { recursive: true })\n const moduleDir = path.join(src, 'bytecode_modules')\n const modules = glob.sync('*.mv', { cwd: moduleDir })\n for (const module of modules) {\n const destByteCodePath = path.join(dest, 'bytecode_modules')\n if (!fs.existsSync(destByteCodePath)) {\n fs.mkdirSync(destByteCodePath, { recursive: true })\n }\n await $({\n verbose: true,\n })`cp ${path.join(moduleDir, module)} ${path.join(destByteCodePath, module)}`\n }\n}\n\nexport async function build(\n moduleName: string,\n lzInitiaConfig: LzInitiaConfig,\n network: Network,\n skipBuild = false,\n variant?: string\n): Promise<void> {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n throw new Error(`module ${moduleName} not found`)\n }\n const { modulePath } = module\n const context = getMoveContext(moduleName, lzInitiaConfig, network)\n const pkgName = context[moduleName]!.package.name\n const srcPath = path.join(modulePath, 'build', pkgName)\n const outputDir = lzInitiaConfig.modules[moduleName]?.alias ?? pkgName\n const outputPath = path.join(\n lzInitiaConfig.artifactsPath,\n variant !== undefined && variant.length > 0 ? `${outputDir}-${variant}` : outputDir\n )\n let addresses: { [key: string]: string } = {}\n for (const key of Object.keys(context)) {\n const toml = context[key]!\n if (!(key in toml.addresses)) {\n throw new Error(`address not found for ${key}`)\n }\n addresses = { ...addresses, ...toml.addresses }\n }\n addresses = { ...addresses, ...context[moduleName]!.addresses }\n if (!skipBuild) {\n await buildProcess(modulePath, addresses, context[moduleName]!, {\n ...lzInitiaConfig.compileOptions,\n ...module.compileOptions,\n })\n }\n await copyArtifacts(srcPath, outputPath)\n}\n","import { CmdOptions } from '@/types'\n\nexport function parseOptions(defaultOptions: CmdOptions, customOptions: CmdOptions): string[] {\n const options: CmdOptions = { ...defaultOptions, ...customOptions }\n const res: string[] = []\n for (const key of Object.keys(options)) {\n if (typeof options[key] === 'boolean') {\n if (options[key] === true) {\n res.push(key)\n }\n } else {\n res.push(key)\n res.push(options[key] as string)\n }\n }\n return res\n}\n","import { build } from '@/build'\nimport { Command, createOption } from '@commander-js/extra-typings'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nimport { LzInitiaConfig } from '../types'\n\nconst command = new Command()\n\nexport { command }\n\ncommand\n .name('build')\n .description('build Initia program')\n .addOption(createOption('-m, --modules <modules...>', 'modules').makeOptionMandatory(true))\n .addOption(\n createOption(\n '-p, --module-paths <paths...>',\n 'module paths of modules, use the path in lz-initia.config.ts if not specify'\n ).makeOptionMandatory(false)\n )\n .addOption(createOption('-n, --network <network>', 'network').makeOptionMandatory(true))\n .addOption(createOption('-v, --variant <variant>', 'variant').makeOptionMandatory(false))\n .addOption(createOption('-sb, --skip-build', 'skip build').default(false))\n .action(\n async (\n options: {\n network: string\n modules: string[]\n modulePaths?: string[]\n variant?: string\n skipBuild: boolean\n },\n cmd\n ) => {\n const context = cmd.getOptionValue('__CONTEXT__') as LzInitiaConfig\n const { skipBuild, modules, network, variant, modulePaths } = options\n // replace the modulePath in context with the modulePaths from command line\n if (modulePaths !== undefined) {\n for (let i = 0; i < modulePaths.length; i++) {\n const module = modules[i]\n const moduleConfig = context.modules[module]\n if (moduleConfig !== undefined) {\n moduleConfig.modulePath = modulePaths[i]\n }\n }\n }\n for (const module of modules) {\n await build(module, context, network as Network, skipBuild, variant ?? context.modules[module]?.variant)\n }\n }\n )\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/loader.ts","../src/subCommands/index.ts","../src/client.ts","../src/deployer.ts","../src/errors.ts","../src/move.ts","../src/deploy.ts","../src/subCommands/deploy.ts","../src/options.ts","../src/build.ts","../src/subCommands/build.ts","../src/cli.ts"],"names":["command","path","fs","AccAddress","deploymentPath","moduleName","glob","Command","createOption","$","findUpSync","process"],"mappings":"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","file":"cli.mjs","sourcesContent":["import { LzInitiaConfig } from '@/types'\n\nexport function loadConfig(configPath: string): LzInitiaConfig {\n // WARNING: require('ts-node') will cause '[ERROR] Unterminated template (867:31) [plugin commonjs]' in some cases\n // this error can be eliminated by assigning the name to a variable and require that variable\n const moduleName = 'ts-node'\n const tsnode = require(moduleName) as typeof import('ts-node')\n tsnode.register({\n transpileOnly: true,\n typeCheck: false,\n })\n\n try {\n type ImportType = LzInitiaConfig | { default: LzInitiaConfig }\n const imported = require(configPath) as ImportType\n return 'default' in imported ? imported.default : imported\n } catch (e) {\n if (e !== null && typeof e === 'object' && 'code' in e && e.code === 'ERR_REQUIRE_ESM') {\n throw new Error(\n `Your project is an ESM project (you have \"type\": \"module\" set in your package.json) but your LayerZero config file uses the .js extension.`\n )\n }\n\n throw e\n }\n}\n","export { command as deploy } from './deploy'\nexport { command as build } from './build'\n","import { LzInitiaConfig } from '@/types'\nimport { LCDClient } from '@initia/initia.js'\n\nimport { Environment } from '@layerzerolabs/lz-definitions'\n\nexport function getInitiaClient(env: Environment, config: LzInitiaConfig): LCDClient {\n const url = config.network?.[env] as string | undefined\n if (url === undefined) {\n throw new Error(`No network url for ${env} found in lz-initia.config.ts`)\n }\n const lcd = new LCDClient(url)\n return lcd\n}\n","import { loadConfig } from '@/loader'\nimport { LzInitiaConfig } from '@/types'\nimport { MnemonicKey } from '@initia/initia.js'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nexport function isInitiaAccount(account: object | undefined): account is MnemonicKey {\n return account !== undefined && account instanceof MnemonicKey\n}\n\nexport function getDeployer(moduleName: string, lzInitiaConfig: LzInitiaConfig, network: Network): MnemonicKey {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n if (lzInitiaConfig.baseModules && lzInitiaConfig.baseModules.length > 0) {\n for (const baseModule of lzInitiaConfig.baseModules) {\n const baseConfig = loadConfig(baseModule)\n try {\n return getDeployer(moduleName, baseConfig, network)\n } catch (e) {\n /* ignore */\n }\n }\n }\n throw new Error(\n `Module ${moduleName} not found. Make sure it is defined in lz-initia.config.ts and double check the key is the package name in Move.toml.`\n )\n }\n const moduleDeployer = isInitiaAccount(module.deployer) ? module.deployer : module.deployer?.[network]\n const defaultDeployer = isInitiaAccount(lzInitiaConfig.defaultDeployer)\n ? lzInitiaConfig.defaultDeployer\n : lzInitiaConfig.defaultDeployer?.[network]\n const deployer = moduleDeployer ?? defaultDeployer\n if (!deployer) {\n throw new Error(`deployer for module ${moduleName} not found`)\n }\n return deployer\n}\n","import { AxiosError, MoveContext } from '@/types'\nimport { AccAddress } from '@initia/initia.js'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nfunction isAxiosError(error: any): error is AxiosError {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return error?.response?.data?.message !== undefined\n}\n\nfunction handleDepMissingError(error: AxiosError, moduleName: string, context: MoveContext): void {\n if (error.response.data.message.includes('EPACKAGE_DEP_MISSING')) {\n throw new Error(\n `Deploy ${moduleName} failed with EPACKAGE_DEP_MISSING, make sure you have deployed the dependent module [${Object.keys(\n context\n )\n .filter((module) => module !== moduleName)\n .join(',')}]`\n )\n }\n}\n\nfunction handleAccountNotFoundError(\n error: AxiosError,\n moduleName: string,\n context: MoveContext,\n network: Network\n): void {\n const address = context[moduleName]?.addresses[moduleName]\n if (address === undefined) {\n return\n }\n if (error.response.data.message.includes(`account ${AccAddress.fromHex(address)} not found`)) {\n throw new Error(\n `${error.response.data.message}, make sure you have funded the account ${AccAddress.fromHex(address)}(${address}) on ${network}`\n )\n }\n}\n\nfunction handleSenderNotMatchError(error: AxiosError, moduleName: string): void {\n if (error.response.data.message.includes('MODULE_ADDRESS_DOES_NOT_MATCH_SENDER')) {\n throw new Error(\n `Deploy ${moduleName} failed with MODULE_ADDRESS_DOES_NOT_MATCH_SENDER, make sure you compile ${moduleName} with the deployer account address`\n )\n }\n}\n\nfunction handleOtherAxiosError(error: AxiosError): void {\n throw new Error(error.response.data.message)\n}\n\nexport function handleError(error: Error, moduleName: string, context: MoveContext, network: Network): void {\n if (isAxiosError(error)) {\n handleDepMissingError(error, moduleName, context)\n handleAccountNotFoundError(error, moduleName, context, network)\n handleSenderNotMatchError(error, moduleName)\n handleOtherAxiosError(error)\n }\n throw error\n}\n","import fs from 'fs'\nimport path from 'path'\n\nimport { getDeployer } from '@/deployer'\nimport { LzInitiaConfig, ModuleAddresses, MoveContext, MoveToml } from '@/types'\nimport { AccAddress } from '@initia/initia.js'\nimport { parse } from 'smol-toml'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nexport function getRawMoveContextByPath(modulePath: string): MoveContext {\n const tomlPath = path.join(modulePath, 'Move.toml')\n if (!fs.existsSync(tomlPath)) {\n throw new Error(`Move.toml not found in ${tomlPath}`)\n }\n const toml = parse(fs.readFileSync(tomlPath, 'utf-8')) as unknown as MoveToml\n const { dependencies } = toml\n let result: MoveContext = { [toml.package.name]: toml } satisfies MoveContext\n if (dependencies !== undefined) {\n Object.keys(dependencies)\n .filter((key) => {\n return dependencies[key]?.local !== undefined\n })\n .forEach((key) => {\n const dependency = dependencies[key] as { local: string }\n const dependencyPath = path.join(modulePath, dependency.local)\n result = { ...getRawMoveContextByPath(dependencyPath), ...result } satisfies MoveContext\n })\n }\n return result\n}\n\nexport function parseAddresses(addresses: ModuleAddresses, network: Network): { [key in string]?: string } {\n if (addresses === undefined) {\n return {}\n }\n const result: { [key in string]?: string } = {}\n for (const key of Object.keys(addresses)) {\n const value = addresses[key]\n if (typeof value === 'string') {\n result[key] = value\n } else {\n const networkAddress = value[network]\n if (networkAddress === undefined) {\n throw new Error(`${key} address not found for network ${network}`)\n }\n result[key] = networkAddress\n }\n }\n return result\n}\n\nexport function getMoveContext(moduleName: string, lzInitiaConfig: LzInitiaConfig, network: Network): MoveContext {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n throw new Error(`module ${moduleName} not found when getting Move context`)\n }\n const context = getRawMoveContextByPath(module.modulePath)\n for (const key of Object.keys(context)) {\n const toml = context[key]!\n for (const addressKey of Object.keys(toml.addresses)) {\n const address = toml.addresses[addressKey]\n const presetAddresses = {\n ...parseAddresses(lzInitiaConfig.modules[key]?.addresses, network),\n ...parseAddresses(lzInitiaConfig.modules[moduleName]?.addresses, network),\n }\n if (address === '_') {\n if (presetAddresses[addressKey] !== undefined && presetAddresses[addressKey] !== '') {\n toml.addresses[addressKey] = presetAddresses[addressKey]!\n } else {\n try {\n toml.addresses[addressKey] = AccAddress.toHex(\n getDeployer(addressKey, lzInitiaConfig, network).accAddress\n )\n } catch (e) {\n if (key === moduleName) {\n throw new Error(`Fail to generate context for ${key}. ${(e as Error).toString()}`)\n } else {\n throw new Error(\n `Fail to generate context for dependent module ${key}. ${(e as Error).toString()}`\n )\n }\n }\n }\n }\n }\n }\n return context\n}\n","import fs from 'fs'\nimport * as crypto from 'node:crypto'\nimport path from 'path'\n\nimport { getInitiaClient } from '@/client'\nimport { getDeployer } from '@/deployer'\nimport { handleError } from '@/errors'\nimport { getMoveContext } from '@/move'\nimport { LzInitiaConfig } from '@/types'\nimport { AccAddress, MsgPublish, TxError, Wallet } from '@initia/initia.js'\nimport { glob } from 'glob'\n\nimport { EndpointVersion, Network, Stage, networkToEnv, networkToStage } from '@layerzerolabs/lz-definitions'\n\nfunction deploymentPath(pkgName: string, dest: string, network: Network, variant?: string): string {\n const deploymentPath = path.join(dest, network)\n return path.join(deploymentPath, `${pkgWithVariant(pkgName, variant)}.json`)\n}\n\nexport function saveDeployment(\n moduleName: string,\n pkgName: string,\n address: string,\n dest: string,\n network: Network,\n bytecodeHash: string,\n hash: string,\n variant?: string,\n compatibleVersions = [EndpointVersion.V1, EndpointVersion.V2]\n): void {\n const destPath = deploymentPath(pkgName, dest, network, variant)\n const deploymentDir = path.dirname(destPath)\n if (!fs.existsSync(deploymentDir)) {\n fs.mkdirSync(deploymentDir, { recursive: true })\n }\n fs.writeFileSync(\n destPath,\n JSON.stringify(\n {\n address,\n name: pkgWithVariant(pkgName, variant),\n moduleName,\n network,\n compatibleVersions,\n bytecodeHash,\n transactionHash: hash,\n },\n null,\n 2\n )\n )\n console.log(`Deployment saved to ${destPath}`)\n}\n\nfunction needDeploy(pkgName: string, dest: string, network: Network, bytecodeHash: string, variant?: string): boolean {\n if (networkToStage(network) === Stage.SANDBOX) {\n return true\n }\n const destPath = deploymentPath(pkgName, dest, network, variant)\n if (fs.existsSync(destPath)) {\n const deployment = JSON.parse(fs.readFileSync(destPath, 'utf-8')) as { bytecodeHash: string }\n return deployment.bytecodeHash !== bytecodeHash\n }\n return true\n}\n\nfunction pkgWithVariant(pkgName: string, variant?: string): string {\n return variant !== undefined && variant.length > 0 ? `${pkgName}-${variant}` : pkgName\n}\n\nfunction getBytecodesHash(bytecodes: Uint8Array[]): string {\n // sha256 hash of all bytecodes\n const hash = crypto.createHash('sha256')\n bytecodes.forEach((bytecode) => {\n hash.update(bytecode)\n })\n return hash.digest('hex')\n}\n\nexport async function deploy(\n moduleName: string,\n lzInitiaConfig: LzInitiaConfig,\n network: Network,\n variant?: string\n): Promise<void> {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n throw new Error(`module ${moduleName} not found`)\n }\n const env = networkToEnv(network, EndpointVersion.V2)\n const client = getInitiaClient(env, lzInitiaConfig)\n const deployer = getDeployer(moduleName, lzInitiaConfig, network)\n const context = getMoveContext(moduleName, lzInitiaConfig, network)\n const pkgName = lzInitiaConfig.modules[moduleName]?.alias ?? context[moduleName]!.package.name\n const moduleDir = path.join(lzInitiaConfig.artifactsPath, `${pkgWithVariant(pkgName, variant)}/bytecode_modules`)\n\n const moduleNames: string[] = glob.sync('*.mv', { cwd: moduleDir })\n const moduleBuffers = moduleNames.map((moduleName) => fs.readFileSync(path.join(moduleDir, moduleName)))\n const bytecodeHash = getBytecodesHash(moduleBuffers)\n if (!needDeploy(pkgName, lzInitiaConfig.deploymentPath, network, bytecodeHash, variant)) {\n console.warn(`Code of ${moduleName} has not changed, skipping deploy`)\n return\n }\n try {\n // TODO policy from config\n const msgs = [\n new MsgPublish(\n deployer.accAddress,\n moduleBuffers.map((codeBytes) => codeBytes.toString('base64')),\n MsgPublish.Policy.COMPATIBLE\n ),\n ]\n const wallet = new Wallet(client, deployer)\n const gasPrices =\n lzInitiaConfig.gasPrice?.[network] === undefined ? undefined : `${lzInitiaConfig.gasPrice[network]}uinit`\n const signedTx = await wallet.createAndSignTx({ msgs, gasPrices })\n const tx = await client.tx.broadcast(signedTx)\n if (((tx as TxError).code as number) !== 0) {\n throw new Error(tx.raw_log)\n }\n console.log(`Deploy transaction ${tx.txhash} successfully`)\n saveDeployment(\n moduleName,\n pkgName,\n AccAddress.toHex(deployer.accAddress),\n lzInitiaConfig.deploymentPath,\n network,\n bytecodeHash,\n tx.txhash,\n variant,\n lzInitiaConfig.compatibleVersions\n )\n } catch (e: unknown) {\n if (e instanceof Error) {\n handleError(e, moduleName, context, network)\n } else {\n throw e\n }\n }\n}\n","import { deploy } from '@/deploy'\nimport { Command, createOption } from '@commander-js/extra-typings'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nimport { LzInitiaConfig } from '../types'\n\nconst command = new Command()\n\nexport { command }\n\ncommand\n .name('deploy')\n .description('deploy Initia modules')\n .addOption(createOption('-m, --modules <modules...>', 'modules').makeOptionMandatory(true))\n .addOption(createOption('-n, --network <network>', 'network').makeOptionMandatory(true))\n .addOption(createOption('-v, --variant <variant>', 'variant').makeOptionMandatory(false))\n .action(async (options: { network: string; modules: string[]; variant?: string }, cmd: Command) => {\n const context = cmd.getOptionValue('__CONTEXT__') as LzInitiaConfig\n\n const { modules, variant, network } = options\n for (const module of modules) {\n await deploy(module, context, network as Network, variant ?? context.modules[module]?.variant)\n }\n })\n","import { CmdOptions } from '@/types'\n\nexport function parseOptions(defaultOptions: CmdOptions, customOptions: CmdOptions): string[] {\n const options: CmdOptions = { ...defaultOptions, ...customOptions }\n const res: string[] = []\n for (const key of Object.keys(options)) {\n if (typeof options[key] === 'boolean') {\n if (options[key] === true) {\n res.push(key)\n }\n } else {\n res.push(key)\n res.push(options[key] as string)\n }\n }\n return res\n}\n","import fs from 'fs'\nimport path from 'path'\n\nimport { getMoveContext } from '@/move'\nimport { parseOptions } from '@/options'\nimport { CmdOptions, LzInitiaConfig, MoveToml } from '@/types'\nimport { glob } from 'glob'\nimport { $, ProcessOutput } from 'zx'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\n// eslint-disable-next-line @typescript-eslint/promise-function-async\nexport function buildProcess(\n modulePath: string,\n addresses: { [key: string]: string },\n toml: MoveToml,\n customOptions: CmdOptions = {}\n): Promise<ProcessOutput> {\n const addressesParam = Object.keys(addresses)\n .map((key) => `${key}=${addresses[key]}`)\n .join(',')\n const defaultOptions = {\n '--skip-fetch-latest-git-deps': true,\n '--named-addresses': addressesParam,\n }\n const args = parseOptions(defaultOptions, customOptions)\n return $({\n cwd: modulePath,\n stdio: ['inherit', 'pipe', process.stderr],\n verbose: true,\n })`initiad move build ${args}`\n}\n\nexport async function copyArtifacts(src: string, dest: string): Promise<void> {\n // remove existing artifacts, this is necessary to avoid leaving old artifacts\n if (fs.existsSync(dest)) {\n console.log(`Removing existing artifacts at ${dest}`)\n fs.rmSync(dest, { recursive: true })\n }\n fs.mkdirSync(dest, { recursive: true })\n const moduleDir = path.join(src, 'bytecode_modules')\n const modules = glob.sync('*.mv', { cwd: moduleDir })\n for (const module of modules) {\n const destByteCodePath = path.join(dest, 'bytecode_modules')\n if (!fs.existsSync(destByteCodePath)) {\n fs.mkdirSync(destByteCodePath, { recursive: true })\n }\n await $({\n verbose: true,\n })`cp ${path.join(moduleDir, module)} ${path.join(destByteCodePath, module)}`\n }\n}\n\nexport async function build(\n moduleName: string,\n lzInitiaConfig: LzInitiaConfig,\n network: Network,\n skipBuild = false,\n variant?: string\n): Promise<void> {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n throw new Error(`module ${moduleName} not found`)\n }\n const { modulePath } = module\n const context = getMoveContext(moduleName, lzInitiaConfig, network)\n const pkgName = context[moduleName]!.package.name\n const srcPath = path.join(modulePath, 'build', pkgName)\n const outputDir = lzInitiaConfig.modules[moduleName]?.alias ?? pkgName\n const outputPath = path.join(\n lzInitiaConfig.artifactsPath,\n variant !== undefined && variant.length > 0 ? `${outputDir}-${variant}` : outputDir\n )\n let addresses: { [key: string]: string } = {}\n for (const key of Object.keys(context)) {\n const toml = context[key]!\n if (!(key in toml.addresses)) {\n throw new Error(`address not found for ${key}`)\n }\n addresses = { ...addresses, ...toml.addresses }\n }\n addresses = { ...addresses, ...context[moduleName]!.addresses }\n if (!skipBuild) {\n await buildProcess(modulePath, addresses, context[moduleName]!, {\n ...lzInitiaConfig.compileOptions,\n ...module.compileOptions,\n })\n }\n await copyArtifacts(srcPath, outputPath)\n}\n","import { build } from '@/build'\nimport { Command, createOption } from '@commander-js/extra-typings'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nimport { LzInitiaConfig } from '../types'\n\nconst command = new Command()\n\nexport { command }\n\ncommand\n .name('build')\n .description('build Initia program')\n .addOption(createOption('-m, --modules <modules...>', 'modules').makeOptionMandatory(true))\n .addOption(\n createOption(\n '-p, --module-paths <paths...>',\n 'module paths of modules, use the path in lz-initia.config.ts if not specify'\n ).makeOptionMandatory(false)\n )\n .addOption(createOption('-n, --network <network>', 'network').makeOptionMandatory(true))\n .addOption(createOption('-v, --variant <variant>', 'variant').makeOptionMandatory(false))\n .addOption(createOption('-sb, --skip-build', 'skip build').default(false))\n .action(\n async (\n options: {\n network: string\n modules: string[]\n modulePaths?: string[]\n variant?: string\n skipBuild: boolean\n },\n cmd\n ) => {\n const context = cmd.getOptionValue('__CONTEXT__') as LzInitiaConfig\n const { skipBuild, modules, network, variant, modulePaths } = options\n // replace the modulePath in context with the modulePaths from command line\n if (modulePaths !== undefined) {\n for (let i = 0; i < modulePaths.length; i++) {\n const module = modules[i]\n const moduleConfig = context.modules[module]\n if (moduleConfig !== undefined) {\n moduleConfig.modulePath = modulePaths[i]\n }\n }\n }\n for (const module of modules) {\n await build(module, context, network as Network, skipBuild, variant ?? context.modules[module]?.variant)\n }\n }\n )\n","import fs from 'fs'\nimport path from 'path'\nimport process from 'process'\n\nimport { loadConfig } from '@/loader'\nimport { Command } from '@commander-js/extra-typings'\nimport { sync as findUpSync } from 'find-up'\nimport { $ } from 'zx/core'\n\nimport { getLogger } from '@layerzerolabs/lz-utilities'\n\nimport * as subCommands from './subCommands'\n\nconst program = new Command()\n// iterate over subCommands and add them to the program\nconst logger = getLogger()\n\nprogram\n .name('lz-initia-cli')\n .description('Wrapper of Initia cli')\n .version('0.1.0')\n .action((_, command: Command) => {\n logger.info('Please specify a subcommand')\n command.help()\n })\n\nasync function checkIfInitiaInstalled(): Promise<void> {\n try {\n await $`initiad version`\n } catch (e) {\n throw new Error('Initia cli is not installed')\n }\n}\n\nfunction checkIfInitiaConfigExists(): string {\n const packagePath = findUpSync('package.json', { cwd: process.cwd() })\n if (packagePath === undefined) {\n throw new Error('package.json not found')\n }\n const configPath = path.join(path.dirname(packagePath), 'lz-initia.config.ts')\n if (!fs.existsSync(configPath)) {\n throw new Error('lz-initia.config.ts not found, please create one in the same directory as package.json')\n }\n return configPath\n}\n\nasync function main(): Promise<void> {\n await checkIfInitiaInstalled()\n const configPath = checkIfInitiaConfigExists()\n const config = loadConfig(configPath)\n Object.values(subCommands).forEach((subCommand: Command) => {\n subCommand.setOptionValue('__CONTEXT__', config)\n program.addCommand(subCommand)\n })\n await program.parseAsync()\n}\n\nmain()\n .then(() => process.exit(process.exitCode))\n .catch((error: unknown) => {\n logger.error(error)\n process.exit(1)\n })\n"]}
|
package/dist/index.cjs
CHANGED
|
@@ -36,8 +36,7 @@ var crypto__namespace = /*#__PURE__*/_interopNamespace(crypto);
|
|
|
36
36
|
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
37
37
|
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
38
38
|
}) : x)(function(x) {
|
|
39
|
-
if (typeof require !== "undefined")
|
|
40
|
-
return require.apply(this, arguments);
|
|
39
|
+
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
41
40
|
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
42
41
|
});
|
|
43
42
|
|
|
@@ -400,5 +399,5 @@ exports.buildProcess = buildProcess;
|
|
|
400
399
|
exports.copyArtifacts = copyArtifacts;
|
|
401
400
|
exports.deploy = deploy;
|
|
402
401
|
exports.saveDeployment = saveDeployment;
|
|
403
|
-
//# sourceMappingURL=
|
|
402
|
+
//# sourceMappingURL=index.cjs.map
|
|
404
403
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/build.ts","../src/move.ts","../src/loader.ts","../src/deployer.ts","../src/options.ts","../src/deploy.ts","../src/client.ts","../src/errors.ts"],"names":["fs","path","AccAddress","glob","deploymentPath","moduleName"],"mappings":"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","sourcesContent":["import fs from 'fs'\nimport path from 'path'\n\nimport { getMoveContext } from '@/move'\nimport { parseOptions } from '@/options'\nimport { CmdOptions, LzInitiaConfig, MoveToml } from '@/types'\nimport { glob } from 'glob'\nimport { $, ProcessOutput } from 'zx'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\n// eslint-disable-next-line @typescript-eslint/promise-function-async\nexport function buildProcess(\n modulePath: string,\n addresses: { [key: string]: string },\n toml: MoveToml,\n customOptions: CmdOptions = {}\n): Promise<ProcessOutput> {\n const addressesParam = Object.keys(addresses)\n .map((key) => `${key}=${addresses[key]}`)\n .join(',')\n const defaultOptions = {\n '--skip-fetch-latest-git-deps': true,\n '--named-addresses': addressesParam,\n }\n const args = parseOptions(defaultOptions, customOptions)\n return $({\n cwd: modulePath,\n stdio: ['inherit', 'pipe', process.stderr],\n verbose: true,\n })`initiad move build ${args}`\n}\n\nexport async function copyArtifacts(src: string, dest: string): Promise<void> {\n // remove existing artifacts, this is necessary to avoid leaving old artifacts\n if (fs.existsSync(dest)) {\n console.log(`Removing existing artifacts at ${dest}`)\n fs.rmSync(dest, { recursive: true })\n }\n fs.mkdirSync(dest, { recursive: true })\n const moduleDir = path.join(src, 'bytecode_modules')\n const modules = glob.sync('*.mv', { cwd: moduleDir })\n for (const module of modules) {\n const destByteCodePath = path.join(dest, 'bytecode_modules')\n if (!fs.existsSync(destByteCodePath)) {\n fs.mkdirSync(destByteCodePath, { recursive: true })\n }\n await $({\n verbose: true,\n })`cp ${path.join(moduleDir, module)} ${path.join(destByteCodePath, module)}`\n }\n}\n\nexport async function build(\n moduleName: string,\n lzInitiaConfig: LzInitiaConfig,\n network: Network,\n skipBuild = false,\n variant?: string\n): Promise<void> {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n throw new Error(`module ${moduleName} not found`)\n }\n const { modulePath } = module\n const context = getMoveContext(moduleName, lzInitiaConfig, network)\n const pkgName = context[moduleName]!.package.name\n const srcPath = path.join(modulePath, 'build', pkgName)\n const outputDir = lzInitiaConfig.modules[moduleName]?.alias ?? pkgName\n const outputPath = path.join(\n lzInitiaConfig.artifactsPath,\n variant !== undefined && variant.length > 0 ? `${outputDir}-${variant}` : outputDir\n )\n let addresses: { [key: string]: string } = {}\n for (const key of Object.keys(context)) {\n const toml = context[key]!\n if (!(key in toml.addresses)) {\n throw new Error(`address not found for ${key}`)\n }\n addresses = { ...addresses, ...toml.addresses }\n }\n addresses = { ...addresses, ...context[moduleName]!.addresses }\n if (!skipBuild) {\n await buildProcess(modulePath, addresses, context[moduleName]!, {\n ...lzInitiaConfig.compileOptions,\n ...module.compileOptions,\n })\n }\n await copyArtifacts(srcPath, outputPath)\n}\n","import fs from 'fs'\nimport path from 'path'\n\nimport { getDeployer } from '@/deployer'\nimport { LzInitiaConfig, ModuleAddresses, MoveContext, MoveToml } from '@/types'\nimport { AccAddress } from '@initia/initia.js'\nimport { parse } from 'smol-toml'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nexport function getRawMoveContextByPath(modulePath: string): MoveContext {\n const tomlPath = path.join(modulePath, 'Move.toml')\n if (!fs.existsSync(tomlPath)) {\n throw new Error(`Move.toml not found in ${tomlPath}`)\n }\n const toml = parse(fs.readFileSync(tomlPath, 'utf-8')) as unknown as MoveToml\n const { dependencies } = toml\n let result: MoveContext = { [toml.package.name]: toml } satisfies MoveContext\n if (dependencies !== undefined) {\n Object.keys(dependencies)\n .filter((key) => {\n return dependencies[key]?.local !== undefined\n })\n .forEach((key) => {\n const dependency = dependencies[key] as { local: string }\n const dependencyPath = path.join(modulePath, dependency.local)\n result = { ...getRawMoveContextByPath(dependencyPath), ...result } satisfies MoveContext\n })\n }\n return result\n}\n\nexport function parseAddresses(addresses: ModuleAddresses, network: Network): { [key in string]?: string } {\n if (addresses === undefined) {\n return {}\n }\n const result: { [key in string]?: string } = {}\n for (const key of Object.keys(addresses)) {\n const value = addresses[key]\n if (typeof value === 'string') {\n result[key] = value\n } else {\n const networkAddress = value[network]\n if (networkAddress === undefined) {\n throw new Error(`${key} address not found for network ${network}`)\n }\n result[key] = networkAddress\n }\n }\n return result\n}\n\nexport function getMoveContext(moduleName: string, lzInitiaConfig: LzInitiaConfig, network: Network): MoveContext {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n throw new Error(`module ${moduleName} not found when getting Move context`)\n }\n const context = getRawMoveContextByPath(module.modulePath)\n for (const key of Object.keys(context)) {\n const toml = context[key]!\n for (const addressKey of Object.keys(toml.addresses)) {\n const address = toml.addresses[addressKey]\n const presetAddresses = {\n ...parseAddresses(lzInitiaConfig.modules[key]?.addresses, network),\n ...parseAddresses(lzInitiaConfig.modules[moduleName]?.addresses, network),\n }\n if (address === '_') {\n if (presetAddresses[addressKey] !== undefined && presetAddresses[addressKey] !== '') {\n toml.addresses[addressKey] = presetAddresses[addressKey]!\n } else {\n try {\n toml.addresses[addressKey] = AccAddress.toHex(\n getDeployer(addressKey, lzInitiaConfig, network).accAddress\n )\n } catch (e) {\n if (key === moduleName) {\n throw new Error(`Fail to generate context for ${key}. ${(e as Error).toString()}`)\n } else {\n throw new Error(\n `Fail to generate context for dependent module ${key}. ${(e as Error).toString()}`\n )\n }\n }\n }\n }\n }\n }\n return context\n}\n","import { LzInitiaConfig } from '@/types'\n\nexport function loadConfig(configPath: string): LzInitiaConfig {\n // WARNING: require('ts-node') will cause '[ERROR] Unterminated template (867:31) [plugin commonjs]' in some cases\n // this error can be eliminated by assigning the name to a variable and require that variable\n const moduleName = 'ts-node'\n const tsnode = require(moduleName) as typeof import('ts-node')\n tsnode.register({\n transpileOnly: true,\n typeCheck: false,\n })\n\n try {\n type ImportType = LzInitiaConfig | { default: LzInitiaConfig }\n const imported = require(configPath) as ImportType\n return 'default' in imported ? imported.default : imported\n } catch (e) {\n if (e !== null && typeof e === 'object' && 'code' in e && e.code === 'ERR_REQUIRE_ESM') {\n throw new Error(\n `Your project is an ESM project (you have \"type\": \"module\" set in your package.json) but your LayerZero config file uses the .js extension.`\n )\n }\n\n throw e\n }\n}\n","import { loadConfig } from '@/loader'\nimport { LzInitiaConfig } from '@/types'\nimport { MnemonicKey } from '@initia/initia.js'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nexport function isInitiaAccount(account: object | undefined): account is MnemonicKey {\n return account !== undefined && account instanceof MnemonicKey\n}\n\nexport function getDeployer(moduleName: string, lzInitiaConfig: LzInitiaConfig, network: Network): MnemonicKey {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n if (lzInitiaConfig.baseModules && lzInitiaConfig.baseModules.length > 0) {\n for (const baseModule of lzInitiaConfig.baseModules) {\n const baseConfig = loadConfig(baseModule)\n try {\n return getDeployer(moduleName, baseConfig, network)\n } catch (e) {\n /* ignore */\n }\n }\n }\n throw new Error(\n `Module ${moduleName} not found. Make sure it is defined in lz-initia.config.ts and double check the key is the package name in Move.toml.`\n )\n }\n const moduleDeployer = isInitiaAccount(module.deployer) ? module.deployer : module.deployer?.[network]\n const defaultDeployer = isInitiaAccount(lzInitiaConfig.defaultDeployer)\n ? lzInitiaConfig.defaultDeployer\n : lzInitiaConfig.defaultDeployer?.[network]\n const deployer = moduleDeployer ?? defaultDeployer\n if (!deployer) {\n throw new Error(`deployer for module ${moduleName} not found`)\n }\n return deployer\n}\n","import { CmdOptions } from '@/types'\n\nexport function parseOptions(defaultOptions: CmdOptions, customOptions: CmdOptions): string[] {\n const options: CmdOptions = { ...defaultOptions, ...customOptions }\n const res: string[] = []\n for (const key of Object.keys(options)) {\n if (typeof options[key] === 'boolean') {\n if (options[key] === true) {\n res.push(key)\n }\n } else {\n res.push(key)\n res.push(options[key] as string)\n }\n }\n return res\n}\n","import fs from 'fs'\nimport * as crypto from 'node:crypto'\nimport path from 'path'\n\nimport { getInitiaClient } from '@/client'\nimport { getDeployer } from '@/deployer'\nimport { handleError } from '@/errors'\nimport { getMoveContext } from '@/move'\nimport { LzInitiaConfig } from '@/types'\nimport { AccAddress, MsgPublish, TxError, Wallet } from '@initia/initia.js'\nimport { glob } from 'glob'\n\nimport { EndpointVersion, Network, Stage, networkToEnv, networkToStage } from '@layerzerolabs/lz-definitions'\n\nfunction deploymentPath(pkgName: string, dest: string, network: Network, variant?: string): string {\n const deploymentPath = path.join(dest, network)\n return path.join(deploymentPath, `${pkgWithVariant(pkgName, variant)}.json`)\n}\n\nexport function saveDeployment(\n moduleName: string,\n pkgName: string,\n address: string,\n dest: string,\n network: Network,\n bytecodeHash: string,\n hash: string,\n variant?: string,\n compatibleVersions = [EndpointVersion.V1, EndpointVersion.V2]\n): void {\n const destPath = deploymentPath(pkgName, dest, network, variant)\n const deploymentDir = path.dirname(destPath)\n if (!fs.existsSync(deploymentDir)) {\n fs.mkdirSync(deploymentDir, { recursive: true })\n }\n fs.writeFileSync(\n destPath,\n JSON.stringify(\n {\n address,\n name: pkgWithVariant(pkgName, variant),\n moduleName,\n network,\n compatibleVersions,\n bytecodeHash,\n transactionHash: hash,\n },\n null,\n 2\n )\n )\n console.log(`Deployment saved to ${destPath}`)\n}\n\nfunction needDeploy(pkgName: string, dest: string, network: Network, bytecodeHash: string, variant?: string): boolean {\n if (networkToStage(network) === Stage.SANDBOX) {\n return true\n }\n const destPath = deploymentPath(pkgName, dest, network, variant)\n if (fs.existsSync(destPath)) {\n const deployment = JSON.parse(fs.readFileSync(destPath, 'utf-8')) as { bytecodeHash: string }\n return deployment.bytecodeHash !== bytecodeHash\n }\n return true\n}\n\nfunction pkgWithVariant(pkgName: string, variant?: string): string {\n return variant !== undefined && variant.length > 0 ? `${pkgName}-${variant}` : pkgName\n}\n\nfunction getBytecodesHash(bytecodes: Uint8Array[]): string {\n // sha256 hash of all bytecodes\n const hash = crypto.createHash('sha256')\n bytecodes.forEach((bytecode) => {\n hash.update(bytecode)\n })\n return hash.digest('hex')\n}\n\nexport async function deploy(\n moduleName: string,\n lzInitiaConfig: LzInitiaConfig,\n network: Network,\n variant?: string\n): Promise<void> {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n throw new Error(`module ${moduleName} not found`)\n }\n const env = networkToEnv(network, EndpointVersion.V2)\n const client = getInitiaClient(env, lzInitiaConfig)\n const deployer = getDeployer(moduleName, lzInitiaConfig, network)\n const context = getMoveContext(moduleName, lzInitiaConfig, network)\n const pkgName = lzInitiaConfig.modules[moduleName]?.alias ?? context[moduleName]!.package.name\n const moduleDir = path.join(lzInitiaConfig.artifactsPath, `${pkgWithVariant(pkgName, variant)}/bytecode_modules`)\n\n const moduleNames: string[] = glob.sync('*.mv', { cwd: moduleDir })\n const moduleBuffers = moduleNames.map((moduleName) => fs.readFileSync(path.join(moduleDir, moduleName)))\n const bytecodeHash = getBytecodesHash(moduleBuffers)\n if (!needDeploy(pkgName, lzInitiaConfig.deploymentPath, network, bytecodeHash, variant)) {\n console.warn(`Code of ${moduleName} has not changed, skipping deploy`)\n return\n }\n try {\n // TODO policy from config\n const msgs = [\n new MsgPublish(\n deployer.accAddress,\n moduleBuffers.map((codeBytes) => codeBytes.toString('base64')),\n MsgPublish.Policy.COMPATIBLE\n ),\n ]\n const wallet = new Wallet(client, deployer)\n const gasPrices =\n lzInitiaConfig.gasPrice?.[network] === undefined ? undefined : `${lzInitiaConfig.gasPrice[network]}uinit`\n const signedTx = await wallet.createAndSignTx({ msgs, gasPrices })\n const tx = await client.tx.broadcast(signedTx)\n if (((tx as TxError).code as number) !== 0) {\n throw new Error(tx.raw_log)\n }\n console.log(`Deploy transaction ${tx.txhash} successfully`)\n saveDeployment(\n moduleName,\n pkgName,\n AccAddress.toHex(deployer.accAddress),\n lzInitiaConfig.deploymentPath,\n network,\n bytecodeHash,\n tx.txhash,\n variant,\n lzInitiaConfig.compatibleVersions\n )\n } catch (e: unknown) {\n if (e instanceof Error) {\n handleError(e, moduleName, context, network)\n } else {\n throw e\n }\n }\n}\n","import { LzInitiaConfig } from '@/types'\nimport { LCDClient } from '@initia/initia.js'\n\nimport { Environment } from '@layerzerolabs/lz-definitions'\n\nexport function getInitiaClient(env: Environment, config: LzInitiaConfig): LCDClient {\n const url = config.network?.[env] as string | undefined\n if (url === undefined) {\n throw new Error(`No network url for ${env} found in lz-initia.config.ts`)\n }\n const lcd = new LCDClient(url)\n return lcd\n}\n","import { AxiosError, MoveContext } from '@/types'\nimport { AccAddress } from '@initia/initia.js'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nfunction isAxiosError(error: any): error is AxiosError {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return error?.response?.data?.message !== undefined\n}\n\nfunction handleDepMissingError(error: AxiosError, moduleName: string, context: MoveContext): void {\n if (error.response.data.message.includes('EPACKAGE_DEP_MISSING')) {\n throw new Error(\n `Deploy ${moduleName} failed with EPACKAGE_DEP_MISSING, make sure you have deployed the dependent module [${Object.keys(\n context\n )\n .filter((module) => module !== moduleName)\n .join(',')}]`\n )\n }\n}\n\nfunction handleAccountNotFoundError(\n error: AxiosError,\n moduleName: string,\n context: MoveContext,\n network: Network\n): void {\n const address = context[moduleName]?.addresses[moduleName]\n if (address === undefined) {\n return\n }\n if (error.response.data.message.includes(`account ${AccAddress.fromHex(address)} not found`)) {\n throw new Error(\n `${error.response.data.message}, make sure you have funded the account ${AccAddress.fromHex(address)}(${address}) on ${network}`\n )\n }\n}\n\nfunction handleSenderNotMatchError(error: AxiosError, moduleName: string): void {\n if (error.response.data.message.includes('MODULE_ADDRESS_DOES_NOT_MATCH_SENDER')) {\n throw new Error(\n `Deploy ${moduleName} failed with MODULE_ADDRESS_DOES_NOT_MATCH_SENDER, make sure you compile ${moduleName} with the deployer account address`\n )\n }\n}\n\nfunction handleOtherAxiosError(error: AxiosError): void {\n throw new Error(error.response.data.message)\n}\n\nexport function handleError(error: Error, moduleName: string, context: MoveContext, network: Network): void {\n if (isAxiosError(error)) {\n handleDepMissingError(error, moduleName, context)\n handleAccountNotFoundError(error, moduleName, context, network)\n handleSenderNotMatchError(error, moduleName)\n handleOtherAxiosError(error)\n }\n throw error\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/loader.ts","../src/deployer.ts","../src/move.ts","../src/options.ts","../src/build.ts","../src/client.ts","../src/errors.ts","../src/deploy.ts"],"names":["MnemonicKey","path","fs","parse","AccAddress","$","glob","LCDClient","deploymentPath","EndpointVersion","networkToStage","Stage","crypto","networkToEnv","moduleName","MsgPublish","Wallet"],"mappings":"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","file":"index.cjs","sourcesContent":["import { LzInitiaConfig } from '@/types'\n\nexport function loadConfig(configPath: string): LzInitiaConfig {\n // WARNING: require('ts-node') will cause '[ERROR] Unterminated template (867:31) [plugin commonjs]' in some cases\n // this error can be eliminated by assigning the name to a variable and require that variable\n const moduleName = 'ts-node'\n const tsnode = require(moduleName) as typeof import('ts-node')\n tsnode.register({\n transpileOnly: true,\n typeCheck: false,\n })\n\n try {\n type ImportType = LzInitiaConfig | { default: LzInitiaConfig }\n const imported = require(configPath) as ImportType\n return 'default' in imported ? imported.default : imported\n } catch (e) {\n if (e !== null && typeof e === 'object' && 'code' in e && e.code === 'ERR_REQUIRE_ESM') {\n throw new Error(\n `Your project is an ESM project (you have \"type\": \"module\" set in your package.json) but your LayerZero config file uses the .js extension.`\n )\n }\n\n throw e\n }\n}\n","import { loadConfig } from '@/loader'\nimport { LzInitiaConfig } from '@/types'\nimport { MnemonicKey } from '@initia/initia.js'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nexport function isInitiaAccount(account: object | undefined): account is MnemonicKey {\n return account !== undefined && account instanceof MnemonicKey\n}\n\nexport function getDeployer(moduleName: string, lzInitiaConfig: LzInitiaConfig, network: Network): MnemonicKey {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n if (lzInitiaConfig.baseModules && lzInitiaConfig.baseModules.length > 0) {\n for (const baseModule of lzInitiaConfig.baseModules) {\n const baseConfig = loadConfig(baseModule)\n try {\n return getDeployer(moduleName, baseConfig, network)\n } catch (e) {\n /* ignore */\n }\n }\n }\n throw new Error(\n `Module ${moduleName} not found. Make sure it is defined in lz-initia.config.ts and double check the key is the package name in Move.toml.`\n )\n }\n const moduleDeployer = isInitiaAccount(module.deployer) ? module.deployer : module.deployer?.[network]\n const defaultDeployer = isInitiaAccount(lzInitiaConfig.defaultDeployer)\n ? lzInitiaConfig.defaultDeployer\n : lzInitiaConfig.defaultDeployer?.[network]\n const deployer = moduleDeployer ?? defaultDeployer\n if (!deployer) {\n throw new Error(`deployer for module ${moduleName} not found`)\n }\n return deployer\n}\n","import fs from 'fs'\nimport path from 'path'\n\nimport { getDeployer } from '@/deployer'\nimport { LzInitiaConfig, ModuleAddresses, MoveContext, MoveToml } from '@/types'\nimport { AccAddress } from '@initia/initia.js'\nimport { parse } from 'smol-toml'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nexport function getRawMoveContextByPath(modulePath: string): MoveContext {\n const tomlPath = path.join(modulePath, 'Move.toml')\n if (!fs.existsSync(tomlPath)) {\n throw new Error(`Move.toml not found in ${tomlPath}`)\n }\n const toml = parse(fs.readFileSync(tomlPath, 'utf-8')) as unknown as MoveToml\n const { dependencies } = toml\n let result: MoveContext = { [toml.package.name]: toml } satisfies MoveContext\n if (dependencies !== undefined) {\n Object.keys(dependencies)\n .filter((key) => {\n return dependencies[key]?.local !== undefined\n })\n .forEach((key) => {\n const dependency = dependencies[key] as { local: string }\n const dependencyPath = path.join(modulePath, dependency.local)\n result = { ...getRawMoveContextByPath(dependencyPath), ...result } satisfies MoveContext\n })\n }\n return result\n}\n\nexport function parseAddresses(addresses: ModuleAddresses, network: Network): { [key in string]?: string } {\n if (addresses === undefined) {\n return {}\n }\n const result: { [key in string]?: string } = {}\n for (const key of Object.keys(addresses)) {\n const value = addresses[key]\n if (typeof value === 'string') {\n result[key] = value\n } else {\n const networkAddress = value[network]\n if (networkAddress === undefined) {\n throw new Error(`${key} address not found for network ${network}`)\n }\n result[key] = networkAddress\n }\n }\n return result\n}\n\nexport function getMoveContext(moduleName: string, lzInitiaConfig: LzInitiaConfig, network: Network): MoveContext {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n throw new Error(`module ${moduleName} not found when getting Move context`)\n }\n const context = getRawMoveContextByPath(module.modulePath)\n for (const key of Object.keys(context)) {\n const toml = context[key]!\n for (const addressKey of Object.keys(toml.addresses)) {\n const address = toml.addresses[addressKey]\n const presetAddresses = {\n ...parseAddresses(lzInitiaConfig.modules[key]?.addresses, network),\n ...parseAddresses(lzInitiaConfig.modules[moduleName]?.addresses, network),\n }\n if (address === '_') {\n if (presetAddresses[addressKey] !== undefined && presetAddresses[addressKey] !== '') {\n toml.addresses[addressKey] = presetAddresses[addressKey]!\n } else {\n try {\n toml.addresses[addressKey] = AccAddress.toHex(\n getDeployer(addressKey, lzInitiaConfig, network).accAddress\n )\n } catch (e) {\n if (key === moduleName) {\n throw new Error(`Fail to generate context for ${key}. ${(e as Error).toString()}`)\n } else {\n throw new Error(\n `Fail to generate context for dependent module ${key}. ${(e as Error).toString()}`\n )\n }\n }\n }\n }\n }\n }\n return context\n}\n","import { CmdOptions } from '@/types'\n\nexport function parseOptions(defaultOptions: CmdOptions, customOptions: CmdOptions): string[] {\n const options: CmdOptions = { ...defaultOptions, ...customOptions }\n const res: string[] = []\n for (const key of Object.keys(options)) {\n if (typeof options[key] === 'boolean') {\n if (options[key] === true) {\n res.push(key)\n }\n } else {\n res.push(key)\n res.push(options[key] as string)\n }\n }\n return res\n}\n","import fs from 'fs'\nimport path from 'path'\n\nimport { getMoveContext } from '@/move'\nimport { parseOptions } from '@/options'\nimport { CmdOptions, LzInitiaConfig, MoveToml } from '@/types'\nimport { glob } from 'glob'\nimport { $, ProcessOutput } from 'zx'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\n// eslint-disable-next-line @typescript-eslint/promise-function-async\nexport function buildProcess(\n modulePath: string,\n addresses: { [key: string]: string },\n toml: MoveToml,\n customOptions: CmdOptions = {}\n): Promise<ProcessOutput> {\n const addressesParam = Object.keys(addresses)\n .map((key) => `${key}=${addresses[key]}`)\n .join(',')\n const defaultOptions = {\n '--skip-fetch-latest-git-deps': true,\n '--named-addresses': addressesParam,\n }\n const args = parseOptions(defaultOptions, customOptions)\n return $({\n cwd: modulePath,\n stdio: ['inherit', 'pipe', process.stderr],\n verbose: true,\n })`initiad move build ${args}`\n}\n\nexport async function copyArtifacts(src: string, dest: string): Promise<void> {\n // remove existing artifacts, this is necessary to avoid leaving old artifacts\n if (fs.existsSync(dest)) {\n console.log(`Removing existing artifacts at ${dest}`)\n fs.rmSync(dest, { recursive: true })\n }\n fs.mkdirSync(dest, { recursive: true })\n const moduleDir = path.join(src, 'bytecode_modules')\n const modules = glob.sync('*.mv', { cwd: moduleDir })\n for (const module of modules) {\n const destByteCodePath = path.join(dest, 'bytecode_modules')\n if (!fs.existsSync(destByteCodePath)) {\n fs.mkdirSync(destByteCodePath, { recursive: true })\n }\n await $({\n verbose: true,\n })`cp ${path.join(moduleDir, module)} ${path.join(destByteCodePath, module)}`\n }\n}\n\nexport async function build(\n moduleName: string,\n lzInitiaConfig: LzInitiaConfig,\n network: Network,\n skipBuild = false,\n variant?: string\n): Promise<void> {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n throw new Error(`module ${moduleName} not found`)\n }\n const { modulePath } = module\n const context = getMoveContext(moduleName, lzInitiaConfig, network)\n const pkgName = context[moduleName]!.package.name\n const srcPath = path.join(modulePath, 'build', pkgName)\n const outputDir = lzInitiaConfig.modules[moduleName]?.alias ?? pkgName\n const outputPath = path.join(\n lzInitiaConfig.artifactsPath,\n variant !== undefined && variant.length > 0 ? `${outputDir}-${variant}` : outputDir\n )\n let addresses: { [key: string]: string } = {}\n for (const key of Object.keys(context)) {\n const toml = context[key]!\n if (!(key in toml.addresses)) {\n throw new Error(`address not found for ${key}`)\n }\n addresses = { ...addresses, ...toml.addresses }\n }\n addresses = { ...addresses, ...context[moduleName]!.addresses }\n if (!skipBuild) {\n await buildProcess(modulePath, addresses, context[moduleName]!, {\n ...lzInitiaConfig.compileOptions,\n ...module.compileOptions,\n })\n }\n await copyArtifacts(srcPath, outputPath)\n}\n","import { LzInitiaConfig } from '@/types'\nimport { LCDClient } from '@initia/initia.js'\n\nimport { Environment } from '@layerzerolabs/lz-definitions'\n\nexport function getInitiaClient(env: Environment, config: LzInitiaConfig): LCDClient {\n const url = config.network?.[env] as string | undefined\n if (url === undefined) {\n throw new Error(`No network url for ${env} found in lz-initia.config.ts`)\n }\n const lcd = new LCDClient(url)\n return lcd\n}\n","import { AxiosError, MoveContext } from '@/types'\nimport { AccAddress } from '@initia/initia.js'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nfunction isAxiosError(error: any): error is AxiosError {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return error?.response?.data?.message !== undefined\n}\n\nfunction handleDepMissingError(error: AxiosError, moduleName: string, context: MoveContext): void {\n if (error.response.data.message.includes('EPACKAGE_DEP_MISSING')) {\n throw new Error(\n `Deploy ${moduleName} failed with EPACKAGE_DEP_MISSING, make sure you have deployed the dependent module [${Object.keys(\n context\n )\n .filter((module) => module !== moduleName)\n .join(',')}]`\n )\n }\n}\n\nfunction handleAccountNotFoundError(\n error: AxiosError,\n moduleName: string,\n context: MoveContext,\n network: Network\n): void {\n const address = context[moduleName]?.addresses[moduleName]\n if (address === undefined) {\n return\n }\n if (error.response.data.message.includes(`account ${AccAddress.fromHex(address)} not found`)) {\n throw new Error(\n `${error.response.data.message}, make sure you have funded the account ${AccAddress.fromHex(address)}(${address}) on ${network}`\n )\n }\n}\n\nfunction handleSenderNotMatchError(error: AxiosError, moduleName: string): void {\n if (error.response.data.message.includes('MODULE_ADDRESS_DOES_NOT_MATCH_SENDER')) {\n throw new Error(\n `Deploy ${moduleName} failed with MODULE_ADDRESS_DOES_NOT_MATCH_SENDER, make sure you compile ${moduleName} with the deployer account address`\n )\n }\n}\n\nfunction handleOtherAxiosError(error: AxiosError): void {\n throw new Error(error.response.data.message)\n}\n\nexport function handleError(error: Error, moduleName: string, context: MoveContext, network: Network): void {\n if (isAxiosError(error)) {\n handleDepMissingError(error, moduleName, context)\n handleAccountNotFoundError(error, moduleName, context, network)\n handleSenderNotMatchError(error, moduleName)\n handleOtherAxiosError(error)\n }\n throw error\n}\n","import fs from 'fs'\nimport * as crypto from 'node:crypto'\nimport path from 'path'\n\nimport { getInitiaClient } from '@/client'\nimport { getDeployer } from '@/deployer'\nimport { handleError } from '@/errors'\nimport { getMoveContext } from '@/move'\nimport { LzInitiaConfig } from '@/types'\nimport { AccAddress, MsgPublish, TxError, Wallet } from '@initia/initia.js'\nimport { glob } from 'glob'\n\nimport { EndpointVersion, Network, Stage, networkToEnv, networkToStage } from '@layerzerolabs/lz-definitions'\n\nfunction deploymentPath(pkgName: string, dest: string, network: Network, variant?: string): string {\n const deploymentPath = path.join(dest, network)\n return path.join(deploymentPath, `${pkgWithVariant(pkgName, variant)}.json`)\n}\n\nexport function saveDeployment(\n moduleName: string,\n pkgName: string,\n address: string,\n dest: string,\n network: Network,\n bytecodeHash: string,\n hash: string,\n variant?: string,\n compatibleVersions = [EndpointVersion.V1, EndpointVersion.V2]\n): void {\n const destPath = deploymentPath(pkgName, dest, network, variant)\n const deploymentDir = path.dirname(destPath)\n if (!fs.existsSync(deploymentDir)) {\n fs.mkdirSync(deploymentDir, { recursive: true })\n }\n fs.writeFileSync(\n destPath,\n JSON.stringify(\n {\n address,\n name: pkgWithVariant(pkgName, variant),\n moduleName,\n network,\n compatibleVersions,\n bytecodeHash,\n transactionHash: hash,\n },\n null,\n 2\n )\n )\n console.log(`Deployment saved to ${destPath}`)\n}\n\nfunction needDeploy(pkgName: string, dest: string, network: Network, bytecodeHash: string, variant?: string): boolean {\n if (networkToStage(network) === Stage.SANDBOX) {\n return true\n }\n const destPath = deploymentPath(pkgName, dest, network, variant)\n if (fs.existsSync(destPath)) {\n const deployment = JSON.parse(fs.readFileSync(destPath, 'utf-8')) as { bytecodeHash: string }\n return deployment.bytecodeHash !== bytecodeHash\n }\n return true\n}\n\nfunction pkgWithVariant(pkgName: string, variant?: string): string {\n return variant !== undefined && variant.length > 0 ? `${pkgName}-${variant}` : pkgName\n}\n\nfunction getBytecodesHash(bytecodes: Uint8Array[]): string {\n // sha256 hash of all bytecodes\n const hash = crypto.createHash('sha256')\n bytecodes.forEach((bytecode) => {\n hash.update(bytecode)\n })\n return hash.digest('hex')\n}\n\nexport async function deploy(\n moduleName: string,\n lzInitiaConfig: LzInitiaConfig,\n network: Network,\n variant?: string\n): Promise<void> {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n throw new Error(`module ${moduleName} not found`)\n }\n const env = networkToEnv(network, EndpointVersion.V2)\n const client = getInitiaClient(env, lzInitiaConfig)\n const deployer = getDeployer(moduleName, lzInitiaConfig, network)\n const context = getMoveContext(moduleName, lzInitiaConfig, network)\n const pkgName = lzInitiaConfig.modules[moduleName]?.alias ?? context[moduleName]!.package.name\n const moduleDir = path.join(lzInitiaConfig.artifactsPath, `${pkgWithVariant(pkgName, variant)}/bytecode_modules`)\n\n const moduleNames: string[] = glob.sync('*.mv', { cwd: moduleDir })\n const moduleBuffers = moduleNames.map((moduleName) => fs.readFileSync(path.join(moduleDir, moduleName)))\n const bytecodeHash = getBytecodesHash(moduleBuffers)\n if (!needDeploy(pkgName, lzInitiaConfig.deploymentPath, network, bytecodeHash, variant)) {\n console.warn(`Code of ${moduleName} has not changed, skipping deploy`)\n return\n }\n try {\n // TODO policy from config\n const msgs = [\n new MsgPublish(\n deployer.accAddress,\n moduleBuffers.map((codeBytes) => codeBytes.toString('base64')),\n MsgPublish.Policy.COMPATIBLE\n ),\n ]\n const wallet = new Wallet(client, deployer)\n const gasPrices =\n lzInitiaConfig.gasPrice?.[network] === undefined ? undefined : `${lzInitiaConfig.gasPrice[network]}uinit`\n const signedTx = await wallet.createAndSignTx({ msgs, gasPrices })\n const tx = await client.tx.broadcast(signedTx)\n if (((tx as TxError).code as number) !== 0) {\n throw new Error(tx.raw_log)\n }\n console.log(`Deploy transaction ${tx.txhash} successfully`)\n saveDeployment(\n moduleName,\n pkgName,\n AccAddress.toHex(deployer.accAddress),\n lzInitiaConfig.deploymentPath,\n network,\n bytecodeHash,\n tx.txhash,\n variant,\n lzInitiaConfig.compatibleVersions\n )\n } catch (e: unknown) {\n if (e instanceof Error) {\n handleError(e, moduleName, context, network)\n } else {\n throw e\n }\n }\n}\n"]}
|
package/dist/index.mjs
CHANGED
|
@@ -4,14 +4,13 @@ import { MsgPublish, Wallet, AccAddress, LCDClient, MnemonicKey } from '@initia/
|
|
|
4
4
|
import { parse } from 'smol-toml';
|
|
5
5
|
import { glob } from 'glob';
|
|
6
6
|
import { $ } from 'zx';
|
|
7
|
-
import * as crypto from 'crypto';
|
|
7
|
+
import * as crypto from 'node:crypto';
|
|
8
8
|
import { EndpointVersion, networkToEnv, networkToStage, Stage } from '@layerzerolabs/lz-definitions';
|
|
9
9
|
|
|
10
10
|
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
11
11
|
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
12
12
|
}) : x)(function(x) {
|
|
13
|
-
if (typeof require !== "undefined")
|
|
14
|
-
return require.apply(this, arguments);
|
|
13
|
+
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
15
14
|
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
16
15
|
});
|
|
17
16
|
|
|
@@ -370,5 +369,5 @@ async function deploy(moduleName, lzInitiaConfig, network, variant) {
|
|
|
370
369
|
}
|
|
371
370
|
|
|
372
371
|
export { build, buildProcess, copyArtifacts, deploy, saveDeployment };
|
|
373
|
-
//# sourceMappingURL=
|
|
372
|
+
//# sourceMappingURL=index.mjs.map
|
|
374
373
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/build.ts","../src/move.ts","../src/loader.ts","../src/deployer.ts","../src/options.ts","../src/deploy.ts","../src/client.ts","../src/errors.ts"],"names":["fs","path","AccAddress","glob","deploymentPath","moduleName"],"mappings":";;;;;;;;;AAAA,OAAOA,SAAQ;AACf,OAAOC,WAAU;;;ACDjB,OAAO,QAAQ;AACf,OAAO,UAAU;;;ACCV,SAAS,WAAW,YAAoC;AAG3D,QAAM,aAAa;AACnB,QAAM,SAAS,UAAQ,UAAU;AACjC,SAAO,SAAS;AAAA,IACZ,eAAe;AAAA,IACf,WAAW;AAAA,EACf,CAAC;AAED,MAAI;AAEA,UAAM,WAAW,UAAQ,UAAU;AACnC,WAAO,aAAa,WAAW,SAAS,UAAU;AAAA,EACtD,SAAS,GAAG;AACR,QAAI,MAAM,QAAQ,OAAO,MAAM,YAAY,UAAU,KAAK,EAAE,SAAS,mBAAmB;AACpF,YAAM,IAAI;AAAA,QACN;AAAA,MACJ;AAAA,IACJ;AAEA,UAAM;AAAA,EACV;AACJ;;;ACvBA,SAAS,mBAAmB;AAIrB,SAAS,gBAAgB,SAAqD;AACjF,SAAO,YAAY,UAAa,mBAAmB;AACvD;AAEO,SAAS,YAAY,YAAoB,gBAAgC,SAA+B;AAC3G,QAAM,SAAS,eAAe,QAAQ,UAAU;AAChD,MAAI,CAAC,QAAQ;AACT,QAAI,eAAe,eAAe,eAAe,YAAY,SAAS,GAAG;AACrE,iBAAW,cAAc,eAAe,aAAa;AACjD,cAAM,aAAa,WAAW,UAAU;AACxC,YAAI;AACA,iBAAO,YAAY,YAAY,YAAY,OAAO;AAAA,QACtD,SAAS,GAAG;AAAA,QAEZ;AAAA,MACJ;AAAA,IACJ;AACA,UAAM,IAAI;AAAA,MACN,UAAU,UAAU;AAAA,IACxB;AAAA,EACJ;AACA,QAAM,iBAAiB,gBAAgB,OAAO,QAAQ,IAAI,OAAO,WAAW,OAAO,WAAW,OAAO;AACrG,QAAM,kBAAkB,gBAAgB,eAAe,eAAe,IAChE,eAAe,kBACf,eAAe,kBAAkB,OAAO;AAC9C,QAAM,WAAW,kBAAkB;AACnC,MAAI,CAAC,UAAU;AACX,UAAM,IAAI,MAAM,uBAAuB,UAAU,YAAY;AAAA,EACjE;AACA,SAAO;AACX;;;AF/BA,SAAS,kBAAkB;AAC3B,SAAS,aAAa;AAIf,SAAS,wBAAwB,YAAiC;AACrE,QAAM,WAAW,KAAK,KAAK,YAAY,WAAW;AAClD,MAAI,CAAC,GAAG,WAAW,QAAQ,GAAG;AAC1B,UAAM,IAAI,MAAM,0BAA0B,QAAQ,EAAE;AAAA,EACxD;AACA,QAAM,OAAO,MAAM,GAAG,aAAa,UAAU,OAAO,CAAC;AACrD,QAAM,EAAE,aAAa,IAAI;AACzB,MAAI,SAAsB,EAAE,CAAC,KAAK,QAAQ,IAAI,GAAG,KAAK;AACtD,MAAI,iBAAiB,QAAW;AAC5B,WAAO,KAAK,YAAY,EACnB,OAAO,CAAC,QAAQ;AACb,aAAO,aAAa,GAAG,GAAG,UAAU;AAAA,IACxC,CAAC,EACA,QAAQ,CAAC,QAAQ;AACd,YAAM,aAAa,aAAa,GAAG;AACnC,YAAM,iBAAiB,KAAK,KAAK,YAAY,WAAW,KAAK;AAC7D,eAAS,EAAE,GAAG,wBAAwB,cAAc,GAAG,GAAG,OAAO;AAAA,IACrE,CAAC;AAAA,EACT;AACA,SAAO;AACX;AAEO,SAAS,eAAe,WAA4B,SAAgD;AACvG,MAAI,cAAc,QAAW;AACzB,WAAO,CAAC;AAAA,EACZ;AACA,QAAM,SAAuC,CAAC;AAC9C,aAAW,OAAO,OAAO,KAAK,SAAS,GAAG;AACtC,UAAM,QAAQ,UAAU,GAAG;AAC3B,QAAI,OAAO,UAAU,UAAU;AAC3B,aAAO,GAAG,IAAI;AAAA,IAClB,OAAO;AACH,YAAM,iBAAiB,MAAM,OAAO;AACpC,UAAI,mBAAmB,QAAW;AAC9B,cAAM,IAAI,MAAM,GAAG,GAAG,kCAAkC,OAAO,EAAE;AAAA,MACrE;AACA,aAAO,GAAG,IAAI;AAAA,IAClB;AAAA,EACJ;AACA,SAAO;AACX;AAEO,SAAS,eAAe,YAAoB,gBAAgC,SAA+B;AAC9G,QAAM,SAAS,eAAe,QAAQ,UAAU;AAChD,MAAI,CAAC,QAAQ;AACT,UAAM,IAAI,MAAM,UAAU,UAAU,sCAAsC;AAAA,EAC9E;AACA,QAAM,UAAU,wBAAwB,OAAO,UAAU;AACzD,aAAW,OAAO,OAAO,KAAK,OAAO,GAAG;AACpC,UAAM,OAAO,QAAQ,GAAG;AACxB,eAAW,cAAc,OAAO,KAAK,KAAK,SAAS,GAAG;AAClD,YAAM,UAAU,KAAK,UAAU,UAAU;AACzC,YAAM,kBAAkB;AAAA,QACpB,GAAG,eAAe,eAAe,QAAQ,GAAG,GAAG,WAAW,OAAO;AAAA,QACjE,GAAG,eAAe,eAAe,QAAQ,UAAU,GAAG,WAAW,OAAO;AAAA,MAC5E;AACA,UAAI,YAAY,KAAK;AACjB,YAAI,gBAAgB,UAAU,MAAM,UAAa,gBAAgB,UAAU,MAAM,IAAI;AACjF,eAAK,UAAU,UAAU,IAAI,gBAAgB,UAAU;AAAA,QAC3D,OAAO;AACH,cAAI;AACA,iBAAK,UAAU,UAAU,IAAI,WAAW;AAAA,cACpC,YAAY,YAAY,gBAAgB,OAAO,EAAE;AAAA,YACrD;AAAA,UACJ,SAAS,GAAG;AACR,gBAAI,QAAQ,YAAY;AACpB,oBAAM,IAAI,MAAM,gCAAgC,GAAG,KAAM,EAAY,SAAS,CAAC,EAAE;AAAA,YACrF,OAAO;AACH,oBAAM,IAAI;AAAA,gBACN,iDAAiD,GAAG,KAAM,EAAY,SAAS,CAAC;AAAA,cACpF;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACA,SAAO;AACX;;;AGtFO,SAAS,aAAa,gBAA4B,eAAqC;AAC1F,QAAM,UAAsB,EAAE,GAAG,gBAAgB,GAAG,cAAc;AAClE,QAAM,MAAgB,CAAC;AACvB,aAAW,OAAO,OAAO,KAAK,OAAO,GAAG;AACpC,QAAI,OAAO,QAAQ,GAAG,MAAM,WAAW;AACnC,UAAI,QAAQ,GAAG,MAAM,MAAM;AACvB,YAAI,KAAK,GAAG;AAAA,MAChB;AAAA,IACJ,OAAO;AACH,UAAI,KAAK,GAAG;AACZ,UAAI,KAAK,QAAQ,GAAG,CAAW;AAAA,IACnC;AAAA,EACJ;AACA,SAAO;AACX;;;AJVA,SAAS,YAAY;AACrB,SAAS,SAAwB;AAK1B,SAAS,aACZ,YACA,WACA,MACA,gBAA4B,CAAC,GACP;AACtB,QAAM,iBAAiB,OAAO,KAAK,SAAS,EACvC,IAAI,CAAC,QAAQ,GAAG,GAAG,IAAI,UAAU,GAAG,CAAC,EAAE,EACvC,KAAK,GAAG;AACb,QAAM,iBAAiB;AAAA,IACnB,gCAAgC;AAAA,IAChC,qBAAqB;AAAA,EACzB;AACA,QAAM,OAAO,aAAa,gBAAgB,aAAa;AACvD,SAAO,EAAE;AAAA,IACL,KAAK;AAAA,IACL,OAAO,CAAC,WAAW,QAAQ,QAAQ,MAAM;AAAA,IACzC,SAAS;AAAA,EACb,CAAC,uBAAuB,IAAI;AAChC;AAEA,eAAsB,cAAc,KAAa,MAA6B;AAE1E,MAAID,IAAG,WAAW,IAAI,GAAG;AACrB,YAAQ,IAAI,kCAAkC,IAAI,EAAE;AACpD,IAAAA,IAAG,OAAO,MAAM,EAAE,WAAW,KAAK,CAAC;AAAA,EACvC;AACA,EAAAA,IAAG,UAAU,MAAM,EAAE,WAAW,KAAK,CAAC;AACtC,QAAM,YAAYC,MAAK,KAAK,KAAK,kBAAkB;AACnD,QAAM,UAAU,KAAK,KAAK,QAAQ,EAAE,KAAK,UAAU,CAAC;AACpD,aAAW,UAAU,SAAS;AAC1B,UAAM,mBAAmBA,MAAK,KAAK,MAAM,kBAAkB;AAC3D,QAAI,CAACD,IAAG,WAAW,gBAAgB,GAAG;AAClC,MAAAA,IAAG,UAAU,kBAAkB,EAAE,WAAW,KAAK,CAAC;AAAA,IACtD;AACA,UAAM,EAAE;AAAA,MACJ,SAAS;AAAA,IACb,CAAC,OAAOC,MAAK,KAAK,WAAW,MAAM,CAAC,IAAIA,MAAK,KAAK,kBAAkB,MAAM,CAAC;AAAA,EAC/E;AACJ;AAEA,eAAsB,MAClB,YACA,gBACA,SACA,YAAY,OACZ,SACa;AACb,QAAM,SAAS,eAAe,QAAQ,UAAU;AAChD,MAAI,CAAC,QAAQ;AACT,UAAM,IAAI,MAAM,UAAU,UAAU,YAAY;AAAA,EACpD;AACA,QAAM,EAAE,WAAW,IAAI;AACvB,QAAM,UAAU,eAAe,YAAY,gBAAgB,OAAO;AAClE,QAAM,UAAU,QAAQ,UAAU,EAAG,QAAQ;AAC7C,QAAM,UAAUA,MAAK,KAAK,YAAY,SAAS,OAAO;AACtD,QAAM,YAAY,eAAe,QAAQ,UAAU,GAAG,SAAS;AAC/D,QAAM,aAAaA,MAAK;AAAA,IACpB,eAAe;AAAA,IACf,YAAY,UAAa,QAAQ,SAAS,IAAI,GAAG,SAAS,IAAI,OAAO,KAAK;AAAA,EAC9E;AACA,MAAI,YAAuC,CAAC;AAC5C,aAAW,OAAO,OAAO,KAAK,OAAO,GAAG;AACpC,UAAM,OAAO,QAAQ,GAAG;AACxB,QAAI,EAAE,OAAO,KAAK,YAAY;AAC1B,YAAM,IAAI,MAAM,yBAAyB,GAAG,EAAE;AAAA,IAClD;AACA,gBAAY,EAAE,GAAG,WAAW,GAAG,KAAK,UAAU;AAAA,EAClD;AACA,cAAY,EAAE,GAAG,WAAW,GAAG,QAAQ,UAAU,EAAG,UAAU;AAC9D,MAAI,CAAC,WAAW;AACZ,UAAM,aAAa,YAAY,WAAW,QAAQ,UAAU,GAAI;AAAA,MAC5D,GAAG,eAAe;AAAA,MAClB,GAAG,OAAO;AAAA,IACd,CAAC;AAAA,EACL;AACA,QAAM,cAAc,SAAS,UAAU;AAC3C;;;AKzFA,OAAOD,SAAQ;AACf,YAAY,YAAY;AACxB,OAAOC,WAAU;;;ACDjB,SAAS,iBAAiB;AAInB,SAAS,gBAAgB,KAAkB,QAAmC;AACjF,QAAM,MAAM,OAAO,UAAU,GAAG;AAChC,MAAI,QAAQ,QAAW;AACnB,UAAM,IAAI,MAAM,sBAAsB,GAAG,+BAA+B;AAAA,EAC5E;AACA,QAAM,MAAM,IAAI,UAAU,GAAG;AAC7B,SAAO;AACX;;;ACXA,SAAS,cAAAC,mBAAkB;AAI3B,SAAS,aAAa,OAAiC;AAEnD,SAAO,OAAO,UAAU,MAAM,YAAY;AAC9C;AAEA,SAAS,sBAAsB,OAAmB,YAAoB,SAA4B;AAC9F,MAAI,MAAM,SAAS,KAAK,QAAQ,SAAS,sBAAsB,GAAG;AAC9D,UAAM,IAAI;AAAA,MACN,UAAU,UAAU,wFAAwF,OAAO;AAAA,QAC/G;AAAA,MACJ,EACK,OAAO,CAAC,WAAW,WAAW,UAAU,EACxC,KAAK,GAAG,CAAC;AAAA,IAClB;AAAA,EACJ;AACJ;AAEA,SAAS,2BACL,OACA,YACA,SACA,SACI;AACJ,QAAM,UAAU,QAAQ,UAAU,GAAG,UAAU,UAAU;AACzD,MAAI,YAAY,QAAW;AACvB;AAAA,EACJ;AACA,MAAI,MAAM,SAAS,KAAK,QAAQ,SAAS,WAAWA,YAAW,QAAQ,OAAO,CAAC,YAAY,GAAG;AAC1F,UAAM,IAAI;AAAA,MACN,GAAG,MAAM,SAAS,KAAK,OAAO,2CAA2CA,YAAW,QAAQ,OAAO,CAAC,IAAI,OAAO,QAAQ,OAAO;AAAA,IAClI;AAAA,EACJ;AACJ;AAEA,SAAS,0BAA0B,OAAmB,YAA0B;AAC5E,MAAI,MAAM,SAAS,KAAK,QAAQ,SAAS,sCAAsC,GAAG;AAC9E,UAAM,IAAI;AAAA,MACN,UAAU,UAAU,4EAA4E,UAAU;AAAA,IAC9G;AAAA,EACJ;AACJ;AAEA,SAAS,sBAAsB,OAAyB;AACpD,QAAM,IAAI,MAAM,MAAM,SAAS,KAAK,OAAO;AAC/C;AAEO,SAAS,YAAY,OAAc,YAAoB,SAAsB,SAAwB;AACxG,MAAI,aAAa,KAAK,GAAG;AACrB,0BAAsB,OAAO,YAAY,OAAO;AAChD,+BAA2B,OAAO,YAAY,SAAS,OAAO;AAC9D,8BAA0B,OAAO,UAAU;AAC3C,0BAAsB,KAAK;AAAA,EAC/B;AACA,QAAM;AACV;;;AFlDA,SAAS,cAAAA,aAAY,YAAqB,cAAc;AACxD,SAAS,QAAAC,aAAY;AAErB,SAAS,iBAA0B,OAAO,cAAc,sBAAsB;AAE9E,SAAS,eAAe,SAAiB,MAAc,SAAkB,SAA0B;AAC/F,QAAMC,kBAAiBH,MAAK,KAAK,MAAM,OAAO;AAC9C,SAAOA,MAAK,KAAKG,iBAAgB,GAAG,eAAe,SAAS,OAAO,CAAC,OAAO;AAC/E;AAEO,SAAS,eACZ,YACA,SACA,SACA,MACA,SACA,cACA,MACA,SACA,qBAAqB,CAAC,gBAAgB,IAAI,gBAAgB,EAAE,GACxD;AACJ,QAAM,WAAW,eAAe,SAAS,MAAM,SAAS,OAAO;AAC/D,QAAM,gBAAgBH,MAAK,QAAQ,QAAQ;AAC3C,MAAI,CAACD,IAAG,WAAW,aAAa,GAAG;AAC/B,IAAAA,IAAG,UAAU,eAAe,EAAE,WAAW,KAAK,CAAC;AAAA,EACnD;AACA,EAAAA,IAAG;AAAA,IACC;AAAA,IACA,KAAK;AAAA,MACD;AAAA,QACI;AAAA,QACA,MAAM,eAAe,SAAS,OAAO;AAAA,QACrC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,iBAAiB;AAAA,MACrB;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AACA,UAAQ,IAAI,uBAAuB,QAAQ,EAAE;AACjD;AAEA,SAAS,WAAW,SAAiB,MAAc,SAAkB,cAAsB,SAA2B;AAClH,MAAI,eAAe,OAAO,MAAM,MAAM,SAAS;AAC3C,WAAO;AAAA,EACX;AACA,QAAM,WAAW,eAAe,SAAS,MAAM,SAAS,OAAO;AAC/D,MAAIA,IAAG,WAAW,QAAQ,GAAG;AACzB,UAAM,aAAa,KAAK,MAAMA,IAAG,aAAa,UAAU,OAAO,CAAC;AAChE,WAAO,WAAW,iBAAiB;AAAA,EACvC;AACA,SAAO;AACX;AAEA,SAAS,eAAe,SAAiB,SAA0B;AAC/D,SAAO,YAAY,UAAa,QAAQ,SAAS,IAAI,GAAG,OAAO,IAAI,OAAO,KAAK;AACnF;AAEA,SAAS,iBAAiB,WAAiC;AAEvD,QAAM,OAAc,kBAAW,QAAQ;AACvC,YAAU,QAAQ,CAAC,aAAa;AAC5B,SAAK,OAAO,QAAQ;AAAA,EACxB,CAAC;AACD,SAAO,KAAK,OAAO,KAAK;AAC5B;AAEA,eAAsB,OAClB,YACA,gBACA,SACA,SACa;AACb,QAAM,SAAS,eAAe,QAAQ,UAAU;AAChD,MAAI,CAAC,QAAQ;AACT,UAAM,IAAI,MAAM,UAAU,UAAU,YAAY;AAAA,EACpD;AACA,QAAM,MAAM,aAAa,SAAS,gBAAgB,EAAE;AACpD,QAAM,SAAS,gBAAgB,KAAK,cAAc;AAClD,QAAM,WAAW,YAAY,YAAY,gBAAgB,OAAO;AAChE,QAAM,UAAU,eAAe,YAAY,gBAAgB,OAAO;AAClE,QAAM,UAAU,eAAe,QAAQ,UAAU,GAAG,SAAS,QAAQ,UAAU,EAAG,QAAQ;AAC1F,QAAM,YAAYC,MAAK,KAAK,eAAe,eAAe,GAAG,eAAe,SAAS,OAAO,CAAC,mBAAmB;AAEhH,QAAM,cAAwBE,MAAK,KAAK,QAAQ,EAAE,KAAK,UAAU,CAAC;AAClE,QAAM,gBAAgB,YAAY,IAAI,CAACE,gBAAeL,IAAG,aAAaC,MAAK,KAAK,WAAWI,WAAU,CAAC,CAAC;AACvG,QAAM,eAAe,iBAAiB,aAAa;AACnD,MAAI,CAAC,WAAW,SAAS,eAAe,gBAAgB,SAAS,cAAc,OAAO,GAAG;AACrF,YAAQ,KAAK,WAAW,UAAU,mCAAmC;AACrE;AAAA,EACJ;AACA,MAAI;AAEA,UAAM,OAAO;AAAA,MACT,IAAI;AAAA,QACA,SAAS;AAAA,QACT,cAAc,IAAI,CAAC,cAAc,UAAU,SAAS,QAAQ,CAAC;AAAA,QAC7D,WAAW,OAAO;AAAA,MACtB;AAAA,IACJ;AACA,UAAM,SAAS,IAAI,OAAO,QAAQ,QAAQ;AAC1C,UAAM,YACF,eAAe,WAAW,OAAO,MAAM,SAAY,SAAY,GAAG,eAAe,SAAS,OAAO,CAAC;AACtG,UAAM,WAAW,MAAM,OAAO,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjE,UAAM,KAAK,MAAM,OAAO,GAAG,UAAU,QAAQ;AAC7C,QAAM,GAAe,SAAoB,GAAG;AACxC,YAAM,IAAI,MAAM,GAAG,OAAO;AAAA,IAC9B;AACA,YAAQ,IAAI,sBAAsB,GAAG,MAAM,eAAe;AAC1D;AAAA,MACI;AAAA,MACA;AAAA,MACAH,YAAW,MAAM,SAAS,UAAU;AAAA,MACpC,eAAe;AAAA,MACf;AAAA,MACA;AAAA,MACA,GAAG;AAAA,MACH;AAAA,MACA,eAAe;AAAA,IACnB;AAAA,EACJ,SAAS,GAAY;AACjB,QAAI,aAAa,OAAO;AACpB,kBAAY,GAAG,YAAY,SAAS,OAAO;AAAA,IAC/C,OAAO;AACH,YAAM;AAAA,IACV;AAAA,EACJ;AACJ","sourcesContent":["import fs from 'fs'\nimport path from 'path'\n\nimport { getMoveContext } from '@/move'\nimport { parseOptions } from '@/options'\nimport { CmdOptions, LzInitiaConfig, MoveToml } from '@/types'\nimport { glob } from 'glob'\nimport { $, ProcessOutput } from 'zx'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\n// eslint-disable-next-line @typescript-eslint/promise-function-async\nexport function buildProcess(\n modulePath: string,\n addresses: { [key: string]: string },\n toml: MoveToml,\n customOptions: CmdOptions = {}\n): Promise<ProcessOutput> {\n const addressesParam = Object.keys(addresses)\n .map((key) => `${key}=${addresses[key]}`)\n .join(',')\n const defaultOptions = {\n '--skip-fetch-latest-git-deps': true,\n '--named-addresses': addressesParam,\n }\n const args = parseOptions(defaultOptions, customOptions)\n return $({\n cwd: modulePath,\n stdio: ['inherit', 'pipe', process.stderr],\n verbose: true,\n })`initiad move build ${args}`\n}\n\nexport async function copyArtifacts(src: string, dest: string): Promise<void> {\n // remove existing artifacts, this is necessary to avoid leaving old artifacts\n if (fs.existsSync(dest)) {\n console.log(`Removing existing artifacts at ${dest}`)\n fs.rmSync(dest, { recursive: true })\n }\n fs.mkdirSync(dest, { recursive: true })\n const moduleDir = path.join(src, 'bytecode_modules')\n const modules = glob.sync('*.mv', { cwd: moduleDir })\n for (const module of modules) {\n const destByteCodePath = path.join(dest, 'bytecode_modules')\n if (!fs.existsSync(destByteCodePath)) {\n fs.mkdirSync(destByteCodePath, { recursive: true })\n }\n await $({\n verbose: true,\n })`cp ${path.join(moduleDir, module)} ${path.join(destByteCodePath, module)}`\n }\n}\n\nexport async function build(\n moduleName: string,\n lzInitiaConfig: LzInitiaConfig,\n network: Network,\n skipBuild = false,\n variant?: string\n): Promise<void> {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n throw new Error(`module ${moduleName} not found`)\n }\n const { modulePath } = module\n const context = getMoveContext(moduleName, lzInitiaConfig, network)\n const pkgName = context[moduleName]!.package.name\n const srcPath = path.join(modulePath, 'build', pkgName)\n const outputDir = lzInitiaConfig.modules[moduleName]?.alias ?? pkgName\n const outputPath = path.join(\n lzInitiaConfig.artifactsPath,\n variant !== undefined && variant.length > 0 ? `${outputDir}-${variant}` : outputDir\n )\n let addresses: { [key: string]: string } = {}\n for (const key of Object.keys(context)) {\n const toml = context[key]!\n if (!(key in toml.addresses)) {\n throw new Error(`address not found for ${key}`)\n }\n addresses = { ...addresses, ...toml.addresses }\n }\n addresses = { ...addresses, ...context[moduleName]!.addresses }\n if (!skipBuild) {\n await buildProcess(modulePath, addresses, context[moduleName]!, {\n ...lzInitiaConfig.compileOptions,\n ...module.compileOptions,\n })\n }\n await copyArtifacts(srcPath, outputPath)\n}\n","import fs from 'fs'\nimport path from 'path'\n\nimport { getDeployer } from '@/deployer'\nimport { LzInitiaConfig, ModuleAddresses, MoveContext, MoveToml } from '@/types'\nimport { AccAddress } from '@initia/initia.js'\nimport { parse } from 'smol-toml'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nexport function getRawMoveContextByPath(modulePath: string): MoveContext {\n const tomlPath = path.join(modulePath, 'Move.toml')\n if (!fs.existsSync(tomlPath)) {\n throw new Error(`Move.toml not found in ${tomlPath}`)\n }\n const toml = parse(fs.readFileSync(tomlPath, 'utf-8')) as unknown as MoveToml\n const { dependencies } = toml\n let result: MoveContext = { [toml.package.name]: toml } satisfies MoveContext\n if (dependencies !== undefined) {\n Object.keys(dependencies)\n .filter((key) => {\n return dependencies[key]?.local !== undefined\n })\n .forEach((key) => {\n const dependency = dependencies[key] as { local: string }\n const dependencyPath = path.join(modulePath, dependency.local)\n result = { ...getRawMoveContextByPath(dependencyPath), ...result } satisfies MoveContext\n })\n }\n return result\n}\n\nexport function parseAddresses(addresses: ModuleAddresses, network: Network): { [key in string]?: string } {\n if (addresses === undefined) {\n return {}\n }\n const result: { [key in string]?: string } = {}\n for (const key of Object.keys(addresses)) {\n const value = addresses[key]\n if (typeof value === 'string') {\n result[key] = value\n } else {\n const networkAddress = value[network]\n if (networkAddress === undefined) {\n throw new Error(`${key} address not found for network ${network}`)\n }\n result[key] = networkAddress\n }\n }\n return result\n}\n\nexport function getMoveContext(moduleName: string, lzInitiaConfig: LzInitiaConfig, network: Network): MoveContext {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n throw new Error(`module ${moduleName} not found when getting Move context`)\n }\n const context = getRawMoveContextByPath(module.modulePath)\n for (const key of Object.keys(context)) {\n const toml = context[key]!\n for (const addressKey of Object.keys(toml.addresses)) {\n const address = toml.addresses[addressKey]\n const presetAddresses = {\n ...parseAddresses(lzInitiaConfig.modules[key]?.addresses, network),\n ...parseAddresses(lzInitiaConfig.modules[moduleName]?.addresses, network),\n }\n if (address === '_') {\n if (presetAddresses[addressKey] !== undefined && presetAddresses[addressKey] !== '') {\n toml.addresses[addressKey] = presetAddresses[addressKey]!\n } else {\n try {\n toml.addresses[addressKey] = AccAddress.toHex(\n getDeployer(addressKey, lzInitiaConfig, network).accAddress\n )\n } catch (e) {\n if (key === moduleName) {\n throw new Error(`Fail to generate context for ${key}. ${(e as Error).toString()}`)\n } else {\n throw new Error(\n `Fail to generate context for dependent module ${key}. ${(e as Error).toString()}`\n )\n }\n }\n }\n }\n }\n }\n return context\n}\n","import { LzInitiaConfig } from '@/types'\n\nexport function loadConfig(configPath: string): LzInitiaConfig {\n // WARNING: require('ts-node') will cause '[ERROR] Unterminated template (867:31) [plugin commonjs]' in some cases\n // this error can be eliminated by assigning the name to a variable and require that variable\n const moduleName = 'ts-node'\n const tsnode = require(moduleName) as typeof import('ts-node')\n tsnode.register({\n transpileOnly: true,\n typeCheck: false,\n })\n\n try {\n type ImportType = LzInitiaConfig | { default: LzInitiaConfig }\n const imported = require(configPath) as ImportType\n return 'default' in imported ? imported.default : imported\n } catch (e) {\n if (e !== null && typeof e === 'object' && 'code' in e && e.code === 'ERR_REQUIRE_ESM') {\n throw new Error(\n `Your project is an ESM project (you have \"type\": \"module\" set in your package.json) but your LayerZero config file uses the .js extension.`\n )\n }\n\n throw e\n }\n}\n","import { loadConfig } from '@/loader'\nimport { LzInitiaConfig } from '@/types'\nimport { MnemonicKey } from '@initia/initia.js'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nexport function isInitiaAccount(account: object | undefined): account is MnemonicKey {\n return account !== undefined && account instanceof MnemonicKey\n}\n\nexport function getDeployer(moduleName: string, lzInitiaConfig: LzInitiaConfig, network: Network): MnemonicKey {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n if (lzInitiaConfig.baseModules && lzInitiaConfig.baseModules.length > 0) {\n for (const baseModule of lzInitiaConfig.baseModules) {\n const baseConfig = loadConfig(baseModule)\n try {\n return getDeployer(moduleName, baseConfig, network)\n } catch (e) {\n /* ignore */\n }\n }\n }\n throw new Error(\n `Module ${moduleName} not found. Make sure it is defined in lz-initia.config.ts and double check the key is the package name in Move.toml.`\n )\n }\n const moduleDeployer = isInitiaAccount(module.deployer) ? module.deployer : module.deployer?.[network]\n const defaultDeployer = isInitiaAccount(lzInitiaConfig.defaultDeployer)\n ? lzInitiaConfig.defaultDeployer\n : lzInitiaConfig.defaultDeployer?.[network]\n const deployer = moduleDeployer ?? defaultDeployer\n if (!deployer) {\n throw new Error(`deployer for module ${moduleName} not found`)\n }\n return deployer\n}\n","import { CmdOptions } from '@/types'\n\nexport function parseOptions(defaultOptions: CmdOptions, customOptions: CmdOptions): string[] {\n const options: CmdOptions = { ...defaultOptions, ...customOptions }\n const res: string[] = []\n for (const key of Object.keys(options)) {\n if (typeof options[key] === 'boolean') {\n if (options[key] === true) {\n res.push(key)\n }\n } else {\n res.push(key)\n res.push(options[key] as string)\n }\n }\n return res\n}\n","import fs from 'fs'\nimport * as crypto from 'node:crypto'\nimport path from 'path'\n\nimport { getInitiaClient } from '@/client'\nimport { getDeployer } from '@/deployer'\nimport { handleError } from '@/errors'\nimport { getMoveContext } from '@/move'\nimport { LzInitiaConfig } from '@/types'\nimport { AccAddress, MsgPublish, TxError, Wallet } from '@initia/initia.js'\nimport { glob } from 'glob'\n\nimport { EndpointVersion, Network, Stage, networkToEnv, networkToStage } from '@layerzerolabs/lz-definitions'\n\nfunction deploymentPath(pkgName: string, dest: string, network: Network, variant?: string): string {\n const deploymentPath = path.join(dest, network)\n return path.join(deploymentPath, `${pkgWithVariant(pkgName, variant)}.json`)\n}\n\nexport function saveDeployment(\n moduleName: string,\n pkgName: string,\n address: string,\n dest: string,\n network: Network,\n bytecodeHash: string,\n hash: string,\n variant?: string,\n compatibleVersions = [EndpointVersion.V1, EndpointVersion.V2]\n): void {\n const destPath = deploymentPath(pkgName, dest, network, variant)\n const deploymentDir = path.dirname(destPath)\n if (!fs.existsSync(deploymentDir)) {\n fs.mkdirSync(deploymentDir, { recursive: true })\n }\n fs.writeFileSync(\n destPath,\n JSON.stringify(\n {\n address,\n name: pkgWithVariant(pkgName, variant),\n moduleName,\n network,\n compatibleVersions,\n bytecodeHash,\n transactionHash: hash,\n },\n null,\n 2\n )\n )\n console.log(`Deployment saved to ${destPath}`)\n}\n\nfunction needDeploy(pkgName: string, dest: string, network: Network, bytecodeHash: string, variant?: string): boolean {\n if (networkToStage(network) === Stage.SANDBOX) {\n return true\n }\n const destPath = deploymentPath(pkgName, dest, network, variant)\n if (fs.existsSync(destPath)) {\n const deployment = JSON.parse(fs.readFileSync(destPath, 'utf-8')) as { bytecodeHash: string }\n return deployment.bytecodeHash !== bytecodeHash\n }\n return true\n}\n\nfunction pkgWithVariant(pkgName: string, variant?: string): string {\n return variant !== undefined && variant.length > 0 ? `${pkgName}-${variant}` : pkgName\n}\n\nfunction getBytecodesHash(bytecodes: Uint8Array[]): string {\n // sha256 hash of all bytecodes\n const hash = crypto.createHash('sha256')\n bytecodes.forEach((bytecode) => {\n hash.update(bytecode)\n })\n return hash.digest('hex')\n}\n\nexport async function deploy(\n moduleName: string,\n lzInitiaConfig: LzInitiaConfig,\n network: Network,\n variant?: string\n): Promise<void> {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n throw new Error(`module ${moduleName} not found`)\n }\n const env = networkToEnv(network, EndpointVersion.V2)\n const client = getInitiaClient(env, lzInitiaConfig)\n const deployer = getDeployer(moduleName, lzInitiaConfig, network)\n const context = getMoveContext(moduleName, lzInitiaConfig, network)\n const pkgName = lzInitiaConfig.modules[moduleName]?.alias ?? context[moduleName]!.package.name\n const moduleDir = path.join(lzInitiaConfig.artifactsPath, `${pkgWithVariant(pkgName, variant)}/bytecode_modules`)\n\n const moduleNames: string[] = glob.sync('*.mv', { cwd: moduleDir })\n const moduleBuffers = moduleNames.map((moduleName) => fs.readFileSync(path.join(moduleDir, moduleName)))\n const bytecodeHash = getBytecodesHash(moduleBuffers)\n if (!needDeploy(pkgName, lzInitiaConfig.deploymentPath, network, bytecodeHash, variant)) {\n console.warn(`Code of ${moduleName} has not changed, skipping deploy`)\n return\n }\n try {\n // TODO policy from config\n const msgs = [\n new MsgPublish(\n deployer.accAddress,\n moduleBuffers.map((codeBytes) => codeBytes.toString('base64')),\n MsgPublish.Policy.COMPATIBLE\n ),\n ]\n const wallet = new Wallet(client, deployer)\n const gasPrices =\n lzInitiaConfig.gasPrice?.[network] === undefined ? undefined : `${lzInitiaConfig.gasPrice[network]}uinit`\n const signedTx = await wallet.createAndSignTx({ msgs, gasPrices })\n const tx = await client.tx.broadcast(signedTx)\n if (((tx as TxError).code as number) !== 0) {\n throw new Error(tx.raw_log)\n }\n console.log(`Deploy transaction ${tx.txhash} successfully`)\n saveDeployment(\n moduleName,\n pkgName,\n AccAddress.toHex(deployer.accAddress),\n lzInitiaConfig.deploymentPath,\n network,\n bytecodeHash,\n tx.txhash,\n variant,\n lzInitiaConfig.compatibleVersions\n )\n } catch (e: unknown) {\n if (e instanceof Error) {\n handleError(e, moduleName, context, network)\n } else {\n throw e\n }\n }\n}\n","import { LzInitiaConfig } from '@/types'\nimport { LCDClient } from '@initia/initia.js'\n\nimport { Environment } from '@layerzerolabs/lz-definitions'\n\nexport function getInitiaClient(env: Environment, config: LzInitiaConfig): LCDClient {\n const url = config.network?.[env] as string | undefined\n if (url === undefined) {\n throw new Error(`No network url for ${env} found in lz-initia.config.ts`)\n }\n const lcd = new LCDClient(url)\n return lcd\n}\n","import { AxiosError, MoveContext } from '@/types'\nimport { AccAddress } from '@initia/initia.js'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nfunction isAxiosError(error: any): error is AxiosError {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return error?.response?.data?.message !== undefined\n}\n\nfunction handleDepMissingError(error: AxiosError, moduleName: string, context: MoveContext): void {\n if (error.response.data.message.includes('EPACKAGE_DEP_MISSING')) {\n throw new Error(\n `Deploy ${moduleName} failed with EPACKAGE_DEP_MISSING, make sure you have deployed the dependent module [${Object.keys(\n context\n )\n .filter((module) => module !== moduleName)\n .join(',')}]`\n )\n }\n}\n\nfunction handleAccountNotFoundError(\n error: AxiosError,\n moduleName: string,\n context: MoveContext,\n network: Network\n): void {\n const address = context[moduleName]?.addresses[moduleName]\n if (address === undefined) {\n return\n }\n if (error.response.data.message.includes(`account ${AccAddress.fromHex(address)} not found`)) {\n throw new Error(\n `${error.response.data.message}, make sure you have funded the account ${AccAddress.fromHex(address)}(${address}) on ${network}`\n )\n }\n}\n\nfunction handleSenderNotMatchError(error: AxiosError, moduleName: string): void {\n if (error.response.data.message.includes('MODULE_ADDRESS_DOES_NOT_MATCH_SENDER')) {\n throw new Error(\n `Deploy ${moduleName} failed with MODULE_ADDRESS_DOES_NOT_MATCH_SENDER, make sure you compile ${moduleName} with the deployer account address`\n )\n }\n}\n\nfunction handleOtherAxiosError(error: AxiosError): void {\n throw new Error(error.response.data.message)\n}\n\nexport function handleError(error: Error, moduleName: string, context: MoveContext, network: Network): void {\n if (isAxiosError(error)) {\n handleDepMissingError(error, moduleName, context)\n handleAccountNotFoundError(error, moduleName, context, network)\n handleSenderNotMatchError(error, moduleName)\n handleOtherAxiosError(error)\n }\n throw error\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/loader.ts","../src/deployer.ts","../src/move.ts","../src/options.ts","../src/build.ts","../src/client.ts","../src/errors.ts","../src/deploy.ts"],"names":["path","fs","AccAddress","deploymentPath","glob","moduleName"],"mappings":"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","file":"index.mjs","sourcesContent":["import { LzInitiaConfig } from '@/types'\n\nexport function loadConfig(configPath: string): LzInitiaConfig {\n // WARNING: require('ts-node') will cause '[ERROR] Unterminated template (867:31) [plugin commonjs]' in some cases\n // this error can be eliminated by assigning the name to a variable and require that variable\n const moduleName = 'ts-node'\n const tsnode = require(moduleName) as typeof import('ts-node')\n tsnode.register({\n transpileOnly: true,\n typeCheck: false,\n })\n\n try {\n type ImportType = LzInitiaConfig | { default: LzInitiaConfig }\n const imported = require(configPath) as ImportType\n return 'default' in imported ? imported.default : imported\n } catch (e) {\n if (e !== null && typeof e === 'object' && 'code' in e && e.code === 'ERR_REQUIRE_ESM') {\n throw new Error(\n `Your project is an ESM project (you have \"type\": \"module\" set in your package.json) but your LayerZero config file uses the .js extension.`\n )\n }\n\n throw e\n }\n}\n","import { loadConfig } from '@/loader'\nimport { LzInitiaConfig } from '@/types'\nimport { MnemonicKey } from '@initia/initia.js'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nexport function isInitiaAccount(account: object | undefined): account is MnemonicKey {\n return account !== undefined && account instanceof MnemonicKey\n}\n\nexport function getDeployer(moduleName: string, lzInitiaConfig: LzInitiaConfig, network: Network): MnemonicKey {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n if (lzInitiaConfig.baseModules && lzInitiaConfig.baseModules.length > 0) {\n for (const baseModule of lzInitiaConfig.baseModules) {\n const baseConfig = loadConfig(baseModule)\n try {\n return getDeployer(moduleName, baseConfig, network)\n } catch (e) {\n /* ignore */\n }\n }\n }\n throw new Error(\n `Module ${moduleName} not found. Make sure it is defined in lz-initia.config.ts and double check the key is the package name in Move.toml.`\n )\n }\n const moduleDeployer = isInitiaAccount(module.deployer) ? module.deployer : module.deployer?.[network]\n const defaultDeployer = isInitiaAccount(lzInitiaConfig.defaultDeployer)\n ? lzInitiaConfig.defaultDeployer\n : lzInitiaConfig.defaultDeployer?.[network]\n const deployer = moduleDeployer ?? defaultDeployer\n if (!deployer) {\n throw new Error(`deployer for module ${moduleName} not found`)\n }\n return deployer\n}\n","import fs from 'fs'\nimport path from 'path'\n\nimport { getDeployer } from '@/deployer'\nimport { LzInitiaConfig, ModuleAddresses, MoveContext, MoveToml } from '@/types'\nimport { AccAddress } from '@initia/initia.js'\nimport { parse } from 'smol-toml'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nexport function getRawMoveContextByPath(modulePath: string): MoveContext {\n const tomlPath = path.join(modulePath, 'Move.toml')\n if (!fs.existsSync(tomlPath)) {\n throw new Error(`Move.toml not found in ${tomlPath}`)\n }\n const toml = parse(fs.readFileSync(tomlPath, 'utf-8')) as unknown as MoveToml\n const { dependencies } = toml\n let result: MoveContext = { [toml.package.name]: toml } satisfies MoveContext\n if (dependencies !== undefined) {\n Object.keys(dependencies)\n .filter((key) => {\n return dependencies[key]?.local !== undefined\n })\n .forEach((key) => {\n const dependency = dependencies[key] as { local: string }\n const dependencyPath = path.join(modulePath, dependency.local)\n result = { ...getRawMoveContextByPath(dependencyPath), ...result } satisfies MoveContext\n })\n }\n return result\n}\n\nexport function parseAddresses(addresses: ModuleAddresses, network: Network): { [key in string]?: string } {\n if (addresses === undefined) {\n return {}\n }\n const result: { [key in string]?: string } = {}\n for (const key of Object.keys(addresses)) {\n const value = addresses[key]\n if (typeof value === 'string') {\n result[key] = value\n } else {\n const networkAddress = value[network]\n if (networkAddress === undefined) {\n throw new Error(`${key} address not found for network ${network}`)\n }\n result[key] = networkAddress\n }\n }\n return result\n}\n\nexport function getMoveContext(moduleName: string, lzInitiaConfig: LzInitiaConfig, network: Network): MoveContext {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n throw new Error(`module ${moduleName} not found when getting Move context`)\n }\n const context = getRawMoveContextByPath(module.modulePath)\n for (const key of Object.keys(context)) {\n const toml = context[key]!\n for (const addressKey of Object.keys(toml.addresses)) {\n const address = toml.addresses[addressKey]\n const presetAddresses = {\n ...parseAddresses(lzInitiaConfig.modules[key]?.addresses, network),\n ...parseAddresses(lzInitiaConfig.modules[moduleName]?.addresses, network),\n }\n if (address === '_') {\n if (presetAddresses[addressKey] !== undefined && presetAddresses[addressKey] !== '') {\n toml.addresses[addressKey] = presetAddresses[addressKey]!\n } else {\n try {\n toml.addresses[addressKey] = AccAddress.toHex(\n getDeployer(addressKey, lzInitiaConfig, network).accAddress\n )\n } catch (e) {\n if (key === moduleName) {\n throw new Error(`Fail to generate context for ${key}. ${(e as Error).toString()}`)\n } else {\n throw new Error(\n `Fail to generate context for dependent module ${key}. ${(e as Error).toString()}`\n )\n }\n }\n }\n }\n }\n }\n return context\n}\n","import { CmdOptions } from '@/types'\n\nexport function parseOptions(defaultOptions: CmdOptions, customOptions: CmdOptions): string[] {\n const options: CmdOptions = { ...defaultOptions, ...customOptions }\n const res: string[] = []\n for (const key of Object.keys(options)) {\n if (typeof options[key] === 'boolean') {\n if (options[key] === true) {\n res.push(key)\n }\n } else {\n res.push(key)\n res.push(options[key] as string)\n }\n }\n return res\n}\n","import fs from 'fs'\nimport path from 'path'\n\nimport { getMoveContext } from '@/move'\nimport { parseOptions } from '@/options'\nimport { CmdOptions, LzInitiaConfig, MoveToml } from '@/types'\nimport { glob } from 'glob'\nimport { $, ProcessOutput } from 'zx'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\n// eslint-disable-next-line @typescript-eslint/promise-function-async\nexport function buildProcess(\n modulePath: string,\n addresses: { [key: string]: string },\n toml: MoveToml,\n customOptions: CmdOptions = {}\n): Promise<ProcessOutput> {\n const addressesParam = Object.keys(addresses)\n .map((key) => `${key}=${addresses[key]}`)\n .join(',')\n const defaultOptions = {\n '--skip-fetch-latest-git-deps': true,\n '--named-addresses': addressesParam,\n }\n const args = parseOptions(defaultOptions, customOptions)\n return $({\n cwd: modulePath,\n stdio: ['inherit', 'pipe', process.stderr],\n verbose: true,\n })`initiad move build ${args}`\n}\n\nexport async function copyArtifacts(src: string, dest: string): Promise<void> {\n // remove existing artifacts, this is necessary to avoid leaving old artifacts\n if (fs.existsSync(dest)) {\n console.log(`Removing existing artifacts at ${dest}`)\n fs.rmSync(dest, { recursive: true })\n }\n fs.mkdirSync(dest, { recursive: true })\n const moduleDir = path.join(src, 'bytecode_modules')\n const modules = glob.sync('*.mv', { cwd: moduleDir })\n for (const module of modules) {\n const destByteCodePath = path.join(dest, 'bytecode_modules')\n if (!fs.existsSync(destByteCodePath)) {\n fs.mkdirSync(destByteCodePath, { recursive: true })\n }\n await $({\n verbose: true,\n })`cp ${path.join(moduleDir, module)} ${path.join(destByteCodePath, module)}`\n }\n}\n\nexport async function build(\n moduleName: string,\n lzInitiaConfig: LzInitiaConfig,\n network: Network,\n skipBuild = false,\n variant?: string\n): Promise<void> {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n throw new Error(`module ${moduleName} not found`)\n }\n const { modulePath } = module\n const context = getMoveContext(moduleName, lzInitiaConfig, network)\n const pkgName = context[moduleName]!.package.name\n const srcPath = path.join(modulePath, 'build', pkgName)\n const outputDir = lzInitiaConfig.modules[moduleName]?.alias ?? pkgName\n const outputPath = path.join(\n lzInitiaConfig.artifactsPath,\n variant !== undefined && variant.length > 0 ? `${outputDir}-${variant}` : outputDir\n )\n let addresses: { [key: string]: string } = {}\n for (const key of Object.keys(context)) {\n const toml = context[key]!\n if (!(key in toml.addresses)) {\n throw new Error(`address not found for ${key}`)\n }\n addresses = { ...addresses, ...toml.addresses }\n }\n addresses = { ...addresses, ...context[moduleName]!.addresses }\n if (!skipBuild) {\n await buildProcess(modulePath, addresses, context[moduleName]!, {\n ...lzInitiaConfig.compileOptions,\n ...module.compileOptions,\n })\n }\n await copyArtifacts(srcPath, outputPath)\n}\n","import { LzInitiaConfig } from '@/types'\nimport { LCDClient } from '@initia/initia.js'\n\nimport { Environment } from '@layerzerolabs/lz-definitions'\n\nexport function getInitiaClient(env: Environment, config: LzInitiaConfig): LCDClient {\n const url = config.network?.[env] as string | undefined\n if (url === undefined) {\n throw new Error(`No network url for ${env} found in lz-initia.config.ts`)\n }\n const lcd = new LCDClient(url)\n return lcd\n}\n","import { AxiosError, MoveContext } from '@/types'\nimport { AccAddress } from '@initia/initia.js'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\nfunction isAxiosError(error: any): error is AxiosError {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return error?.response?.data?.message !== undefined\n}\n\nfunction handleDepMissingError(error: AxiosError, moduleName: string, context: MoveContext): void {\n if (error.response.data.message.includes('EPACKAGE_DEP_MISSING')) {\n throw new Error(\n `Deploy ${moduleName} failed with EPACKAGE_DEP_MISSING, make sure you have deployed the dependent module [${Object.keys(\n context\n )\n .filter((module) => module !== moduleName)\n .join(',')}]`\n )\n }\n}\n\nfunction handleAccountNotFoundError(\n error: AxiosError,\n moduleName: string,\n context: MoveContext,\n network: Network\n): void {\n const address = context[moduleName]?.addresses[moduleName]\n if (address === undefined) {\n return\n }\n if (error.response.data.message.includes(`account ${AccAddress.fromHex(address)} not found`)) {\n throw new Error(\n `${error.response.data.message}, make sure you have funded the account ${AccAddress.fromHex(address)}(${address}) on ${network}`\n )\n }\n}\n\nfunction handleSenderNotMatchError(error: AxiosError, moduleName: string): void {\n if (error.response.data.message.includes('MODULE_ADDRESS_DOES_NOT_MATCH_SENDER')) {\n throw new Error(\n `Deploy ${moduleName} failed with MODULE_ADDRESS_DOES_NOT_MATCH_SENDER, make sure you compile ${moduleName} with the deployer account address`\n )\n }\n}\n\nfunction handleOtherAxiosError(error: AxiosError): void {\n throw new Error(error.response.data.message)\n}\n\nexport function handleError(error: Error, moduleName: string, context: MoveContext, network: Network): void {\n if (isAxiosError(error)) {\n handleDepMissingError(error, moduleName, context)\n handleAccountNotFoundError(error, moduleName, context, network)\n handleSenderNotMatchError(error, moduleName)\n handleOtherAxiosError(error)\n }\n throw error\n}\n","import fs from 'fs'\nimport * as crypto from 'node:crypto'\nimport path from 'path'\n\nimport { getInitiaClient } from '@/client'\nimport { getDeployer } from '@/deployer'\nimport { handleError } from '@/errors'\nimport { getMoveContext } from '@/move'\nimport { LzInitiaConfig } from '@/types'\nimport { AccAddress, MsgPublish, TxError, Wallet } from '@initia/initia.js'\nimport { glob } from 'glob'\n\nimport { EndpointVersion, Network, Stage, networkToEnv, networkToStage } from '@layerzerolabs/lz-definitions'\n\nfunction deploymentPath(pkgName: string, dest: string, network: Network, variant?: string): string {\n const deploymentPath = path.join(dest, network)\n return path.join(deploymentPath, `${pkgWithVariant(pkgName, variant)}.json`)\n}\n\nexport function saveDeployment(\n moduleName: string,\n pkgName: string,\n address: string,\n dest: string,\n network: Network,\n bytecodeHash: string,\n hash: string,\n variant?: string,\n compatibleVersions = [EndpointVersion.V1, EndpointVersion.V2]\n): void {\n const destPath = deploymentPath(pkgName, dest, network, variant)\n const deploymentDir = path.dirname(destPath)\n if (!fs.existsSync(deploymentDir)) {\n fs.mkdirSync(deploymentDir, { recursive: true })\n }\n fs.writeFileSync(\n destPath,\n JSON.stringify(\n {\n address,\n name: pkgWithVariant(pkgName, variant),\n moduleName,\n network,\n compatibleVersions,\n bytecodeHash,\n transactionHash: hash,\n },\n null,\n 2\n )\n )\n console.log(`Deployment saved to ${destPath}`)\n}\n\nfunction needDeploy(pkgName: string, dest: string, network: Network, bytecodeHash: string, variant?: string): boolean {\n if (networkToStage(network) === Stage.SANDBOX) {\n return true\n }\n const destPath = deploymentPath(pkgName, dest, network, variant)\n if (fs.existsSync(destPath)) {\n const deployment = JSON.parse(fs.readFileSync(destPath, 'utf-8')) as { bytecodeHash: string }\n return deployment.bytecodeHash !== bytecodeHash\n }\n return true\n}\n\nfunction pkgWithVariant(pkgName: string, variant?: string): string {\n return variant !== undefined && variant.length > 0 ? `${pkgName}-${variant}` : pkgName\n}\n\nfunction getBytecodesHash(bytecodes: Uint8Array[]): string {\n // sha256 hash of all bytecodes\n const hash = crypto.createHash('sha256')\n bytecodes.forEach((bytecode) => {\n hash.update(bytecode)\n })\n return hash.digest('hex')\n}\n\nexport async function deploy(\n moduleName: string,\n lzInitiaConfig: LzInitiaConfig,\n network: Network,\n variant?: string\n): Promise<void> {\n const module = lzInitiaConfig.modules[moduleName]\n if (!module) {\n throw new Error(`module ${moduleName} not found`)\n }\n const env = networkToEnv(network, EndpointVersion.V2)\n const client = getInitiaClient(env, lzInitiaConfig)\n const deployer = getDeployer(moduleName, lzInitiaConfig, network)\n const context = getMoveContext(moduleName, lzInitiaConfig, network)\n const pkgName = lzInitiaConfig.modules[moduleName]?.alias ?? context[moduleName]!.package.name\n const moduleDir = path.join(lzInitiaConfig.artifactsPath, `${pkgWithVariant(pkgName, variant)}/bytecode_modules`)\n\n const moduleNames: string[] = glob.sync('*.mv', { cwd: moduleDir })\n const moduleBuffers = moduleNames.map((moduleName) => fs.readFileSync(path.join(moduleDir, moduleName)))\n const bytecodeHash = getBytecodesHash(moduleBuffers)\n if (!needDeploy(pkgName, lzInitiaConfig.deploymentPath, network, bytecodeHash, variant)) {\n console.warn(`Code of ${moduleName} has not changed, skipping deploy`)\n return\n }\n try {\n // TODO policy from config\n const msgs = [\n new MsgPublish(\n deployer.accAddress,\n moduleBuffers.map((codeBytes) => codeBytes.toString('base64')),\n MsgPublish.Policy.COMPATIBLE\n ),\n ]\n const wallet = new Wallet(client, deployer)\n const gasPrices =\n lzInitiaConfig.gasPrice?.[network] === undefined ? undefined : `${lzInitiaConfig.gasPrice[network]}uinit`\n const signedTx = await wallet.createAndSignTx({ msgs, gasPrices })\n const tx = await client.tx.broadcast(signedTx)\n if (((tx as TxError).code as number) !== 0) {\n throw new Error(tx.raw_log)\n }\n console.log(`Deploy transaction ${tx.txhash} successfully`)\n saveDeployment(\n moduleName,\n pkgName,\n AccAddress.toHex(deployer.accAddress),\n lzInitiaConfig.deploymentPath,\n network,\n bytecodeHash,\n tx.txhash,\n variant,\n lzInitiaConfig.compatibleVersions\n )\n } catch (e: unknown) {\n if (e instanceof Error) {\n handleError(e, moduleName, context, network)\n } else {\n throw e\n }\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@layerzerolabs/lz-initia-cli",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.17",
|
|
4
4
|
"license": "BUSL-1.1",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@commander-js/extra-typings": "^12.1.0",
|
|
27
27
|
"@initia/initia.js": "^0.2.11",
|
|
28
|
-
"@layerzerolabs/lz-config-types": "^3.0.
|
|
29
|
-
"@layerzerolabs/lz-definitions": "^3.0.
|
|
30
|
-
"@layerzerolabs/lz-utilities": "^3.0.
|
|
28
|
+
"@layerzerolabs/lz-config-types": "^3.0.17",
|
|
29
|
+
"@layerzerolabs/lz-definitions": "^3.0.17",
|
|
30
|
+
"@layerzerolabs/lz-utilities": "^3.0.17",
|
|
31
31
|
"commander": "^12.1.0",
|
|
32
32
|
"find-up": "^5.0.0",
|
|
33
33
|
"glob": "^10.3.10",
|
|
@@ -36,13 +36,13 @@
|
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@jest/globals": "^29.7.0",
|
|
39
|
-
"@layerzerolabs/tsup-config-next": "^3.0.
|
|
40
|
-
"@layerzerolabs/typescript-config-next": "^3.0.
|
|
39
|
+
"@layerzerolabs/tsup-config-next": "^3.0.17",
|
|
40
|
+
"@layerzerolabs/typescript-config-next": "^3.0.17",
|
|
41
41
|
"@types/jest": "^29.5.10",
|
|
42
42
|
"jest": "^29.7.0",
|
|
43
43
|
"rimraf": "^5.0.5",
|
|
44
44
|
"ts-jest": "^29.1.1",
|
|
45
|
-
"tsup": "^8.
|
|
45
|
+
"tsup": "^8.3.5",
|
|
46
46
|
"typescript": "~5.2.2"
|
|
47
47
|
},
|
|
48
48
|
"publishConfig": {
|