omnipin 1.4.2 → 1.4.3
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/README.md +7 -7
- package/dist/cli.js +16 -14
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -30,13 +30,13 @@ Read the [docs](https://omnipin.eth.link).
|
|
|
30
30
|
|
|
31
31
|
### "Most flexibility, lowest trust assumptions"
|
|
32
32
|
|
|
33
|
-
Walletbeat uses Omnipin to deploy to IPFS. It was selected after [contrasting it against many other web3 deployment options](https://github.com/walletbeat/walletbeat/blob/beta/governance/decisions/2025-walletbeat-hosting.md), and Omnipin stood out as the one with the most flexibility, user control, lowest trust assumptions, lowest-dependency, and not locked into any specific provider.
|
|
34
|
-
|
|
35
|
-
Omnipin makes it easy to automate deployment to multiple IPFS providers for redundancy, gate deployment success by actual replication and availability on popular IPFS gateways for reliability, and to update the onchain ENS records to point to the deployed IPFS CID to boot (without granting CI any authority beyond ENS record updates). Runs great with Helios too.
|
|
36
|
-
|
|
37
|
-
In other words, Omnipin is the missing deployment tool that makes it feasible to adopt the cypherpunk standards and technologies that web3 frontends should strive to adopt. No more excuses now.
|
|
38
|
-
|
|
39
|
-
[polymutex.eth](https://farcaster.xyz/polymutex.eth), core dev of WalletBeat
|
|
33
|
+
> Walletbeat uses Omnipin to deploy to IPFS. It was selected after [contrasting it against many other web3 deployment options](https://github.com/walletbeat/walletbeat/blob/beta/governance/decisions/2025-walletbeat-hosting.md), and Omnipin stood out as the one with the most flexibility, user control, lowest trust assumptions, lowest-dependency, and not locked into any specific provider.
|
|
34
|
+
>
|
|
35
|
+
> Omnipin makes it easy to automate deployment to multiple IPFS providers for redundancy, gate deployment success by actual replication and availability on popular IPFS gateways for reliability, and to update the onchain ENS records to point to the deployed IPFS CID to boot (without granting CI any authority beyond ENS record updates). Runs great with Helios too.
|
|
36
|
+
>
|
|
37
|
+
> In other words, Omnipin is the missing deployment tool that makes it feasible to adopt the cypherpunk standards and technologies that web3 frontends should strive to adopt. No more excuses now.
|
|
38
|
+
>
|
|
39
|
+
> — [polymutex.eth](https://farcaster.xyz/polymutex.eth), core dev of WalletBeat
|
|
40
40
|
|
|
41
41
|
[github-actions]: https://github.com/omnipin/omnipin/actions
|
|
42
42
|
[gh-actions-img]: https://img.shields.io/github/actions/workflow/status/omnipin/omnipin/ci.yml?branch=main&style=for-the-badge&logo=github&label=&color=%232B4AD4
|
package/dist/cli.js
CHANGED
|
@@ -27728,7 +27728,7 @@ var waitForTransaction = async (provider, hash2) => {
|
|
|
27728
27728
|
};
|
|
27729
27729
|
var SET_CONTENT_HASH_SIG = getSelector2("setContenthash(bytes32,bytes)");
|
|
27730
27730
|
var ENS_DEPLOYER_ROLE = keccak256(fromString2("ENS_DEPLOYER"));
|
|
27731
|
-
var
|
|
27731
|
+
var execTransactionWithRoleAbi = {
|
|
27732
27732
|
inputs: [
|
|
27733
27733
|
{ internalType: "address", name: "to", type: "address" },
|
|
27734
27734
|
{ internalType: "uint256", name: "value", type: "uint256" },
|
|
@@ -27742,7 +27742,7 @@ var execTransactonWithRoleAbi = {
|
|
|
27742
27742
|
stateMutability: "nonpayable",
|
|
27743
27743
|
type: "function"
|
|
27744
27744
|
};
|
|
27745
|
-
var
|
|
27745
|
+
var execTransactionWithRole = async ({
|
|
27746
27746
|
provider,
|
|
27747
27747
|
resolverAddress,
|
|
27748
27748
|
data: txData,
|
|
@@ -27752,7 +27752,7 @@ var execTransactonWithRole = async ({
|
|
|
27752
27752
|
chainId,
|
|
27753
27753
|
explorerUrl
|
|
27754
27754
|
}) => {
|
|
27755
|
-
const data = encodeData(
|
|
27755
|
+
const data = encodeData(execTransactionWithRoleAbi, [
|
|
27756
27756
|
resolverAddress,
|
|
27757
27757
|
0n,
|
|
27758
27758
|
txData,
|
|
@@ -27762,7 +27762,7 @@ var execTransactonWithRole = async ({
|
|
|
27762
27762
|
]);
|
|
27763
27763
|
const success = await simulateTransaction({
|
|
27764
27764
|
provider,
|
|
27765
|
-
abi:
|
|
27765
|
+
abi: execTransactionWithRoleAbi,
|
|
27766
27766
|
to: rolesModAddress,
|
|
27767
27767
|
data,
|
|
27768
27768
|
from: from22
|
|
@@ -27793,13 +27793,14 @@ var ensAction = async ({
|
|
|
27793
27793
|
const {
|
|
27794
27794
|
chain: chainName = "mainnet",
|
|
27795
27795
|
safe: safeAddress,
|
|
27796
|
-
rpcUrl,
|
|
27796
|
+
"rpc-url": rpcUrl,
|
|
27797
27797
|
"resolver-address": resolverAddress,
|
|
27798
|
-
"roles-mod-address": rolesModAddress
|
|
27798
|
+
"roles-mod-address": rolesModAddress,
|
|
27799
|
+
"dry-run": dryRun
|
|
27799
27800
|
} = options;
|
|
27800
27801
|
assertCID(cid);
|
|
27801
27802
|
if (!domain)
|
|
27802
|
-
throw new MissingCLIArgsError([domain]);
|
|
27803
|
+
throw new MissingCLIArgsError(["domain"]);
|
|
27803
27804
|
const chain = chains[chainName];
|
|
27804
27805
|
const transport = fromHttp(rpcUrl ?? chainToRpcUrl(chainName));
|
|
27805
27806
|
const provider = from18(transport);
|
|
@@ -27859,9 +27860,12 @@ var ensAction = async ({
|
|
|
27859
27860
|
data,
|
|
27860
27861
|
value: 0n
|
|
27861
27862
|
};
|
|
27862
|
-
if (rolesModAddress) {
|
|
27863
|
+
if (rolesModAddress && !dryRun) {
|
|
27864
|
+
if (!safeAddress) {
|
|
27865
|
+
throw new MissingCLIArgsError(["safe"]);
|
|
27866
|
+
}
|
|
27863
27867
|
logger.info(`Using Zodiac Roles module`);
|
|
27864
|
-
await
|
|
27868
|
+
await execTransactionWithRole({
|
|
27865
27869
|
provider,
|
|
27866
27870
|
data,
|
|
27867
27871
|
resolverAddress: to2,
|
|
@@ -27885,7 +27889,7 @@ var ensAction = async ({
|
|
|
27885
27889
|
chainId: chain.id,
|
|
27886
27890
|
privateKey: pk
|
|
27887
27891
|
});
|
|
27888
|
-
if (!
|
|
27892
|
+
if (!dryRun) {
|
|
27889
27893
|
logger.info("Proposing a Safe transaction");
|
|
27890
27894
|
try {
|
|
27891
27895
|
await proposeTransaction({
|
|
@@ -28080,14 +28084,12 @@ var deployAction = async ({
|
|
|
28080
28084
|
strict,
|
|
28081
28085
|
ens,
|
|
28082
28086
|
chain = "mainnet",
|
|
28083
|
-
safe,
|
|
28084
28087
|
name: customName,
|
|
28085
28088
|
dist,
|
|
28086
28089
|
verbose = false,
|
|
28087
28090
|
providers: providersList,
|
|
28088
|
-
resolverAddress,
|
|
28089
28091
|
dnslink,
|
|
28090
|
-
|
|
28092
|
+
...opts
|
|
28091
28093
|
} = options;
|
|
28092
28094
|
const apiTokens = parseTokensFromEnv();
|
|
28093
28095
|
const providerNames = providersList ? providersList.split(",") : tokensToProviderNames(apiTokens.keys());
|
|
@@ -28218,7 +28220,7 @@ ${isTTY ? styleText4("bold", "Providers") : "Providers"}: ${isTTY ? styleText4("
|
|
|
28218
28220
|
await ensAction({
|
|
28219
28221
|
cid,
|
|
28220
28222
|
domain: ens,
|
|
28221
|
-
options: {
|
|
28223
|
+
options: { ...opts, chain, verbose }
|
|
28222
28224
|
});
|
|
28223
28225
|
}
|
|
28224
28226
|
if (dnslink) {
|