@fatsolutions/privacy-pools-core-starknet-sdk 0.0.41 → 0.0.42
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/abis/EntryPoint.abi.d.ts +23 -0
- package/dist/abis/EntryPoint.abi.js +32 -0
- package/dist/abis/EntryPoint.abi.js.map +1 -1
- package/dist/abis/PrivacyPool.abi.d.ts +66 -5
- package/dist/abis/PrivacyPool.abi.js +87 -5
- package/dist/abis/PrivacyPool.abi.js.map +1 -1
- package/dist/account.service.d.ts +15 -0
- package/dist/account.service.js +27 -0
- package/dist/account.service.js.map +1 -0
- package/dist/auditor.d.ts +31 -0
- package/dist/auditor.js +148 -0
- package/dist/auditor.js.map +1 -0
- package/dist/contracts/contracts.service.js +5 -3
- package/dist/contracts/contracts.service.js.map +1 -1
- package/dist/data.service.d.ts +15 -2
- package/dist/data.service.js +41 -2
- package/dist/data.service.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/types/entrypoint.d.ts +2 -0
- package/dist/types/entrypoint.js +26 -11
- package/dist/types/entrypoint.js.map +1 -1
- package/dist/utils.d.ts +4 -1
- package/dist/utils.js +10 -1
- package/dist/utils.js.map +1 -1
- package/package.json +7 -3
- package/src/abis/EntryPoint.abi.ts +925 -893
- package/src/abis/PrivacyPool.abi.ts +607 -525
- package/src/account.service.ts +42 -0
- package/src/auditor.ts +223 -0
- package/src/contracts/contracts.service.ts +5 -3
- package/src/data.service.ts +79 -2
- package/src/index.ts +5 -0
- package/src/types/entrypoint.ts +46 -13
- package/src/utils.ts +13 -1
package/dist/auditor.js
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { xchacha20poly1305 } from "@noble/ciphers/chacha.js";
|
|
2
|
+
import { hkdf } from "@noble/hashes/hkdf.js";
|
|
3
|
+
import { sha3_256 as sha256 } from "@noble/hashes/sha3.js";
|
|
4
|
+
import { bytesToNumberBE, numberToBytesBE } from "@noble/ciphers/utils.js";
|
|
5
|
+
import { getCommitment } from "@0xbow/privacy-pools-core-sdk";
|
|
6
|
+
import { poseidonHashMany } from "@scure/starknet";
|
|
7
|
+
import { base64 } from "@scure/base";
|
|
8
|
+
import { mnemonicToEntropy } from "@scure/bip39";
|
|
9
|
+
import { wordlist } from '@scure/bip39/wordlists/english';
|
|
10
|
+
//TODO: The first time you will need to generate a viewing key is in the first withdraw
|
|
11
|
+
// of a deposited note. At that point you allready have a label. I suggest for the viewKey to be derivable
|
|
12
|
+
// from the account secret + deposit label. There is no need to store another secret for each deposit.
|
|
13
|
+
// viewKey =~ Hash(AccountSecret, Label);
|
|
14
|
+
export function deriveKey(secret, label) {
|
|
15
|
+
const info = new TextEncoder().encode("xchacha-key");
|
|
16
|
+
const salt = new TextEncoder().encode(String(label));
|
|
17
|
+
const viewKey = hkdf(sha256, secret, salt, info, 32);
|
|
18
|
+
return viewKey;
|
|
19
|
+
}
|
|
20
|
+
export function deriveKeyFromMnemonic(mnemonic, label) {
|
|
21
|
+
const secret = mnemonicToEntropy(mnemonic, wordlist);
|
|
22
|
+
return deriveKey(secret, label);
|
|
23
|
+
}
|
|
24
|
+
export function encrypt(plaintext, viewKey) {
|
|
25
|
+
const nonce = crypto.getRandomValues(new Uint8Array(24));
|
|
26
|
+
const chacha = xchacha20poly1305(viewKey, nonce);
|
|
27
|
+
const ciphertext = chacha.encrypt(plaintext);
|
|
28
|
+
// Prepend the nonce
|
|
29
|
+
const output = new Uint8Array(24 + ciphertext.length);
|
|
30
|
+
output.set(nonce, 0);
|
|
31
|
+
output.set(ciphertext, 24);
|
|
32
|
+
return output;
|
|
33
|
+
}
|
|
34
|
+
export function decrypt(input, viewKey) {
|
|
35
|
+
const nonce = input.slice(0, 24);
|
|
36
|
+
const chacha = xchacha20poly1305(viewKey, nonce);
|
|
37
|
+
const ciphertext = input.slice(24);
|
|
38
|
+
//TODO: What happens if AE fails?
|
|
39
|
+
const decrypted = chacha.decrypt(ciphertext);
|
|
40
|
+
return decrypted;
|
|
41
|
+
}
|
|
42
|
+
export function packAuditorData({ label: declaredLabel, value: declaredValue, nullifier: declaredNullifier, secret: declaredSecret }) {
|
|
43
|
+
//TODO: Add assertions about lenght of bigint
|
|
44
|
+
const output = new Uint8Array(128);
|
|
45
|
+
output.set(numberToBytesBE(declaredLabel, 32), 0);
|
|
46
|
+
output.set(numberToBytesBE(declaredValue, 32), 32);
|
|
47
|
+
output.set(numberToBytesBE(declaredNullifier, 32), 64);
|
|
48
|
+
output.set(numberToBytesBE(declaredSecret, 32), 96);
|
|
49
|
+
return output;
|
|
50
|
+
}
|
|
51
|
+
export function unpackAuditorData(packedData) {
|
|
52
|
+
const declaredLabel = bytesToNumberBE(packedData.slice(0, 32));
|
|
53
|
+
const declaredValue = bytesToNumberBE(packedData.slice(32, 64));
|
|
54
|
+
const declaredNullifier = bytesToNumberBE(packedData.slice(64, 96));
|
|
55
|
+
const declaredSecret = bytesToNumberBE(packedData.slice(96, 128));
|
|
56
|
+
return { declaredLabel, declaredValue, declaredNullifier, declaredSecret };
|
|
57
|
+
}
|
|
58
|
+
export function reconstructAccountCommitment(event, viewKey) {
|
|
59
|
+
const { ciphertext, blockNumber, transactionHash, prevNullifierHash } = event;
|
|
60
|
+
const auditorData = decrypt(base64.decode(ciphertext), viewKey);
|
|
61
|
+
const { declaredLabel, declaredValue, declaredNullifier, declaredSecret } = unpackAuditorData(auditorData);
|
|
62
|
+
const { hash, nullifierHash, preimage: { value: _value, label, precommitment: _precommitment } } = getCommitment(declaredValue, declaredLabel, declaredNullifier, declaredSecret);
|
|
63
|
+
if (nullifierHash != prevNullifierHash) {
|
|
64
|
+
throw new Error("Inconsistency in emitted nullifier hash");
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
hash,
|
|
68
|
+
value: declaredValue,
|
|
69
|
+
label: label,
|
|
70
|
+
nullifier: declaredNullifier,
|
|
71
|
+
secret: declaredSecret,
|
|
72
|
+
blockNumber,
|
|
73
|
+
txHash: transactionHash,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
export function computeTag(viewKey, withdraw_number) {
|
|
77
|
+
const viewKeyBigInt = bytesToNumberBE(viewKey);
|
|
78
|
+
const tag = poseidonHashMany([viewKeyBigInt, BigInt(withdraw_number)]);
|
|
79
|
+
return tag;
|
|
80
|
+
}
|
|
81
|
+
;
|
|
82
|
+
async function fetchAuditEventsForViewKey(viewKey, serviceData, pool) {
|
|
83
|
+
let out = [];
|
|
84
|
+
let withdraw_number = 0;
|
|
85
|
+
while (true) {
|
|
86
|
+
let tag = computeTag(viewKey, withdraw_number);
|
|
87
|
+
let events = await serviceData.getAuditEventForTag(tag, pool);
|
|
88
|
+
if (!events) {
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
;
|
|
92
|
+
//It should be only ONE event with this tag. But it is not eforced. A troll could make a withdraw with
|
|
93
|
+
//the tag of a previous withraw from another label.
|
|
94
|
+
events.forEach(event => out.push([event, withdraw_number]));
|
|
95
|
+
withdraw_number++;
|
|
96
|
+
}
|
|
97
|
+
return out;
|
|
98
|
+
}
|
|
99
|
+
export async function constructSequence(viewKey, serviceData, pool) {
|
|
100
|
+
const commitments = [];
|
|
101
|
+
const events = await fetchAuditEventsForViewKey(viewKey, serviceData, pool);
|
|
102
|
+
const events_for_index = events.filter(([_, b]) => b === 0);
|
|
103
|
+
if (events_for_index.length === 0) {
|
|
104
|
+
throw new Error("No withdraws for this key");
|
|
105
|
+
}
|
|
106
|
+
let declaredCommitment;
|
|
107
|
+
for (const [event, _withdraw_number] of events_for_index) {
|
|
108
|
+
try {
|
|
109
|
+
declaredCommitment = reconstructAccountCommitment(event, viewKey);
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
//What should we do here?
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
if (!declaredCommitment) {
|
|
116
|
+
throw new Error("No event could be decrypted");
|
|
117
|
+
}
|
|
118
|
+
let initialLabel = declaredCommitment.label;
|
|
119
|
+
let deposit = await serviceData.getDeposits(pool, pool.deploymentBlock, initialLabel);
|
|
120
|
+
if (deposit.length != 1) {
|
|
121
|
+
throw new Error("No deposit found for this label");
|
|
122
|
+
}
|
|
123
|
+
let initialCommitment = deposit[0].commitment;
|
|
124
|
+
if (initialCommitment != declaredCommitment.hash) {
|
|
125
|
+
throw new Error("mismatch");
|
|
126
|
+
}
|
|
127
|
+
commitments.push(declaredCommitment);
|
|
128
|
+
for (let i = 1; i < events.length; i++) {
|
|
129
|
+
let events_for_index = events.filter(([_, b]) => b === i);
|
|
130
|
+
for (const [event, _withdraw_number] of events_for_index) {
|
|
131
|
+
try {
|
|
132
|
+
declaredCommitment = reconstructAccountCommitment(event, viewKey);
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
//What should we do here?
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (initialLabel != declaredCommitment.label) {
|
|
139
|
+
throw new Error("mismatch");
|
|
140
|
+
}
|
|
141
|
+
if (commitments[i - 1].hash != declaredCommitment.hash) {
|
|
142
|
+
throw new Error("mismatch");
|
|
143
|
+
}
|
|
144
|
+
commitments.push(declaredCommitment);
|
|
145
|
+
}
|
|
146
|
+
return commitments;
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=auditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auditor.js","sourceRoot":"","sources":["../src/auditor.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { ERC20ABI } from "../abis/ERC20.abi.js";
|
|
|
4
4
|
import { PrivacyPoolABI } from "../abis/PrivacyPool.abi.js";
|
|
5
5
|
import { ETH_ADDRESS } from "../constants.js";
|
|
6
6
|
import { SNContractError, SNPoolError, StarknetSDKError } from "../errors/index.js";
|
|
7
|
-
import { castBigInt, toAddress } from "../utils.js";
|
|
7
|
+
import { castBigInt, toAddress, toCairoOption } from "../utils.js";
|
|
8
8
|
import { executeIntent, simulateIntent } from "./transactionHandler.js";
|
|
9
9
|
/**
|
|
10
10
|
* Execution modes for contract interactions.
|
|
@@ -103,12 +103,14 @@ export class SNContractInteractionsService {
|
|
|
103
103
|
return _intentOptionWrapper(call, options && { ...options, account: this.providerOrAccount });
|
|
104
104
|
}
|
|
105
105
|
async withdraw(withdrawal, withdrawalProofGaraga, scope, options) {
|
|
106
|
+
const _withdrawal = { ...withdrawal, auditorData: toCairoOption(withdrawal.auditorData) };
|
|
106
107
|
const { poolAddress } = await this.getScopeData(scope);
|
|
107
|
-
const call = this.pool(poolAddress).populate("withdraw", [
|
|
108
|
+
const call = this.pool(poolAddress).populate("withdraw", [_withdrawal, { fullProof: withdrawalProofGaraga }]);
|
|
108
109
|
return _intentOptionWrapper(call, options && { ...options, account: this.providerOrAccount });
|
|
109
110
|
}
|
|
110
111
|
relay(withdrawal, withdrawalProofGaraga, scope, options) {
|
|
111
|
-
const
|
|
112
|
+
const _withdrawal = { ...withdrawal, auditorData: toCairoOption(withdrawal.auditorData) };
|
|
113
|
+
const call = this.entrypoint.populate("relay", [_withdrawal, scope, { fullProof: withdrawalProofGaraga }]);
|
|
112
114
|
return _intentOptionWrapper(call, options && { ...options, account: this.providerOrAccount });
|
|
113
115
|
}
|
|
114
116
|
ragequit(ragequitProofGaraga, privacyPoolAddress, options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.service.js","sourceRoot":"","sources":["../../src/contracts/contracts.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,QAAQ,EAA0B,GAAG,EAA6F,MAAM,UAAU,CAAC;AAE9K,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGpF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"contracts.service.js","sourceRoot":"","sources":["../../src/contracts/contracts.service.ts"],"names":[],"mappings":"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"}
|
package/dist/data.service.d.ts
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { DepositEvent, PoolInfo, RagequitEvent, WithdrawalEvent } from "@0xbow/privacy-pools-core-sdk";
|
|
2
|
+
import { AuditEvent } from "./auditor.js";
|
|
2
3
|
import { EmittedEvent, RpcProvider } from "starknet";
|
|
3
4
|
export declare const DEPOSIT_EVENT_SELECTOR: string;
|
|
4
5
|
export declare const WITHDRAWAL_EVENT_SELECTOR: string;
|
|
5
6
|
export declare const RAGEQUIT_EVENT_SELECTOR: string;
|
|
7
|
+
export declare const AUDIT_EVENT_SELECTOR: string;
|
|
6
8
|
export declare const DEPOSIT_EVENT_ABI_NAME = "privacy_pools::interfaces::IPool::Deposited";
|
|
7
9
|
export declare const WITHDRAWAL_EVENT_ABI_NAME = "privacy_pools::interfaces::IPool::Withdrawn";
|
|
8
10
|
export declare const RAGEQUIT_EVENT_ABI_NAME = "privacy_pools::interfaces::IPool::RageQuit";
|
|
11
|
+
export declare const AUDIT_EVENT_ABI_NAME = "privacy_pools::interfaces::IPool::AuditEvent";
|
|
9
12
|
export declare const AbiEventName: {
|
|
10
13
|
readonly Deposit: "privacy_pools::interfaces::IPool::Deposited";
|
|
11
14
|
readonly Withdraw: "privacy_pools::interfaces::IPool::Withdrawn";
|
|
12
15
|
readonly Ragequit: "privacy_pools::interfaces::IPool::RageQuit";
|
|
16
|
+
readonly Audit: "privacy_pools::interfaces::IPool::AuditEvent";
|
|
13
17
|
};
|
|
14
18
|
type AbiEventName = (typeof AbiEventName)[keyof typeof AbiEventName];
|
|
15
19
|
export interface StarknetDepositedEventData {
|
|
@@ -24,6 +28,7 @@ export interface StarknetWithdrawnEventData {
|
|
|
24
28
|
newCommitmentHash: bigint;
|
|
25
29
|
withdrawnValue: bigint;
|
|
26
30
|
existingNullifierHash: bigint;
|
|
31
|
+
auditorData: string;
|
|
27
32
|
}
|
|
28
33
|
export interface StarknetRageQuitEventData {
|
|
29
34
|
depositor: bigint;
|
|
@@ -31,12 +36,19 @@ export interface StarknetRageQuitEventData {
|
|
|
31
36
|
label: bigint;
|
|
32
37
|
value: bigint;
|
|
33
38
|
}
|
|
39
|
+
export interface StarknetAuditEventData {
|
|
40
|
+
tag: bigint;
|
|
41
|
+
ciphertext: string;
|
|
42
|
+
prevNullifierHash: bigint;
|
|
43
|
+
newCommitment: bigint;
|
|
44
|
+
}
|
|
34
45
|
type AbiToEvent = {
|
|
35
46
|
[AbiEventName.Deposit]: StarknetDepositedEventData;
|
|
36
47
|
[AbiEventName.Withdraw]: StarknetWithdrawnEventData;
|
|
37
48
|
[AbiEventName.Ragequit]: StarknetRageQuitEventData;
|
|
49
|
+
[AbiEventName.Audit]: StarknetAuditEventData;
|
|
38
50
|
};
|
|
39
|
-
export type StarknetEvent = StarknetDepositedEventData | StarknetWithdrawnEventData | StarknetRageQuitEventData;
|
|
51
|
+
export type StarknetEvent = StarknetDepositedEventData | StarknetWithdrawnEventData | StarknetAuditEventData | StarknetRageQuitEventData;
|
|
40
52
|
/**
|
|
41
53
|
* Starknet implementation of DataService for privacy pool event fetching.
|
|
42
54
|
*
|
|
@@ -62,7 +74,7 @@ export declare class StarknetDataService {
|
|
|
62
74
|
* @returns Array of deposit events compatible with AccountService interface
|
|
63
75
|
* @throws {StarknetSDKError} If provider is not configured or network error occurs
|
|
64
76
|
*/
|
|
65
|
-
getDeposits(pool: PoolInfo, fromBlock?: bigint): Promise<DepositEvent[]>;
|
|
77
|
+
getDeposits(pool: PoolInfo, fromBlock?: bigint, label?: bigint): Promise<DepositEvent[]>;
|
|
66
78
|
/**
|
|
67
79
|
* Get withdrawal events for a specific Starknet pool
|
|
68
80
|
*
|
|
@@ -81,6 +93,7 @@ export declare class StarknetDataService {
|
|
|
81
93
|
* @throws {StarknetSDKError} If provider is not configured or network error occurs
|
|
82
94
|
*/
|
|
83
95
|
getRagequits(pool: PoolInfo, fromBlock?: bigint): Promise<RagequitEvent[]>;
|
|
96
|
+
getAuditEventForTag(tag: bigint, pool: PoolInfo, fromBlock?: bigint): Promise<AuditEvent[]>;
|
|
84
97
|
private static parseGenericEvents;
|
|
85
98
|
static parseDepositEvents(emittedEvents: EmittedEvent[], pool: PoolInfo): (StarknetDepositedEventData & {
|
|
86
99
|
blockNumber: import("starknet").BlockNumber | undefined;
|
package/dist/data.service.js
CHANGED
|
@@ -5,14 +5,17 @@ import { SNBaseErrorCode, SNDataError, StarknetSDKError, } from "./errors/index.
|
|
|
5
5
|
export const DEPOSIT_EVENT_SELECTOR = num.toHex(hash.starknetKeccak("Deposited")); // 0x69105484e3b5f553164aa6de1f67321ea2757275a5e614365c90b9ed0a5e9b
|
|
6
6
|
export const WITHDRAWAL_EVENT_SELECTOR = num.toHex(hash.starknetKeccak("Withdrawn")); // 0x36a4d15ab9e146faab90d4abc1c0cad17c4ded24551c781ba100392b5a70248
|
|
7
7
|
export const RAGEQUIT_EVENT_SELECTOR = num.toHex(hash.starknetKeccak("RageQuit")); // 0x2a2469e4569da9d3c3df9bc1a2ddece1e640a89b8ecd537da96f064d64c8183
|
|
8
|
+
export const AUDIT_EVENT_SELECTOR = num.toHex(hash.starknetKeccak("AuditEvent"));
|
|
8
9
|
// ABI event names for direct selection
|
|
9
10
|
export const DEPOSIT_EVENT_ABI_NAME = "privacy_pools::interfaces::IPool::Deposited";
|
|
10
11
|
export const WITHDRAWAL_EVENT_ABI_NAME = "privacy_pools::interfaces::IPool::Withdrawn";
|
|
11
12
|
export const RAGEQUIT_EVENT_ABI_NAME = "privacy_pools::interfaces::IPool::RageQuit";
|
|
13
|
+
export const AUDIT_EVENT_ABI_NAME = "privacy_pools::interfaces::IPool::AuditEvent";
|
|
12
14
|
export const AbiEventName = {
|
|
13
15
|
Deposit: DEPOSIT_EVENT_ABI_NAME,
|
|
14
16
|
Withdraw: WITHDRAWAL_EVENT_ABI_NAME,
|
|
15
17
|
Ragequit: RAGEQUIT_EVENT_ABI_NAME,
|
|
18
|
+
Audit: AUDIT_EVENT_ABI_NAME,
|
|
16
19
|
};
|
|
17
20
|
/**
|
|
18
21
|
* Starknet implementation of DataService for privacy pool event fetching.
|
|
@@ -49,14 +52,15 @@ export class StarknetDataService {
|
|
|
49
52
|
* @returns Array of deposit events compatible with AccountService interface
|
|
50
53
|
* @throws {StarknetSDKError} If provider is not configured or network error occurs
|
|
51
54
|
*/
|
|
52
|
-
async getDeposits(pool, fromBlock = pool.deploymentBlock) {
|
|
55
|
+
async getDeposits(pool, fromBlock = pool.deploymentBlock, label) {
|
|
53
56
|
try {
|
|
57
|
+
const keys = label ? [[DEPOSIT_EVENT_SELECTOR], [], [String(label)]] : [[DEPOSIT_EVENT_SELECTOR]];
|
|
54
58
|
// Fetch events using Starknet provider
|
|
55
59
|
const eventsResult = await this.getEvents({
|
|
56
60
|
from_block: { block_number: Number(fromBlock) },
|
|
57
61
|
to_block: "latest",
|
|
58
62
|
address: pool.address,
|
|
59
|
-
keys
|
|
63
|
+
keys, // Filter by deposit event selector
|
|
60
64
|
chunk_size: 1000, // Starknet pagination
|
|
61
65
|
});
|
|
62
66
|
// Parse all events at once using starknet.js event parser
|
|
@@ -161,6 +165,41 @@ export class StarknetDataService {
|
|
|
161
165
|
blockNumber: BigInt(blockNumber || 0),
|
|
162
166
|
transactionHash: transactionHash || "0x0",
|
|
163
167
|
}));
|
|
168
|
+
// PARSEAR
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
if (error instanceof StarknetSDKError)
|
|
172
|
+
throw error;
|
|
173
|
+
throw new StarknetSDKError(`Failed to fetch ragequits: ${error instanceof Error ? error.message : "Unknown error"}`, SNBaseErrorCode.UNKNOWN);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
async getAuditEventForTag(tag, pool, fromBlock = pool.deploymentBlock) {
|
|
177
|
+
try {
|
|
178
|
+
const eventsResult = await this.getEvents({
|
|
179
|
+
from_block: { block_number: Number(fromBlock) },
|
|
180
|
+
to_block: "latest",
|
|
181
|
+
address: pool.address,
|
|
182
|
+
keys: [[AUDIT_EVENT_SELECTOR], [String(tag)]],
|
|
183
|
+
chunk_size: 1000,
|
|
184
|
+
});
|
|
185
|
+
// Parse all events at once using starknet.js event parser
|
|
186
|
+
const abiEvents = events.getAbiEvents(PrivacyPoolABI);
|
|
187
|
+
const parsedEvents = events.parseEvents(eventsResult, abiEvents, {}, {}, this.abiParser);
|
|
188
|
+
return parsedEvents
|
|
189
|
+
.filter((parsedEvent) => parsedEvent[AUDIT_EVENT_ABI_NAME] !== undefined)
|
|
190
|
+
.map((parsedEvent) => ({
|
|
191
|
+
eventData: parsedEvent[AUDIT_EVENT_ABI_NAME],
|
|
192
|
+
blockNumber: parsedEvent.block_number,
|
|
193
|
+
transactionHash: parsedEvent.transaction_hash,
|
|
194
|
+
}))
|
|
195
|
+
.map(({ eventData, blockNumber, transactionHash }) => ({
|
|
196
|
+
tag: eventData.tag,
|
|
197
|
+
ciphertext: eventData.ciphertext,
|
|
198
|
+
prevNullifierHash: eventData.prevNullifierHash,
|
|
199
|
+
newCommitment: eventData.newCommitment,
|
|
200
|
+
blockNumber: BigInt(blockNumber || 0),
|
|
201
|
+
transactionHash: transactionHash || "0x0",
|
|
202
|
+
}));
|
|
164
203
|
}
|
|
165
204
|
catch (error) {
|
|
166
205
|
if (error instanceof StarknetSDKError)
|
package/dist/data.service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.service.js","sourceRoot":"","sources":["../src/data.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"data.service.js","sourceRoot":"","sources":["../src/data.service.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -53,4 +53,7 @@ export * from "./utils.js";
|
|
|
53
53
|
export * from "./constants.js";
|
|
54
54
|
// Data service
|
|
55
55
|
export { StarknetDataService, } from "./data.service.js";
|
|
56
|
+
// Auditor
|
|
57
|
+
export * from "./auditor.js";
|
|
58
|
+
export * from './account.service.js';
|
|
56
59
|
//# 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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACT,MAAM,+BAA+B,CAAC;AAIvC,qBAAqB;AACrB,cAAc,+BAA+B,CAAC;AAE9C,iBAAiB;AACjB,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElD,wBAAwB;AACxB,cAAc,sBAAsB,CAAC;AAQrC,kCAAkC;AAClC,OAAO,EACL,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AAEnC,gBAAgB;AAChB,cAAc,mBAAmB,CAAC;AAElC,iCAAiC;AACjC,cAAc,iBAAiB,CAAC;AAEhC,oBAAoB;AACpB,cAAc,YAAY,CAAC;AAE3B,YAAY;AACZ,cAAc,gBAAgB,CAAC;AAE/B,eAAe;AACf,OAAO,EACL,mBAAmB,GACpB,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACT,MAAM,+BAA+B,CAAC;AAIvC,qBAAqB;AACrB,cAAc,+BAA+B,CAAC;AAE9C,iBAAiB;AACjB,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElD,wBAAwB;AACxB,cAAc,sBAAsB,CAAC;AAQrC,kCAAkC;AAClC,OAAO,EACL,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AAEnC,gBAAgB;AAChB,cAAc,mBAAmB,CAAC;AAElC,iCAAiC;AACjC,cAAc,iBAAiB,CAAC;AAEhC,oBAAoB;AACpB,cAAc,YAAY,CAAC;AAE3B,YAAY;AACZ,cAAc,gBAAgB,CAAC;AAE/B,eAAe;AACf,OAAO,EACL,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAI3B,UAAU;AACV,cAAc,cAAc,CAAC;AAE7B,cAAc,sBAAsB,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BigNumberish } from "starknet";
|
|
2
2
|
import { StarknetAddress } from "./starknet.js";
|
|
3
|
+
import { AuditorData } from "../auditor.js";
|
|
3
4
|
export interface AssetConfig {
|
|
4
5
|
pool: StarknetAddress;
|
|
5
6
|
maxRelayFeeBPS: bigint;
|
|
@@ -14,6 +15,7 @@ export interface AssetConfig {
|
|
|
14
15
|
export interface Withdrawal {
|
|
15
16
|
/** The address of the processor handling this withdrawal */
|
|
16
17
|
processor: BigNumberish;
|
|
18
|
+
auditorData?: AuditorData;
|
|
17
19
|
/** Additional data required for processing the withdrawal */
|
|
18
20
|
data: BigNumberish[];
|
|
19
21
|
}
|
package/dist/types/entrypoint.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cairo, CallData, num } from "starknet";
|
|
1
|
+
import { cairo, CallData, num, byteArray } from "starknet";
|
|
2
2
|
import { EntryPointABI } from "../abis/index.js";
|
|
3
3
|
import { SNFormatError } from "../errors/index.js";
|
|
4
4
|
const RelayDataAbi = [
|
|
@@ -72,17 +72,31 @@ export function parseRelayData(rawData) {
|
|
|
72
72
|
* @returns Array of string representations of the withdrawal fields
|
|
73
73
|
*/
|
|
74
74
|
export function serializeWithdrawal(withdrawal) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
75
|
+
let result = [];
|
|
76
|
+
const { processor, auditorData, data } = withdrawal;
|
|
77
|
+
result.push(num.toHex64(processor));
|
|
78
|
+
if (auditorData === undefined) {
|
|
79
|
+
result.push(num.toHex64(1));
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
result.push(num.toHex64(0));
|
|
83
|
+
const { tag, ciphertext } = auditorData;
|
|
84
|
+
const { low, high } = cairo.uint256(tag);
|
|
85
|
+
result.push(num.toHex64(low));
|
|
86
|
+
result.push(num.toHex64(high));
|
|
87
|
+
const array = CallData.compile([byteArray.byteArrayFromString(ciphertext)]);
|
|
88
|
+
array.forEach((x) => result.push(num.toHex64(x)));
|
|
89
|
+
}
|
|
90
|
+
result.push(num.toHex64(data.length));
|
|
91
|
+
data.forEach((x) => result.push(num.toHex64(x)));
|
|
92
|
+
return result;
|
|
81
93
|
}
|
|
82
94
|
function isWithdrawal(data) {
|
|
83
95
|
const _data = data;
|
|
84
|
-
return (_data.processor !== undefined &&
|
|
85
|
-
&& (_data.data !== undefined &&
|
|
96
|
+
return (_data.processor !== undefined &&
|
|
97
|
+
num.isBigNumberish(_data.processor)) && (_data.data !== undefined &&
|
|
98
|
+
_data.data.every(num.isBigNumberish)) && ((_data.auditorData.Some?.ciphertext !== undefined &&
|
|
99
|
+
_data.auditorData.Some?.tag !== undefined) || _data.auditorData.None !== undefined);
|
|
86
100
|
}
|
|
87
101
|
/**
|
|
88
102
|
* Parses raw string data into a Withdrawal object.
|
|
@@ -97,8 +111,9 @@ export function parseWithdrawal(rawData) {
|
|
|
97
111
|
}
|
|
98
112
|
const structName = "privacy_pools::interfaces::Structs::Withdrawal";
|
|
99
113
|
const result = entrypointCd.decodeParameters(structName, rawData);
|
|
100
|
-
if (isWithdrawal(result))
|
|
101
|
-
return result;
|
|
114
|
+
if (isWithdrawal(result)) {
|
|
115
|
+
return { ...result, auditorData: result.auditorData.unwrap() };
|
|
116
|
+
}
|
|
102
117
|
throw SNFormatError.parse(`Can't parse Withdrawal from ${rawData}`);
|
|
103
118
|
}
|
|
104
119
|
//# sourceMappingURL=entrypoint.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entrypoint.js","sourceRoot":"","sources":["../../src/types/entrypoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"entrypoint.js","sourceRoot":"","sources":["../../src/types/entrypoint.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { WithdrawalProof } from "@0xbow/privacy-pools-core-sdk";
|
|
2
|
-
import { BigNumberish, Uint256 } from "starknet";
|
|
2
|
+
import { BigNumberish, CairoOption, Uint256 } from "starknet";
|
|
3
3
|
import { Withdrawal } from "./types/entrypoint.js";
|
|
4
4
|
import { SnarkJsVkey } from "./types/snarkjs.js";
|
|
5
5
|
import { StarknetAddress } from "./types/starknet.js";
|
|
@@ -60,3 +60,6 @@ export declare function withdrawalProofToGaragaCalldata(withdrawalProof: Withdra
|
|
|
60
60
|
*/
|
|
61
61
|
export declare function castBigInt(x: number | bigint | Uint256): bigint;
|
|
62
62
|
export declare function toAddress(x: BigNumberish): StarknetAddress;
|
|
63
|
+
export declare const Some: <T>(t: T) => CairoOption<T>;
|
|
64
|
+
export declare const None: <T>() => CairoOption<T>;
|
|
65
|
+
export declare const toCairoOption: <T>(t?: T) => CairoOption<T>;
|
package/dist/utils.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { poseidonHashMany } from "@scure/starknet";
|
|
2
|
-
import { cairo, num, uint256, validateAndParseAddress } from "starknet";
|
|
2
|
+
import { cairo, CairoOption, CairoOptionVariant, num, uint256, validateAndParseAddress } from "starknet";
|
|
3
3
|
import { getGroth16CallData } from "./garaga.js";
|
|
4
4
|
import { snarkJsKeyIntoGaraga, snarkJsProofIntoGaraga } from "./types/conversions.js";
|
|
5
5
|
import { serializeWithdrawal } from "./types/entrypoint.js";
|
|
@@ -85,4 +85,13 @@ export function castBigInt(x) {
|
|
|
85
85
|
export function toAddress(x) {
|
|
86
86
|
return validateAndParseAddress(x);
|
|
87
87
|
}
|
|
88
|
+
export const Some = (t) => {
|
|
89
|
+
return new CairoOption(CairoOptionVariant.Some, t);
|
|
90
|
+
};
|
|
91
|
+
export const None = () => {
|
|
92
|
+
return new CairoOption(CairoOptionVariant.None);
|
|
93
|
+
};
|
|
94
|
+
export const toCairoOption = (t) => {
|
|
95
|
+
return t === undefined ? None() : Some(t);
|
|
96
|
+
};
|
|
88
97
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAgB,KAAK,EAAE,GAAG,EAAE,OAAO,EAAW,uBAAuB,EAA2B,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fatsolutions/privacy-pools-core-starknet-sdk",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.42",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "Starknet SDK for Privacy Pool protocol with Garaga proof verification support",
|
|
6
6
|
"author": "Fat Solutions",
|
|
@@ -28,6 +28,10 @@
|
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@0xbow/privacy-pools-core-sdk": "0.1.22",
|
|
31
|
+
"@noble/ciphers": "^2.0.1",
|
|
32
|
+
"@noble/hashes": "^2.0.1",
|
|
33
|
+
"@scure/base": "^2.0.0",
|
|
34
|
+
"@scure/bip39": "1.6.0",
|
|
31
35
|
"@scure/starknet": "1.1.2",
|
|
32
36
|
"garaga": "0.18.1",
|
|
33
37
|
"starknet": "8.5.4",
|
|
@@ -36,8 +40,8 @@
|
|
|
36
40
|
"devDependencies": {
|
|
37
41
|
"@types/snarkjs": "0.7.9",
|
|
38
42
|
"@vitest/coverage-v8": "3.2.4",
|
|
39
|
-
"
|
|
40
|
-
"
|
|
43
|
+
"typescript": "5.9.2",
|
|
44
|
+
"vitest": "3.2.4"
|
|
41
45
|
},
|
|
42
46
|
"publishConfig": {
|
|
43
47
|
"access": "public"
|