@silvana-one/mina-utils 1.0.29 → 1.0.31

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,6 +1,6 @@
1
1
  export { initBlockchain, accountBalance, accountBalanceMina, currentNetwork, getNetworkIdHash, getCurrentNetwork, getDeployer, };
2
2
  import { Mina, PrivateKey, UInt64, fetchAccount, Lightnet, CircuitString, } from "o1js";
3
- import { networks, Local } from "../networks.js";
3
+ import { networks, Local, getCanonicalBlockchain, } from "../networks.js";
4
4
  let currentNetwork = undefined;
5
5
  function getNetworkIdHash() {
6
6
  if (currentNetwork === undefined) {
@@ -30,12 +30,8 @@ function getDeployer() {
30
30
  * @param deployersNumber the number of deployers to use for the network (only for local and lightnet networks)
31
31
  * @returns the Mina network instance
32
32
  */
33
- async function initBlockchain(instance, deployersNumber = 0, proofsEnabled = true, customMinaNodeUrl = undefined, customMinaArchiveNodeUrl = undefined) {
34
- /*
35
- if (instance === "mainnet") {
36
- throw new Error("Mainnet is not supported yet by zkApps");
37
- }
38
- */
33
+ async function initBlockchain(chain, deployersNumber = 0, proofsEnabled = true, customMinaNodeUrl = undefined, customMinaArchiveNodeUrl = undefined) {
34
+ const instance = getCanonicalBlockchain(chain);
39
35
  if (currentNetwork !== undefined) {
40
36
  if (currentNetwork?.network.chainId === instance) {
41
37
  return currentNetwork;
@@ -46,7 +42,7 @@ async function initBlockchain(instance, deployersNumber = 0, proofsEnabled = tru
46
42
  }
47
43
  const networkIdHash = CircuitString.fromString(instance).hash();
48
44
  // await used for compatibility with future versions of o1js
49
- if (instance === "local") {
45
+ if (instance === "mina:local") {
50
46
  const local = await Mina.LocalBlockchain({
51
47
  proofsEnabled,
52
48
  });
@@ -74,13 +70,13 @@ async function initBlockchain(instance, deployersNumber = 0, proofsEnabled = tru
74
70
  customMinaArchiveNodeUrl ??
75
71
  network.archive,
76
72
  lightnetAccountManager: network.accountManager,
77
- networkId: instance === "mainnet" ? "mainnet" : "testnet",
78
- bypassTransactionLimits: instance === "zeko",
73
+ networkId: instance === "mina:mainnet" ? "mainnet" : "testnet",
74
+ bypassTransactionLimits: instance === "zeko:testnet" || instance === "zeko:alphanet",
79
75
  });
80
76
  Mina.setActiveInstance(networkInstance);
81
77
  const keys = [];
82
78
  if (deployersNumber > 0) {
83
- if (instance === "lightnet") {
79
+ if (instance === "mina:lightnet") {
84
80
  for (let i = 0; i < deployersNumber; i++) {
85
81
  const keyPair = await Lightnet.acquireKeyPair();
86
82
  const key = Mina.TestPublicKey(keyPair.privateKey);
@@ -1 +1 @@
1
- {"version":3,"file":"mina.js","sourceRoot":"","sources":["../../../src/utils/mina.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mina.js","sourceRoot":"","sources":["../../../src/utils/mina.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "@silvana-one/mina-utils",
3
3
  "description": "Silvana Mina Utils",
4
- "version": "1.0.29",
4
+ "version": "1.0.31",
5
5
  "author": "DFST",
6
6
  "bugs": "https://github.com/SilvanaOne/silvana-lib/issues",
7
7
  "dependencies": {
8
8
  "tslib": "^2.8.1"
9
9
  },
10
10
  "devDependencies": {
11
- "@types/node": "^24.0.14",
12
- "esbuild": "^0.25.6",
11
+ "@types/node": "^24.3.0",
12
+ "esbuild": "^0.25.9",
13
13
  "o1js": "2.4.0",
14
14
  "ts-node": "^10.9.2",
15
- "typescript": "^5.8.3"
15
+ "typescript": "^5.9.2"
16
16
  },
17
17
  "engines": {
18
18
  "node": ">=22.0.0"
package/src/networks.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export {
2
+ CanonicalBlockchain,
2
3
  blockchain,
4
+ getCanonicalBlockchain,
3
5
  MinaNetwork,
4
6
  networks,
5
7
  Mainnet,
@@ -10,16 +12,41 @@ export {
10
12
  Local,
11
13
  };
12
14
 
15
+ type CanonicalBlockchain =
16
+ | "mina:local"
17
+ | "mina:lightnet"
18
+ | "mina:devnet"
19
+ | "mina:mainnet"
20
+ | "zeko:testnet"
21
+ | "zeko:alphanet";
22
+
13
23
  /**
14
24
  * blockchain is the type for the chain ID.
15
25
  */
16
26
  type blockchain =
27
+ | CanonicalBlockchain
17
28
  | "local"
18
29
  | "devnet"
19
30
  | "lightnet"
20
31
  | "mainnet"
21
- | "zeko"
22
- | "zeko:alphanet";
32
+ | "zeko";
33
+
34
+ function getCanonicalBlockchain(chain: blockchain): CanonicalBlockchain {
35
+ switch (chain) {
36
+ case "local":
37
+ return "mina:local";
38
+ case "devnet":
39
+ return "mina:devnet";
40
+ case "lightnet":
41
+ return "mina:lightnet";
42
+ case "mainnet":
43
+ return "mina:mainnet";
44
+ case "zeko":
45
+ return "zeko:testnet";
46
+ default:
47
+ return chain;
48
+ }
49
+ }
23
50
 
24
51
  /**
25
52
  * MinaNetwork is the data structure for a Mina network, keeping track of the Mina and archive endpoints, chain ID, name, account manager, explorer account URL, explorer transaction URL, and faucet.
@@ -32,7 +59,7 @@ interface MinaNetwork {
32
59
  archive: string[];
33
60
 
34
61
  /** The chain ID */
35
- chainId: blockchain;
62
+ chainId: CanonicalBlockchain;
36
63
 
37
64
  /** The name of the network (optional) */
38
65
  name?: string;
@@ -61,14 +88,14 @@ const Mainnet: MinaNetwork = {
61
88
  ],
62
89
  explorerAccountUrl: "https://minascan.io/mainnet/account/",
63
90
  explorerTransactionUrl: "https://minascan.io/mainnet/tx/",
64
- chainId: "mainnet",
91
+ chainId: "mina:mainnet",
65
92
  name: "Mainnet",
66
93
  };
67
94
 
68
95
  const Local: MinaNetwork = {
69
96
  mina: [],
70
97
  archive: [],
71
- chainId: "local",
98
+ chainId: "mina:local",
72
99
  };
73
100
 
74
101
  const Devnet: MinaNetwork = {
@@ -82,7 +109,7 @@ const Devnet: MinaNetwork = {
82
109
  ],
83
110
  explorerAccountUrl: "https://minascan.io/devnet/account/",
84
111
  explorerTransactionUrl: "https://minascan.io/devnet/tx/",
85
- chainId: "devnet",
112
+ chainId: "mina:devnet",
86
113
  name: "Devnet",
87
114
  faucet: "https://faucet.minaprotocol.com",
88
115
  };
@@ -92,7 +119,7 @@ const Zeko: MinaNetwork = {
92
119
  archive: ["https://devnet.zeko.io/graphql"],
93
120
  explorerAccountUrl: "https://zekoscan.io/devnet/account/",
94
121
  explorerTransactionUrl: "https://zekoscan.io/devnet/tx/",
95
- chainId: "zeko",
122
+ chainId: "zeko:testnet",
96
123
  name: "Zeko",
97
124
  faucet: "https://zeko.io/faucet",
98
125
  };
@@ -111,7 +138,7 @@ const Lightnet: MinaNetwork = {
111
138
  mina: ["http://localhost:8080/graphql"],
112
139
  archive: ["http://localhost:8282"],
113
140
  accountManager: "http://localhost:8181",
114
- chainId: "lightnet",
141
+ chainId: "mina:lightnet",
115
142
  name: "Lightnet",
116
143
  };
117
144
 
package/src/utils/mina.ts CHANGED
@@ -19,7 +19,13 @@ import {
19
19
  Lightnet,
20
20
  CircuitString,
21
21
  } from "o1js";
22
- import { networks, blockchain, MinaNetwork, Local } from "../networks.js";
22
+ import {
23
+ networks,
24
+ blockchain,
25
+ MinaNetwork,
26
+ Local,
27
+ getCanonicalBlockchain,
28
+ } from "../networks.js";
23
29
 
24
30
  /**
25
31
  * MinaNetworkInstance is the data structure for a Mina network instance, keeping track of the keys, network, and network ID hash.
@@ -68,17 +74,14 @@ function getDeployer(): Mina.TestPublicKey | undefined {
68
74
  * @returns the Mina network instance
69
75
  */
70
76
  async function initBlockchain(
71
- instance: blockchain,
77
+ chain: blockchain,
72
78
  deployersNumber: number = 0,
73
79
  proofsEnabled: boolean = true,
74
80
  customMinaNodeUrl: string | undefined = undefined,
75
81
  customMinaArchiveNodeUrl: string | undefined = undefined
76
82
  ): Promise<MinaNetworkInstance> {
77
- /*
78
- if (instance === "mainnet") {
79
- throw new Error("Mainnet is not supported yet by zkApps");
80
- }
81
- */
83
+ const instance = getCanonicalBlockchain(chain);
84
+
82
85
  if (currentNetwork !== undefined) {
83
86
  if (currentNetwork?.network.chainId === instance) {
84
87
  return currentNetwork;
@@ -91,7 +94,7 @@ async function initBlockchain(
91
94
  const networkIdHash = CircuitString.fromString(instance).hash();
92
95
 
93
96
  // await used for compatibility with future versions of o1js
94
- if (instance === "local") {
97
+ if (instance === "mina:local") {
95
98
  const local = await Mina.LocalBlockchain({
96
99
  proofsEnabled,
97
100
  });
@@ -123,15 +126,16 @@ async function initBlockchain(
123
126
  customMinaArchiveNodeUrl ??
124
127
  network.archive,
125
128
  lightnetAccountManager: network.accountManager,
126
- networkId: instance === "mainnet" ? "mainnet" : "testnet",
127
- bypassTransactionLimits: instance === "zeko",
129
+ networkId: instance === "mina:mainnet" ? "mainnet" : "testnet",
130
+ bypassTransactionLimits:
131
+ instance === "zeko:testnet" || instance === "zeko:alphanet",
128
132
  });
129
133
  Mina.setActiveInstance(networkInstance);
130
134
 
131
135
  const keys: Mina.TestPublicKey[] = [];
132
136
 
133
137
  if (deployersNumber > 0) {
134
- if (instance === "lightnet") {
138
+ if (instance === "mina:lightnet") {
135
139
  for (let i = 0; i < deployersNumber; i++) {
136
140
  const keyPair = await Lightnet.acquireKeyPair();
137
141
  const key = Mina.TestPublicKey(keyPair.privateKey);