Skip to content

Commit

Permalink
Web3 929 pallet abstraction and data files (#6)
Browse files Browse the repository at this point in the history
* Refactored tests and data to use new format for submitting proofs

* Refactor rpc tests following pallet abstraction changes

* Fix git repo url for zkverify in setup script
  • Loading branch information
rushby committed Jun 26, 2024
1 parent 76061ab commit c9ade1f
Show file tree
Hide file tree
Showing 21 changed files with 426 additions and 150 deletions.
3 changes: 0 additions & 3 deletions .github/workflows/CI-rpc-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,6 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Build Docker image
id: build_image
run: |
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ benchmarking_errors.txt
rpc-tests/node_modules
rpc-tests//reports
test-report-*.html
e2e-tests/services/nh-core
e2e-tests/services/zkVerify
e2e-tests/services/nh-attestation-bot
e2e-tests/services/zkv-attestation-contracts
12 changes: 0 additions & 12 deletions e2e-tests/.env.local

Large diffs are not rendered by default.

17 changes: 17 additions & 0 deletions e2e-tests/data/boojum.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
interface ProofData {
proof: string;
invalid_proof: string;
pubs: string;
vk: string;
}

const PROOF: string = "0x02c6cf2fd56edca1f17f406cceef3de1c99bba6e499ed96ef4f453af011257c420944a838b2cd133a414ae6882fd8cc0dfb7daa14540d796ab937f65479beaca1fb7b349b2a6dc4edfc8191e31ddc0b342840dc575ad213473529611e15261e8020c09be65a4d571cadbb39b0737777c365af77b4702d6e1a4e0340abb1cb8c3221cc01cc33c432ab679319c724544616069b0d6f4df5f537ec36887deead9631fc36d5da22c35d8d83eb74ccc2afa4a83d2d6c604998ac86e653f1307d016200e01dd9bbcfa860fe26eca3f159b473fa073fce20ef5354c25d52e5e9c4bc2930b5ae2e3e19c47907074ef77fc0e113920e9f702ad0f7f1789c696a47849ebcb21db13fcf4fc3cc99f9879514cb5a3ac5b672a4343b915833be0cb9c4281e1810a376c40d30b54d2c82d98e26d93f4d2fa5010ef0973f4c9ddc5eb83074b2fdf011214912fffecc3507d741e4164d049963f4e22dfefc659a2d4122e141f8f8700cf13591e41e00c27c19f05546c874287a483df746fd1c5f66b955f5caf1fc00928a89a4c924f98bd2bb78a704a7879f15799dcf7e94d2f465c33b65358519606f57ff3f11aee64bdffac49821dda7e029a281519e0f6a44302bd822d69e08d1797df980a6a223e0b455ad79df6ee836ac09486e3c4ce28ee870249e5d1db8f1bf81479df3717fee0f378da47910f1177685a7de078eb5dc2ae65d1ff321cdf2b3c88144fd8079426e8c39efb62913aac7cf198d6a557c9c55f448d65d8aa492a54cd2ae2e57b5ce3918aa3a75f827e8511fa6196d83e0fa77f45e789fa73cd2773b310f717b8af7bfc3456f6e008f9f8c2286808e4430d8d1b0260a5a0f08616887cc329cd4754a0994979552a26b055541d89419c083bb4bb5de0939716b6235a83962376096cac86e2f3497e16083fc0f126305a5b5d822f79b65411e6a0250b0c229cb9efa1d8f7b64754f21fc2d81d8c122d8cc57eafc2b4b2d2b02b262b65157804674d8d5da0a9c18d1d1f48c75ac8a8196bd52cb789b0b2947dbf63258d968097930fc5abd8e36b9aa1b28c8038a1f87292212ca2c0a55673e2a0480f380acabf71e994271a65230015428d1fb0fa29944c4215f070ccfe537dfe37065db5ba5c90ae76cab0e69e2a5f61d238d52b936769a3f7ed6bd98bafe4d15c17548ede6302f4d806e3217b0035927359463fdaf1ca86c439db078959f3f6aa2de55a8662d700be14b546e2099289b221f7bdf8e8d078547d9996f82f13f9e529e3c758071eab1259735092d4fac514b9bd3b87242350a0497e537ef96ac4241265632779c8a98844dea0cb1496e49fb2ab2f50d9533050c840fd2c9155d4e807a69fdafeca7e7aabdfbe234170d106eb0bc2b6e3a3d0c27fcbb8ec611aa7861d57b0926ca97b7137aceeae7c061cdb619a893fce4a77187948db00828b51e70cfbdb9f6b06aaea8b037452a37aa113c75f8a0d8755f69de8e9dbdaff5dc9742b3723cee611e17f0b5f45389e3794d499698df78583610371d6fb780ab8fb080085c1e5e3312cd0cfdf1c440ce0778f84e49f9ebe6217025d6e0a3caa019dc713390dd68b9d7e2971c85dcef20f0fd39e653d03a15d43920502ab4aaea724d4283bffa5d557519aface6622844659eb8704aba1eb7d1440e9838e5ca42aaf4824ed9174f5cae88f196a15a07fabca68c0a76cb22749d5b96a3f30eba226061d1fc0ccaf6d01858bc5096ce8c231e78e52df028888ce52d1803edd0924c08cde09ec0d1241c98d7bedb141e8abe63b5645fd6bf3b143c42004f91a4d4a4cd2480d333ed34a878fcdde8e16b6ebe9c70237f1d856c0e37e4d9aec479cdb4c8e9316284c2edd3202941fdedd81a6ee4fa6735cac981f8cc1a5609a27bb774b5901281497fb2be671c9dac31aad3c122f3859a9f838f8543c7fc2bab27e84dc4b6a2343c5416c38c8dcbbb56f1e3ccf31644ab66ebe86e77cec68836d3771d7e3a8";
const INVALID_PROOF: string = "0x02c6cf2fd56edca1f27f406cceef3de1c99bba6e499ed96ef4f453af011257c420944a838b2cd133a414ae6882fd8cc0dfb7daa14540d796ab937f65479beaca1fb7b349b2a6dc4edfc8191e31ddc0b342840dc575ad213473529611e15261e8020c09be65a4d571cadbb39b0737777c365af77b4702d6e1a4e0340abb1cb8c3221cc01cc33c432ab679319c724544616069b0d6f4df5f537ec36887deead9631fc36d5da22c35d8d83eb74ccc2afa4a83d2d6c604998ac86e653f1307d016200e01dd9bbcfa860fe26eca3f159b473fa073fce20ef5354c25d52e5e9c4bc2930b5ae2e3e19c47907074ef77fc0e113920e9f702ad0f7f1789c696a47849ebcb21db13fcf4fc3cc99f9879514cb5a3ac5b672a4343b915833be0cb9c4281e1810a376c40d30b54d2c82d98e26d93f4d2fa5010ef0973f4c9ddc5eb83074b2fdf011214912fffecc3507d741e4164d049963f4e22dfefc659a2d4122e141f8f8700cf13591e41e00c27c19f05546c874287a483df746fd1c5f66b955f5caf1fc00928a89a4c924f98bd2bb78a704a7879f15799dcf7e94d2f465c33b65358519606f57ff3f11aee64bdffac49821dda7e029a281519e0f6a44302bd822d69e08d1797df980a6a223e0b455ad79df6ee836ac09486e3c4ce28ee870249e5d1db8f1bf81479df3717fee0f378da47910f1177685a7de078eb5dc2ae65d1ff321cdf2b3c88144fd8079426e8c39efb62913aac7cf198d6a557c9c55f448d65d8aa492a54cd2ae2e57b5ce3918aa3a75f827e8511fa6196d83e0fa77f45e789fa73cd2773b310f717b8af7bfc3456f6e008f9f8c2286808e4430d8d1b0260a5a0f08616887cc329cd4754a0994979552a26b055541d89419c083bb4bb5de0939716b6235a83962376096cac86e2f3497e16083fc0f126305a5b5d822f79b65411e6a0250b0c229cb9efa1d8f7b64754f21fc2d81d8c122d8cc57eafc2b4b2d2b02b262b65157804674d8d5da0a9c18d1d1f48c75ac8a8196bd52cb789b0b2947dbf63258d968097930fc5abd8e36b9aa1b28c8038a1f87292212ca2c0a55673e2a0480f380acabf71e994271a65230015428d1fb0fa29944c4215f070ccfe537dfe37065db5ba5c90ae76cab0e69e2a5f61d238d52b936769a3f7ed6bd98bafe4d15c17548ede6302f4d806e3217b0035927359463fdaf1ca86c439db078959f3f6aa2de55a8662d700be14b546e2099289b221f7bdf8e8d078547d9996f82f13f9e529e3c758071eab1259735092d4fac514b9bd3b87242350a0497e537ef96ac4241265632779c8a98844dea0cb1496e49fb2ab2f50d9533050c840fd2c9155d4e807a69fdafeca7e7aabdfbe234170d106eb0bc2b6e3a3d0c27fcbb8ec611aa7861d57b0926ca97b7137aceeae7c061cdb619a893fce4a77187948db00828b51e70cfbdb9f6b06aaea8b037452a37aa113c75f8a0d8755f69de8e9dbdaff5dc9742b3723cee611e17f0b5f45389e3794d499698df78583610371d6fb780ab8fb080085c1e5e3312cd0cfdf1c440ce0778f84e49f9ebe6217025d6e0a3caa019dc713390dd68b9d7e2971c85dcef20f0fd39e653d03a15d43920502ab4aaea724d4283bffa5d557519aface6622844659eb8704aba1eb7d1440e9838e5ca42aaf4824ed9174f5cae88f196a15a07fabca68c0a76cb22749d5b96a3f30eba226061d1fc0ccaf6d01858bc5096ce8c231e78e52df028888ce52d1803edd0924c08cde09ec0d1241c98d7bedb141e8abe63b5645fd6bf3b143c42004f91a4d4a4cd2480d333ed34a878fcdde8e16b6ebe9c70237f1d856c0e37e4d9aec479cdb4c8e9316284c2edd3202941fdedd81a6ee4fa6735cac981f8cc1a5609a27bb774b5901281497fb2be671c9dac31aad3c132f3859a9f838f8543c7fc2bab27e84dc4b6a2343c5416c38c8dcbbb56f1e3ccf31644ab66ebe86e77cec68836d3771d7e3a8"
const PUBS: string = "0x00000000a45a2ec20c3f34f4c69cea200fdf39cc78ff50092f7cb1e2894f4d35";

export const boojumProofData: ProofData = {
proof: PROOF,
invalid_proof: INVALID_PROOF,
pubs: PUBS,
vk: null
};
71 changes: 71 additions & 0 deletions e2e-tests/data/fflonk.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
export interface VerificationKey {
power: number;
k1: string;
k2: string;
w: string;
w3: string;
w4: string;
w8: string;
wr: string;
X_2: string[][];
C0: string[];
}

export interface ProofData {
proof: string;
invalid_proof: string;
pubs: string;
vk: VerificationKey;
vkeyHash: string;
statementHash: string;
}

const PROOF = "0x283e3f25323d02dabdb94a897dc2697a3b930d8781381ec574af89a201a91d5a2c2808c59f5c736ff728eedfea58effc2443722e78b2eb4e6759a278e9246d600f9c56dc88e043ce0b90c402e96b1f4b1a246f4d0d69a4c340bc910e1f2fd80519e465e01bd7629f175931feed102cb6459a1be7b08018b93c142e961d0352d80b8e5d340df28c2f454c5a2535ca01a230bb945ee24b1171481a9a2c6496fed61cf8878e40adb52dc27da5e79718f118467319d15d64fed460d69d951376ac631a6c44faaec76e296b43fe720d700a63fd530f9064878b5f72f2ffe7458c2f031ac6ed8c1e0758dfb3702ed29bbc0c14b5e727c164b3ade07b9f164af0be54b0143b1a6534b2dcf2bd660e1b5b420d86c0c350fd9d614b639c5df98009f1375e141259679021d0a6a3aa3aae2516bace4a4a651265217ec0ea7c0d7f89b987100abcc93d98ff40bae16eff6c29955f7a37155bb25672b12eb5074dcb7c3e2b001718a257cca21ee593d1ba9f8e91e5168aed8e0b1893e11a6b583d975e747f8008a8c2150a04d8f867945ca1740dc3fc3b2fc4daff61b4725fb294435a1b90101803690ae70fc212b7e929de9a22a4642ef4772546cf93ffd1b1196a3d9113a3009c506755578932ca3630508ca1ed6ee83df5ec9e26cb0b5800a70967a1a93a04d142b6a532935a31d84f75d16929df6d38c3a210ac4f435a8024dfb7e6c1f3246d58038a943f237325b44f03d106e523adfec4324615a2dd09e1e5b9143b411c1cf09ee411cf9864d30df4904099920cee9ae8134d45dfeb29e46115d2e740098674b8fc2ca31fac6fcc9302860654fdc1b522b7e064b0759bc5924f332fa921121b5af880f83fbce02f19dabb8f684593e7322fb80bfc0d054797b1d4eff411b01bf68f81f2032ae4f7fc514bd76ca1b264f3989a92e6b3d74cda4f8a714920e4c02f5a71082a8bcf5be0b5750a244bd040a776ec541dfc2c8ae73180e9240ada5414d66387211eec80d7d9d48498efa1e646d64bb1bf8775b3796a9fd0bf0fdf8244018ce57b018c093e2f75ed77d8dbdb1a7b60a2da671de2efe5f6b9d7";
const INVALID_PROOF = "0x283e3f25323d02dabdb94a897dc2697a3b930d8781381ec574af89a201a91d5a2c2808c59f5c736ff728eedfea58effc2443722e78b2eb4e6759a278e9246d600f9c56dc88e043ce0b90c402e96b1f4b1a246f4d0d69a4c340bc910e1f2fd80519e465e01bd7629f175931feed102cb6459a1be7b08018b93c142e961d0352d80b8e5d340df28c2f454c5a2535ca01a230bb945ee24b1171481a9a2c6496fed61cf8878e40adb52dc27da5e79718f118467319d15d64fed460d69d951376ac631a6c44faaec76e296b43fe720d700a63fd530f9064878b5f72f2ffe7458c2f031ac6ed8c1e0758dfb3702ed29bbc0c14b5e727c164b3ade07b9f164af0be54b0143b1a6534b2dcf2bd660e1b5b420d86c0c350fd9d614b639c5df98009f1375e141259679021d0a6a3aa3aae2516bace4a4a651265217ec0ea7c0d7f89b987100abcc93d98ff40bae16eff6c29955f7a37155bb25672b12eb5074dcb7c3e2b001718a257cca21ee593d1ba9f8e91e5168aed8e0b1893e11a6b583d975e747f8008a8c2150a04d8f867945ca1740dc3fc3b2fc4daff61b4725fb294435a1b90101803690ae70fc212b7e929de9a22a4642ef4772546cf93ffd1b1196a3d9113a3009c506755578932ca3630508ca1ed6ee83df5ec9e26cb0b5800a70967a1a93a04d142b6a532935a31d84f75d16929df6d38c3a210ac4f435a8024dfb7e6c1f3246d58038a943f237325b44f03d106e523adfec4324615a2dd09e1e5b9143b411c1cf09ee411cf9864d30df4904099920cee9ae8134d45dfeb29e46115d2e740098674b8fc2ca31fac6fcc9302860654fdc1b522b7e064b0759bc5924f332fa921121b5af880f83fbce02f19dabb8f684593e7322fb80bfc0d054797b1d4eff411b01bf68f81f2032ae4f7fc514bd76ca1b264f3989a92e6b3d74cda4f8a714920e4c02f5a71082a8bcf5be0b5750a244bd040a776ec541dfc2c8ae73180e9240ada5414d66387211eec81d7d9d48498efa1e646d64bb1bf8775b3796a9fd0bf0fdf8244018ce57b018c093e2f75ed77d8dbdb1a7b60a2da671de2efe5f6b9d7";
const PUBS = "0x0d69b94acdfaca5bacc248a60b35b925a2374644ce0c1205db68228c8921d9d9";
const VKEY = `{
"power": 24,
"k1": "2",
"k2": "3",
"w": "5709868443893258075976348696661355716898495876243883251619397131511003808859",
"w3": "21888242871839275217838484774961031246154997185409878258781734729429964517155",
"w4": "21888242871839275217838484774961031246007050428528088939761107053157389710902",
"w8": "19540430494807482326159819597004422086093766032135589407132600596362845576832",
"wr": "18200100796661656210024324131237448517259556535315737226009542456080026430510",
"X_2": [
[
"21831381940315734285607113342023901060522397560371972897001948545212302161822",
"17231025384763736816414546592865244497437017442647097510447326538965263639101"
],
[
"2388026358213174446665280700919698872609886601280537296205114254867301080648",
"11507326595632554467052522095592665270651932854513688777769618397986436103170"
],
[
"1",
"0"
]
],
"C0": [
"7436841426934271843999872946312645822871802402068881571108027575346498207286",
"18448034242258174646222819724328439025708531082946938915005051387020977719791",
"1"
]
}`;
const VKEY_HASH = "0x6fc9745758412a2fd89c21be8542239c860a076620d44a8c7ee933539c0581f7";
const STATEMENT_HASH = "0xbcb57c05180f20ff896e8aa7b479f2e46874d7daf85b64114cc5502adc613446";

const VK: VerificationKey = {
...JSON.parse(VKEY),
get x2() { return this.X_2 },
get c0() { return this.C0 },
};

export const fflonkProofData: ProofData = {
proof: PROOF,
invalid_proof: INVALID_PROOF,
pubs: PUBS,
vk: VK,
vkeyHash: VKEY_HASH,
statementHash: STATEMENT_HASH
};
68 changes: 68 additions & 0 deletions e2e-tests/data/groth16.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
interface Proof {
curve: string;
proof: {
a: string;
b: string;
c: string;
};
}

interface VerificationKey {
curve: string;
alphaG1: string;
betaG2: string;
gammaG2: string;
deltaG2: string;
gammaAbcG1: string[];
}

interface ProofData {
proof: Proof;
invalid_proof: Proof;
pubs: string[];
vk: VerificationKey;
}

const PROOF_JSON = `{
"curve": "Bn254",
"proof": {
"a": "0x976e8832975ade909192a185fb553f7f66d7ff0b58b2ac69e63635632213011f2fad7e996a95ecdbdf251a2526c7c856f894035765fd8c6e6ebde0bd25f9660d",
"b": "0x5bc1574562bdb6279caa6e0fe6c228aea9b4ed14d7411f080e5a365d86c30c1901a3f19010881db71db8d73af7ffb80303455625bbd34a8e7e3e3a2d2e194324a86a07c4faf9ba2d96c52af5dc265958b2a9d98823461828fa9d0a65d3830f19fee8146afff5565b27514ab317b08647624a49804081542994ebd7b6e6b20d14",
"c": "0x538bf8dbeaaaff652d564afe07733ea37c07adf360174a700330a1e4f1c6030b589f8f49709d6d626a822ce2bcb020bfde05c2ad11dd1bf7107088af967be4a4"
}
}`;

const INVALID_PROOF_JSON = `{
"curve": "Bn254",
"proof": {
"a": "0x976e8831975ade909192a185fb553f7f66d7ff0b58b2ac69e63635632213011f2fad7e996a95ecdbdf251a2526c7c856f894035765fd8c6e6ebde0bd25f9660d",
"b": "0x5bc1574562bdb6279caa6e0fe6c228aea9b4ed14d7411f080e5a365d86c30c1901a3f19010881db71db8d73af7ffb80303455625bbd34a8e7e3e3a2d2e194324a86a07c4faf9ba2d96c52af5dc265958b2a9d98823461828fa9d0a65d3830f19fee8146afff5565b27514ab317b08647624a49804081542994ebd7b6e6b20d14",
"c": "0x538bf8dbeaaaff652d564afe07733ea37c07adf360174a700330a1e4f1c6030b589f8f49709d6d626a822ce2bcb020bfde05c2ad11dd1bf7107088af967be4a4"
}
}`;

const PUBS_JSON = `["0xa75d1fe3e7eb2f0bd2d88886c679582b85a74ee4a6b77b2d07617b85089da420"]`;

const VKEY_JSON = `{
"curve": "Bn254",
"alphaG1": "0xf23ecc6fdae0957b6f9901baa097ec1192a97795a65ef10147345343eb4901183096f9296b8d74135878afea791ad1e053c33460fefb392c61925bb086a3dda5",
"betaG2": "0xa17eb8514763a6f1bb824ee9da47097c8529e799f026f544e8e5bdb565f027007313fe210c046dca53e3ecbe79fe12a6dcbadec7e6e370854c49c7768a9088091512d8f91c6c6f2e78b0438ecb511fbd63e0235534d09a0b1643222d841a130cd3b32b17890c6e832aca76c4e28cb31cab8876cf0550881d115edaa9e39da4ad",
"gammaG2": "0xc57b18d336c2bfd4693a08c7ad91d82c9bc761f569273f15d0b3d3b341f0e11cdf8728fb8d2375eeba14f081b7ed4cb67f7c10197ea90cbb5012bfb8ee820001485d3dd137e7baf0594b73c7b954fa60f0bf5344299d80349ad3a44e2fef962365a8188bf3e4b3769246ef2fb123c5354e868ed667953f513ff72d042678cd02",
"deltaG2": "0x66bdd7020e111de2367423d630c6b046a1d23ef4aa4983f4476d87bf705b4328ffe5147b93264bf90e0ed74585f43910b43bf0188d86cbd236ea687d0ff7e22d3f2f288e408e98937c1febcbe43874c5ce465bde5cbd6e9628138c26a656dd222d493505af528ff9e12dcd0bbdefa5c97fb502440cfa097045abef314456050a",
"gammaAbcG1": [
"0x2c3c89c560512b2d0b08da1e848f41d6ca559d1b58df315625e95ab0310e3b0f4976fe82316d238aa35b63cdff2f0ef108b9d76c6b45f1eb57dbdfcbe663dc9d",
"0x254fe8f76591c219562ede7a5807212abc9427bdb012a9145fe48fe49077711d36bef432122d026d20ed95a2c1e3d7f0c63e6349e112d6786722f40fa6589811"
]
}`;

const PROOF: Proof = JSON.parse(PROOF_JSON);
const INVALID_PROOF: Proof = JSON.parse(INVALID_PROOF_JSON);
const PUBS: string[] = JSON.parse(PUBS_JSON);
const VK: VerificationKey = JSON.parse(VKEY_JSON);

export const groth16ProofData: ProofData = {
proof: PROOF,
invalid_proof: INVALID_PROOF,
pubs: PUBS,
vk: VK
};
18 changes: 18 additions & 0 deletions e2e-tests/data/risc0.ts

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions e2e-tests/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,22 @@ services:
local_node:
image: horizenlabs/zkverify:latest
env_file:
- ./services/nh-core/docker/resources/envs/.env.local
- ./services/zkVerify/docker/resources/envs/.env.local
ports:
- "9944:9944"
- "30333:30333"

node_alice:
image: horizenlabs/zkverify:latest
env_file:
- ./services/nh-core/docker/resources/envs/.env.alice
- ./services/zkVerify/docker/resources/envs/.env.alice

node_bob:
image: horizenlabs/zkverify:latest
env_file:
- ./services/nh-core/docker/resources/envs/.env.bob
- ./services/zkVerify/docker/resources/envs/.env.bob
volumes:
- ./services/nh-core/docker/resources/deploy:/data/config
- ./services/zkVerify/docker/resources/deploy:/data/config

attestation-bot:
build:
Expand Down
6 changes: 3 additions & 3 deletions e2e-tests/ethereum/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,14 @@ export async function pollLatestAttestationId(expectedId: number, timeout: numbe
while (Date.now() < endTime) {
const latestAttestationId = await getLatestAttestationId();
if (latestAttestationId === expectedId) {
console.log(`Expected attestation ID ${expectedId} found.`);
console.log(`Expected attestation ID ${expectedId} found on Ethereum zkVerify contract.`);
return true;
}
const elapsed = (timeout - (endTime - Date.now())) / 1000;
console.log(`Polling for attestation ID... elapsed time: ${elapsed.toFixed(2)} seconds`);
console.log(`Polling Ethereum zkVerify contract for attestation ID... elapsed time: ${elapsed.toFixed(2)} seconds`);
await new Promise(resolve => setTimeout(resolve, interval));
}

console.log(`Timeout reached while polling for attestation ID ${expectedId}.`);
console.log(`Timeout reached while polling Ethereum zkVerify contract for attestation ID ${expectedId}.`);
return false;
}
50 changes: 24 additions & 26 deletions e2e-tests/proofs/index.ts
Original file line number Diff line number Diff line change
@@ -1,48 +1,46 @@
import { fflonkProofData } from '../data/fflonk';
import { boojumProofData } from '../data/boojum';
import { risc0ProofData } from '../data/risc0';
import { groth16ProofData } from '../data/groth16';

export interface Proofs {
[key: string]: {
pallet: string;
validProof: string;
invalidProof: string;
params?: any[];
getParams: (valid: boolean) => any[];
};
}

const getEnvVariable = (key: string): string => {
const value = process.env[key];
if (!value) {
throw new Error(`Environment variable ${key} is not set.`);
}
return value;
};

export const proofs: Proofs = {
fflonk: {
pallet: 'settlementFFlonkPallet',
validProof: getEnvVariable('FFLONK_PROOF'),
invalidProof: getEnvVariable('INVALID_FFLONK_PROOF'),
params: [null]
getParams: (valid: boolean) => [
{ 'Vk': fflonkProofData.vk },
valid ? fflonkProofData.proof : fflonkProofData.invalid_proof,
fflonkProofData.pubs
],
},
boojum: {
pallet: 'settlementZksyncPallet',
validProof: getEnvVariable('BOOJUM_PROOF'),
invalidProof: getEnvVariable('INVALID_BOOJUM_PROOF')
getParams: (valid: boolean) => [
{ 'Vk': boojumProofData.vk },
valid ? boojumProofData.proof : boojumProofData.invalid_proof,
boojumProofData.pubs
]
},
risc0: {
pallet: 'settlementRisc0Pallet',
validProof: getEnvVariable('RISC0_PROOF'),
invalidProof: getEnvVariable('INVALID_RISC0_PROOF'),
params: [
getEnvVariable('VK_RISC0'),
getEnvVariable('PUBS_RISC0')
getParams: (valid: boolean) => [
{ 'Vk': risc0ProofData.vk },
valid ? risc0ProofData.proof : risc0ProofData.invalid_proof,
risc0ProofData.pubs
]
},
groth16: {
pallet: 'settlementGroth16Pallet',
validProof: JSON.parse(getEnvVariable('GROTH16_PROOF')),
invalidProof: JSON.parse(getEnvVariable('INVALID_GROTH16_PROOF')),
params: [
JSON.parse(getEnvVariable('VK_GROTH16')),
JSON.parse(getEnvVariable('INPUTS_GROTH16'))
getParams: (valid: boolean) => [
{ 'Vk': groth16ProofData.vk },
valid ? groth16ProofData.proof : groth16ProofData.invalid_proof,
groth16ProofData.pubs
]
}
};
Loading

0 comments on commit c9ade1f

Please sign in to comment.