@silvana-one/mina-utils 1.0.24 → 1.0.26

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.
@@ -24,7 +24,7 @@ declare function getDeployer(): Mina.TestPublicKey | undefined;
24
24
  * @param deployersNumber the number of deployers to use for the network (only for local and lightnet networks)
25
25
  * @returns the Mina network instance
26
26
  */
27
- declare function initBlockchain(instance: blockchain, deployersNumber?: number, proofsEnabled?: boolean): Promise<MinaNetworkInstance>;
27
+ declare function initBlockchain(instance: blockchain, deployersNumber?: number, proofsEnabled?: boolean, customMinaNodeUrl?: string | undefined, customMinaArchiveNodeUrl?: string | undefined): Promise<MinaNetworkInstance>;
28
28
  /**
29
29
  * Fetches the account balance for a given public key
30
30
  * @param address the public key
@@ -30,7 +30,7 @@ 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) {
33
+ async function initBlockchain(instance, deployersNumber = 0, proofsEnabled = true, customMinaNodeUrl = undefined, customMinaArchiveNodeUrl = undefined) {
34
34
  /*
35
35
  if (instance === "mainnet") {
36
36
  throw new Error("Mainnet is not supported yet by zkApps");
@@ -67,9 +67,11 @@ async function initBlockchain(instance, deployersNumber = 0, proofsEnabled = tru
67
67
  const networkInstance = Mina.Network({
68
68
  mina: process.env.MINA_NODE_URL ??
69
69
  process.env.NEXT_PUBLIC_MINA_NODE_URL ??
70
+ customMinaNodeUrl ??
70
71
  network.mina,
71
72
  archive: process.env.MINA_ARCHIVE_NODE_URL ??
72
73
  process.env.NEXT_PUBLIC_MINA_ARCHIVE_NODE_URL ??
74
+ customMinaArchiveNodeUrl ??
73
75
  network.archive,
74
76
  lightnetAccountManager: network.accountManager,
75
77
  networkId: instance === "mainnet" ? "mainnet" : "testnet",
@@ -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,7 +1,7 @@
1
1
  {
2
2
  "name": "@silvana-one/mina-utils",
3
3
  "description": "Silvana Mina Utils",
4
- "version": "1.0.24",
4
+ "version": "1.0.26",
5
5
  "author": "DFST",
6
6
  "bugs": "https://github.com/SilvanaOne/silvana-lib/issues",
7
7
  "dependencies": {
@@ -10,12 +10,12 @@
10
10
  "devDependencies": {
11
11
  "@types/node": "^24.0.14",
12
12
  "esbuild": "^0.25.6",
13
- "o1js": "^2.7.0",
13
+ "o1js": "2.4.0",
14
14
  "ts-node": "^10.9.2",
15
15
  "typescript": "^5.8.3"
16
16
  },
17
17
  "engines": {
18
- "node": ">=20.0.0"
18
+ "node": ">=22.0.0"
19
19
  },
20
20
  "exports": {
21
21
  "types": "./dist/node/index.d.ts",
@@ -47,7 +47,7 @@
47
47
  "license": "Apache-2.0",
48
48
  "main": "dist/web/index.js",
49
49
  "peerDependencies": {
50
- "o1js": "^2.7.0"
50
+ "o1js": "2.4.0"
51
51
  },
52
52
  "publishConfig": {
53
53
  "access": "public"
@@ -7,11 +7,11 @@ import { rScalarPowProvable } from "./exp.js";
7
7
  // Example ZkProgram for commitment update
8
8
  export const CommitmentProgram = ZkProgram({
9
9
  name: "CommitmentUpdate",
10
- publicOutput: Fr.AlmostReduced.provable,
10
+ publicOutput: Fr.Canonical.provable,
11
11
  methods: {
12
12
  updateCommitment: {
13
13
  privateInputs: [
14
- Fr.AlmostReduced.provable, // oldTableCommitment
14
+ Fr.Canonical.provable, // oldTableCommitment
15
15
  Fr.AlmostReduced.provable, // oldStructDigest
16
16
  Fr.AlmostReduced.provable, // newStructDigest
17
17
  UInt32, // index
@@ -82,17 +82,17 @@ export function blsCommitment(element: CanonicalElement): Field {
82
82
  }
83
83
 
84
84
  // inner: digest one struct
85
- export function digestStruct(fields: CanonicalElement[]): AlmostReducedElement {
85
+ export function digestStruct(fields: CanonicalElement[]): CanonicalElement {
86
86
  let d: AlmostReducedElement = Fr.from(0n).assertAlmostReduced();
87
87
  for (const f of fields) {
88
88
  const prod = d.mul(S); // returns Unreduced
89
89
  d = prod.add(f).assertAlmostReduced(); // reduce for next iteration
90
90
  }
91
- return d;
91
+ return d.assertCanonical();
92
92
  }
93
93
 
94
94
  // outer: commit whole table (vector of digests)
95
- export function commit(table: AlmostReducedElement[]): AlmostReducedElement {
95
+ export function commit(table: CanonicalElement[]): CanonicalElement {
96
96
  let acc: AlmostReducedElement = Fr.from(0n).assertAlmostReduced();
97
97
  const r = getR(); // Get R once, not in every iteration
98
98
 
@@ -101,7 +101,7 @@ export function commit(table: AlmostReducedElement[]): AlmostReducedElement {
101
101
  const prod = acc.mul(r); // returns Unreduced
102
102
  acc = prod.add(table[i]).assertAlmostReduced(); // reduce for next iteration
103
103
  }
104
- return acc;
104
+ return acc.assertCanonical();
105
105
  }
106
106
 
107
107
  // constant‑time single‑field update using struct digest recalculation (non-provable version)
@@ -128,11 +128,11 @@ export function commit(table: AlmostReducedElement[]): AlmostReducedElement {
128
128
 
129
129
  // constant‑time single‑field update using struct digest recalculation (provable version)
130
130
  export function update(
131
- oldTableCommitment: AlmostReducedElement,
131
+ oldTableCommitment: CanonicalElement,
132
132
  oldStructDigest: AlmostReducedElement,
133
133
  newStructDigest: AlmostReducedElement,
134
134
  index: UInt32
135
- ): AlmostReducedElement {
135
+ ): CanonicalElement {
136
136
  // The table commitment formula in commit() now produces:
137
137
  // table[0]*R^0 + table[1]*R^1 + table[2]*R^2 + ... + table[i]*R^i
138
138
  // So position i has coefficient R^i
@@ -145,5 +145,5 @@ export function update(
145
145
  .sub(oldStructDigest)
146
146
  .assertAlmostReduced();
147
147
  const tableDelta = structDelta.mul(rPowI).assertAlmostReduced();
148
- return oldTableCommitment.add(tableDelta).assertAlmostReduced();
148
+ return oldTableCommitment.add(tableDelta).assertCanonical();
149
149
  }
package/src/networks.ts CHANGED
@@ -5,6 +5,7 @@ export {
5
5
  Mainnet,
6
6
  Devnet,
7
7
  Zeko,
8
+ ZekoAlphaNet,
8
9
  Lightnet,
9
10
  Local,
10
11
  };
@@ -12,7 +13,13 @@ export {
12
13
  /**
13
14
  * blockchain is the type for the chain ID.
14
15
  */
15
- type blockchain = "local" | "devnet" | "lightnet" | "mainnet" | "zeko";
16
+ type blockchain =
17
+ | "local"
18
+ | "devnet"
19
+ | "lightnet"
20
+ | "mainnet"
21
+ | "zeko"
22
+ | "zeko:alphanet";
16
23
 
17
24
  /**
18
25
  * 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.
@@ -90,15 +97,15 @@ const Zeko: MinaNetwork = {
90
97
  faucet: "https://zeko.io/faucet",
91
98
  };
92
99
 
93
- // const Zeko: MinaNetwork = {
94
- // mina: ["http://m1.zeko.io/graphql"],
95
- // archive: ["http://m1.zeko.io/graphql"],
96
- // explorerAccountUrl: "https://zekoscan.io/devnet/account/",
97
- // explorerTransactionUrl: "https://zekoscan.io/devnet/tx/",
98
- // chainId: "zeko",
99
- // name: "Zeko",
100
- // faucet: "https://zeko.io/faucet",
101
- // };
100
+ const ZekoAlphaNet: MinaNetwork = {
101
+ mina: ["http://m1.zeko.io/graphql"],
102
+ archive: ["http://m1.zeko.io/graphql"],
103
+ explorerAccountUrl: "",
104
+ explorerTransactionUrl: "",
105
+ chainId: "zeko:alphanet",
106
+ name: "Zeko AlphaNet",
107
+ faucet: "",
108
+ };
102
109
 
103
110
  const Lightnet: MinaNetwork = {
104
111
  mina: ["http://localhost:8080/graphql"],
package/src/utils/mina.ts CHANGED
@@ -70,7 +70,9 @@ function getDeployer(): Mina.TestPublicKey | undefined {
70
70
  async function initBlockchain(
71
71
  instance: blockchain,
72
72
  deployersNumber: number = 0,
73
- proofsEnabled: boolean = true
73
+ proofsEnabled: boolean = true,
74
+ customMinaNodeUrl: string | undefined = undefined,
75
+ customMinaArchiveNodeUrl: string | undefined = undefined
74
76
  ): Promise<MinaNetworkInstance> {
75
77
  /*
76
78
  if (instance === "mainnet") {
@@ -113,10 +115,12 @@ async function initBlockchain(
113
115
  mina:
114
116
  process.env.MINA_NODE_URL ??
115
117
  process.env.NEXT_PUBLIC_MINA_NODE_URL ??
118
+ customMinaNodeUrl ??
116
119
  network.mina,
117
120
  archive:
118
121
  process.env.MINA_ARCHIVE_NODE_URL ??
119
122
  process.env.NEXT_PUBLIC_MINA_ARCHIVE_NODE_URL ??
123
+ customMinaArchiveNodeUrl ??
120
124
  network.archive,
121
125
  lightnetAccountManager: network.accountManager,
122
126
  networkId: instance === "mainnet" ? "mainnet" : "testnet",