Skip to content

Commit f17129e

Browse files
committed
fixed tests
1 parent 267ff83 commit f17129e

File tree

1 file changed

+45
-14
lines changed

1 file changed

+45
-14
lines changed

sdk/tests/wasm.test.ts

Lines changed: 45 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { expect } from "chai";
2-
import { Address, Field, PrivateKey, ViewKey, Signature, RecordCiphertext, RecordPlaintext, PrivateKeyCiphertext, EncryptionToolkit, Transition } from "../src/node.js";
2+
import { Address, AleoNetworkClient, Field, PrivateKey, ViewKey, Signature, RecordCiphertext, RecordPlaintext, PrivateKeyCiphertext, EncryptionToolkit, Transition } from "../src/node.js";
33
import {
44
seed,
55
message,
@@ -383,34 +383,65 @@ describe('WASM Objects', () => {
383383
});
384384

385385
describe('Transition', () => {
386-
const transitionString = `{"id":"au1u62jasyx78x9hktak24awyj38fz73aseq8g9cx98u8egd9pj9uxq3u6s2z","program":"hello_hello.aleo","function":"hello","inputs":[{"type":"public","id":"3748790614260807060977840590007893602934308327222309419419577452790958781330field","value":"1u32"},{"type":"private","id":"5954208307642819953251922459490586292095132973876550778604572231610245257004field","value":"ciphertext1qyq0m5mp0d2gzh2pv9p25z70gz2avhqdt3dp8y8thzwf3aq6g35zcqcuyptz3"}],"outputs":[{"type":"private","id":"1557506318887190915592751299113729867877933642317637206076176689093854281418field","value":"ciphertext1qyqzmhw8ln9r6uuyh0n5jrsqlt25wdggqp3d9yqyttpr3g7g00k2sysdf9rmv"}],"tpk":"7532444547840484531569841377269810017844130178606467837628364672670182422388group","tcm":"7292056195970541935877520517416922164990366931599720071937561392936678536563field","scm":"8283770351301010771186520129040704279224805960417079922462917369178354050332field"}`;
387-
const transition = Transition.fromString(transitionString);
388-
const transitionDecryptedString = `{"id":"au1mhdz6jqm973v5vfkz2pwgv63p340c9tpvydxha2zs8w03746qcpqvx3yye","program":"hello_hello.aleo","function":"hello","inputs":[{"type":"public","id":"3748790614260807060977840590007893602934308327222309419419577452790958781330field","value":"1u32"},{"type":"public","id":"5954208307642819953251922459490586292095132973876550778604572231610245257004field","value":"2u32"}],"outputs":[{"type":"public","id":"1557506318887190915592751299113729867877933642317637206076176689093854281418field","value":"3u32"}],"tpk":"7532444547840484531569841377269810017844130178606467837628364672670182422388group","tcm":"7292056195970541935877520517416922164990366931599720071937561392936678536563field","scm":"8283770351301010771186520129040704279224805960417079922462917369178354050332field"}`
389-
const transitionDecrypted = Transition.fromString(transitionDecryptedString);
386+
const transitionStringTestnet = `{"id":"au1u62jasyx78x9hktak24awyj38fz73aseq8g9cx98u8egd9pj9uxq3u6s2z","program":"hello_hello.aleo","function":"hello","inputs":[{"type":"public","id":"3748790614260807060977840590007893602934308327222309419419577452790958781330field","value":"1u32"},{"type":"private","id":"5954208307642819953251922459490586292095132973876550778604572231610245257004field","value":"ciphertext1qyq0m5mp0d2gzh2pv9p25z70gz2avhqdt3dp8y8thzwf3aq6g35zcqcuyptz3"}],"outputs":[{"type":"private","id":"1557506318887190915592751299113729867877933642317637206076176689093854281418field","value":"ciphertext1qyqzmhw8ln9r6uuyh0n5jrsqlt25wdggqp3d9yqyttpr3g7g00k2sysdf9rmv"}],"tpk":"7532444547840484531569841377269810017844130178606467837628364672670182422388group","tcm":"7292056195970541935877520517416922164990366931599720071937561392936678536563field","scm":"8283770351301010771186520129040704279224805960417079922462917369178354050332field"}`;
387+
const transitionTestnet = Transition.fromString(transitionStringTestnet);
388+
const transitionDecryptedStringTestnet = `{"id":"au1mhdz6jqm973v5vfkz2pwgv63p340c9tpvydxha2zs8w03746qcpqvx3yye","program":"hello_hello.aleo","function":"hello","inputs":[{"type":"public","id":"3748790614260807060977840590007893602934308327222309419419577452790958781330field","value":"1u32"},{"type":"public","id":"5954208307642819953251922459490586292095132973876550778604572231610245257004field","value":"2u32"}],"outputs":[{"type":"public","id":"1557506318887190915592751299113729867877933642317637206076176689093854281418field","value":"3u32"}],"tpk":"7532444547840484531569841377269810017844130178606467837628364672670182422388group","tcm":"7292056195970541935877520517416922164990366931599720071937561392936678536563field","scm":"8283770351301010771186520129040704279224805960417079922462917369178354050332field"}`
389+
const transitionDecryptedTestnet = Transition.fromString(transitionDecryptedStringTestnet);
390+
const transitionViewKeyStringTestnet = "3975242887442171718863200089461896014344887434842278474302914755871123010247field";
391+
392+
const transitionStringMainnet = `{"id":"au1mguuz0dh20f78802m4z0py7n08xhl0pz60llzck63mhl8pc8l5xqxpwgtn","program":"hello_hello.aleo","function":"main","inputs":[{"type":"public","id":"6393584049543470937057043098611271993206122889317039351966319038535020834557field","value": "1u32"},{"type":"private","id":"8207446256045172951742235001162005156507562935942883128759030124682934277495field","value":"ciphertext1qyqqgz9qnupeld9vr4vuwp6yrpmhgtkvmgag5m7mmrruw0r6je666qgqdswk3"}],"outputs":[{"type":"private","id":"127469473292952941321346770257126666363371158501875622169294663492714835110field","value":"ciphertext1qyqyapkjuxm9dcslgyjf7hkr2k3dek500z40gjspnwvll0uawj23vzgggc405"}],"tpk":"7647553513996966044119163122930125808381703910407273818947266861843062002251group","tcm":"4479413938380109857414238205380483440836495997450846894155088299187217672609field","scm":"6461007226176477784737642021400489186736987671609840640950580467598882134642field"}`;
393+
const transitionMainnet = Transition.fromString(transitionStringMainnet);
394+
const transitionDecryptedStringMainnet = `{"id":"au1jl2ur42sj7hwe4r0alv6gnklqxj0fszrvu3q82gjcls5x6q9pyzqdgmu2k","program":"hello_hello.aleo","function":"main","inputs":[{"type":"public","id":"6393584049543470937057043098611271993206122889317039351966319038535020834557field","value":"1u32"},{"type":"public","id":"8207446256045172951742235001162005156507562935942883128759030124682934277495field","value":"2u32"}],"outputs":[{"type":"public","id":"127469473292952941321346770257126666363371158501875622169294663492714835110field","value":"3u32"}],"tpk":"7647553513996966044119163122930125808381703910407273818947266861843062002251group","tcm":"4479413938380109857414238205380483440836495997450846894155088299187217672609field","scm":"6461007226176477784737642021400489186736987671609840640950580467598882134642field"}`;
395+
const transitionDecryptedMainnet = Transition.fromString(transitionDecryptedStringMainnet);
396+
const transitionViewKeyStringMainnet = "8161419549946991944867064830365679191883723972221767444308198038592561311302field";
397+
390398
const invalidTransitionViewKeyString = "5089075468761042335883809641276568724119791331127957254389204093712358605127field"
391399
const invalidTransitionViewKey = Field.fromString(invalidTransitionViewKeyString);
392400
const privateKey = PrivateKey.from_string("APrivateKey1zkp8CZNn3yeCseEtxuVPbDCwSyhGW6yZKUYKfgXmcpoGPWH");
393401
const viewKey = privateKey.to_view_key();
394-
const tvk = transition.tvk(viewKey);
395402

403+
let connection = new AleoNetworkClient("https://api.explorer.provable.com/v1");
404+
405+
if (connection.network === "testnet") {
396406
it('can be decrypted with a valid transition view key', () => {
397-
const transitionDecryptedWithTVK = transition.decryptTransition(tvk);
407+
const tvk = transitionTestnet.tvk(viewKey);
408+
const transitionDecryptedWithTVK = transitionTestnet.decryptTransition(tvk);
398409
// Ensure the transition is valid
399-
expect(transitionDecryptedWithTVK.toString()).equal(transitionDecrypted.toString());
410+
expect(transitionDecryptedWithTVK.toString()).equal(transitionDecryptedTestnet.toString());
400411
});
401412

402413
it('cannot be decrypted with an invalid transition view key', () => {
403-
expect(() => transition.decryptTransition(invalidTransitionViewKey).toThrow());
414+
expect(() => transitionTestnet.decryptTransition(invalidTransitionViewKey).toThrow());
404415
});
405416

406417
it('can generate a transition view key from a valid view key', () => {
407-
const generatedTransitionViewKey = transition.tvk(viewKey);
418+
const generatedTransitionViewKey = transitionTestnet.tvk(viewKey);
408419

409-
const generatedTransitionViewKeyFromEncryptionToolkit = EncryptionToolkit.generateTransitionViewKey(viewKey, transition);
410420
// Ensure the generated transition view key is the same as the one used to decrypt
411-
expect(generatedTransitionViewKey.toString()).equal(generatedTransitionViewKeyFromEncryptionToolkit.toString());
421+
expect(generatedTransitionViewKey.toString()).equal(transitionViewKeyStringTestnet);
412422
});
413-
});
423+
}
424+
if (connection.network === "mainnet") {
425+
const tvk = transitionMainnet.tvk(viewKey);
426+
it('can be decrypted with a valid transition view key', () => {
427+
const transitionDecryptedWithTVK = transitionMainnet.decryptTransition(tvk);
428+
// Ensure the transition is valid
429+
expect(transitionDecryptedWithTVK.toString()).equal(transitionDecryptedMainnet.toString());
430+
});
431+
432+
it('cannot be decrypted with an invalid transition view key', () => {
433+
expect(() => transitionMainnet.decryptTransition(invalidTransitionViewKey)).to.throw();
434+
});
435+
436+
it('can generate a transition view key from a valid view key', () => {
437+
const generatedTransitionViewKey = transitionMainnet.tvk(viewKey);
438+
439+
// Ensure the generated transition view key is the same as the one used to decrypt
440+
expect(generatedTransitionViewKey.toString()).equal(transitionViewKeyStringMainnet);
441+
});
442+
}
443+
});
444+
414445

415446
describe('EncryptionToolkit', () => {
416447
const recordCiphertextString = "record1qyqsqpe2szk2wwwq56akkwx586hkndl3r8vzdwve32lm7elvphh37rsyqyxx66trwfhkxun9v35hguerqqpqzqrtjzeu6vah9x2me2exkgege824sd8x2379scspmrmtvczs0d93qttl7y92ga0k0rsexu409hu3vlehe3yxjhmey3frh2z5pxm5cmxsv4un97q";
@@ -434,7 +465,7 @@ owner: aleo1j7qxyunfldj2lp8hsvy7mw5k8zaqgjfyr72x2gh3x4ewgae8v5gscf5jh3.private,
434465
it('can decrypt a record ciphertext with the record view key', () => {
435466
const decryptedRecord = EncryptionToolkit.decryptRecordWithRVk(recordViewKey, recordCiphertext);
436467
// Ensure the decrypted record is the same as the plaintext
437-
expect(decryptedRecord).equal(recordPlaintext);
468+
expect(decryptedRecord.toString()).equal(recordPlaintext.toString());
438469
});
439470
it('cannot decrypt a record ciphertext with an invalid record view key', () => {
440471
const invalidRecordViewKey = Field.fromString("4445718830394614891114647247073357114867447866913203502139893824059966201724field");

0 commit comments

Comments
 (0)