@rocketh/deploy 0.12.0 → 0.13.0

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/dist/index.d.ts CHANGED
@@ -7,7 +7,10 @@ export type DeployResult<TAbi extends Abi> = Deployment<TAbi> & {
7
7
  export type DeployFunction = <TAbi extends Abi, TChain extends Chain = Chain>(name: string, args: DeploymentConstruction<TAbi>, options?: DeployOptions) => Promise<DeployResult<TAbi>>;
8
8
  export type DeployOptions = {
9
9
  linkedData?: LinkedData;
10
- deterministic?: boolean | `0x${string}`;
10
+ deterministic?: boolean | `0x${string}` | {
11
+ type: 'create2' | 'create3';
12
+ salt?: `0x${string}`;
13
+ };
11
14
  libraries?: {
12
15
  [name: string]: Address;
13
16
  };
@@ -16,6 +19,6 @@ export type DeployOptions = {
16
19
  } | {
17
20
  alwaysOverride?: boolean;
18
21
  });
19
- export declare function deploy<TAbi extends Abi>(env: Environment, name: string, // '' allow to not save it
20
- args: DeploymentConstruction<TAbi>, options?: DeployOptions): Promise<DeployResult<TAbi>>;
22
+ export declare function deploy(env: Environment): <TAbi extends Abi>(name: string, // '' allow to not save it
23
+ args: DeploymentConstruction<TAbi>, options?: DeployOptions) => Promise<DeployResult<TAbi>>;
21
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,SAAS,CAAC;AAE5B,OAAO,KAAK,EACX,sBAAsB,EACtB,UAAU,EACV,WAAW,EAIX,UAAU,EACV,MAAM,SAAS,CAAC;AACjB,OAAO,EAAC,OAAO,EAAE,KAAK,EAA0B,MAAM,MAAM,CAAC;AAM7D,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,UAAU,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,GAAG,KAAK,MAAM,EAAE,CAAC;IACxC,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;AAwFF,wBAAsB,MAAM,CAAC,IAAI,SAAS,GAAG,EAC5C,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,MAAM,EAAE,0BAA0B;AACxC,IAAI,EAAE,sBAAsB,CAAC,IAAI,CAAC,EAClC,OAAO,CAAC,EAAE,aAAa,GACrB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CA8M7B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,SAAS,CAAC;AAG5B,OAAO,KAAK,EACX,sBAAsB,EACtB,UAAU,EACV,WAAW,EACX,UAAU,EAIV,MAAM,SAAS,CAAC;AACjB,OAAO,EACN,OAAO,EACP,KAAK,EAQL,MAAM,MAAM,CAAC;AAId,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,UAAU,CAAC;IACxB,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;AA6NF,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,CA0K/B"}
package/dist/index.js CHANGED
@@ -1,6 +1,5 @@
1
- import { encodePacked, keccak256 } from 'viem';
2
- import { encodeDeployData } from 'viem';
3
1
  import { logs } from 'named-logs';
2
+ import { encodeDeployData, encodeFunctionData, encodePacked, getCreate2Address, keccak256, parseAbi, zeroHash, } from 'viem';
4
3
  const logger = logs('@rocketh/deploy');
5
4
  async function broadcastTransaction(env, signer, params) {
6
5
  if (signer.type === 'wallet' || signer.type === 'remote') {
@@ -68,179 +67,259 @@ function linkLibraries(artifact, libraries) {
68
67
  // TODO return libraries object with path name <filepath.sol>:<name> for names
69
68
  return bytecode;
70
69
  }
71
- export async function deploy(env, name, // '' allow to not save it
72
- args, options) {
73
- const nameToDisplay = name || '<no name>';
74
- const skipIfAlreadyDeployed = options && 'skipIfAlreadyDeployed' in options && options.skipIfAlreadyDeployed;
75
- const allwaysOverride = options && 'allwaysOverride' in options && options.allwaysOverride;
76
- if (allwaysOverride && skipIfAlreadyDeployed) {
77
- throw new Error(`conflicting options: "allwaysOverride" and "skipIfAlreadyDeployed"`);
78
- }
79
- const existingDeployment = name && env.getOrNull(name);
80
- if (existingDeployment && skipIfAlreadyDeployed) {
81
- logger.info(`deployment for ${nameToDisplay} at ${existingDeployment.address}, skipIfAlreadyDeployed: true => we skip`);
82
- return { ...existingDeployment, newlyDeployed: false };
83
- }
84
- const { account, artifact, ...viemArgs } = args;
85
- let address;
86
- if (account.startsWith('0x')) {
87
- address = account;
88
- }
89
- else {
90
- if (env.namedAccounts) {
91
- address = env.namedAccounts[account];
92
- if (!address) {
93
- throw new Error(`no address for ${account}`);
94
- }
95
- }
96
- else {
97
- throw new Error(`no accounts setup, cannot get address for ${account}`);
70
+ async function getCreate2Factory(env, signer, params) {
71
+ const deploymentInfo = env.config.network.deterministicDeployment.create2;
72
+ if (!deploymentInfo)
73
+ throw new Error('create2 deterministic deployment info not found');
74
+ const factoryAddress = deploymentInfo.factory;
75
+ const factoryDeployerAddress = deploymentInfo.deployer;
76
+ const factoryDeploymentData = deploymentInfo.signedTx;
77
+ const funding = BigInt(deploymentInfo.funding);
78
+ const code = await env.network.provider.request({
79
+ method: 'eth_getCode',
80
+ params: [factoryAddress, 'latest'],
81
+ });
82
+ if (code === '0x') {
83
+ const balanceHexString = await env.network.provider.request({
84
+ method: 'eth_getBalance',
85
+ params: [factoryAddress, 'latest'],
86
+ });
87
+ const balance = BigInt(balanceHexString);
88
+ if (balance < funding) {
89
+ const need = funding - balance;
90
+ const balanceToSend = `0x${need.toString(16)}`;
91
+ const txHash = await broadcastTransaction(env, signer, [
92
+ {
93
+ type: '0x2',
94
+ chainId: params.chainId,
95
+ from: params.address,
96
+ to: factoryDeployerAddress,
97
+ value: balanceToSend,
98
+ gas: `0x${BigInt(21000).toString(16)}`,
99
+ maxFeePerGas: params.maxFeePerGas,
100
+ maxPriorityFeePerGas: params.maxPriorityFeePerGas,
101
+ },
102
+ ]);
103
+ await env.savePendingExecution({
104
+ type: 'execution', // TODO different type ?
105
+ transaction: { hash: txHash, origin: params.address },
106
+ });
98
107
  }
108
+ const txHash = await env.network.provider.request({
109
+ method: 'eth_sendRawTransaction',
110
+ params: [factoryDeploymentData],
111
+ });
112
+ await env.savePendingExecution({
113
+ type: 'execution', // TODO different type ?
114
+ transaction: { hash: txHash, origin: params.address },
115
+ });
99
116
  }
100
- // TODO throw specific error if artifact not found
101
- const artifactToUse = artifact;
102
- const bytecode = linkLibraries(artifactToUse, options?.libraries);
103
- const abi = artifactToUse.abi;
104
- const argsToUse = {
105
- ...viemArgs,
106
- account,
107
- abi,
108
- bytecode,
117
+ return {
118
+ getExpectedAddress: ({ salt, bytecode }) => getCreate2Address({
119
+ bytecode,
120
+ from: factoryAddress,
121
+ salt,
122
+ }),
123
+ encodeData: ({ salt, bytecode }) => (salt + (bytecode.slice(2) || '')),
124
+ factoryAddress,
109
125
  };
110
- const calldata = encodeDeployData(argsToUse); // TODO any
111
- const argsData = `0x${calldata.replace(bytecode, '')}`;
112
- if (existingDeployment) {
113
- logger.info(`existing deployment for ${nameToDisplay} at ${existingDeployment.address}`);
126
+ }
127
+ async function getCreate3Factory(env, signer, params) {
128
+ const deploymentInfo = env.config.network.deterministicDeployment.create3;
129
+ if (!deploymentInfo)
130
+ throw new Error('create3 deterministic deployment info not found');
131
+ const factoryAddress = deploymentInfo.factory;
132
+ const factoryBytecode = deploymentInfo.bytecode;
133
+ const proxyBytecode = deploymentInfo.proxyBytecode;
134
+ const code = await env.network.provider.request({
135
+ method: 'eth_getCode',
136
+ params: [factoryAddress, 'latest'],
137
+ });
138
+ if (code === '0x') {
139
+ const create2 = await getCreate2Factory(env, signer, params);
140
+ const salt = deploymentInfo.salt || zeroHash;
141
+ const expectedAddress = create2.getExpectedAddress({ salt, bytecode: factoryBytecode });
142
+ if (expectedAddress.toLowerCase() !== factoryAddress.toLowerCase())
143
+ throw new Error(`create3 factory at ${factoryAddress} is not the expected address ${expectedAddress}`);
144
+ const txHash = await broadcastTransaction(env, signer, [
145
+ {
146
+ type: '0x2',
147
+ chainId: params.chainId,
148
+ from: params.address,
149
+ to: create2.factoryAddress,
150
+ data: create2.encodeData({ salt, bytecode: factoryBytecode }),
151
+ maxFeePerGas: params.maxFeePerGas,
152
+ maxPriorityFeePerGas: params.maxPriorityFeePerGas,
153
+ },
154
+ ]);
155
+ await env.savePendingExecution({
156
+ type: 'execution', // TODO different type ?
157
+ transaction: { hash: txHash, origin: params.address },
158
+ });
114
159
  }
115
- if (existingDeployment && !allwaysOverride) {
116
- const previousBytecode = existingDeployment.bytecode;
117
- const previousArgsData = existingDeployment.argsData;
118
- // we assume cbor encoding of hash at the end
119
- // TODO option to remove it, can parse metadata but would rather avoid this here
120
- const last2Bytes = previousBytecode.slice(-4);
121
- const cborLength = parseInt(last2Bytes, 16);
122
- const previousBytecodeWithoutCBOR = previousBytecode.slice(0, -cborLength * 2);
123
- const newBytecodeWithoutCBOR = bytecode.slice(0, -cborLength * 2);
124
- if (previousBytecodeWithoutCBOR === newBytecodeWithoutCBOR && previousArgsData === argsData) {
160
+ return {
161
+ getExpectedAddress: ({ salt }) => {
162
+ const namespacedSalt = keccak256(encodePacked(['address', 'bytes32'], [params.address, salt]));
163
+ const proxyAddress = getCreate2Address({
164
+ from: factoryAddress,
165
+ salt: namespacedSalt,
166
+ bytecode: proxyBytecode,
167
+ });
168
+ // This follows the RLP encoding rules for contract addresses created by CREATE
169
+ // prefix ++ address ++ nonce, where:
170
+ // prefix = 0xd6 (0xc0 + 0x16), where 0x16 is length of: 0x94 ++ address ++ 0x01
171
+ // 0x94 = 0x80 + 0x14 (0x14 is the length of an address)
172
+ const rlpEncodedData = encodePacked(['bytes1', 'bytes1', 'address', 'bytes1'], ['0xd6', '0x94', proxyAddress, '0x01']);
173
+ return `0x${keccak256(rlpEncodedData).slice(26)}`;
174
+ },
175
+ encodeData: ({ salt, bytecode }) => encodeFunctionData({
176
+ abi: parseAbi(['function deployDeterministic(bytes memory,bytes32) external returns (address)']),
177
+ args: [bytecode, salt],
178
+ }),
179
+ factoryAddress,
180
+ };
181
+ }
182
+ export function deploy(env) {
183
+ return async (name, args, options) => {
184
+ const nameToDisplay = name || '<no name>';
185
+ const skipIfAlreadyDeployed = options && 'skipIfAlreadyDeployed' in options && options.skipIfAlreadyDeployed;
186
+ const allwaysOverride = options && 'allwaysOverride' in options && options.allwaysOverride;
187
+ if (allwaysOverride && skipIfAlreadyDeployed) {
188
+ throw new Error(`conflicting options: "allwaysOverride" and "skipIfAlreadyDeployed"`);
189
+ }
190
+ const existingDeployment = name && env.getOrNull(name);
191
+ if (existingDeployment && skipIfAlreadyDeployed) {
192
+ logger.info(`deployment for ${nameToDisplay} at ${existingDeployment.address}, skipIfAlreadyDeployed: true => we skip`);
125
193
  return { ...existingDeployment, newlyDeployed: false };
126
194
  }
127
- else {
128
- // logger.info(`-------------- WITHOUT CBOR---------------------`);
129
- // logger.info(previousBytecodeWithoutCBOR);
130
- // logger.info(newBytecodeWithoutCBOR);
131
- // logger.info(`-----------------------------------`);
132
- // logger.info(`-------------- ARGS DATA ---------------------`);
133
- // logger.info(previousArgsData);
134
- // logger.info(argsData);
135
- // logger.info(`-----------------------------------`);
195
+ const { account, artifact, ...viemArgs } = args;
196
+ let address;
197
+ if (account.startsWith('0x')) {
198
+ address = account;
136
199
  }
137
- }
138
- const partialDeployment = {
139
- ...artifactToUse,
140
- argsData,
141
- linkedData: options?.linkedData,
142
- };
143
- const signer = env.addressSigners[address];
144
- const chainId = `0x${env.network.chain.id.toString(16)}`;
145
- const maxFeePerGas = viemArgs.maxFeePerGas && `0x${viemArgs.maxFeePerGas.toString(16)}`;
146
- const maxPriorityFeePerGas = viemArgs.maxPriorityFeePerGas && `0x${viemArgs.maxPriorityFeePerGas.toString(16)}`;
147
- const params = [
148
- {
149
- type: '0x2',
150
- from: address,
151
- chainId,
152
- data: calldata,
153
- gas: viemArgs.gas && `0x${viemArgs.gas.toString(16)}`,
154
- maxFeePerGas,
155
- maxPriorityFeePerGas,
156
- // gasPrice: viemArgs.gasPrice && `0x${viemArgs.gasPrice.toString(16)}` as `0x${string}`,
157
- // value: `0x${viemArgs.value?.toString(16)}` as `0x${string}`,
158
- // nonce: viemArgs.nonce && (`0x${viemArgs.nonce.toString(16)}` as `0x${string}`),
159
- },
160
- ];
161
- let expectedAddress = undefined;
162
- if (options?.deterministic) {
163
- const deterministicDeploymentInfo = env.config.network.deterministicDeployment;
164
- const deterministicFactoryAddress = deterministicDeploymentInfo.factory;
165
- const deterministicFactoryDeployerAddress = deterministicDeploymentInfo.deployer;
166
- const factoryDeploymentData = deterministicDeploymentInfo.signedTx;
167
- const funding = BigInt(deterministicDeploymentInfo.funding);
168
- const code = await env.network.provider.request({
169
- method: 'eth_getCode',
170
- params: [deterministicFactoryAddress, 'latest'],
171
- });
172
- if (code === '0x') {
173
- const balanceHexString = await env.network.provider.request({
174
- method: 'eth_getBalance',
175
- params: [deterministicFactoryDeployerAddress, 'latest'],
176
- });
177
- const balance = BigInt(balanceHexString);
178
- if (balance < funding) {
179
- const need = funding - balance;
180
- const balanceToSend = `0x${need.toString(16)}`;
181
- const txHash = await broadcastTransaction(env, signer, [
182
- {
183
- type: '0x2',
184
- chainId,
185
- from: address,
186
- to: deterministicFactoryDeployerAddress,
187
- value: balanceToSend,
188
- gas: `0x${BigInt(21000).toString(16)}`,
189
- maxFeePerGas,
190
- maxPriorityFeePerGas,
191
- },
192
- ]);
193
- await env.savePendingExecution({
194
- type: 'execution', // TODO different type ?
195
- transaction: { hash: txHash, origin: address },
196
- });
200
+ else {
201
+ if (env.namedAccounts) {
202
+ address = env.namedAccounts[account];
203
+ if (!address) {
204
+ throw new Error(`no address for ${account}`);
205
+ }
206
+ }
207
+ else {
208
+ throw new Error(`no accounts setup, cannot get address for ${account}`);
197
209
  }
198
- const txHash = await env.network.provider.request({
199
- method: 'eth_sendRawTransaction',
200
- params: [factoryDeploymentData],
201
- });
202
- await env.savePendingExecution({
203
- type: 'execution', // TODO different type ?
204
- transaction: { hash: txHash, origin: address },
205
- });
206
210
  }
207
- // prepending the salt
208
- const salt = (typeof options.deterministic === 'string'
209
- ? `0x${options.deterministic.slice(2).padStart(64, '0')}`
210
- : '0x0000000000000000000000000000000000000000000000000000000000000000');
211
- const bytecode = params[0].data || '0x';
212
- expectedAddress = ('0x' +
213
- keccak256(`0xff${deterministicFactoryAddress.slice(2)}${salt.slice(2)}${keccak256(bytecode).slice(2)}`).slice(-40));
214
- const codeAlreadyDeployed = await env.network.provider.request({
215
- method: 'eth_getCode',
216
- params: [expectedAddress, 'latest'],
217
- });
218
- if (codeAlreadyDeployed !== '0x') {
219
- env.showMessage(`contract was already deterministically deployed at ${expectedAddress}`);
220
- if (name) {
221
- const deployment = await env.save(name, {
222
- address: expectedAddress,
223
- ...partialDeployment,
224
- }, { doNotCountAsNewDeployment: true });
225
- return { ...deployment, newlyDeployed: false };
211
+ // TODO throw specific error if artifact not found
212
+ const artifactToUse = artifact;
213
+ const bytecode = linkLibraries(artifactToUse, options?.libraries);
214
+ const abi = artifactToUse.abi;
215
+ const argsToUse = {
216
+ ...viemArgs,
217
+ account,
218
+ abi,
219
+ bytecode,
220
+ };
221
+ const calldata = encodeDeployData(argsToUse); // TODO any
222
+ const argsData = `0x${calldata.replace(bytecode, '')}`;
223
+ if (existingDeployment) {
224
+ logger.info(`existing deployment for ${nameToDisplay} at ${existingDeployment.address}`);
225
+ }
226
+ if (existingDeployment && !allwaysOverride) {
227
+ const previousBytecode = existingDeployment.bytecode;
228
+ const previousArgsData = existingDeployment.argsData;
229
+ // we assume cbor encoding of hash at the end
230
+ // TODO option to remove it, can parse metadata but would rather avoid this here
231
+ const last2Bytes = previousBytecode.slice(-4);
232
+ const cborLength = parseInt(last2Bytes, 16);
233
+ const previousBytecodeWithoutCBOR = previousBytecode.slice(0, -cborLength * 2);
234
+ const newBytecodeWithoutCBOR = bytecode.slice(0, -cborLength * 2);
235
+ if (previousBytecodeWithoutCBOR === newBytecodeWithoutCBOR && previousArgsData === argsData) {
236
+ return { ...existingDeployment, newlyDeployed: false };
226
237
  }
227
238
  else {
228
- return { address: expectedAddress, ...partialDeployment, newlyDeployed: false };
239
+ // logger.info(`-------------- WITHOUT CBOR---------------------`);
240
+ // logger.info(previousBytecodeWithoutCBOR);
241
+ // logger.info(newBytecodeWithoutCBOR);
242
+ // logger.info(`-----------------------------------`);
243
+ // logger.info(`-------------- ARGS DATA ---------------------`);
244
+ // logger.info(previousArgsData);
245
+ // logger.info(argsData);
246
+ // logger.info(`-----------------------------------`);
229
247
  }
230
248
  }
231
- params[0].data = (salt + (bytecode.slice(2) || ''));
232
- params[0].to = deterministicFactoryAddress;
233
- }
234
- const txHash = await broadcastTransaction(env, signer, params);
235
- const pendingDeployment = {
236
- type: 'deployment',
237
- expectedAddress,
238
- partialDeployment,
239
- transaction: { hash: txHash, origin: address },
240
- name,
241
- // TODO we should have the nonce, except for wallet like metamask where it is not usre you get the nonce you start with
249
+ const partialDeployment = {
250
+ ...artifactToUse,
251
+ argsData,
252
+ linkedData: options?.linkedData,
253
+ };
254
+ const signer = env.addressSigners[address];
255
+ const chainId = `0x${env.network.chain.id.toString(16)}`;
256
+ const maxFeePerGas = viemArgs.maxFeePerGas && `0x${viemArgs.maxFeePerGas.toString(16)}`;
257
+ const maxPriorityFeePerGas = viemArgs.maxPriorityFeePerGas && `0x${viemArgs.maxPriorityFeePerGas.toString(16)}`;
258
+ const params = [
259
+ {
260
+ type: '0x2',
261
+ from: address,
262
+ chainId,
263
+ data: calldata,
264
+ gas: viemArgs.gas && `0x${viemArgs.gas.toString(16)}`,
265
+ maxFeePerGas,
266
+ maxPriorityFeePerGas,
267
+ // gasPrice: viemArgs.gasPrice && `0x${viemArgs.gasPrice.toString(16)}` as `0x${string}`,
268
+ // value: `0x${viemArgs.value?.toString(16)}` as `0x${string}`,
269
+ // nonce: viemArgs.nonce && (`0x${viemArgs.nonce.toString(16)}` as `0x${string}`),
270
+ },
271
+ ];
272
+ let expectedAddress = undefined;
273
+ if (options?.deterministic) {
274
+ const [deterministicType, salt] = (() => {
275
+ const normalizeSalt = (salt) => typeof salt === 'string' ? `0x${salt.slice(2).padStart(64, '0')}` : zeroHash;
276
+ if (typeof options.deterministic !== 'object')
277
+ return ['create2', normalizeSalt(options.deterministic)];
278
+ if (options.deterministic.type === 'create2')
279
+ return ['create2', normalizeSalt(options.deterministic.salt)];
280
+ if (options.deterministic.type === 'create3')
281
+ return ['create3', normalizeSalt(options.deterministic.salt)];
282
+ throw new Error(`unknown deterministic type: ${options.deterministic.type}`);
283
+ })();
284
+ const bytecode = params[0].data || '0x';
285
+ const factoryParams = { chainId, address, maxFeePerGas, maxPriorityFeePerGas };
286
+ const create = deterministicType === 'create2'
287
+ ? await getCreate2Factory(env, signer, factoryParams)
288
+ : await getCreate3Factory(env, signer, factoryParams);
289
+ expectedAddress = create.getExpectedAddress({ salt, bytecode });
290
+ const codeAlreadyDeployed = await env.network.provider.request({
291
+ method: 'eth_getCode',
292
+ params: [expectedAddress, 'latest'],
293
+ });
294
+ if (codeAlreadyDeployed !== '0x') {
295
+ if (deterministicType === 'create3' && codeAlreadyDeployed !== bytecode)
296
+ throw new Error(`code already deployed at ${expectedAddress} but is not the expected bytecode`);
297
+ env.showMessage(`contract was already deterministically deployed at ${expectedAddress}`);
298
+ if (name) {
299
+ const deployment = await env.save(name, {
300
+ address: expectedAddress,
301
+ ...partialDeployment,
302
+ }, { doNotCountAsNewDeployment: true });
303
+ return { ...deployment, newlyDeployed: false };
304
+ }
305
+ else {
306
+ return { address: expectedAddress, ...partialDeployment, newlyDeployed: false };
307
+ }
308
+ }
309
+ params[0].data = create.encodeData({ salt, bytecode });
310
+ params[0].to = create.factoryAddress;
311
+ }
312
+ const txHash = await broadcastTransaction(env, signer, params);
313
+ const pendingDeployment = {
314
+ type: 'deployment',
315
+ expectedAddress,
316
+ partialDeployment,
317
+ transaction: { hash: txHash, origin: address },
318
+ name,
319
+ // TODO we should have the nonce, except for wallet like metamask where it is not usre you get the nonce you start with
320
+ };
321
+ const deployment = await env.savePendingDeployment(pendingDeployment);
322
+ return { ...deployment, newlyDeployed: true };
242
323
  };
243
- const deployment = await env.savePendingDeployment(pendingDeployment);
244
- return { ...deployment, newlyDeployed: true };
245
324
  }
246
325
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAiB,YAAY,EAAE,SAAS,EAAC,MAAM,MAAM,CAAC;AAC7D,OAAO,EAAC,gBAAgB,EAAC,MAAM,MAAM,CAAC;AACtC,OAAO,EAAC,IAAI,EAAC,MAAM,YAAY,CAAC;AAEhC,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAuBvC,KAAK,UAAU,oBAAoB,CAClC,GAAgB,EAChB,MAAc,EACd,MAAgC;IAEhC,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC1D,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YAC5B,MAAM,EAAE,qBAAqB;YAC7B,MAAM,EAAE,MAAa,EAAE,uBAAuB;SAC9C,CAAC,CAAC;IACJ,CAAC;SAAM,CAAC;QACP,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;YACzC,MAAM,EAAE,qBAAqB;YAC7B,MAAM;SACN,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;YACnC,MAAM,EAAE,wBAAwB;YAChC,MAAM,EAAE,CAAC,KAAK,CAAC;SACf,CAAC,CAAC;IACJ,CAAC;AACF,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB,EAAE,WAAmB,EAAE,cAAsB;IACpF,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACjD,IAAI,kBAAkB,CAAC;IACvB,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9D,kBAAkB,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnE,CAAC;SAAM,CAAC;QACP,kBAAkB,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,QAAQ,kBAAkB,OAAO,EAAE,GAAG,CAAC,CAAC;IACnE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,eAAe,WAAW,MAAM,kBAAkB,iBAAiB,QAAQ,UAAU,CAAC,CAAC;IACxG,CAAC;IACD,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAgB,EAAE,SAA2C;IACtF,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QACtC,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,SAAS,aAAa,CACrB,QAOC,EACD,SAA4C;IAE5C,IAAI,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;IAEjC,IAAI,SAAS,EAAE,CAAC;QACf,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC7B,KAAK,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBAClF,KAAK,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;oBAChE,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;oBAChC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;wBACxB,SAAS;oBACV,CAAC;oBAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;wBAC5B,QAAQ;4BACP,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;gCAC1C,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;gCACjB,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC3D,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;aAAM,CAAC;YACP,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAClD,CAAC;IACF,CAAC;IAED,8EAA8E;IAE9E,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAC3B,GAAgB,EAChB,IAAY,EAAE,0BAA0B;AACxC,IAAkC,EAClC,OAAuB;IAEvB,MAAM,aAAa,GAAG,IAAI,IAAI,WAAW,CAAC;IAC1C,MAAM,qBAAqB,GAAG,OAAO,IAAI,uBAAuB,IAAI,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAC7G,MAAM,eAAe,GAAG,OAAO,IAAI,iBAAiB,IAAI,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC;IAE3F,IAAI,eAAe,IAAI,qBAAqB,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,kBAAkB,GAAG,IAAI,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,kBAAkB,IAAI,qBAAqB,EAAE,CAAC;QACjD,MAAM,CAAC,IAAI,CACV,kBAAkB,aAAa,OAAO,kBAAkB,CAAC,OAAO,0CAA0C,CAC1G,CAAC;QACF,OAAO,EAAC,GAAI,kBAAuC,EAAE,aAAa,EAAE,KAAK,EAAC,CAAC;IAC5E,CAAC;IAED,MAAM,EAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAC,GAAG,IAAI,CAAC;IAC9C,IAAI,OAAsB,CAAC;IAC3B,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAO,GAAG,OAAwB,CAAC;IACpC,CAAC;SAAM,CAAC;QACP,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAC;YAC9C,CAAC;QACF,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,6CAA6C,OAAO,EAAE,CAAC,CAAC;QACzE,CAAC;IACF,CAAC;IAED,kDAAkD;IAClD,MAAM,aAAa,GAAG,QAAQ,CAAC;IAE/B,MAAM,QAAQ,GAAG,aAAa,CAAC,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAElE,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC;IAE9B,MAAM,SAAS,GAAG;QACjB,GAAG,QAAQ;QACX,OAAO;QACP,GAAG;QACH,QAAQ;KACR,CAAC;IAEF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,SAAgB,CAAC,CAAC,CAAC,WAAW;IAChE,MAAM,QAAQ,GAAG,KAAK,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAmB,CAAC;IAExE,IAAI,kBAAkB,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,2BAA2B,aAAa,OAAO,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,IAAI,kBAAkB,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,QAAQ,CAAC;QACrD,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,QAAQ,CAAC;QACrD,6CAA6C;QAC7C,gFAAgF;QAChF,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC5C,MAAM,2BAA2B,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAC/E,MAAM,sBAAsB,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAClE,IAAI,2BAA2B,KAAK,sBAAsB,IAAI,gBAAgB,KAAK,QAAQ,EAAE,CAAC;YAC7F,OAAO,EAAC,GAAI,kBAAuC,EAAE,aAAa,EAAE,KAAK,EAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACP,mEAAmE;YACnE,4CAA4C;YAC5C,uCAAuC;YACvC,sDAAsD;YACtD,iEAAiE;YACjE,iCAAiC;YACjC,yBAAyB;YACzB,sDAAsD;QACvD,CAAC;IACF,CAAC;IAED,MAAM,iBAAiB,GAA4B;QAClD,GAAG,aAAa;QAChB,QAAQ;QACR,UAAU,EAAE,OAAO,EAAE,UAAU;KAC/B,CAAC;IAEF,MAAM,MAAM,GAAG,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAE3C,MAAM,OAAO,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAmB,CAAC;IAC1E,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,IAAK,KAAK,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAoB,CAAC;IAC3G,MAAM,oBAAoB,GACzB,QAAQ,CAAC,oBAAoB,IAAK,KAAK,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAoB,CAAC;IAEvG,MAAM,MAAM,GAA6B;QACxC;YACC,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,OAAO;YACb,OAAO;YACP,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,QAAQ,CAAC,GAAG,IAAK,KAAK,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAoB;YACxE,YAAY;YACZ,oBAAoB;YACpB,yFAAyF;YACzF,+DAA+D;YAC/D,kFAAkF;SAClF;KACD,CAAC;IAEF,IAAI,eAAe,GAA8B,SAAS,CAAC;IAC3D,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;QAC5B,MAAM,2BAA2B,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC;QAE/E,MAAM,2BAA2B,GAAG,2BAA2B,CAAC,OAAO,CAAC;QACxE,MAAM,mCAAmC,GAAG,2BAA2B,CAAC,QAAQ,CAAC;QACjF,MAAM,qBAAqB,GAAG,2BAA2B,CAAC,QAAQ,CAAC;QACnE,MAAM,OAAO,GAAG,MAAM,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAE5D,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC/C,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,CAAC,2BAA2B,EAAE,QAAQ,CAAC;SAC/C,CAAC,CAAC;QACH,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,gBAAgB,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC3D,MAAM,EAAE,gBAAgB;gBACxB,MAAM,EAAE,CAAC,mCAAmC,EAAE,QAAQ,CAAC;aACvD,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACzC,IAAI,OAAO,GAAG,OAAO,EAAE,CAAC;gBACvB,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC;gBAC/B,MAAM,aAAa,GAAG,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAmB,CAAC;gBAChE,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE;oBACtD;wBACC,IAAI,EAAE,KAAK;wBACX,OAAO;wBACP,IAAI,EAAE,OAAO;wBACb,EAAE,EAAE,mCAAmC;wBACvC,KAAK,EAAE,aAAa;wBACpB,GAAG,EAAE,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;wBACtC,YAAY;wBACZ,oBAAoB;qBACpB;iBACD,CAAC,CAAC;gBACH,MAAM,GAAG,CAAC,oBAAoB,CAAC;oBAC9B,IAAI,EAAE,WAAW,EAAE,wBAAwB;oBAC3C,WAAW,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAC;iBAC5C,CAAC,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACjD,MAAM,EAAE,wBAAwB;gBAChC,MAAM,EAAE,CAAC,qBAAqB,CAAC;aAC/B,CAAC,CAAC;YACH,MAAM,GAAG,CAAC,oBAAoB,CAAC;gBAC9B,IAAI,EAAE,WAAW,EAAE,wBAAwB;gBAC3C,WAAW,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAC;aAC5C,CAAC,CAAC;QACJ,CAAC;QAED,sBAAsB;QACtB,MAAM,IAAI,GAAG,CACZ,OAAO,OAAO,CAAC,aAAa,KAAK,QAAQ;YACxC,CAAC,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE;YACzD,CAAC,CAAC,oEAAoE,CACtD,CAAC;QAEnB,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;QAExC,eAAe,GAAG,CAAC,IAAI;YACtB,SAAS,CAAC,OAAO,2BAA2B,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAC5G,CAAC,EAAE,CACH,CAAkB,CAAC;QAErB,MAAM,mBAAmB,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC9D,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,CAAC,eAAe,EAAE,QAAQ,CAAC;SACnC,CAAC,CAAC;QAEH,IAAI,mBAAmB,KAAK,IAAI,EAAE,CAAC;YAClC,GAAG,CAAC,WAAW,CAAC,sDAAsD,eAAe,EAAE,CAAC,CAAC;YACzF,IAAI,IAAI,EAAE,CAAC;gBACV,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI,CAChC,IAAI,EACJ;oBACC,OAAO,EAAE,eAAe;oBACxB,GAAG,iBAAiB;iBACpB,EACD,EAAC,yBAAyB,EAAE,IAAI,EAAC,CACjC,CAAC;gBACF,OAAO,EAAC,GAAI,UAA+B,EAAE,aAAa,EAAE,KAAK,EAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACP,OAAO,EAAC,OAAO,EAAE,eAAe,EAAE,GAAG,iBAAiB,EAAE,aAAa,EAAE,KAAK,EAAC,CAAC;YAC/E,CAAC;QACF,CAAC;QAED,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAkB,CAAC;QACrE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,2BAA2B,CAAC;IAC5C,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAE/D,MAAM,iBAAiB,GAA4B;QAClD,IAAI,EAAE,YAAY;QAClB,eAAe;QACf,iBAAiB;QACjB,WAAW,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAC;QAC5C,IAAI;QACJ,uHAAuH;KACvH,CAAC;IACF,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;IACtE,OAAO,EAAC,GAAI,UAA+B,EAAE,aAAa,EAAE,IAAI,EAAC,CAAC;AACnE,CAAC"}
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.12.0",
3
+ "version": "0.13.0",
4
4
  "description": "provide deploy function for rocketh",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -24,7 +24,7 @@
24
24
  "eip-1193": "^0.6.2",
25
25
  "rimraf": "^6.0.1",
26
26
  "typescript": "^5.8.2",
27
- "rocketh": "0.12.0"
27
+ "rocketh": "0.13.0"
28
28
  },
29
29
  "dependencies": {
30
30
  "named-logs": "^0.3.2",