@rocketh/deploy 0.19.3 → 0.19.5

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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,SAAS,CAAC;AAG5B,OAAO,KAAK,EACX,sBAAsB,EACtB,UAAU,EACV,WAAW,EAGX,kBAAkB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,OAAO,EACP,KAAK,EAQL,MAAM,MAAM,CAAC;AAEd,YAAY,EAAC,GAAG,EAAE,KAAK,EAAC,CAAC;AAIzB,MAAM,MAAM,YAAY,CAAC,IAAI,SAAS,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG;IAAC,aAAa,EAAE,OAAO,CAAA;CAAC,CAAC;AAEzF,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,SAAS,GAAG,EAAE,MAAM,SAAS,KAAK,GAAG,KAAK,EAC3E,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,sBAAsB,CAAC,IAAI,CAAC,EAClC,OAAO,CAAC,EAAE,aAAa,KACnB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AAEjC,MAAM,MAAM,aAAa,GAAG;IAC3B,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,aAAa,CAAC,EACX,OAAO,GACP,KAAK,MAAM,EAAE,GACb;QACA,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;KACpB,CAAC;IACL,SAAS,CAAC,EAAE;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,CAAC;CACtC,GAAG,CACD;IACA,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAC/B,GACD;IACA,cAAc,CAAC,EAAE,OAAO,CAAC;CACxB,CACH,CAAC;AA0MF,wBAAgB,MAAM,CAAC,GAAG,EAAE,WAAW,GAAG,CAAC,IAAI,SAAS,GAAG,EAC1D,IAAI,EAAE,MAAM,EAAE,0BAA0B;AACxC,IAAI,EAAE,sBAAsB,CAAC,IAAI,CAAC,EAClC,OAAO,CAAC,EAAE,aAAa,KACnB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAwK/B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,SAAS,CAAC;AAG5B,OAAO,KAAK,EACX,sBAAsB,EACtB,UAAU,EACV,WAAW,EAGX,kBAAkB,EAElB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,OAAO,EACP,KAAK,EAQL,MAAM,MAAM,CAAC;AAEd,YAAY,EAAC,GAAG,EAAE,KAAK,EAAC,CAAC;AAIzB,MAAM,MAAM,YAAY,CAAC,IAAI,SAAS,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG;IAAC,aAAa,EAAE,OAAO,CAAA;CAAC,CAAC;AAEzF,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,SAAS,GAAG,EAAE,MAAM,SAAS,KAAK,GAAG,KAAK,EAC3E,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,sBAAsB,CAAC,IAAI,CAAC,EAClC,OAAO,CAAC,EAAE,aAAa,KACnB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AAEjC,MAAM,MAAM,aAAa,GAAG;IAC3B,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,aAAa,CAAC,EACX,OAAO,GACP,KAAK,MAAM,EAAE,GACb;QACA,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;KACpB,CAAC;IACL,SAAS,CAAC,EAAE;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,CAAC;CACtC,GAAG,CACD;IACA,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAC/B,GACD;IACA,cAAc,CAAC,EAAE,OAAO,CAAC;CACxB,CACH,CAAC;AA8NF,wBAAgB,MAAM,CAAC,GAAG,EAAE,WAAW,GAAG,CAAC,IAAI,SAAS,GAAG,EAC1D,IAAI,EAAE,MAAM,EAAE,0BAA0B;AACxC,IAAI,EAAE,sBAAsB,CAAC,IAAI,CAAC,EAClC,OAAO,CAAC,EAAE,aAAa,KACnB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAoL/B"}
package/dist/index.js CHANGED
@@ -155,6 +155,21 @@ async function getCreate3Factory(env, signer, params) {
155
155
  factoryAddress,
156
156
  };
157
157
  }
158
+ function areLibrariesIdentical(oldLibs, newLibs) {
159
+ const oldKeys = Object.keys(oldLibs || {});
160
+ const newKeys = Object.keys(newLibs || {});
161
+ if (oldKeys.length !== newKeys.length) {
162
+ return false;
163
+ }
164
+ for (const key of newKeys) {
165
+ const oldAddress = oldLibs[key]?.toLowerCase();
166
+ const newAddress = newLibs[key]?.toLowerCase();
167
+ if (oldAddress !== newAddress) {
168
+ return false;
169
+ }
170
+ }
171
+ return true;
172
+ }
158
173
  export function deploy(env) {
159
174
  return async (name, args, options) => {
160
175
  const nameToDisplay = name || '<no name>';
@@ -165,7 +180,9 @@ export function deploy(env) {
165
180
  }
166
181
  const existingDeployment = name && env.getOrNull(name);
167
182
  if (existingDeployment && skipIfAlreadyDeployed) {
168
- logger.info(`deployment for ${nameToDisplay} at ${existingDeployment.address}, skipIfAlreadyDeployed: true => we skip`);
183
+ // logger.info(
184
+ // `deployment for ${nameToDisplay} at ${existingDeployment.address}, skipIfAlreadyDeployed: true => we skip`,
185
+ // );
169
186
  return { ...existingDeployment, newlyDeployed: false };
170
187
  }
171
188
  const { account, artifact, ...viemArgs } = args;
@@ -173,6 +190,10 @@ export function deploy(env) {
173
190
  // TODO throw specific error if artifact not found
174
191
  const artifactToUse = artifact;
175
192
  const bytecode = linkLibraries(artifactToUse, options?.libraries);
193
+ if (bytecode.indexOf('$') != -1) {
194
+ // TODO identify which library are missing using linkReferences (if provided)
195
+ throw new Error(`${nameToDisplay} requires library linking`);
196
+ }
176
197
  const abi = artifactToUse.abi;
177
198
  const argsToUse = {
178
199
  ...viemArgs,
@@ -182,36 +203,37 @@ export function deploy(env) {
182
203
  };
183
204
  const calldata = encodeDeployData(argsToUse); // TODO any
184
205
  const argsData = `0x${calldata.replace(bytecode, '')}`;
185
- if (existingDeployment) {
186
- logger.info(`existing deployment for ${nameToDisplay} at ${existingDeployment.address}`);
187
- }
206
+ // if (existingDeployment) {
207
+ // logger.info(`existing deployment for ${nameToDisplay} at ${existingDeployment.address}`);
208
+ // }
188
209
  if (existingDeployment && !alwaysOverride) {
189
- const previousBytecode = existingDeployment.bytecode;
210
+ const previousDeployedBytecode = existingDeployment.deployedBytecode;
190
211
  const previousArgsData = existingDeployment.argsData;
191
- // we assume cbor encoding of hash at the end
192
- // TODO option to remove it, can parse metadata but would rather avoid this here
193
- const last2Bytes = previousBytecode.slice(-4);
194
- const cborLength = parseInt(last2Bytes, 16);
195
- const previousBytecodeWithoutCBOR = previousBytecode.slice(0, -cborLength * 2);
196
- const newBytecodeWithoutCBOR = bytecode.slice(0, -cborLength * 2);
197
- if (previousBytecodeWithoutCBOR === newBytecodeWithoutCBOR && previousArgsData === argsData) {
198
- return { ...existingDeployment, newlyDeployed: false };
212
+ const newlyDeployedBytecode = artifactToUse.deployedBytecode;
213
+ let bytecodeMatches;
214
+ if (previousDeployedBytecode && newlyDeployedBytecode) {
215
+ // CBOR metadata is appended to deployed bytecode (runtime code), not creation bytecode (where CBOR can be at different places).
216
+ const last2Bytes = previousDeployedBytecode.slice(-4);
217
+ const cborLength = parseInt(last2Bytes, 16);
218
+ const previousDeployedBytecodeWithoutCBOR = previousDeployedBytecode.slice(0, -cborLength * 2);
219
+ const newlyDeployedBytecodeWithoutCBOR = newlyDeployedBytecode.slice(0, -cborLength * 2);
220
+ bytecodeMatches =
221
+ areLibrariesIdentical(existingDeployment.libraries || {}, options?.libraries || {}) &&
222
+ previousDeployedBytecodeWithoutCBOR === newlyDeployedBytecodeWithoutCBOR;
199
223
  }
200
224
  else {
201
- // logger.info(`-------------- WITHOUT CBOR---------------------`);
202
- // logger.info(previousBytecodeWithoutCBOR);
203
- // logger.info(newBytecodeWithoutCBOR);
204
- // logger.info(`-----------------------------------`);
205
- // logger.info(`-------------- ARGS DATA ---------------------`);
206
- // logger.info(previousArgsData);
207
- // logger.info(argsData);
208
- // logger.info(`-----------------------------------`);
225
+ const linkedPreviousBytecode = linkLibraries({ bytecode: existingDeployment.bytecode, linkReferences: existingDeployment.linkReferences }, existingDeployment.libraries);
226
+ bytecodeMatches = linkedPreviousBytecode === bytecode;
227
+ }
228
+ if (bytecodeMatches && previousArgsData === argsData) {
229
+ return { ...existingDeployment, newlyDeployed: false };
209
230
  }
210
231
  }
211
232
  const partialDeployment = {
212
233
  ...artifactToUse,
213
234
  argsData,
214
235
  linkedData: toJSONCompatibleLinkedData(options?.linkedData),
236
+ libraries: options?.libraries,
215
237
  };
216
238
  const signer = env.addressSigners[address];
217
239
  if (!signer) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rocketh/deploy",
3
- "version": "0.19.3",
3
+ "version": "0.19.5",
4
4
  "description": "provide deploy function for rocketh",
5
5
  "keywords": [
6
6
  "rocketh",
@@ -43,14 +43,14 @@
43
43
  "eip-1193": "^0.6.5",
44
44
  "named-logs": "^0.4.1",
45
45
  "viem": "^2.48.2",
46
- "@rocketh/core": "0.19.2"
46
+ "@rocketh/core": "0.19.3"
47
47
  },
48
48
  "devDependencies": {
49
49
  "as-soon": "^0.1.6",
50
50
  "rimraf": "^6.1.3",
51
51
  "typescript": "^6.0.3",
52
52
  "vitest": "^4.1.5",
53
- "@rocketh/test-utils": "0.2.2"
53
+ "@rocketh/test-utils": "0.2.3"
54
54
  },
55
55
  "scripts": {
56
56
  "build": "tsc --project tsconfig.json",
package/src/index.ts CHANGED
@@ -9,6 +9,7 @@ import type {
9
9
  PartialDeployment,
10
10
  Signer,
11
11
  LinkedDataProvided,
12
+ Libraries,
12
13
  } from '@rocketh/core/types';
13
14
  import {
14
15
  Address,
@@ -253,6 +254,26 @@ async function getCreate3Factory(env: Environment, signer: Signer, params: Facto
253
254
  };
254
255
  }
255
256
 
257
+ function areLibrariesIdentical(oldLibs: Libraries, newLibs: Libraries) {
258
+ const oldKeys = Object.keys(oldLibs || {});
259
+ const newKeys = Object.keys(newLibs || {});
260
+
261
+ if (oldKeys.length !== newKeys.length) {
262
+ return false;
263
+ }
264
+
265
+ for (const key of newKeys) {
266
+ const oldAddress = oldLibs[key]?.toLowerCase();
267
+ const newAddress = newLibs[key]?.toLowerCase();
268
+
269
+ if (oldAddress !== newAddress) {
270
+ return false;
271
+ }
272
+ }
273
+
274
+ return true;
275
+ }
276
+
256
277
  export function deploy(env: Environment): <TAbi extends Abi>(
257
278
  name: string, // '' allow to not save it
258
279
  args: DeploymentConstruction<TAbi>,
@@ -269,9 +290,9 @@ export function deploy(env: Environment): <TAbi extends Abi>(
269
290
 
270
291
  const existingDeployment = name && env.getOrNull(name);
271
292
  if (existingDeployment && skipIfAlreadyDeployed) {
272
- logger.info(
273
- `deployment for ${nameToDisplay} at ${existingDeployment.address}, skipIfAlreadyDeployed: true => we skip`,
274
- );
293
+ // logger.info(
294
+ // `deployment for ${nameToDisplay} at ${existingDeployment.address}, skipIfAlreadyDeployed: true => we skip`,
295
+ // );
275
296
  return {...(existingDeployment as Deployment<TAbi>), newlyDeployed: false};
276
297
  }
277
298
 
@@ -283,6 +304,11 @@ export function deploy(env: Environment): <TAbi extends Abi>(
283
304
 
284
305
  const bytecode = linkLibraries(artifactToUse, options?.libraries);
285
306
 
307
+ if (bytecode.indexOf('$') != -1) {
308
+ // TODO identify which library are missing using linkReferences (if provided)
309
+ throw new Error(`${nameToDisplay} requires library linking`);
310
+ }
311
+
286
312
  const abi = artifactToUse.abi;
287
313
 
288
314
  const argsToUse = {
@@ -295,30 +321,36 @@ export function deploy(env: Environment): <TAbi extends Abi>(
295
321
  const calldata = encodeDeployData(argsToUse as any); // TODO any
296
322
  const argsData = `0x${calldata.replace(bytecode, '')}` as `0x${string}`;
297
323
 
298
- if (existingDeployment) {
299
- logger.info(`existing deployment for ${nameToDisplay} at ${existingDeployment.address}`);
300
- }
324
+ // if (existingDeployment) {
325
+ // logger.info(`existing deployment for ${nameToDisplay} at ${existingDeployment.address}`);
326
+ // }
301
327
 
302
328
  if (existingDeployment && !alwaysOverride) {
303
- const previousBytecode = existingDeployment.bytecode;
329
+ const previousDeployedBytecode = existingDeployment.deployedBytecode;
304
330
  const previousArgsData = existingDeployment.argsData;
305
- // we assume cbor encoding of hash at the end
306
- // TODO option to remove it, can parse metadata but would rather avoid this here
307
- const last2Bytes = previousBytecode.slice(-4);
308
- const cborLength = parseInt(last2Bytes, 16);
309
- const previousBytecodeWithoutCBOR = previousBytecode.slice(0, -cborLength * 2);
310
- const newBytecodeWithoutCBOR = bytecode.slice(0, -cborLength * 2);
311
- if (previousBytecodeWithoutCBOR === newBytecodeWithoutCBOR && previousArgsData === argsData) {
312
- return {...(existingDeployment as Deployment<TAbi>), newlyDeployed: false};
331
+ const newlyDeployedBytecode = artifactToUse.deployedBytecode;
332
+ let bytecodeMatches: boolean;
333
+ if (previousDeployedBytecode && newlyDeployedBytecode) {
334
+ // CBOR metadata is appended to deployed bytecode (runtime code), not creation bytecode (where CBOR can be at different places).
335
+ const last2Bytes = previousDeployedBytecode.slice(-4);
336
+ const cborLength = parseInt(last2Bytes, 16);
337
+
338
+ const previousDeployedBytecodeWithoutCBOR = previousDeployedBytecode.slice(0, -cborLength * 2);
339
+ const newlyDeployedBytecodeWithoutCBOR = newlyDeployedBytecode.slice(0, -cborLength * 2);
340
+
341
+ bytecodeMatches =
342
+ areLibrariesIdentical(existingDeployment.libraries || {}, options?.libraries || {}) &&
343
+ previousDeployedBytecodeWithoutCBOR === newlyDeployedBytecodeWithoutCBOR;
313
344
  } else {
314
- // logger.info(`-------------- WITHOUT CBOR---------------------`);
315
- // logger.info(previousBytecodeWithoutCBOR);
316
- // logger.info(newBytecodeWithoutCBOR);
317
- // logger.info(`-----------------------------------`);
318
- // logger.info(`-------------- ARGS DATA ---------------------`);
319
- // logger.info(previousArgsData);
320
- // logger.info(argsData);
321
- // logger.info(`-----------------------------------`);
345
+ const linkedPreviousBytecode = linkLibraries(
346
+ {bytecode: existingDeployment.bytecode, linkReferences: existingDeployment.linkReferences},
347
+ existingDeployment.libraries,
348
+ );
349
+ bytecodeMatches = linkedPreviousBytecode === bytecode;
350
+ }
351
+
352
+ if (bytecodeMatches && previousArgsData === argsData) {
353
+ return {...(existingDeployment as Deployment<TAbi>), newlyDeployed: false};
322
354
  }
323
355
  }
324
356
 
@@ -326,6 +358,7 @@ export function deploy(env: Environment): <TAbi extends Abi>(
326
358
  ...artifactToUse,
327
359
  argsData,
328
360
  linkedData: toJSONCompatibleLinkedData(options?.linkedData),
361
+ libraries: options?.libraries,
329
362
  };
330
363
 
331
364
  const signer = env.addressSigners[address];