@latticexyz/world 2.0.0-main-4e0200f6 → 2.0.0-main-bbcca443

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.
@@ -1,30 +1,29 @@
1
- import{c as u}from"../../chunk-JOQBBVRS.js";import{renderArguments as c,renderList as y,renderedSolidityHeader as O,renderImports as A}from"@latticexyz/common/codegen";function I(e){let{imports:r,name:i,functionPrefix:s,functions:o,errors:m}=e;return`${O}
2
-
3
- ${A(r)}
4
-
5
- interface ${i} {
6
- ${y(m,({name:n,parameters:a})=>`error ${n}(${c(a)});`)}
7
-
8
- ${y(o,({name:n,parameters:a,stateMutability:f,returnParameters:t})=>`
9
- function ${s}${n}(
10
- ${c(a)}
11
- ) external ${f} ${D(t)};
12
- `)}
13
- }
14
-
15
- `}function D(e){return e.length>0?`returns (${c(e)})`:""}import{renderArguments as j,renderedSolidityHeader as v,renderAbsoluteImports as C,renderRelativeImports as N}from"@latticexyz/common/codegen";function h(e){let{interfaceName:r,storeImportPath:i,worldImportPath:s,imports:o}=e,m=r==="IBaseWorld"?[{symbol:"IStore",path:`${i}IStore.sol`},{symbol:"IWorldKernel",path:`${s}interfaces/IWorldKernel.sol`}]:[{symbol:"IBaseWorld",path:`${s}interfaces/IBaseWorld.sol`}],n=[...m,...o].map(({symbol:a})=>a);return`${v}
16
-
17
- ${C(m)}
18
-
19
- ${N(o)}
20
-
21
- /**
22
- * The ${r} interface includes all systems dynamically added to the World
23
- * during the deploy process.
24
- */
25
- interface ${r} is ${j(n)} {
26
-
27
- }
28
-
29
- `}import{readFileSync as B}from"fs";import l from"path";import{formatAndWriteSolidity as $,contractToInterface as G}from"@latticexyz/common/codegen";async function M(e,r,i){let s=u(e,r.map(({basename:t})=>t)),o=l.join(i,e.worldgenDirectory),m=r.filter(({basename:t})=>Object.keys(s.systems).includes(t)),n=[];for(let t of m){let b=B(t.path,"utf8"),{functions:P,errors:W,symbolImports:S}=G(b,t.basename),w=S.map(p=>p.path[0]==="."?{symbol:p.symbol,fromPath:l.join(l.dirname(t.path),p.path),usedInPath:o}:{symbol:p.symbol,path:p.path}),d=`I${t.basename}`,{name:x}=s.systems[t.basename],g=I({name:d,functionPrefix:e.namespace===""?"":`${e.namespace}_${x}_`,functions:P,errors:W,imports:w}),R=l.join(o,d+".sol");await $(g,R,"Generated system interface"),n.push({symbol:d,fromPath:`${d}.sol`,usedInPath:"./"})}let a=h({interfaceName:e.worldInterfaceName,imports:n,storeImportPath:e.storeImportPath,worldImportPath:e.worldImportPath}),f=l.join(o,e.worldInterfaceName+".sol");await $(a,f,"Generated system interface")}export{I as renderSystemInterface,h as renderWorld,M as worldgen};
1
+ import{c as u}from"../../chunk-JOQBBVRS.js";import{renderArguments as c,renderList as y,renderedSolidityHeader as O,renderImports as A}from"@latticexyz/common/codegen";function I(e){let{imports:r,name:i,functionPrefix:s,functions:o,errors:m}=e;return`
2
+ ${O}
3
+
4
+ ${A(r)}
5
+
6
+ interface ${i} {
7
+ ${y(m,({name:n,parameters:a})=>`error ${n}(${c(a)});`)}
8
+
9
+ ${y(o,({name:n,parameters:a,stateMutability:f,returnParameters:t})=>`
10
+ function ${s}${n}(
11
+ ${c(a)}
12
+ ) external ${f} ${D(t)};
13
+ `)}
14
+ }
15
+ `}function D(e){return e.length>0?`returns (${c(e)})`:""}import{renderArguments as j,renderedSolidityHeader as v,renderAbsoluteImports as C,renderRelativeImports as N}from"@latticexyz/common/codegen";function h(e){let{interfaceName:r,storeImportPath:i,worldImportPath:s,imports:o}=e,m=r==="IBaseWorld"?[{symbol:"IStore",path:`${i}IStore.sol`},{symbol:"IWorldKernel",path:`${s}interfaces/IWorldKernel.sol`}]:[{symbol:"IBaseWorld",path:`${s}interfaces/IBaseWorld.sol`}],n=[...m,...o].map(({symbol:a})=>a);return`
16
+ ${v}
17
+
18
+ ${C(m)}
19
+
20
+ ${N(o)}
21
+
22
+ /**
23
+ * The ${r} interface includes all systems dynamically added to the World
24
+ * during the deploy process.
25
+ */
26
+ interface ${r} is ${j(n)} {
27
+ }
28
+ `}import{readFileSync as B}from"fs";import l from"path";import{formatAndWriteSolidity as $,contractToInterface as G}from"@latticexyz/common/codegen";async function M(e,r,i){let s=u(e,r.map(({basename:t})=>t)),o=l.join(i,e.worldgenDirectory),m=r.filter(({basename:t})=>Object.keys(s.systems).includes(t)),n=[];for(let t of m){let b=B(t.path,"utf8"),{functions:P,errors:W,symbolImports:S}=G(b,t.basename),w=S.map(p=>p.path[0]==="."?{symbol:p.symbol,fromPath:l.join(l.dirname(t.path),p.path),usedInPath:o}:{symbol:p.symbol,path:p.path}),d=`I${t.basename}`,{name:x}=s.systems[t.basename],g=I({name:d,functionPrefix:e.namespace===""?"":`${e.namespace}_${x}_`,functions:P,errors:W,imports:w}),R=l.join(o,d+".sol");await $(g,R,"Generated system interface"),n.push({symbol:d,fromPath:`${d}.sol`,usedInPath:"./"})}let a=h({interfaceName:e.worldInterfaceName,imports:n,storeImportPath:e.storeImportPath,worldImportPath:e.worldImportPath}),f=l.join(o,e.worldInterfaceName+".sol");await $(a,f,"Generated system interface")}export{I as renderSystemInterface,h as renderWorld,M as worldgen};
30
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../ts/node/render-solidity/renderSystemInterface.ts","../../../ts/node/render-solidity/renderWorld.ts","../../../ts/node/render-solidity/worldgen.ts"],"sourcesContent":["import { renderArguments, renderList, renderedSolidityHeader, renderImports } from \"@latticexyz/common/codegen\";\nimport { RenderSystemInterfaceOptions } from \"./types\";\n\nexport function renderSystemInterface(options: RenderSystemInterfaceOptions) {\n const { imports, name, functionPrefix, functions, errors } = options;\n\n return `${renderedSolidityHeader}\n\n${renderImports(imports)}\n\ninterface ${name} {\n ${renderList(errors, ({ name, parameters }) => `error ${name}(${renderArguments(parameters)});`)}\n\n ${renderList(\n functions,\n ({ name, parameters, stateMutability, returnParameters }) => `\n function ${functionPrefix}${name}(\n ${renderArguments(parameters)}\n ) external ${stateMutability} ${renderReturnParameters(returnParameters)};\n `\n )}\n}\n\n`;\n}\n\nfunction renderReturnParameters(returnParameters: string[]) {\n if (returnParameters.length > 0) {\n return `returns (${renderArguments(returnParameters)})`;\n } else {\n return \"\";\n }\n}\n","import {\n renderArguments,\n renderedSolidityHeader,\n renderAbsoluteImports,\n renderRelativeImports,\n type AbsoluteImportDatum,\n} from \"@latticexyz/common/codegen\";\nimport type { RenderWorldOptions } from \"./types\";\n\nexport function renderWorld(options: RenderWorldOptions) {\n const { interfaceName, storeImportPath, worldImportPath, imports } = options;\n const baseImports: AbsoluteImportDatum[] =\n interfaceName === \"IBaseWorld\"\n ? [\n { symbol: \"IStore\", path: `${storeImportPath}IStore.sol` },\n { symbol: \"IWorldKernel\", path: `${worldImportPath}interfaces/IWorldKernel.sol` },\n ]\n : [\n {\n symbol: \"IBaseWorld\",\n path: `${worldImportPath}interfaces/IBaseWorld.sol`,\n },\n ];\n const importSymbols = [...baseImports, ...imports].map(({ symbol }) => symbol);\n\n return `${renderedSolidityHeader}\n\n${renderAbsoluteImports(baseImports)}\n\n${renderRelativeImports(imports)}\n\n/**\n * The ${interfaceName} interface includes all systems dynamically added to the World\n * during the deploy process.\n */\ninterface ${interfaceName} is ${renderArguments(importSymbols)} {\n\n}\n\n`;\n}\n","import { readFileSync } from \"fs\";\nimport path from \"path\";\nimport { formatAndWriteSolidity, contractToInterface, type RelativeImportDatum } from \"@latticexyz/common/codegen\";\nimport { StoreConfig } from \"@latticexyz/store\";\nimport { renderSystemInterface } from \"./renderSystemInterface\";\nimport { renderWorld } from \"./renderWorld\";\nimport { resolveWorldConfig, WorldConfig } from \"../../library/config\";\n\nexport async function worldgen(\n config: StoreConfig & WorldConfig,\n existingContracts: { path: string; basename: string }[],\n outputBaseDirectory: string\n) {\n const resolvedConfig = resolveWorldConfig(\n config,\n existingContracts.map(({ basename }) => basename)\n );\n\n const worldgenBaseDirectory = path.join(outputBaseDirectory, config.worldgenDirectory);\n const systems = existingContracts.filter(({ basename }) => Object.keys(resolvedConfig.systems).includes(basename));\n\n const systemInterfaceImports: RelativeImportDatum[] = [];\n for (const system of systems) {\n const data = readFileSync(system.path, \"utf8\");\n // get external funcions from a contract\n const { functions, errors, symbolImports } = contractToInterface(data, system.basename);\n const imports = symbolImports.map((symbolImport) => {\n if (symbolImport.path[0] === \".\") {\n // relative import\n return {\n symbol: symbolImport.symbol,\n fromPath: path.join(path.dirname(system.path), symbolImport.path),\n usedInPath: worldgenBaseDirectory,\n };\n } else {\n // absolute import\n return {\n symbol: symbolImport.symbol,\n path: symbolImport.path,\n };\n }\n });\n const systemInterfaceName = `I${system.basename}`;\n // create an interface using the external functions and imports\n const { name } = resolvedConfig.systems[system.basename];\n const output = renderSystemInterface({\n name: systemInterfaceName,\n functionPrefix: config.namespace === \"\" ? \"\" : `${config.namespace}_${name}_`,\n functions,\n errors,\n imports,\n });\n // write to file\n const fullOutputPath = path.join(worldgenBaseDirectory, systemInterfaceName + \".sol\");\n await formatAndWriteSolidity(output, fullOutputPath, \"Generated system interface\");\n\n // prepare imports for IWorld\n systemInterfaceImports.push({\n symbol: systemInterfaceName,\n fromPath: `${systemInterfaceName}.sol`,\n usedInPath: \"./\",\n });\n }\n\n // render IWorld\n const output = renderWorld({\n interfaceName: config.worldInterfaceName,\n imports: systemInterfaceImports,\n storeImportPath: config.storeImportPath,\n worldImportPath: config.worldImportPath,\n });\n // write to file\n const fullOutputPath = path.join(worldgenBaseDirectory, config.worldInterfaceName + \".sol\");\n await formatAndWriteSolidity(output, fullOutputPath, \"Generated system interface\");\n}\n"],"mappings":"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","names":["renderArguments","renderList","renderedSolidityHeader","renderImports","renderSystemInterface","options","imports","name","functionPrefix","functions","errors","parameters","stateMutability","returnParameters","renderReturnParameters","renderArguments","renderedSolidityHeader","renderAbsoluteImports","renderRelativeImports","renderWorld","options","interfaceName","storeImportPath","worldImportPath","imports","baseImports","importSymbols","symbol","readFileSync","path","formatAndWriteSolidity","contractToInterface","worldgen","config","existingContracts","outputBaseDirectory","resolvedConfig","resolveWorldConfig","basename","worldgenBaseDirectory","path","systems","systemInterfaceImports","system","data","readFileSync","functions","errors","symbolImports","contractToInterface","imports","symbolImport","systemInterfaceName","name","output","renderSystemInterface","fullOutputPath","formatAndWriteSolidity","renderWorld"]}
1
+ {"version":3,"sources":["../../../ts/node/render-solidity/renderSystemInterface.ts","../../../ts/node/render-solidity/renderWorld.ts","../../../ts/node/render-solidity/worldgen.ts"],"sourcesContent":["import { renderArguments, renderList, renderedSolidityHeader, renderImports } from \"@latticexyz/common/codegen\";\nimport { RenderSystemInterfaceOptions } from \"./types\";\n\nexport function renderSystemInterface(options: RenderSystemInterfaceOptions) {\n const { imports, name, functionPrefix, functions, errors } = options;\n\n return `\n ${renderedSolidityHeader}\n\n ${renderImports(imports)}\n\n interface ${name} {\n ${renderList(errors, ({ name, parameters }) => `error ${name}(${renderArguments(parameters)});`)}\n\n ${renderList(\n functions,\n ({ name, parameters, stateMutability, returnParameters }) => `\n function ${functionPrefix}${name}(\n ${renderArguments(parameters)}\n ) external ${stateMutability} ${renderReturnParameters(returnParameters)};\n `\n )}\n }\n `;\n}\n\nfunction renderReturnParameters(returnParameters: string[]) {\n if (returnParameters.length > 0) {\n return `returns (${renderArguments(returnParameters)})`;\n } else {\n return \"\";\n }\n}\n","import {\n renderArguments,\n renderedSolidityHeader,\n renderAbsoluteImports,\n renderRelativeImports,\n type AbsoluteImportDatum,\n} from \"@latticexyz/common/codegen\";\nimport type { RenderWorldOptions } from \"./types\";\n\nexport function renderWorld(options: RenderWorldOptions) {\n const { interfaceName, storeImportPath, worldImportPath, imports } = options;\n const baseImports: AbsoluteImportDatum[] =\n interfaceName === \"IBaseWorld\"\n ? [\n { symbol: \"IStore\", path: `${storeImportPath}IStore.sol` },\n { symbol: \"IWorldKernel\", path: `${worldImportPath}interfaces/IWorldKernel.sol` },\n ]\n : [\n {\n symbol: \"IBaseWorld\",\n path: `${worldImportPath}interfaces/IBaseWorld.sol`,\n },\n ];\n const importSymbols = [...baseImports, ...imports].map(({ symbol }) => symbol);\n\n return `\n ${renderedSolidityHeader}\n\n ${renderAbsoluteImports(baseImports)}\n\n ${renderRelativeImports(imports)}\n\n /**\n * The ${interfaceName} interface includes all systems dynamically added to the World\n * during the deploy process.\n */\n interface ${interfaceName} is ${renderArguments(importSymbols)} {\n }\n `;\n}\n","import { readFileSync } from \"fs\";\nimport path from \"path\";\nimport { formatAndWriteSolidity, contractToInterface, type RelativeImportDatum } from \"@latticexyz/common/codegen\";\nimport { StoreConfig } from \"@latticexyz/store\";\nimport { renderSystemInterface } from \"./renderSystemInterface\";\nimport { renderWorld } from \"./renderWorld\";\nimport { resolveWorldConfig, WorldConfig } from \"../../library/config\";\n\nexport async function worldgen(\n config: StoreConfig & WorldConfig,\n existingContracts: { path: string; basename: string }[],\n outputBaseDirectory: string\n) {\n const resolvedConfig = resolveWorldConfig(\n config,\n existingContracts.map(({ basename }) => basename)\n );\n\n const worldgenBaseDirectory = path.join(outputBaseDirectory, config.worldgenDirectory);\n const systems = existingContracts.filter(({ basename }) => Object.keys(resolvedConfig.systems).includes(basename));\n\n const systemInterfaceImports: RelativeImportDatum[] = [];\n for (const system of systems) {\n const data = readFileSync(system.path, \"utf8\");\n // get external funcions from a contract\n const { functions, errors, symbolImports } = contractToInterface(data, system.basename);\n const imports = symbolImports.map((symbolImport) => {\n if (symbolImport.path[0] === \".\") {\n // relative import\n return {\n symbol: symbolImport.symbol,\n fromPath: path.join(path.dirname(system.path), symbolImport.path),\n usedInPath: worldgenBaseDirectory,\n };\n } else {\n // absolute import\n return {\n symbol: symbolImport.symbol,\n path: symbolImport.path,\n };\n }\n });\n const systemInterfaceName = `I${system.basename}`;\n // create an interface using the external functions and imports\n const { name } = resolvedConfig.systems[system.basename];\n const output = renderSystemInterface({\n name: systemInterfaceName,\n functionPrefix: config.namespace === \"\" ? \"\" : `${config.namespace}_${name}_`,\n functions,\n errors,\n imports,\n });\n // write to file\n const fullOutputPath = path.join(worldgenBaseDirectory, systemInterfaceName + \".sol\");\n await formatAndWriteSolidity(output, fullOutputPath, \"Generated system interface\");\n\n // prepare imports for IWorld\n systemInterfaceImports.push({\n symbol: systemInterfaceName,\n fromPath: `${systemInterfaceName}.sol`,\n usedInPath: \"./\",\n });\n }\n\n // render IWorld\n const output = renderWorld({\n interfaceName: config.worldInterfaceName,\n imports: systemInterfaceImports,\n storeImportPath: config.storeImportPath,\n worldImportPath: config.worldImportPath,\n });\n // write to file\n const fullOutputPath = path.join(worldgenBaseDirectory, config.worldInterfaceName + \".sol\");\n await formatAndWriteSolidity(output, fullOutputPath, \"Generated system interface\");\n}\n"],"mappings":"4CAAA,OAAS,mBAAAA,EAAiB,cAAAC,EAAY,0BAAAC,EAAwB,iBAAAC,MAAqB,6BAG5E,SAASC,EAAsBC,EAAuC,CAC3E,GAAM,CAAE,QAAAC,EAAS,KAAAC,EAAM,eAAAC,EAAgB,UAAAC,EAAW,OAAAC,CAAO,EAAIL,EAE7D,MAAO;AAAA,MACHH;AAAA;AAAA,MAEAC,EAAcG,CAAO;AAAA;AAAA,gBAEXC;AAAA,QACRN,EAAWS,EAAQ,CAAC,CAAE,KAAAH,EAAM,WAAAI,CAAW,IAAM,SAASJ,KAAQP,EAAgBW,CAAU,KAAK;AAAA;AAAA,QAE7FV,EACAQ,EACA,CAAC,CAAE,KAAAF,EAAM,WAAAI,EAAY,gBAAAC,EAAiB,iBAAAC,CAAiB,IAAM;AAAA,qBAChDL,IAAiBD;AAAA,cACxBP,EAAgBW,CAAU;AAAA,uBACjBC,KAAmBE,EAAuBD,CAAgB;AAAA,SAE3E;AAAA;AAAA,GAGN,CAEA,SAASC,EAAuBD,EAA4B,CAC1D,OAAIA,EAAiB,OAAS,EACrB,YAAYb,EAAgBa,CAAgB,KAE5C,EAEX,CChCA,OACE,mBAAAE,EACA,0BAAAC,EACA,yBAAAC,EACA,yBAAAC,MAEK,6BAGA,SAASC,EAAYC,EAA6B,CACvD,GAAM,CAAE,cAAAC,EAAe,gBAAAC,EAAiB,gBAAAC,EAAiB,QAAAC,CAAQ,EAAIJ,EAC/DK,EACJJ,IAAkB,aACd,CACE,CAAE,OAAQ,SAAU,KAAM,GAAGC,aAA4B,EACzD,CAAE,OAAQ,eAAgB,KAAM,GAAGC,8BAA6C,CAClF,EACA,CACE,CACE,OAAQ,aACR,KAAM,GAAGA,4BACX,CACF,EACAG,EAAgB,CAAC,GAAGD,EAAa,GAAGD,CAAO,EAAE,IAAI,CAAC,CAAE,OAAAG,CAAO,IAAMA,CAAM,EAE7E,MAAO;AAAA,MACHX;AAAA;AAAA,MAEAC,EAAsBQ,CAAW;AAAA;AAAA,MAEjCP,EAAsBM,CAAO;AAAA;AAAA;AAAA,aAGtBH;AAAA;AAAA;AAAA,gBAGGA,QAAoBN,EAAgBW,CAAa;AAAA;AAAA,GAGjE,CCvCA,OAAS,gBAAAE,MAAoB,KAC7B,OAAOC,MAAU,OACjB,OAAS,0BAAAC,EAAwB,uBAAAC,MAAqD,6BAMtF,eAAsBC,EACpBC,EACAC,EACAC,EACA,CACA,IAAMC,EAAiBC,EACrBJ,EACAC,EAAkB,IAAI,CAAC,CAAE,SAAAI,CAAS,IAAMA,CAAQ,CAClD,EAEMC,EAAwBC,EAAK,KAAKL,EAAqBF,EAAO,iBAAiB,EAC/EQ,EAAUP,EAAkB,OAAO,CAAC,CAAE,SAAAI,CAAS,IAAM,OAAO,KAAKF,EAAe,OAAO,EAAE,SAASE,CAAQ,CAAC,EAE3GI,EAAgD,CAAC,EACvD,QAAWC,KAAUF,EAAS,CAC5B,IAAMG,EAAOC,EAAaF,EAAO,KAAM,MAAM,EAEvC,CAAE,UAAAG,EAAW,OAAAC,EAAQ,cAAAC,CAAc,EAAIC,EAAoBL,EAAMD,EAAO,QAAQ,EAChFO,EAAUF,EAAc,IAAKG,GAC7BA,EAAa,KAAK,CAAC,IAAM,IAEpB,CACL,OAAQA,EAAa,OACrB,SAAUX,EAAK,KAAKA,EAAK,QAAQG,EAAO,IAAI,EAAGQ,EAAa,IAAI,EAChE,WAAYZ,CACd,EAGO,CACL,OAAQY,EAAa,OACrB,KAAMA,EAAa,IACrB,CAEH,EACKC,EAAsB,IAAIT,EAAO,WAEjC,CAAE,KAAAU,CAAK,EAAIjB,EAAe,QAAQO,EAAO,QAAQ,EACjDW,EAASC,EAAsB,CACnC,KAAMH,EACN,eAAgBnB,EAAO,YAAc,GAAK,GAAK,GAAGA,EAAO,aAAaoB,KACtE,UAAAP,EACA,OAAAC,EACA,QAAAG,CACF,CAAC,EAEKM,EAAiBhB,EAAK,KAAKD,EAAuBa,EAAsB,MAAM,EACpF,MAAMK,EAAuBH,EAAQE,EAAgB,4BAA4B,EAGjFd,EAAuB,KAAK,CAC1B,OAAQU,EACR,SAAU,GAAGA,QACb,WAAY,IACd,CAAC,EAIH,IAAME,EAASI,EAAY,CACzB,cAAezB,EAAO,mBACtB,QAASS,EACT,gBAAiBT,EAAO,gBACxB,gBAAiBA,EAAO,eAC1B,CAAC,EAEKuB,EAAiBhB,EAAK,KAAKD,EAAuBN,EAAO,mBAAqB,MAAM,EAC1F,MAAMwB,EAAuBH,EAAQE,EAAgB,4BAA4B,CACnF","names":["renderArguments","renderList","renderedSolidityHeader","renderImports","renderSystemInterface","options","imports","name","functionPrefix","functions","errors","parameters","stateMutability","returnParameters","renderReturnParameters","renderArguments","renderedSolidityHeader","renderAbsoluteImports","renderRelativeImports","renderWorld","options","interfaceName","storeImportPath","worldImportPath","imports","baseImports","importSymbols","symbol","readFileSync","path","formatAndWriteSolidity","contractToInterface","worldgen","config","existingContracts","outputBaseDirectory","resolvedConfig","resolveWorldConfig","basename","worldgenBaseDirectory","path","systems","systemInterfaceImports","system","data","readFileSync","functions","errors","symbolImports","contractToInterface","imports","symbolImport","systemInterfaceName","name","output","renderSystemInterface","fullOutputPath","formatAndWriteSolidity","renderWorld"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@latticexyz/world",
3
- "version": "2.0.0-main-4e0200f6",
3
+ "version": "2.0.0-main-bbcca443",
4
4
  "description": "World framework",
5
5
  "repository": {
6
6
  "type": "git",
@@ -31,10 +31,10 @@
31
31
  },
32
32
  "dependencies": {
33
33
  "zod": "^3.21.4",
34
- "@latticexyz/common": "2.0.0-main-4e0200f6",
35
- "@latticexyz/config": "2.0.0-main-4e0200f6",
36
- "@latticexyz/schema-type": "2.0.0-main-4e0200f6",
37
- "@latticexyz/store": "2.0.0-main-4e0200f6"
34
+ "@latticexyz/common": "2.0.0-main-bbcca443",
35
+ "@latticexyz/config": "2.0.0-main-bbcca443",
36
+ "@latticexyz/schema-type": "2.0.0-main-bbcca443",
37
+ "@latticexyz/store": "2.0.0-main-bbcca443"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/ejs": "^3.1.1",
@@ -50,8 +50,8 @@
50
50
  "tsup": "^6.7.0",
51
51
  "tsx": "^3.12.6",
52
52
  "vitest": "0.31.4",
53
- "@latticexyz/abi-ts": "2.0.0-main-4e0200f6",
54
- "@latticexyz/gas-report": "2.0.0-main-4e0200f6"
53
+ "@latticexyz/abi-ts": "2.0.0-main-bbcca443",
54
+ "@latticexyz/gas-report": "2.0.0-main-bbcca443"
55
55
  },
56
56
  "gitHead": "914a1e0ae4a573d685841ca2ea921435057deb8f",
57
57
  "scripts": {
@@ -4,24 +4,24 @@ import { RenderSystemInterfaceOptions } from "./types";
4
4
  export function renderSystemInterface(options: RenderSystemInterfaceOptions) {
5
5
  const { imports, name, functionPrefix, functions, errors } = options;
6
6
 
7
- return `${renderedSolidityHeader}
7
+ return `
8
+ ${renderedSolidityHeader}
8
9
 
9
- ${renderImports(imports)}
10
+ ${renderImports(imports)}
10
11
 
11
- interface ${name} {
12
- ${renderList(errors, ({ name, parameters }) => `error ${name}(${renderArguments(parameters)});`)}
12
+ interface ${name} {
13
+ ${renderList(errors, ({ name, parameters }) => `error ${name}(${renderArguments(parameters)});`)}
13
14
 
14
- ${renderList(
15
- functions,
16
- ({ name, parameters, stateMutability, returnParameters }) => `
17
- function ${functionPrefix}${name}(
18
- ${renderArguments(parameters)}
19
- ) external ${stateMutability} ${renderReturnParameters(returnParameters)};
20
- `
21
- )}
22
- }
23
-
24
- `;
15
+ ${renderList(
16
+ functions,
17
+ ({ name, parameters, stateMutability, returnParameters }) => `
18
+ function ${functionPrefix}${name}(
19
+ ${renderArguments(parameters)}
20
+ ) external ${stateMutability} ${renderReturnParameters(returnParameters)};
21
+ `
22
+ )}
23
+ }
24
+ `;
25
25
  }
26
26
 
27
27
  function renderReturnParameters(returnParameters: string[]) {
@@ -23,19 +23,18 @@ export function renderWorld(options: RenderWorldOptions) {
23
23
  ];
24
24
  const importSymbols = [...baseImports, ...imports].map(({ symbol }) => symbol);
25
25
 
26
- return `${renderedSolidityHeader}
26
+ return `
27
+ ${renderedSolidityHeader}
27
28
 
28
- ${renderAbsoluteImports(baseImports)}
29
+ ${renderAbsoluteImports(baseImports)}
29
30
 
30
- ${renderRelativeImports(imports)}
31
+ ${renderRelativeImports(imports)}
31
32
 
32
- /**
33
- * The ${interfaceName} interface includes all systems dynamically added to the World
34
- * during the deploy process.
35
- */
36
- interface ${interfaceName} is ${renderArguments(importSymbols)} {
37
-
38
- }
39
-
40
- `;
33
+ /**
34
+ * The ${interfaceName} interface includes all systems dynamically added to the World
35
+ * during the deploy process.
36
+ */
37
+ interface ${interfaceName} is ${renderArguments(importSymbols)} {
38
+ }
39
+ `;
41
40
  }