Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 8 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
{
"name": "@gnosis-guild/zodiac-core",
"version": "4.0.0",
"version": "4.0.1",
"description": "Zodiac is a composable design philosophy and collection of standards for building DAO ecosystem tooling.",
"author": "Auryn Macmillan <auryn@gnosisguild.org>",
"license": "LGPL-3.0+",
"type": "module",
"main": "./dist/esm/index.js",
"main": "./dist/cjs/index.js",
"module": "./dist/esm/index.js",
"types": "./dist/esm/index.d.ts",
"exports": {
".": {
"types": "./dist/esm/index.d.ts",
"import": "./dist/esm/index.js"
"import": "./dist/esm/index.js",
"require": "./dist/cjs/index.js"
},
"./contracts/*": "./contracts/*"
"./contracts/*": "./contracts/*",
"./package.json": "./package.json"
},
"engines": {
"node": ">=22.10.0"
Expand All @@ -26,7 +28,8 @@
"contracts"
],
"scripts": {
"build": "hardhat compile && tsc -p tsconfig.build.json",
"build": "hardhat compile && tsc -p tsconfig.build.json && tsc -p tsconfig.cjs.json",
"postbuild": "node postbuild.mjs",
"clean": "rm -rf dist build typechain-types",
"test": "hardhat test",
"coverage": "hardhat --coverage test",
Expand Down
9 changes: 9 additions & 0 deletions postbuild.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { writeFileSync } from "node:fs";

// Package root is `"type": "module"`, so `dist/esm/*.js` are ESM by default and
// `dist/cjs/*.js` need their own package.json flipping the type to commonjs.
writeFileSync("dist/esm/package.json", JSON.stringify({ type: "module" }) + "\n");
writeFileSync(
"dist/cjs/package.json",
JSON.stringify({ type: "commonjs" }) + "\n"
);
4 changes: 2 additions & 2 deletions src/artifact/internal/etherscan.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { AbiCoder } from "ethers";

import { sourcePathFromSourceCode } from "./getBuildArtifact.ts";
import { resolveApiUrl } from "./etherscanApiUrl.ts";
import { sourcePathFromSourceCode } from "./getBuildArtifact.js";
import { resolveApiUrl } from "./etherscanApiUrl.js";

/**
* Verifies the contract on a blockchain explorer using the provided API.
Expand Down
2 changes: 1 addition & 1 deletion src/artifact/internal/getBuildArtifact.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import path from "path";
import { isAddress } from "ethers";
import { readdirSync, readFileSync, statSync } from "fs";

import { BuildArtifact, MastercopyArtifact } from "../../types.ts";
import { BuildArtifact, MastercopyArtifact } from "../../types.js";

/**
* Retrieves the build artifact for a specified contract.
Expand Down
2 changes: 1 addition & 1 deletion src/artifact/internal/linkBuildArtifact.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import assert from "assert";
import { isAddress } from "ethers";

import { BuildArtifact, MastercopyArtifact } from "../../types.ts";
import { BuildArtifact, MastercopyArtifact } from "../../types.js";

/**
* Resolves library links in a build artifact
Expand Down
4 changes: 2 additions & 2 deletions src/artifact/readMastercopies.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import assert from "assert";
import semver from "semver";
import { existsSync, readFileSync } from "fs";

import { defaultMastercopyArtifactsFile } from "./internal/paths.ts";
import { MastercopyArtifact } from "../types.ts";
import { defaultMastercopyArtifactsFile } from "./internal/paths.js";
import { MastercopyArtifact } from "../types.js";

/**
* Extracts and returns Mastercopy artifact information from the specified artifacts file.
Expand Down
6 changes: 3 additions & 3 deletions src/artifact/verifyAllMastercopies.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { existsSync, readFileSync } from "fs";

import { defaultMastercopyArtifactsFile } from "./internal/paths.ts";
import { verifySourceCode } from "./internal/etherscan.ts";
import { defaultMastercopyArtifactsFile } from "./internal/paths.js";
import { verifySourceCode } from "./internal/etherscan.js";

import { MastercopyArtifact } from "../types.ts";
import { MastercopyArtifact } from "../types.js";

/**
* Iterates through each entry in the mastercopy artifacts file and verifies the mastercopy on an Etherscan-compatible block explorer.
Expand Down
12 changes: 6 additions & 6 deletions src/artifact/writeMastercopyFromBuild.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
import { existsSync, readFileSync, writeFileSync } from "fs";
import semver from "semver";

import { address as erc2470FactoryAddress } from "../factory/erc2470Factory.ts";
import predictSingletonAddress from "../encoding/predictSingletonAddress.ts";
import { address as erc2470FactoryAddress } from "../factory/erc2470Factory.js";
import predictSingletonAddress from "../encoding/predictSingletonAddress.js";

import {
defaultBuildDir,
defaultMastercopyArtifactsFile,
} from "./internal/paths.ts";
import getBuildArtifact from "./internal/getBuildArtifact.ts";
import linkBuildArtifact from "./internal/linkBuildArtifact.ts";
} from "./internal/paths.js";
import getBuildArtifact from "./internal/getBuildArtifact.js";
import linkBuildArtifact from "./internal/linkBuildArtifact.js";

import { MastercopyArtifact } from "../types.ts";
import { MastercopyArtifact } from "../types.js";

/**
* Extracts and stores current Mastercopy result from current contract build, and stores it in the artifacts file.
Expand Down
10 changes: 5 additions & 5 deletions src/artifact/writeMastercopyFromExplorer.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { existsSync, readFileSync, writeFileSync } from "fs";
import semver from "semver";

import { address as erc2470FactoryAddress } from "../factory/erc2470Factory.ts";
import predictSingletonAddress from "../encoding/predictSingletonAddress.ts";
import { address as erc2470FactoryAddress } from "../factory/erc2470Factory.js";
import predictSingletonAddress from "../encoding/predictSingletonAddress.js";

import { defaultMastercopyArtifactsFile } from "./internal/paths.ts";
import { getSourceCode } from "./internal/etherscan.ts";
import { defaultMastercopyArtifactsFile } from "./internal/paths.js";
import { getSourceCode } from "./internal/etherscan.js";

import { MastercopyArtifact } from "../types.ts";
import { MastercopyArtifact } from "../types.js";

/**
* Extracts and stores the Mastercopy result from a contract deployed on the blockchain by querying an Etherscan-like explorer.
Expand Down
2 changes: 1 addition & 1 deletion src/encoding/encodeDeployProxy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { AbiCoder, BigNumberish, Interface, TransactionRequest } from "ethers";
import {
address as factoryAddress,
iface as factoryIFace,
} from "../factory/proxyFactory.ts";
} from "../factory/proxyFactory.js";

/**
* Encodes the transaction payload for deploying a Mod instance.
Expand Down
8 changes: 4 additions & 4 deletions src/encoding/encodeDeploySingleton.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { getAddress } from "ethers";
import encodeDeployViaNickFactory from "./encodeDeployViaNickFactory.ts";
import encodeDeployVia2470Factory from "./encodeDeployVia2470Factory.ts";
import { address as nickFactoryAddress } from "../factory/nickFactory.ts";
import { address as erc2470FactoryAddress } from "../factory/erc2470Factory.ts";
import encodeDeployViaNickFactory from "./encodeDeployViaNickFactory.js";
import encodeDeployVia2470Factory from "./encodeDeployVia2470Factory.js";
import { address as nickFactoryAddress } from "../factory/nickFactory.js";
import { address as erc2470FactoryAddress } from "../factory/erc2470Factory.js";

/**
* Encodes the transaction payload for deploying a singleton contract using the specified factory address.
Expand Down
4 changes: 2 additions & 2 deletions src/encoding/encodeDeployVia2470Factory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import { AbiCoder, concat, TransactionRequest } from "ethers";
import {
address as factoryAddress,
iface as factoryInterface,
} from "../factory/erc2470Factory.ts";
import { Create2Args } from "../types.ts";
} from "../factory/erc2470Factory.js";
import { Create2Args } from "../types.js";

/**
* Encodes the transaction request for deploying a Singleton via ERC2470Factory.
Expand Down
4 changes: 2 additions & 2 deletions src/encoding/encodeDeployViaNickFactory.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { AbiCoder, concat, TransactionRequest } from "ethers";
import { address as factoryAddress } from "../factory/nickFactory.ts";
import { Create2Args } from "../types.ts";
import { address as factoryAddress } from "../factory/nickFactory.js";
import { Create2Args } from "../types.js";

/**
* Encodes the transaction request for deploying a Singleton via Nick factory.
Expand Down
2 changes: 1 addition & 1 deletion src/encoding/predictProxyAddress.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
keccak256,
} from "ethers";

import { address as factoryAddress } from "../factory/proxyFactory.ts";
import { address as factoryAddress } from "../factory/proxyFactory.js";

/**
* Predicts the address of a proxy contract deployed via ModuleProxyFactory.
Expand Down
4 changes: 2 additions & 2 deletions src/encoding/predictSingletonAddress.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { AbiCoder, concat, getCreate2Address, keccak256 } from "ethers";
import { address as erc2470FactoryAddress } from "../factory/erc2470Factory.ts";
import { Create2Args } from "../types.ts";
import { address as erc2470FactoryAddress } from "../factory/erc2470Factory.js";
import { Create2Args } from "../types.js";

/**
* Predicts the address of a proxy contract deployed via SingletonFactory.
Expand Down
2 changes: 1 addition & 1 deletion src/factory/proxyFactory.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { getCreate2Address, Interface, keccak256 } from "ethers";

import { address as singletonFactoryAddress } from "./erc2470Factory.ts";
import { address as singletonFactoryAddress } from "./erc2470Factory.js";

export const bytecode =
"0x608060405234801561001057600080fd5b506107fe806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f1ab873c14610030575b600080fd5b61004a600480360381019061004591906103b6565b610060565b6040516100579190610564565b60405180910390f35b600061009b848480519060200120846040516020016100809291906104f0565b604051602081830303815290604052805190602001206101a3565b905060008173ffffffffffffffffffffffffffffffffffffffff16846040516100c4919061051c565b6000604051808303816000865af19150503d8060008114610101576040519150601f19603f3d011682016040523d82523d6000602084013e610106565b606091505b5050905080610141576040517f7dabd39900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f2150ada912bf189ed721c44211199e270903fc88008c2a1e1e889ef30fe67c5f60405160405180910390a3509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561021657826040517fc80b883400000000000000000000000000000000000000000000000000000000815260040161020d9190610564565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff163b141561027357826040517ffff2336100000000000000000000000000000000000000000000000000000000815260040161026a9190610564565b60405180910390fd5b6000836040516020016102869190610533565b6040516020818303038152906040529050828151602083016000f59150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561031557816040517fdc7a7a2400000000000000000000000000000000000000000000000000000000815260040161030c9190610564565b60405180910390fd5b5092915050565b600061032f61032a846105a4565b61057f565b90508281526020810184848401111561034b5761034a61071b565b5b61035684828561063c565b509392505050565b60008135905061036d8161079a565b92915050565b600082601f83011261038857610387610716565b5b813561039884826020860161031c565b91505092915050565b6000813590506103b0816107b1565b92915050565b6000806000606084860312156103cf576103ce610725565b5b60006103dd8682870161035e565b935050602084013567ffffffffffffffff8111156103fe576103fd610720565b5b61040a86828701610373565b925050604061041b868287016103a1565b9150509250925092565b61042e816105f6565b82525050565b610445610440826105f6565b6106af565b82525050565b61045c61045782610608565b6106c1565b82525050565b600061046d826105d5565b61047781856105e0565b935061048781856020860161064b565b80840191505092915050565b60006104a0600f836105eb565b91506104ab82610748565b600f82019050919050565b60006104c36013836105eb565b91506104ce82610771565b601382019050919050565b6104ea6104e582610632565b6106dd565b82525050565b60006104fc828561044b565b60208201915061050c82846104d9565b6020820191508190509392505050565b60006105288284610462565b915081905092915050565b600061053e826104b6565b915061054a8284610434565b60148201915061055982610493565b915081905092915050565b60006020820190506105796000830184610425565b92915050565b600061058961059a565b9050610595828261067e565b919050565b6000604051905090565b600067ffffffffffffffff8211156105bf576105be6106e7565b5b6105c88261072a565b9050602081019050919050565b600081519050919050565b600081905092915050565b600081905092915050565b600061060182610612565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561066957808201518184015260208101905061064e565b83811115610678576000848401525b50505050565b6106878261072a565b810181811067ffffffffffffffff821117156106a6576106a56106e7565b5b80604052505050565b60006106ba826106cb565b9050919050565b6000819050919050565b60006106d68261073b565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000600082015250565b7f602d8060093d393df3363d3d373d3d3d363d7300000000000000000000000000600082015250565b6107a3816105f6565b81146107ae57600080fd5b50565b6107ba81610632565b81146107c557600080fd5b5056fea264697066735822122068cfe87f5242e3087c0b46218f6f8e6b1a5960ed6b562cb03d27ec764881916064736f6c63430008060033";
Expand Down
24 changes: 12 additions & 12 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
// encoding
import encodeDeployProxy from "./encoding/encodeDeployProxy.ts";
import predictProxyAddress from "./encoding/predictProxyAddress.ts";
import encodeDeploySingleton from "./encoding/encodeDeploySingleton.ts";
import predictSingletonAddress from "./encoding/predictSingletonAddress.ts";
import encodeDeployProxy from "./encoding/encodeDeployProxy.js";
import predictProxyAddress from "./encoding/predictProxyAddress.js";
import encodeDeploySingleton from "./encoding/encodeDeploySingleton.js";
import predictSingletonAddress from "./encoding/predictSingletonAddress.js";

// tooling
import deployFactories from "./tooling/deployFactories.ts";
import deployMastercopy from "./tooling/deployMastercopy.ts";
import deployProxy from "./tooling/deployProxy.ts";
import verifyMastercopy from "./tooling/verifyMastercopy.ts";
import deployFactories from "./tooling/deployFactories.js";
import deployMastercopy from "./tooling/deployMastercopy.js";
import deployProxy from "./tooling/deployProxy.js";
import verifyMastercopy from "./tooling/verifyMastercopy.js";

// artifact
import readMastercopies from "./artifact/readMastercopies.ts";
import writeMastercopyFromBuild from "./artifact/writeMastercopyFromBuild.ts";
import writeMastercopyFromExplorer from "./artifact/writeMastercopyFromExplorer.ts";
import readMastercopies from "./artifact/readMastercopies.js";
import writeMastercopyFromBuild from "./artifact/writeMastercopyFromBuild.js";
import writeMastercopyFromExplorer from "./artifact/writeMastercopyFromExplorer.js";

export {
// encoding
Expand All @@ -34,6 +34,6 @@ export {
writeMastercopyFromExplorer,
};

import type { EIP1193Provider } from "./types.ts";
import type { EIP1193Provider } from "./types.js";

export type { EIP1193Provider };
12 changes: 6 additions & 6 deletions src/tooling/deployFactories.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,24 @@ import {
deployer as nickDeployer,
address as nickFactoryAddress,
signedDeployTransaction as nickSignedDeployTransaction,
} from "../factory/nickFactory.ts";
} from "../factory/nickFactory.js";

import {
funding as erc2470Funding,
deployer as erc2470Deployer,
address as erc2470FactoryAddress,
signedDeployTransaction as erc2470SignedDeployTransaction,
} from "../factory/erc2470Factory.ts";
} from "../factory/erc2470Factory.js";

import {
bytecode as proxyFactoryBytecode,
salt as proxyFactorySalt,
} from "../factory/proxyFactory.ts";
} from "../factory/proxyFactory.js";

import deployMastercopy from "./deployMastercopy.ts";
import waitForTransaction from "./waitForTransaction.ts";
import deployMastercopy from "./deployMastercopy.js";
import waitForTransaction from "./waitForTransaction.js";

import { EIP1193Provider } from "../types.ts";
import { EIP1193Provider } from "../types.js";

/**
* Deploys all factories within a specified network.
Expand Down
10 changes: 5 additions & 5 deletions src/tooling/deployMastercopy.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { address as erc2470FactoryAddress } from "../factory/erc2470Factory.ts";
import { address as erc2470FactoryAddress } from "../factory/erc2470Factory.js";

import encodeDeploySingleton from "../encoding/encodeDeploySingleton.ts";
import encodeDeploySingleton from "../encoding/encodeDeploySingleton.js";
import predictSingletonAddress, {
creationBytecode,
} from "../encoding/predictSingletonAddress.ts";
} from "../encoding/predictSingletonAddress.js";

import waitForTransaction from "./waitForTransaction.ts";
import waitForTransaction from "./waitForTransaction.js";

import { Create2Args, EIP1193Provider } from "../types.ts";
import { Create2Args, EIP1193Provider } from "../types.js";

/**
* Deploys a Mastercopy via a SingletonFactory
Expand Down
8 changes: 4 additions & 4 deletions src/tooling/deployProxy.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import populateDeployProxy from "../encoding/encodeDeployProxy.ts";
import predictProxyAddress from "../encoding/predictProxyAddress.ts";
import waitForTransaction from "./waitForTransaction.ts";
import populateDeployProxy from "../encoding/encodeDeployProxy.js";
import predictProxyAddress from "../encoding/predictProxyAddress.js";
import waitForTransaction from "./waitForTransaction.js";

import { EIP1193Provider } from "../types.ts";
import { EIP1193Provider } from "../types.js";

/**
* Deploys a Mod instance as a MinimalProxy via ZodiacModProxyFactory
Expand Down
4 changes: 2 additions & 2 deletions src/tooling/verifyMastercopy.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { MastercopyArtifact } from "../types.ts";
import { verifySourceCode } from "../artifact/internal/etherscan.ts";
import { MastercopyArtifact } from "../types.js";
import { verifySourceCode } from "../artifact/internal/etherscan.js";

/**
* Pauses the execution for a specified amount of time.
Expand Down
2 changes: 1 addition & 1 deletion src/tooling/waitForTransaction.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { EIP1193Provider } from "../types.ts";
import { EIP1193Provider } from "../types.js";

/**
* Waits for a transaction to be mined and returns the transaction receipt.
Expand Down
14 changes: 14 additions & 0 deletions tsconfig.cjs.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"extends": "./tsconfig",
"compilerOptions": {
"outDir": "dist/cjs",
"rootDir": "./src",
"module": "commonjs",
"moduleResolution": "node10",
"ignoreDeprecations": "6.0",
"allowImportingTsExtensions": false,
"declaration": false,
"noEmit": false
},
"include": ["src/**/*.ts"]
}
1 change: 0 additions & 1 deletion tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
{
"compilerOptions": {
"declaration": true,
"allowImportingTsExtensions": true,
"esModuleInterop": true,
"module": "preserve",
"moduleResolution": "bundler",
Expand Down
Loading