@latticexyz/cli 2.2.11-main-7ddcf64a222f184b1902a1dc93089064465b6acf → 2.2.11-main-c7d8564ab388b192b3c522c4f64dc3d0bb2131b0

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.
@@ -24,7 +24,7 @@ Resolved config:
24
24
  Run 'echo "PRIVATE_KEY=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80" > .env'
25
25
  in your contracts directory to use the default anvil private key.`);return rs(p)}})(),w=es({transport:os(i,{batch:e.rpcBatch?{batchSize:100,wait:1e3}:void 0}),account:b});console.log("Deploying from",w.account.address);let v=await jo(w),S=Date.now(),g=await So({config:n,deployerAddress:e.deployerAddress,salt:o,worldAddress:e.worldAddress,client:w,tables:y,systems:c,libraries:l,modules:d,artifacts:f});(e.worldAddress==null||e.alwaysRunPostDeploy)&&await Oo(n.deploy.postDeployScript,g.address,i,t,e.forgeScriptOptions,!!e.kms),await v?.reset(),console.log(z.green("Deployment completed in",(Date.now()-S)/1e3,"seconds"));let A={worldAddress:g.address,blockNumber:Number(g.deployBlock)};if(e.saveDeployment){let p=await ds(w),h=me.join(n.deploy.deploysDirectory,p.toString());Zn(h,{recursive:!0}),Ce(me.join(h,"latest.json"),JSON.stringify(A,null,2)),Ce(me.join(h,Date.now()+".json"),JSON.stringify(A,null,2));let k=[1337,31337],u=Qn(n.deploy.worldsFile)?JSON.parse(Xn(n.deploy.worldsFile,"utf-8")):{};u[p]={address:A.worldAddress,blockNumber:k.includes(p)?void 0:A.blockNumber},Ce(n.deploy.worldsFile,JSON.stringify(u,null,2)),console.log(z.bgGreen(z.whiteBright(`
26
26
  Deployment result (written to ${n.deploy.worldsFile} and ${h}):
27
- `)))}return console.log(A),g}var ms={command:"deploy",describe:"Deploy MUD contracts",builder(e){return e.options(M)},async handler(e){try{await N(e)}catch(o){G(o),process.exit(1)}process.exit(0)}},$o=ms;import ps from"node:path";import{loadConfig as fs,resolveConfigPath as ys}from"@latticexyz/config/node";import{worldgen as us}from"@latticexyz/world/node";var gs={command:"worldgen",describe:"Autogenerate interfaces for Systems and World based on existing contracts and the config file",builder(e){return e.options({configPath:{type:"string",desc:"Path to the MUD config file"},clean:{type:"boolean",desc:"Clear the worldgen directory before generating new interfaces (defaults to true)",default:!0}})},async handler(e){await bs(e),process.exit(0)}};async function bs(e){let o=await ys(e.configPath),t=await fs(o),r=ps.dirname(o);await us({rootDir:r,config:t,clean:e.clean})}var Lo=gs;import Y from"chalk";import{readFileSync as As,writeFileSync as vs}from"fs";import Se from"path";import{MUDError as V}from"@latticexyz/common/errors";var Eo={name:"@latticexyz/cli",version:"2.2.10",description:"Command line interface for mud",repository:{type:"git",url:"https://github.com/latticexyz/mud.git",directory:"packages/cli"},license:"MIT",type:"module",exports:{".":"./dist/index.js"},typesVersions:{"*":{index:["./dist/index.d.ts"]}},bin:{mud:"./bin/mud.js"},files:["bin","dist"],scripts:{build:"pnpm run build:js && pnpm run build:test-tables","build:js":"tsup && chmod +x ./dist/mud.js","build:test-tables":"tsx ./scripts/generate-test-tables.ts",clean:"pnpm run clean:js && pnpm run clean:test-tables","clean:js":"shx rm -rf dist","clean:test-tables":"shx rm -rf src/**/codegen",dev:"tsup --watch",lint:"eslint . --ext .ts",test:"tsc --noEmit && forge test","test:ci":"pnpm run test"},dependencies:{"@ark/util":"catalog:","@aws-sdk/client-kms":"^3.556.0","@latticexyz/abi-ts":"workspace:*","@latticexyz/block-logs-stream":"workspace:*","@latticexyz/common":"workspace:*","@latticexyz/config":"workspace:*","@latticexyz/gas-report":"workspace:*","@latticexyz/protocol-parser":"workspace:*","@latticexyz/schema-type":"workspace:*","@latticexyz/store":"workspace:*","@latticexyz/utils":"workspace:*","@latticexyz/world":"workspace:*","@latticexyz/world-module-metadata":"workspace:*",abitype:"catalog:","asn1.js":"^5.4.1",chalk:"^5.0.1",chokidar:"^3.5.3",debug:"^4.3.4",dotenv:"^16.0.3",execa:"^7.0.0","find-up":"^6.3.0",glob:"^10.4.2",openurl:"^1.1.1","p-queue":"^7.4.1","p-retry":"^5.1.2",path:"^0.12.7",rxjs:"7.5.5","throttle-debounce":"^5.0.0",toposort:"^2.0.2",typescript:"5.4.2",viem:"catalog:",yargs:"^17.7.1",zod:"3.23.8","zod-validation-error":"^1.3.0"},devDependencies:{"@types/debug":"^4.1.7","@types/ejs":"^3.1.1","@types/node":"^18.15.11","@types/openurl":"^1.0.0","@types/throttle-debounce":"^5.0.0","@types/toposort":"^2.0.6","@types/yargs":"^17.0.10","ds-test":"https://github.com/dapphub/ds-test.git#e282159d5170298eb2455a6c05280ab5a73a4ef0","forge-std":"https://github.com/foundry-rs/forge-std.git#74cfb77e308dd188d2f58864aaf44963ae6b88b1",tsup:"^6.7.0",tsx:"^3.12.6",vitest:"0.34.6"}};import{globSync as Ss}from"glob";import{ZodError as ws,z as Fo}from"zod";var xs=Fo.object({MUD_PACKAGES:Fo.string().transform(e=>JSON.parse(e))});function Cs(){try{return xs.parse({MUD_PACKAGES:'{"@latticexyz/abi-ts":{"localPath":"packages/abi-ts"},"@latticexyz/block-logs-stream":{"localPath":"packages/block-logs-stream"},"@latticexyz/cli":{"localPath":"packages/cli"},"@latticexyz/common":{"localPath":"packages/common"},"@latticexyz/config":{"localPath":"packages/config"},"create-mud":{"localPath":"packages/create-mud"},"@latticexyz/dev-tools":{"localPath":"packages/dev-tools"},"@latticexyz/explorer":{"localPath":"packages/explorer"},"@latticexyz/faucet":{"localPath":"packages/faucet"},"@latticexyz/gas-report":{"localPath":"packages/gas-report"},"@latticexyz/protocol-parser":{"localPath":"packages/protocol-parser"},"@latticexyz/react":{"localPath":"packages/react"},"@latticexyz/recs":{"localPath":"packages/recs"},"@latticexyz/schema-type":{"localPath":"packages/schema-type"},"solhint-config-mud":{"localPath":"packages/solhint-config-mud"},"solhint-plugin-mud":{"localPath":"packages/solhint-plugin-mud"},"@latticexyz/stash":{"localPath":"packages/stash"},"@latticexyz/store-indexer":{"localPath":"packages/store-indexer"},"@latticexyz/store-sync":{"localPath":"packages/store-sync"},"@latticexyz/store":{"localPath":"packages/store"},"@latticexyz/utils":{"localPath":"packages/utils"},"@latticexyz/world-module-metadata":{"localPath":"packages/world-module-metadata"},"@latticexyz/world-modules":{"localPath":"packages/world-modules"},"@latticexyz/world":{"localPath":"packages/world"}}'})}catch(e){if(e instanceof ws){let{...o}=e.format();console.error(`
27
+ `)))}return console.log(A),g}var ms={command:"deploy",describe:"Deploy MUD contracts",builder(e){return e.options(M)},async handler(e){try{await N(e)}catch(o){G(o),process.exit(1)}process.exit(0)}},$o=ms;import ps from"node:path";import{loadConfig as fs,resolveConfigPath as ys}from"@latticexyz/config/node";import{worldgen as us}from"@latticexyz/world/node";var gs={command:"worldgen",describe:"Autogenerate interfaces for Systems and World based on existing contracts and the config file",builder(e){return e.options({configPath:{type:"string",desc:"Path to the MUD config file"},clean:{type:"boolean",desc:"Clear the worldgen directory before generating new interfaces (defaults to true)",default:!0}})},async handler(e){await bs(e),process.exit(0)}};async function bs(e){let o=await ys(e.configPath),t=await fs(o),r=ps.dirname(o);await us({rootDir:r,config:t,clean:e.clean})}var Lo=gs;import Y from"chalk";import{readFileSync as As,writeFileSync as vs}from"fs";import Se from"path";import{MUDError as V}from"@latticexyz/common/errors";var Eo={name:"@latticexyz/cli",version:"2.2.10",description:"Command line interface for mud",repository:{type:"git",url:"https://github.com/latticexyz/mud.git",directory:"packages/cli"},license:"MIT",type:"module",exports:{".":"./dist/index.js"},typesVersions:{"*":{index:["./dist/index.d.ts"]}},bin:{mud:"./bin/mud.js"},files:["bin","dist"],scripts:{build:"pnpm run build:js && pnpm run build:test-tables","build:js":"tsup && chmod +x ./dist/mud.js","build:test-tables":"tsx ./scripts/generate-test-tables.ts",clean:"pnpm run clean:js && pnpm run clean:test-tables","clean:js":"shx rm -rf dist","clean:test-tables":"shx rm -rf src/**/codegen",dev:"tsup --watch",lint:"eslint . --ext .ts",test:"tsc --noEmit && forge test","test:ci":"pnpm run test"},dependencies:{"@ark/util":"catalog:","@aws-sdk/client-kms":"^3.556.0","@latticexyz/abi-ts":"workspace:*","@latticexyz/block-logs-stream":"workspace:*","@latticexyz/common":"workspace:*","@latticexyz/config":"workspace:*","@latticexyz/gas-report":"workspace:*","@latticexyz/protocol-parser":"workspace:*","@latticexyz/schema-type":"workspace:*","@latticexyz/store":"workspace:*","@latticexyz/utils":"workspace:*","@latticexyz/world":"workspace:*","@latticexyz/world-module-metadata":"workspace:*",abitype:"catalog:","asn1.js":"^5.4.1",chalk:"^5.0.1",chokidar:"^3.5.3",debug:"^4.3.4",dotenv:"^16.0.3",execa:"^7.0.0","find-up":"^6.3.0",glob:"^10.4.2",openurl:"^1.1.1","p-queue":"^7.4.1","p-retry":"^5.1.2",path:"^0.12.7",rxjs:"7.5.5","throttle-debounce":"^5.0.0",toposort:"^2.0.2",typescript:"5.4.2",viem:"catalog:",yargs:"^17.7.1",zod:"3.23.8","zod-validation-error":"^1.3.0"},devDependencies:{"@types/debug":"^4.1.7","@types/ejs":"^3.1.1","@types/node":"^18.15.11","@types/openurl":"^1.0.0","@types/throttle-debounce":"^5.0.0","@types/toposort":"^2.0.6","@types/yargs":"^17.0.10","ds-test":"https://github.com/dapphub/ds-test.git#e282159d5170298eb2455a6c05280ab5a73a4ef0","forge-std":"https://github.com/foundry-rs/forge-std.git#74cfb77e308dd188d2f58864aaf44963ae6b88b1",tsup:"^6.7.0",vitest:"0.34.6"}};import{globSync as Ss}from"glob";import{ZodError as ws,z as Fo}from"zod";var xs=Fo.object({MUD_PACKAGES:Fo.string().transform(e=>JSON.parse(e))});function Cs(){try{return xs.parse({MUD_PACKAGES:'{"@latticexyz/abi-ts":{"localPath":"packages/abi-ts"},"@latticexyz/block-logs-stream":{"localPath":"packages/block-logs-stream"},"@latticexyz/cli":{"localPath":"packages/cli"},"@latticexyz/common":{"localPath":"packages/common"},"@latticexyz/config":{"localPath":"packages/config"},"create-mud":{"localPath":"packages/create-mud"},"@latticexyz/dev-tools":{"localPath":"packages/dev-tools"},"@latticexyz/explorer":{"localPath":"packages/explorer"},"@latticexyz/faucet":{"localPath":"packages/faucet"},"@latticexyz/gas-report":{"localPath":"packages/gas-report"},"@latticexyz/protocol-parser":{"localPath":"packages/protocol-parser"},"@latticexyz/react":{"localPath":"packages/react"},"@latticexyz/recs":{"localPath":"packages/recs"},"@latticexyz/schema-type":{"localPath":"packages/schema-type"},"solhint-config-mud":{"localPath":"packages/solhint-config-mud"},"solhint-plugin-mud":{"localPath":"packages/solhint-plugin-mud"},"@latticexyz/stash":{"localPath":"packages/stash"},"@latticexyz/store-indexer":{"localPath":"packages/store-indexer"},"@latticexyz/store-sync":{"localPath":"packages/store-sync"},"@latticexyz/store":{"localPath":"packages/store"},"@latticexyz/utils":{"localPath":"packages/utils"},"@latticexyz/world-module-metadata":{"localPath":"packages/world-module-metadata"},"@latticexyz/world-modules":{"localPath":"packages/world-modules"},"@latticexyz/world":{"localPath":"packages/world"}}'})}catch(e){if(e instanceof ws){let{...o}=e.format();console.error(`
28
28
  Missing or invalid environment variables:
29
29
 
30
30
  ${Object.keys(o).join(`
@@ -39,4 +39,4 @@ Waiting for file changes\u2026
39
39
  `))}}),da(la)).subscribe()}},Jo=ma;import{getCreate2Address as qo,sliceHex as fa,zeroHash as ya}from"viem";import{forge as pa}from"@latticexyz/common/foundry";async function j(e){let o=["verify-contract",e.address,e.name,"--rpc-url",e.rpc];e.verifier&&o.push("--verifier",e.verifier),e.verifierUrl&&o.push("--verifier-url",e.verifierUrl),await pa(o,{cwd:e.cwd})}import ua from"p-queue";import{MUDError as ga}from"@latticexyz/common/errors";import{getStorageAt as ba}from"viem/actions";import{execa as De}from"execa";var ha="0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";async function Yo({client:e,rpc:o,systems:t,modules:r,worldAddress:n,deployerAddress:a,verifier:s,verifierUrl:i}){let c=a??await X(e);if(!c)throw new ga("No deployer address provided or found.");let l=await ba(e,{address:n,slot:ha}),f=l&&l!==ya,d=new ua({concurrency:4});if(t.map(({name:y,bytecode:b})=>d.add(()=>j({name:y,rpc:o,verifier:s,verifierUrl:i,address:qo({from:c,bytecode:b,salt:x})}).catch(w=>{console.error(`Error verifying system contract ${y}:`,w)}))),s==="sourcify")if(await De("npm",["install"],{cwd:"node_modules/@latticexyz/store"}),await De("npm",["install"],{cwd:"node_modules/@latticexyz/world"}),await De("npm",["install"],{cwd:"node_modules/@latticexyz/world-modules"}),Object.entries(f?te(c):oe(c)).map(([y,{bytecode:b}])=>d.add(()=>j({cwd:"node_modules/@latticexyz/world",name:y,rpc:o,verifier:s,verifierUrl:i,address:qo({from:c,bytecode:b,salt:x})}).catch(w=>{console.error(`Error verifying world factory contract ${y}:`,w)}))),r.map(({name:y,prepareDeploy:b})=>{let{address:w}=b(c);return d.add(()=>j({cwd:"node_modules/@latticexyz/world-modules",name:y,rpc:o,verifier:s,verifierUrl:i,address:w}).catch(v=>{console.error(`Error verifying module contract ${y}:`,v)}))}),f){let y=fa(l,-20);d.add(()=>j({cwd:"node_modules/@latticexyz/world",name:"WorldProxy",rpc:o,verifier:s,verifierUrl:i,address:n}).catch(b=>{console.error("Error verifying WorldProxy contract:",b)})),d.add(()=>j({cwd:"node_modules/@latticexyz/world",name:"World",rpc:o,verifier:s,verifierUrl:i,address:y}).catch(b=>{console.error("Error verifying World contract:",b)}))}else d.add(()=>j({cwd:"node_modules/@latticexyz/world",name:"World",rpc:o,verifier:s,verifierUrl:i,address:n}).catch(y=>{console.error("Error verifying World contract:",y)}));else console.log(""),console.log(`Note: MUD is currently unable to verify store, world, and world-modules contracts with ${s}. We are planning to expand support in a future version.`),console.log("")}import{loadConfig as wa,resolveConfigPath as xa}from"@latticexyz/config/node";import{resolveSystems as Ca}from"@latticexyz/world/node";import{getOutDirectory as Aa,getRpcUrl as va}from"@latticexyz/common/foundry";import{createWalletClient as Sa,http as Da}from"viem";import Go from"chalk";import Ta from"node:path";var ka={deployerAddress:{type:"string",desc:"Deploy using an existing deterministic deployer (https://github.com/Arachnid/deterministic-deployment-proxy)"},worldAddress:{type:"string",required:!0,desc:"Verify an existing World at the given address"},configPath:{type:"string",desc:"Path to the MUD config file"},profile:{type:"string",desc:"The foundry profile to use"},rpc:{type:"string",desc:"The RPC URL to use. Defaults to the RPC url from the local foundry.toml"},rpcBatch:{type:"boolean",desc:"Enable batch processing of RPC requests in viem client (defaults to batch size of 100 and wait of 1s)"},verifier:{type:"string",desc:"The verifier to use. Defaults to blockscout",default:"blockscout"},verifierUrl:{type:"string",desc:"The verification provider."}},Pa={command:"verify",describe:"Verify contracts",builder(e){return e.options(ka)},async handler(e){let o=e.profile??process.env.FOUNDRY_PROFILE,t=await xa(e.configPath),r=Ta.dirname(t),n=await wa(t),a=await Aa(o),s=e.rpc??await va(o);console.log(Go.bgBlue(Go.whiteBright(`
40
40
  Verifying MUD contracts${o?" with profile "+o:""} to RPC ${s}
41
41
  `)));let i=Sa({transport:Da(s,{batch:e.rpcBatch?{batchSize:100,wait:1e3}:void 0})}),l=(await Ca({rootDir:r,config:n})).map(d=>{let y=F(`${d.name}.sol`,d.name,a);return{name:d.name,bytecode:y.bytecode}}),f=await ce(n,a);await Yo({client:i,rpc:s,systems:l,modules:f,deployerAddress:e.deployerAddress,worldAddress:e.worldAddress,verifier:e.verifier,verifierUrl:e.verifierUrl})}},Qo=Pa;var au=[ke,$o,Pe,Ma,Me,Be,Lo,No,Vo,Ko,Jo,Ba,Qo];export{au as commands};
42
- //# sourceMappingURL=commands-VJP7PW7P.js.map
42
+ //# sourceMappingURL=commands-SGZC43GU.js.map