@nori-zk/mina-token-bridge
Version:
Nori ethereum state settelment and nETH token bridge zkApp
65 lines (64 loc) • 2.63 kB
TypeScript
import { Field, Mina, PrivateKey, PublicKey } from 'o1js';
import { MerkleTreeContractDepositAttestorInput } from '../depositAttestation.js';
import { SCRAMWitness } from '../scram.js';
import { NoriTokenBridge } from '../NoriTokenBridge.js';
export declare function getStagingEnv(): {
NORI_MINA_TOKEN_BRIDGE_ADDRESS: string;
NORI_MINA_TOKEN_BASE_ADDRESS: string;
NORI_ETH_TOKEN_BRIDGE_ADDRESS: string;
NORI_ETH_GENESIS_ROOT: string;
NORI_MINA_TOKEN_BASE_TOKEN_ID: string;
NORI_MINA_TOKEN_BRIDGE_TOKEN_ID: string;
MINA_ARCHIVE_RPC_URL: string;
MINA_RPC_NETWORK_URL: string;
MINA_RPC_NETWORK_ID: import("o1js").NetworkId;
MINA_ZKAPP_TRANSACTION_RPC_URL: string;
NORI_WSS_URL: string;
NORI_PCS_URL: string;
};
export declare function validateEnv(): {
ethPrivateKey: string;
ethRpcUrl: string;
minaSenderPrivateKeyBase58: string;
};
export declare function getNewMinaLiteNetAccountSK(): Promise<string>;
export declare function getNewMinaLiteNetAccountKeyPair(): Promise<{
sk: string;
pk: string;
}>;
export declare function keyPairBase58ToKeyPair({ sk, pk }: {
sk: string;
pk: string;
}): {
privateKey: PrivateKey;
publicKey: PublicKey;
};
export declare class InvertedPromise<T = void, E = void> {
resolve: (output: T) => void;
reject: (error: E) => void;
promise: Promise<T>;
constructor();
}
export declare function hexStringToUint8Array(hex: string): Uint8Array;
export declare function lockTokens(codeChallenge: Field, amount: number): Promise<number>;
export declare function getEthereumEnvPrivateKey(): Promise<string>;
export declare function getEthWallet(): Promise<import("ethers").Wallet>;
export declare function minaSetup(): Promise<void>;
export declare function txSend({ body, sender, signers, fee: txFee, }: {
body: () => Promise<void>;
sender: PublicKey;
signers: PrivateKey[];
fee?: number;
}): Promise<Mina.IncludedTransaction>;
export declare function fetchAccounts(addrs: PublicKey[]): Promise<void>;
/**
* Build a self-consistent synthetic deposit for noriMint() tests.
* Signs a SCRAM message with the recipient's private key and builds
* the deposit attestation from the resulting codeChallenge.
*/
export declare function buildSyntheticDeposit(recipientPrivateKey: PrivateKey, messageSCRAMStr: string, totalLockedBU?: bigint): {
merkleInput: MerkleTreeContractDepositAttestorInput;
scramWitness: SCRAMWitness;
};
/** Read the current on-chain windowStart to pass as the noriMint witness. */
export declare function fetchWindowStartWitness(bridge: NoriTokenBridge): Promise<Field>;