@nori-zk/mina-token-bridge
Version:
Nori ethereum state settelment and nETH token bridge zkApp
49 lines (48 loc) • 3.35 kB
TypeScript
import { type VerificationKeySafe } from '@nori-zk/o1js-zk-utils';
import type { ProofDataOutput, SP1ProofWithPublicValuesPlonkNoTee } from '@nori-zk/proof-conversion/min';
import { type NetworkId } from 'o1js';
import { type MerkleTreeContractDepositAttestorInputJson } from '../../depositAttestation.js';
export type SafeVK = {
hashStr: string;
data: string;
};
export interface DeploymentResult {
noriTokenBridgeAddress: string;
tokenBaseAddress: string;
tokenBaseTokenId: string;
noriTokenBridgeTokenId: string;
txHash: string;
}
export declare class TokenBridgeTester {
minaSetup(options: {
networkId?: NetworkId;
mina: string | string[];
archive: string | string[];
lightnetAccountManager?: string;
bypassTransactionLimits?: boolean;
minaDefaultHeaders?: HeadersInit;
archiveDefaultHeaders?: HeadersInit;
}): Promise<void>;
compile(): Promise<{
noriStorageInterfaceVerificationKeySafe: VerificationKeySafe;
fungibleTokenVerificationKeySafe: VerificationKeySafe;
noriTokenBridgeVerificationKeySafe: VerificationKeySafe;
}>;
private fetchAccounts;
deployContracts(senderPrivateKeyBase58: string, adminPublicKeyBase58: string, noriTokenBridgePrivateKeyBase58: string, tokenBasePrivateKeyBase58: string, storeHashHex: string, ethTokenBridgeAddressHex: string, genesisRootHex: string, storageInterfaceVerificationKeySafe: SafeVK, pi0: string, po2: string, txFee: number, options?: {
symbol?: string;
decimals?: number;
allowUpdates?: boolean;
startPaused?: boolean;
}): Promise<DeploymentResult>;
updateVerificationKeys(senderPrivateKeyBase58: string, noriTokenBridgeAddressBase58: string, tokenBaseAddressBase58: string, noriTokenBridgeVerificationKeySafe: VerificationKeySafe, fungibleTokenVerificationKeySafe: VerificationKeySafe, txFee: number, updateTokenBaseVK: boolean, updateNoriTokenBridgeVK: boolean): Promise<DeploymentResult>;
private runBridgeTx;
updateIntegrityParams(senderPrivateKeyBase58: string, noriTokenBridgeAddressBase58: string, pi0: string, po2: string, txFee: number): Promise<string>;
updateNoriHeliosProgramPi0(senderPrivateKeyBase58: string, noriTokenBridgeAddressBase58: string, pi0: string, txFee: number): Promise<string>;
updateProofConversionPO2(senderPrivateKeyBase58: string, noriTokenBridgeAddressBase58: string, po2: string, txFee: number): Promise<string>;
update(senderPrivateKeyBase58: string, noriTokenBridgeAddressBase58: string, sp1PlonkProof: SP1ProofWithPublicValuesPlonkNoTee, proofData: ProofDataOutput, txFee: number): Promise<string>;
setUpStorage(senderPrivateKeyBase58: string, userPrivateKeyBase58: string, noriTokenBridgeAddressBase58: string, storageInterfaceVerificationKeySafe: SafeVK, txFee: number): Promise<string>;
mint(senderPrivateKeyBase58: string, noriTokenBridgeAddressBase58: string, merkleTreeContractDepositAttestorInputJson: MerkleTreeContractDepositAttestorInputJson, messageSCRAMStr: string, signatureSCRAMBase58: string, fundNewAccount: boolean, txFee: number): Promise<string>;
getBalanceOf(tokenBaseAddressBase58: string, userPublicKeyBase58: string): Promise<string>;
getMintedSoFar(noriTokenBridgeAddressBase58: string, userPublicKeyBase58: string): Promise<string>;
}