From 177e2ee0433adf910bdc7165f745d409d102f8dd Mon Sep 17 00:00:00 2001 From: Apisit Ritreungroj <38898766+apskhem@users.noreply.github.com> Date: Mon, 23 Sep 2024 16:30:57 +0700 Subject: [PATCH 01/23] feat(cat-voices): Add CIP-39 seed phrase utility (#852) * feat: bip39 * fix: constructor * refactor: single class * fix: docs * test: initial test * fix: typo * refactor: seed phrase class * test: seed phrase words * feat: full words * fix: cspell * refactor: move to models * refactor: rename test folder * test: add exceeding cases * refactor: test array * fix: linter for a file --- .../lib/src/seed_phrase.dart | 70 ++++++++++++++++++ .../catalyst_voices_models/pubspec.yaml | 2 + .../test/seed_phrase_test.dart | 74 +++++++++++++++++++ melos.yaml | 1 + 4 files changed, 147 insertions(+) create mode 100644 catalyst_voices/packages/catalyst_voices_models/lib/src/seed_phrase.dart create mode 100644 catalyst_voices/packages/catalyst_voices_models/test/seed_phrase_test.dart diff --git a/catalyst_voices/packages/catalyst_voices_models/lib/src/seed_phrase.dart b/catalyst_voices/packages/catalyst_voices_models/lib/src/seed_phrase.dart new file mode 100644 index 0000000000..1b49fe942a --- /dev/null +++ b/catalyst_voices/packages/catalyst_voices_models/lib/src/seed_phrase.dart @@ -0,0 +1,70 @@ +// cspell: words wordlists WORDLIST +// ignore_for_file: implementation_imports + +import 'dart:typed_data'; +import 'package:bip39/bip39.dart' as bip39; +import 'package:bip39/src/wordlists/english.dart'; +import 'package:convert/convert.dart'; + +/// Represents a seed phrase consisting of a mnemonic and provides methods for +/// generating and deriving cryptographic data from the mnemonic. +/// +/// The `SeedPhrase` class allows creation of a seed phrase either randomly, +/// from a given mnemonic, or from entropy data. It supports converting between +/// different formats, including Uint8List and hex strings. +class SeedPhrase { + /// The mnemonic phrase + final String mnemonic; + + /// Generates a new seed phrase with a random mnemonic. + /// + /// Throws an [ArgumentError] if the word count is invalid. + /// + /// [wordCount]: The number of words in the mnemonic. + /// The default word count is 12, but can specify 12, 15, 18, 21, or 24 words. + /// with a higher word count providing greater entropy and security. + SeedPhrase({int wordCount = 12}) + : this.fromMnemonic( + bip39.generateMnemonic( + strength: (wordCount * 32) ~/ 3, + ), + ); + + /// Creates a SeedPhrase from an existing [Uint8List] entropy. + /// + /// [encodedData]: The entropy data as a Uint8List. + SeedPhrase.fromUint8ListEntropy(Uint8List encodedData) + : this.fromHexEntropy(hex.encode(encodedData)); + + /// Creates a SeedPhrase from an existing hex-encoded entropy. + /// + /// [encodedData]: The entropy data as a hex string. + SeedPhrase.fromHexEntropy(String encodedData) + : this.fromMnemonic(bip39.entropyToMnemonic(encodedData)); + + /// Creates a SeedPhrase from an existing [mnemonic]. + /// + /// Throws an [ArgumentError] if the mnemonic is invalid. + /// + /// [mnemonic]: The mnemonic to derive the seed from. + SeedPhrase.fromMnemonic(this.mnemonic) + : assert(bip39.validateMnemonic(mnemonic), 'Invalid mnemonic phrase'); + + /// The seed derived from the mnemonic as a Uint8List. + Uint8List get uint8ListSeed => bip39.mnemonicToSeed(mnemonic); + + /// The seed derived from the mnemonic as a hex-encoded string. + String get hexSeed => bip39.mnemonicToSeedHex(mnemonic); + + /// The entropy derived from the mnemonic as a Uint8List. + Uint8List get uint8ListEntropy => Uint8List.fromList(hex.decode(hexEntropy)); + + /// The entropy derived from the mnemonic as a hex-encoded string. + String get hexEntropy => bip39.mnemonicToEntropy(mnemonic); + + /// The mnemonic phrase as a list of individual words. + List get mnemonicWords => mnemonic.split(' '); + + /// The full list of BIP-39 mnemonic words in English. + static List get wordList => WORDLIST; +} diff --git a/catalyst_voices/packages/catalyst_voices_models/pubspec.yaml b/catalyst_voices/packages/catalyst_voices_models/pubspec.yaml index a25c85724b..0a336b0d57 100644 --- a/catalyst_voices/packages/catalyst_voices_models/pubspec.yaml +++ b/catalyst_voices/packages/catalyst_voices_models/pubspec.yaml @@ -7,7 +7,9 @@ environment: sdk: ">=3.5.0 <4.0.0" dependencies: + bip39: ^1.0.6 catalyst_cardano_serialization: ^0.4.0 + convert: ^3.1.1 equatable: ^2.0.5 flutter_quill: ^10.5.13 meta: ^1.10.0 diff --git a/catalyst_voices/packages/catalyst_voices_models/test/seed_phrase_test.dart b/catalyst_voices/packages/catalyst_voices_models/test/seed_phrase_test.dart new file mode 100644 index 0000000000..de075d6356 --- /dev/null +++ b/catalyst_voices/packages/catalyst_voices_models/test/seed_phrase_test.dart @@ -0,0 +1,74 @@ +import 'package:bip39/bip39.dart' as bip39; +import 'package:catalyst_voices_models/src/seed_phrase.dart'; +import 'package:flutter_test/flutter_test.dart'; + +void main() { + group(SeedPhrase, () { + test('should generate a new SeedPhrase with random mnemonic', () { + final seedPhrase = SeedPhrase(); + expect(seedPhrase.mnemonic, isNotEmpty); + expect(seedPhrase.uint8ListSeed, isNotEmpty); + expect(seedPhrase.hexSeed, isNotEmpty); + expect(seedPhrase.mnemonicWords.length, 12); + }); + + test('should generate a seed phrase with 12, 15, 18, 21, and 24 words', () { + for (final wordCount in [12, 15, 18, 21, 24]) { + final seedPhrase = SeedPhrase(wordCount: wordCount); + expect(seedPhrase.mnemonicWords.length, wordCount); + expect(bip39.validateMnemonic(seedPhrase.mnemonic), isTrue); + } + }); + + test('should throw an error for an invalid word count', () { + expect(() => SeedPhrase(wordCount: 9), throwsA(isA())); + expect(() => SeedPhrase(wordCount: 13), throwsA(isA())); + expect(() => SeedPhrase(wordCount: 27), throwsA(isA())); + }); + + test('should create SeedPhrase from a valid mnemonic', () { + final validMnemonic = bip39.generateMnemonic(); + final seedPhrase = SeedPhrase.fromMnemonic(validMnemonic); + expect(seedPhrase.mnemonic, validMnemonic); + expect(seedPhrase.hexSeed, bip39.mnemonicToSeedHex(validMnemonic)); + }); + + test('should create SeedPhrase from hex-encoded entropy', () { + final entropy = bip39.mnemonicToEntropy(bip39.generateMnemonic()); + final seedPhrase = SeedPhrase.fromHexEntropy(entropy); + + expect(seedPhrase.mnemonic, isNotEmpty); + expect(seedPhrase.hexEntropy, entropy); + }); + + test('should throw an error for invalid mnemonic', () { + const invalidMnemonic = 'invalid mnemonic phrase'; + expect( + () => SeedPhrase.fromMnemonic(invalidMnemonic), + throwsA( + isA().having( + (e) => e.message, + 'message', + contains('Invalid mnemonic phrase'), + ), + ), + ); + }); + + test('should contain consistent mnemonic and seed in generated SeedPhrase', + () { + final seedPhrase = SeedPhrase(); + final mnemonic = seedPhrase.mnemonic; + final seed = seedPhrase.hexSeed; + + expect(bip39.mnemonicToSeedHex(mnemonic), seed); + }); + + test('should split mnemonic into a list of words', () { + final mnemonic = bip39.generateMnemonic(); + final seedPhrase = SeedPhrase.fromMnemonic(mnemonic); + final expectedWords = mnemonic.split(' '); + expect(seedPhrase.mnemonicWords, expectedWords); + }); + }); +} diff --git a/melos.yaml b/melos.yaml index 2e38ced9f7..345b88fae7 100644 --- a/melos.yaml +++ b/melos.yaml @@ -19,6 +19,7 @@ command: flutter: ">=3.24.1" dependencies: asn1lib: ^1.5.3 + bip39: ^1.0.6 bloc_concurrency: ^0.2.2 collection: ^1.18.0 cryptography: ^2.7.0 From b2a1ddec72257c9a299d00362805e383bb2121e1 Mon Sep 17 00:00:00 2001 From: Pal Dorogi <1113398+ilap@users.noreply.github.com> Date: Mon, 23 Sep 2024 12:40:20 +0200 Subject: [PATCH 02/23] feat(dart/catalyst_cardano_serialization): add support for additional transaction body fields (#858) * feat(transaction_builder): add support for additional transaction body fields (#710) * fix(catalyst_cardano_serialization): add missing properties to Transaction constructor in `_buildBody()` * docs(catalyst_cardano_serialization): Correct typo in transaction builder class Co-authored-by: Dominik Toton <166132265+dtscalac@users.noreply.github.com> --------- Co-authored-by: Steven Johnson Co-authored-by: Dominik Toton <166132265+dtscalac@users.noreply.github.com> --- .../catalyst_cardano_serialization/README.md | 14 ++--- .../lib/src/builders/transaction_builder.dart | 55 ++++++++++++++++++- 2 files changed, 60 insertions(+), 9 deletions(-) diff --git a/catalyst_voices_packages/catalyst_cardano_serialization/README.md b/catalyst_voices_packages/catalyst_cardano_serialization/README.md index 7354c3ecce..4cb692b5d5 100644 --- a/catalyst_voices_packages/catalyst_cardano_serialization/README.md +++ b/catalyst_voices_packages/catalyst_cardano_serialization/README.md @@ -194,15 +194,15 @@ Byron era addresses are not supported. | 5 = reward withdrawals | ❌️ | | 6 = protocol parameter update | ❌️ | | 7 = auxiliary_data_hash | ✔️ | -| 8 = validity interval start | ❌️ | -| 9 = mint | ❌️ | -| 11 = script_data_hash | ❌️ | -| 13 = collateral inputs | ❌️ | +| 8 = validity interval start | ✔️ | +| 9 = mint | ✔️ | +| 11 = script_data_hash | ✔️ | +| 13 = collateral inputs | ✔️ | | 14 = required signers | ✔️ | | 15 = network_id | ✔️ | -| 16 = collateral return | ❌️ | -| 17 = total collateral | ❌️ | -| 18 = reference inputs | ❌️ | +| 16 = collateral return | ✔️ | +| 17 = total collateral | ✔️ | +| 18 = reference inputs | ✔️ | ## Reference documentation diff --git a/catalyst_voices_packages/catalyst_cardano_serialization/lib/src/builders/transaction_builder.dart b/catalyst_voices_packages/catalyst_cardano_serialization/lib/src/builders/transaction_builder.dart index b6470a4676..96d071ace6 100644 --- a/catalyst_voices_packages/catalyst_cardano_serialization/lib/src/builders/transaction_builder.dart +++ b/catalyst_voices_packages/catalyst_cardano_serialization/lib/src/builders/transaction_builder.dart @@ -38,13 +38,34 @@ final class TransactionBuilder extends Equatable { /// The transaction metadata as a list of key-value pairs (a map). final AuxiliaryData? auxiliaryData; - /// The list of public key hashes of addresses - /// that are required to sign the transaction. + /// Validity interval start as integer. + final SlotBigNum? validityStart; + + /// Mint as a non-zero uint64 multiasset. + final MultiAsset? mint; + + /// The transaction metadata as a list of key-value pairs (a map). + final ScriptData? scriptData; + + /// Collateral inputs as nonempty set. + final Set? collateralInputs; + + /// The list of public key hashes of addresses that are required to sign the + /// transaction. A nonempty set of addr key hashes. final Set? requiredSigners; /// Specifies on which network the code will run. final NetworkId? networkId; + /// Collateral return's transaction output. + final ShelleyMultiAssetTransactionOutput? collateralReturn; + + /// Total collateral as coin (uint64). + final Coin? totalCollateral; + + /// Reference inputs as nonempty set of transaction inputs. + final Set? referenceInputs; + /// The builder that builds the witness set of the transaction. /// /// The caller must know in advance how many witnesses there will be to @@ -60,8 +81,15 @@ final class TransactionBuilder extends Equatable { this.fee, this.ttl, this.auxiliaryData, + this.validityStart, + this.mint, + this.scriptData, + this.collateralInputs, this.requiredSigners, this.networkId, + this.collateralReturn, + this.totalCollateral, + this.referenceInputs, this.witnessBuilder = const TransactionWitnessSetBuilder( vkeys: {}, vkeysCount: 1, @@ -232,8 +260,15 @@ final class TransactionBuilder extends Equatable { fee, ttl, auxiliaryData, + validityStart, + mint, + scriptData, + collateralInputs, requiredSigners, networkId, + collateralReturn, + totalCollateral, + referenceInputs, witnessBuilder, ]; @@ -476,8 +511,17 @@ final class TransactionBuilder extends Equatable { auxiliaryDataHash: auxiliaryData != null ? AuxiliaryDataHash.fromAuxiliaryData(auxiliaryData!) : null, + validityStart: validityStart, + mint: mint, + scriptDataHash: scriptData != null + ? ScriptDataHash.fromScriptData(scriptData!) + : null, + collateralInputs: collateralInputs, requiredSigners: requiredSigners, networkId: networkId, + collateralReturn: collateralReturn, + totalCollateral: totalCollateral, + referenceInputs: referenceInputs, ); } @@ -493,8 +537,15 @@ final class TransactionBuilder extends Equatable { fee: fee ?? this.fee, ttl: ttl, auxiliaryData: auxiliaryData, + validityStart: validityStart, + mint: mint, + scriptData: scriptData, + collateralInputs: collateralInputs, requiredSigners: requiredSigners, networkId: networkId, + collateralReturn: collateralReturn, + totalCollateral: totalCollateral, + referenceInputs: referenceInputs, witnessBuilder: witnessBuilder ?? this.witnessBuilder, ); } From 1ce946514bc6d6702ce39debe873fb6f1d93f28e Mon Sep 17 00:00:00 2001 From: Alex Pozhylenkov Date: Mon, 23 Sep 2024 13:56:25 +0300 Subject: [PATCH 03/23] docs: Jormungandr voting crypto proofs spec. (#862) * add Non-Interactive ZK Tally Proof appendix * fix * fix markdown check * fix spelling * add Non-Interactive ZK Vote Proof Proover section and Verifier section * Finish verifier description * wip * fix spelling * fix --- .../08_concepts/voting_transaction/crypto.md | 320 +++++++++++++++--- 1 file changed, 276 insertions(+), 44 deletions(-) diff --git a/docs/src/architecture/08_concepts/voting_transaction/crypto.md b/docs/src/architecture/08_concepts/voting_transaction/crypto.md index f8dd29a8cf..5ae02eeaa1 100644 --- a/docs/src/architecture/08_concepts/voting_transaction/crypto.md +++ b/docs/src/architecture/08_concepts/voting_transaction/crypto.md @@ -28,7 +28,7 @@ and performing tally process for executing "Catalyst" fund events. ### Preliminaries -Through this paper we will use the following notations to refer to some entities of this protocol: +The protocol is based around the following entities: * **Proposal** - voting subject on which each voter will be cast their votes. @@ -49,13 +49,9 @@ Through this paper we will use the following notations to refer to some entities Or it could be defined based on their stake in the blockchain, which is more appropriate for web3 systems. -Important to note that current protocol defined to work with the one specific proposal, -so all definitions and procedures would be applied for some proposal. +Important to note that the protocol defined for some **one** proposal. Obviously, it could be easily scaled for a set of proposals, -performing all this protocol in parallel. - -The voting committee and voters registration/definition -are not subjects of this document. +performing protocol steps in parallel. ### Initial setup @@ -125,10 +121,10 @@ components would be defined as follows: -After the choice is done, -vote **must** be encrypted using shared shared election public key $pk$. +After the choice is done (described in [section](#voting-choice)), +vote **must** be encrypted using shared election public key $pk$. -Lifted ElGamal encryption algorithm is used, +To achieve that, Lifted ElGamal encryption algorithm is used, noted as $ElGamalEnc(message, randomness, public \; key)$. More detailed description of the lifted ElGamal algorithm you can find in the [appendix B](#b-lifted-elgamal-encryptiondecryption). @@ -138,17 +134,16 @@ $ElGamalEnc(message, randomness, public \; key)$ algorithm produces a ciphertext c = ElGamalEnc(message, randomness, public \; key) \end{equation} -To encode previously generated unit vector $\mathbf{e}_i$ ($i$ - voting choice identifier), -in more details you can read in this [section](#voting-choice), +To encrypt previously generated unit vector $\mathbf{e}_i$ ($i$ - voting choice identifier), for each vector component value $e_{i,j}$ generate a corresponding randomness.
Lets denote randomness value as $r_j$, -where $j$ states as the same identifier of the vector component $e_{i,j}$. +where $j$ is the same vector component's index $j$ value, $e_{i, j} => r_j$. -Then, for each vector component $e_{i,j}$ with the corresponding randomness, +Then, for each vector component $e_{i,j}$ with the corresponding randomness $r_j$, perform encryption algorithm applying shared election public key $pk$. \begin{equation} -c_j = Enc(e_{i,j}, r_j, pk) +c_j = ElGamalEnc(e_{i,j}, r_j, pk) \end{equation} As a result getting a vector $\mathbf{c}$ of ciphertext values $c_f$, @@ -156,10 +151,10 @@ with the size equals of the size $\mathbf{e}_t$ unit vector, equals to the amount of the voting options. Lets denote this vector as: \begin{equation} -\mathbf{c} = (c_1, \ldots, c_{M}) +\mathbf{c} = (c_1, \ldots, c_{M}) = (ElGamalEnc(e_{i,j}, r_j, pk), \ldots, ElGamalEnc(e_{i,M}, r_M, pk)) \end{equation} -where $M$ is the voting options amount. +where $M$ is the voting options amount and $i$ is the index of the voting choice. This is a first part of the published vote for a specific proposal. @@ -171,7 +166,7 @@ After the voter's choice is generated and encrypted, it is crucial to prove that [encoding](#voting-choice) and [encryption](#vote-encrypting) are formed correctly (i.e. that the voter indeed encrypt a unit vector). -Because by the definition of the encryption algorithm $Enc(message, randomness, public \; key)$ +Because by the definition of the encryption algorithm $ElGamalEnc(message, randomness, public \; key)$ it is possible to encrypt an any message value, it is not restricted for encryption only $0$ and $1$ values (as it was stated in the previous [section](#voting-choice), @@ -181,22 +176,28 @@ so everyone could validate a correctness of the encrypted vote data, without revealing a voting choice itself. To achieve that a some sophisticated ZK (Zero Knowledge) algorithm is used, -noted as $VotingChoiceProof(\mathbf{c})$. -It takes an encrypted vote vector $\mathbf{c}$ and generates a proof value $\pi$. +noted as $VoteProof(\mathbf{c}, \mathbf{e}_i, \mathbf{r}, pk)$. +It takes an encrypted vote vector $\mathbf{c}$, +an original vote unit vector $\mathbf{e}_i$, +a randomness vector $\mathbf{r}$, +which was used during encryption algorithm $ElGamalEnc$ +and an shared election public key $pk$. +As a result it generates a proof value $\pi$. \begin{equation} -\pi = VotingChoiceProof(\mathbf{c}) +\pi = VoteProof(\mathbf{c}, \mathbf{e}_i, \mathbf{r}, pk) \end{equation} -So to validate a $VotingChoiceCheck(\mathbf{c}, \pi)$ procedure should be used, -which takes an encrypted vote $\mathbf{c}$ and corresponded proof $\pi$ +So to validate a $VoteCheck(\mathbf{c}, \pi, pk)$ procedure should be used, +which takes an encrypted vote $\mathbf{c}$, corresponded proof $\pi$ +and the same hared election public key $pk$ as arguments and returns `true` or `false`, is it valid or not. \begin{equation} -true | false = VotingChoiceCheck(\mathbf{c}, \pi) +true | false = VoteCheck(\mathbf{c}, \pi, pk) \end{equation} -A more detailed description of how $VotingChoiceProof$, $VotingChoiceCheck$ work -you can find in the section *2.4* of this [paper][treasury_system_spec]. +A more detailed description of how $VoteProof$, $VoteCheck$ work +you can find in the [appendix D](#d-non-interactive-zk-vote-proof). #### Vote publishing @@ -305,7 +306,7 @@ Which proofs that a provided encrypted tally result value $er$ was decrypted int using the exact secret key $sk$, which is corresponded to the already known shared election public key $pk$. \begin{equation} -\pi = TallyProof(er, r, sk) +\pi = TallyProof(er, sk) \end{equation} So to validate a $TallyCheck(er, r, pk, \pi)$ procedure should be used, @@ -317,10 +318,8 @@ is it valid or not. true | false = TallyCheck(er, r, pk, \pi) \end{equation} - A more detailed description of how $TallyProof$, $TallyCheck$ work -you can find in the section *Fig. 10* of this [paper][treasury_system_spec]. - +you can find in the [appendix E](#e-non-interactive-zk-tally-proof). #### Tally publishing @@ -331,7 +330,7 @@ and tally proofs $\pi_i$ corresponded for each voting option of some proposal. It could be published using any public channel, e.g. blockchain, ipfs or through p2p network. -## A: Group definition +## A: Group Definition @@ -350,7 +349,7 @@ And defined as follows: -## B: Lifted ElGamal encryption/decryption +## B: Lifted ElGamal Encryption/Decryption @@ -363,12 +362,16 @@ More detailed how group operations are defined, described in [appendix A](#a-gro ### Encryption Lifted ElGamal encryption algorithm -takes as arguments $m$ message ($m \in \mathbb{Z}_q^*$), -$r$ randomness ($r \in \mathbb{Z}_q^*$), -$pk$ public key ($pk \in \mathbb{G}$): +takes as arguments: + +* $m$ - message ($m \in \mathbb{Z}_q$) +* $r$ - randomness ($r \in \mathbb{Z}_q$) +* $pk$ - public key ($pk \in \mathbb{G}$) + \begin{equation} ElGamalEnc(m, r, pk) = (c_1, c_2) = c, \end{equation} + \begin{equation} c_1 = g^r, \quad c_2 = g^m \circ pk^r \end{equation} @@ -377,8 +380,11 @@ $c$ - is a resulted ciphertext which consists of two elements $c_1, c_2 \in \mat ### Decryption -Lifted ElGamal decryption algorithm takes as arguments $c$ ciphertext, -$sk$ secret key ($sk \in \mathbb{Z}_q^*$): +Lifted ElGamal decryption algorithm takes as arguments: + +* $c$ - ciphertext, +* $sk$ - secret key ($sk \in \mathbb{Z}_q$) + \begin{equation} ElGamalDec(c, sk) = Dlog(c_2 \circ c_1^{-sk}) = m \end{equation} @@ -387,11 +393,11 @@ $m$ - an original message which was encrypted on the previous step, $Dlog(x)$ is a discrete logarithm of $x$. Note that since $Dlog$ is not efficient, the message space should be a small set, -say $m \in {{0,1}}^{\xi}$, for $\xi \le 30$. +say $m \in \{0,1\}^{\xi}$, for $\xi \le 30$. -## C: Homomorphic tally +## C: Homomorphic Tally @@ -399,11 +405,14 @@ Homomorphic tally schema is defined over any cyclic group $\mathbb{G}$ of order
More detailed how group operations are defined, described in [appendix A](#a-group-definition). -Homomorphic tally algorithm takes as arguments $i$ voting choice index, -$[\mathbf{c_1}, \mathbf{c_2}, \ldots, \mathbf{c_N}]$ -an array of encrypted votes vector's, -$[\alpha_1, \alpha_2, \ldots, \alpha_N]$ - an array of corresponded voter's voting power. -Where $N$ - votes amount. +Homomorphic tally algorithm takes as arguments: + +* $i$ - voting choice index +* $[\mathbf{c_1}, \mathbf{c_2}, \ldots, \mathbf{c_N}]$ - an array of encrypted votes vector's, + where $N$ - votes amount +* $[\alpha_1, \alpha_2, \ldots, \alpha_N]$ - an array of corresponded voter's voting power, + where $N$ - votes amount + \begin{equation} Tally(i, [\mathbf{c_1}, \mathbf{c_2}, \ldots, \mathbf{c_N}], [\alpha_1, \alpha_2, \ldots, \alpha_N]) = c_{1, i}^{\alpha_1} \circ c_{2, i}^{\alpha_2} \circ \ldots \circ c_{N, i}^{\alpha_N} = er_i @@ -419,6 +428,229 @@ it needs a decryption procedure corresponded for which encryption one was made. +## D: Non-Interactive ZK Vote Proof + +Non-Interactive ZK (Zero Knowledge) Vote Proof algorithm helps to solve only one problem, +to prove that the encrypted voting choice is exactly a some unit vector, +which consists of **only one** is $1$ value and others are $0$. + +A more detailed and formal description +you can find in the section *2.4* of this [paper][treasury_system_spec]. + +It is assumed that the original encryption and decryption is performing by ElGamal scheme. +It means that all described operations is also group dependent +(more about groups described in [appendix A](#a-group-definition)). + +### Prover + +The prover algorithm takes as arguments: + +* $\mathbf{c} = (c_0, \ldots, c_{M-1})$ - encrypted vote (a vector of ciphertext), + where $M$ is amount of voting options. +* $\mathbf{e}_i = (e_{i,0},\ldots, e_{i,M-1})$ - original voting choice, a unit vector, + where $M$ is amount of voting options + and $i$ is an index of the voting choice. +* $\mathbf{r} = (r_0, \ldots, r_{M-1})$ - a vector of randomnesses, + which was used during encryption. +* $pk$ - is a public key, which was used to encrypt a unit vector. + +So basically here is the relation between all these values: +\begin{equation} +\mathbf{c} = (c_1, \ldots, c_M) = (ElGamalEnc(e_{i,1}, r_1, pk), \ldots, ElGamalEnc(e_{i,M}, r_M, pk)) +\end{equation} + +\begin{equation} +VoteProof(\mathbf{c}, \mathbf{e}_i, \mathbf{r}, pk) = \pi +\end{equation} + +Important to note that the following notation would be used +$\{a_i\}$ - which is a set of some elements $a_i$. + +$\pi$ is the final proof. +To compute it, prover needs to perform the next steps: + +1. If the number of voting options $M$ is not a perfect power of $2$, + extend the vector $\mathbf{c}$ with $c_j = ElGamalEnc(0, 0, pk)$, + where $N$ is a perfect power of $2$, $j \in [M, \ldots, N - 1]$. + So the resulted $\mathbf{c} = (c_1, \ldots, c_M, \{c_j\})$. +2. Generate a commitment key $ck \in \mathbb{G}$. +3. Let $i_k$ is a bit value of the $i$-th binary representation, + where $k \in [0, log_2(N) - 1]$. + E.g. $i=3$ and $N=8, log_2(N) = 3$, + its binary representation $i=011$, + $i_0=0, i_1=1, i_2=1$. +4. For $l \in [0, \ldots, log_2(N)-1]$ generate a random values + $\alpha_l, \beta_l, \gamma_l, \delta_l, \in \mathbb{Z}_q$. +5. For $l \in [0, \ldots, log_2(N)-1]$ calculate, where $g$ is the group generator: + * $I_l = g^{i_l} \circ ck^{\alpha_l}, I_l \in \mathbb{G}$. + * $B_l = g^{\beta_l} \circ ck^{\gamma_l}, B_l \in \mathbb{G}$. + * $A_l = g^{i_l * \beta_l} \circ ck^{\delta_l}, A_l \in \mathbb{G}$. +6. Calculate a first verifier challenge + $com_1 = H(ck, pk, \{c_j\}, \{I_l\}, \{B_l\}, \{A_l\})$, + where $H$ is a hash function, + $j \in [0, \ldots, N-1]$ + and $l \in [0, \ldots, log_2(N)-1]$. +7. For $j \in [0, \ldots, N-1]$ calculate polynomials + in the following form $p_j(x) = e_{i, j}*x^{log_2(N)} + \sum_{l=0}^{log_2(N)-1} p_{j,l} * x^l$: + * $j_l$ is a bit value of the $j$-th binary representation (same as was described in step `3`). + * $z_l^{1} = i_l * x + \beta_l$. + * $z_l^{0} = x - z_l^{1} = (1 - i_l)*x - \beta_l$. + * Calculate the polynomial itself $p_j(x) = \prod_{l=0}^{log_2(N)-1} z_l^{j_l}$ +8. For $l \in [0, \ldots, log_2(N)-1]$ generate a random $R_l \in \mathbb{Z}_q$. +9. For $l \in [0, \ldots, log_2(N)-1]$ compute + $D_l = ElGamalEnc(sum_l, R_l, pk)$, + where $sum_l = \sum_{j=0}^{N-1}(p_{j,l} * com_1^j)$ + and $p_{j,l}$ - corresponding coefficients of the polynomial $p_j(x)$ calculated on step `7`. +10. Calculate a second verifier challenge + $com_2 = H(com_1, \{D_l\})$, + where $H$ is a hash function + and $l \in [0, \ldots, log_2(N)-1]$. +11. For $l \in [0, \ldots, log_2(N)-1]$ calculate: + * $z_l = i_l * com_2 + \beta_l, z_l \in \mathbb{Z}_q$. + * $w_l = \alpha_l * com_2 + \gamma_l, w_l \in \mathbb{Z}_q$. + * $v_l = \alpha_l * (com_2 - z_l) + \delta_l, v_l \in \mathbb{Z}_q$. +12. Calculate + $R=\sum_{j=0}^{N-1}(r_j * (com_2)^{log_2(N)} * (com_1)^j) + \sum_{l=0}^{log_2(N)-1}(R_l * (com_2)^l)$, + where $r_j$ original random values which was used to encrypt $c_j$ + and $R_l$ random values generated in step `8`. + +Finally, the proof is $\pi = (ck, \{I_l\}, \{B_l\}, \{A_l\}, \{D_l\}, \{z_l\}, \{w_l\}, \{v_l\}, R)$, +where $l \in [0, \ldots, log_2(N)-1]$. + +### Verifier + +The verifier algorithm takes as arguments: + +* $\mathbf{c} = (c_0, \ldots, c_{M-1})$ - encrypted vote (a vector of ciphertext), + where $M$ is amount of voting options. +* $\pi$ - a prover's proof generated on the [previous step](#prover) +* $pk$ - is a public key, which was used to encrypt a unit vector. + +\begin{equation} +VoteCheck(\mathbf{c}, \pi, pk) = true | false +\end{equation} + +As a result algorithm will return `true` or `false`, +is the verification was succeeded or not respectively. + +Knowing that $\pi$ equals to $(ck, \{I_l\}, \{B_l\}, \{A_l\}, \{D_l\}, \{z_l\}, \{w_l\}, \{v_l\}, R)$, +verifier needs to perform the next steps: + +1. If the number of voting options $M$ is not a perfect power of $2$, + extend the vector $\mathbf{c}$ with $c_j = ElGamalEnc(0, 0, pk)$, + where $N$ is a perfect power of $2$, $j \in [M, \ldots, N - 1]$. + So the resulted $\mathbf{c} = (c_1, \ldots, c_M, \{c_j\})$. +2. Calculate the first verifier challenge + $com_1 = H(ck, pk, \{c_j\}, \{I_l\}, \{B_l\}, \{A_l\})$, + where $H$ is a hash function, + $j \in [0, \ldots, N-1]$ + and $l \in [0, \ldots, log_2(N)-1]$. +3. Calculate a second verifier challenge + $com_2 = H(com_1, \{D_l\})$, + where $H$ is a hash function + and $l \in [0, \ldots, log_2(N)-1]$. +4. For $l \in [0, \ldots, log_2(N)-1]$ verify that the following statements are `true`, + where $g$ is the group generator: + * $(I_l)^{com_2} \circ B_l == g^{z_l} \circ ck^{w_l}$. + * $(I_l)^{com_2 - z_l} \circ A_l == g^{0} \circ ck^{v_l}$. +5. Calculate the following $Left = ElGamalEnc(0, R, pk)$. + Note that the $Left$ is a ciphertext, $Left = (Left_1, Left_2)$. +6. Note that $D_l$ is a ciphertext, + $D_l = (D_{l,1}, D_{l,2})$, for $l \in [0, \ldots, log_2(N)-1]$ + calculate the following: + * $Right2_1 = (D_{0,1})^{0} \circ \ldots \circ (D_{log_2(N) - 1,1})^{log_2(N) - 1}$. + * $Right2_2 = (D_{0,2})^{0} \circ \ldots \circ (D_{log_2(N) - 1,2})^{log_2(N) - 1}$. +7. For $j \in [0, \ldots, N-1]$ calculate the $p_j(com_2)$, + where $p_j$ is a prover's defined polynomial defined in step `7`: + * $j_l$ is a bit value of the $j$-th binary representation. + * $z_l^1 = z_j$. + * $z_l^0 = com_2 - z_j^1$. + * $p_j(com_2) = \prod_l^{log_2(N)-1} z_l^{j_l}$. +8. For $j \in [0, \ldots, N-1]$ calculate the $P_j = ElGamalEnc(-p_j(com_2), 0, pk)$. + Note that the $P_j$ is a ciphertext, $P_j = (P_{j,1}, P_{j,2})$. +9. Note that $C_j$ is a ciphertext, + $C_j = (C_{j,1}, C_{j,2})$, for $j \in [0, \ldots, N-1]$ + calculate: + * $Right1_{j,1} = (C_{j,1})^{com_2^{log_2(N)}} \circ (P_{j,1})^{com_1^{j}}$. + * $Right1_{j,2} = (C_{j,2})^{com_2^{log_2(N)}} \circ (P_{j,2})^{com_1^{j}}$. + * $Right1_{1} = Right1_{j,1} \circ \ldots \circ Right1_{N - 1, 1}$. + * $Right1_{2} = Right1_{j,2} \circ \ldots \circ Right1_{N - 1, 2}$. +10. Verify that the following statements are `true`: + * $Right1_{1} \circ Right2_1 == Left_1$. + * $Right1_{2} \circ Right2_2 == Left_2$. + +If step `4` and `10` returns `true` so the final result is `true` otherwise return `false`. + +## E: Non-Interactive ZK Tally Proof + +Non-Interactive ZK (Zero Knowledge) Tally Proof algorithm helps to solve only one problem, +to prove that the specific encrypted message was decrypted into the specific resulted value, +using exactly that secret key, +which is corresponds to the some shared public key. + + +A more detailed and formal description +you can find in the sections *Fig. 10* and *2.1.5* of this [paper][treasury_system_spec]. + + +It is assumed that the original encryption and decryption is performing by ElGamal scheme. +It means that all described operations is also group dependent +(more about groups described in [appendix A](#a-group-definition)). + +### Prover + +The prover algorithm takes as arguments: + +* $enc$ - an encrypted message (ciphertext). +* $sk$ - a secret key which was used to decrypt a message $enc$. + +\begin{equation} +TallyProof(enc, sk) = \pi +\end{equation} + +$\pi$ is the final proof. +To compute it, prover needs to perform the next steps: + +1. Take the first element of the ciphertext $enc = (enc_1, enc_2)$ + and calculate $d = enc_1^{sk}$. +2. Generate a random value $\mu, \quad \mu \in \mathbb{Z}_q$. +3. Compute $A_1 = g^{\mu}$, where $g$ is the group generator ($A_1 \in \mathbb{G}$). +4. Compute $A_2 = (enc_1)^{\mu}, \quad A_2 \in \mathbb{G}$. +5. Compute $e = H(pk, d, g, enc_1, A_1, A_2 )$, + where $pk$ is a corresponding public key of $sk$, $H$ is a hash function. +6. Compute $z = sk * e + \mu, \quad z \in \mathbb{Z}_q$. + +Finally, the proof is $\pi = (A_1, A_2, z)$. + +### Verifier + +The verifier algorithm takes as arguments: + +* $enc$ - an encrypted message (ciphertext). +* $dec$ - a decrypted message from the encrypted ciphertext $enc$. +* $pk$ - a public key corresponded to the $sk$ + which was supposedly used to decrypt a message $enc$. +* $\pi$ - a prover's proof generated on the [previous step](#prover-1). + +\begin{equation} +TallyCheck(enc, dec, pk, \pi) = true | false +\end{equation} + +As a result algorithm will return `true` or `false`, +is the verification was succeeded or not respectively. + +Knowing that $\pi$ equals to $(A_1, A_2, z)$, +verifier needs to perform the next steps: + +1. Take the first and second elements $enc_1, enc_2$ + of the ciphertext $enc = (enc_1, enc_2)$. +2. Calculate $d = g^{dec} \circ (-enc_2), \quad d \in \mathbb{G}$. +3. Compute $e = H(pk, d, g, enc_1, A_1, A_2 )$, where $g$ is the group generator. +4. Verify $g^z == pk^e \circ A_1$. +5. Verify $enc_1^z == d^e \circ A_2$. + +If step `3` and `4` returns `true` so the final result is `true` otherwise return `false`. + ## Rationale ## Path to Active From 24f86587423ab1411e9322a5d29978e5259480bd Mon Sep 17 00:00:00 2001 From: digitalheartxs Date: Mon, 23 Sep 2024 13:25:34 +0200 Subject: [PATCH 04/23] feat(cat-voices): Account popup (#857) * feat: My account, develop account_popup.dart * feat: My account, account_popup, pass callbacks * feat: My account, account_popup, ignore pointer for avatar * feat: My account, account_popup, lint issues * feat: My account, account_popup, lint issues * feat: My account, account_popup, use enum * feat: My account, account_popup, fields above constructor * feat: My account, account_popup, use VoicesDivider --------- Co-authored-by: Dominik Toton <166132265+dtscalac@users.noreply.github.com> --- .config/dictionaries/project.dic | 1 + .../lib/pages/account/account_popup.dart | 253 ++++++++++++++++++ .../app_bar/session/session_state_header.dart | 23 +- 3 files changed, 260 insertions(+), 17 deletions(-) create mode 100644 catalyst_voices/lib/pages/account/account_popup.dart diff --git a/.config/dictionaries/project.dic b/.config/dictionaries/project.dic index 2a20967c22..52715d4bb0 100644 --- a/.config/dictionaries/project.dic +++ b/.config/dictionaries/project.dic @@ -1,6 +1,7 @@ aapt aarch abnf +addr addrr adminer afinet diff --git a/catalyst_voices/lib/pages/account/account_popup.dart b/catalyst_voices/lib/pages/account/account_popup.dart new file mode 100644 index 0000000000..44f91a83e2 --- /dev/null +++ b/catalyst_voices/lib/pages/account/account_popup.dart @@ -0,0 +1,253 @@ +import 'package:catalyst_voices/widgets/widgets.dart'; +import 'package:catalyst_voices_assets/catalyst_voices_assets.dart'; +import 'package:catalyst_voices_brands/catalyst_voices_brands.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; + +class AccountPopup extends StatelessWidget { + final String avatarLetter; + final VoidCallback? onProfileKeychainTap; + final VoidCallback? onLockAccountTap; + + const AccountPopup({ + super.key, + required this.avatarLetter, + this.onProfileKeychainTap, + this.onLockAccountTap, + }); + + @override + Widget build(BuildContext context) { + return PopupMenuButton<_MenuItemValue>( + color: Theme.of(context).colors.elevationsOnSurfaceNeutralLv1White, + onSelected: (_MenuItemValue value) { + switch (value) { + case _MenuItemValue.profileAndKeychain: + onProfileKeychainTap?.call(); + break; + case _MenuItemValue.lock: + onLockAccountTap?.call(); + break; + } + }, + itemBuilder: (BuildContext bc) { + return [ + PopupMenuItem( + padding: EdgeInsets.zero, + enabled: false, + value: null, + child: _Header( + accountLetter: avatarLetter, + walletName: 'Wallet name', + walletBalance: '₳ 1,750,000', + accountType: 'Basis', + walletAddress: 'addr1_H4543...45GH', + ), + ), + const PopupMenuItem( + height: 48, + padding: EdgeInsets.zero, + enabled: false, + value: null, + child: _Section('My account'), + ), + PopupMenuItem( + padding: EdgeInsets.zero, + value: _MenuItemValue.profileAndKeychain, + child: _MenuItem( + 'Profile & Keychain', + VoicesAssets.icons.userCircle, + ), + ), + PopupMenuItem( + padding: EdgeInsets.zero, + value: _MenuItemValue.lock, + child: _MenuItem( + 'Lock account', + VoicesAssets.icons.lockClosed, + showDivider: false, + ), + ), + ]; + }, + offset: const Offset(0, kToolbarHeight), + child: IgnorePointer( + child: VoicesAvatar( + icon: Text(avatarLetter), + ), + ), + ); + } +} + +class _Header extends StatelessWidget { + final String accountLetter; + final String walletName; + final String walletBalance; + final String accountType; + final String walletAddress; + + const _Header({ + required this.accountLetter, + required this.walletName, + required this.walletBalance, + required this.accountType, + required this.walletAddress, + }); + + @override + Widget build(BuildContext context) { + return Column( + children: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: _padding), + child: Row( + children: [ + VoicesAvatar( + icon: Text(accountLetter), + ), + Expanded( + child: Padding( + padding: const EdgeInsets.all(_padding), + child: Wrap( + children: [ + Text( + walletName, + style: Theme.of(context).textTheme.bodyLarge, + ), + Text( + walletBalance, + style: Theme.of(context).textTheme.bodyMedium, + ), + ], + ), + ), + ), + VoicesChip.rectangular( + content: Text( + accountType, + style: TextStyle( + color: Theme.of(context).colors.successContainer, + ), + ), + backgroundColor: Theme.of(context).colors.success, + ), + ], + ), + ), + Padding( + padding: const EdgeInsets.only( + left: _padding, + right: _padding, + bottom: _padding, + top: 8, + ), + child: Row( + children: [ + Expanded( + child: Text( + walletAddress, + style: Theme.of(context).textTheme.bodyLarge, + ), + ), + InkWell( + onTap: () async { + await Clipboard.setData( + ClipboardData(text: walletAddress), + ); + }, + child: VoicesAssets.icons.clipboardCopy.buildIcon(), + ), + ], + ), + ), + VoicesDivider( + height: 1, + color: Theme.of(context).colors.outlineBorder, + indent: 0, + endIndent: 0, + ), + ], + ); + } +} + +class _MenuItem extends StatelessWidget { + final String text; + final SvgGenImage icon; + final bool showDivider; + + const _MenuItem( + this.text, + this.icon, { + this.showDivider = true, + }); + + @override + Widget build(BuildContext context) { + return Column( + children: [ + Container( + height: 47, + alignment: Alignment.centerLeft, + padding: const EdgeInsets.symmetric(horizontal: _padding), + child: Row( + children: [ + icon.buildIcon(), + const SizedBox(width: _padding), + Text( + text, + style: Theme.of(context).textTheme.bodyLarge, + ), + ], + ), + ), + if (showDivider) + VoicesDivider( + height: 1, + color: Theme.of(context).colors.outlineBorderVariant, + indent: 0, + endIndent: 0, + ), + ], + ); + } +} + +class _Section extends StatelessWidget { + final String text; + + const _Section( + this.text, + ); + + @override + Widget build(BuildContext context) { + return Column( + children: [ + Container( + height: 47, + alignment: Alignment.centerLeft, + padding: const EdgeInsets.symmetric(horizontal: _padding), + child: Text( + text, + style: Theme.of(context).textTheme.titleSmall, + ), + ), + VoicesDivider( + height: 1, + color: Theme.of(context).colors.outlineBorderVariant, + indent: 0, + endIndent: 0, + ), + ], + ); + } +} + +const _padding = 12.0; + +enum _MenuItemValue { + profileAndKeychain, + lock, +} diff --git a/catalyst_voices/lib/widgets/app_bar/session/session_state_header.dart b/catalyst_voices/lib/widgets/app_bar/session/session_state_header.dart index 8f110ec863..a84223a205 100644 --- a/catalyst_voices/lib/widgets/app_bar/session/session_state_header.dart +++ b/catalyst_voices/lib/widgets/app_bar/session/session_state_header.dart @@ -1,3 +1,4 @@ +import 'package:catalyst_voices/pages/account/account_popup.dart'; import 'package:catalyst_voices/widgets/widgets.dart'; import 'package:catalyst_voices_blocs/catalyst_voices_blocs.dart'; import 'package:catalyst_voices_localization/catalyst_voices_localization.dart'; @@ -15,8 +16,11 @@ class SessionStateHeader extends StatelessWidget { return switch (state) { VisitorSessionState() => const _VisitorButton(), GuestSessionState() => const _GuestButton(), - ActiveUserSessionState(:final user) => - _ActiveUserAvatar(letter: user.acronym ?? 'A'), + ActiveUserSessionState(:final user) => AccountPopup( + avatarLetter: user.acronym ?? 'A', + onLockAccountTap: () => debugPrint('Lock account'), + onProfileKeychainTap: () => debugPrint('Open Profile screen'), + ), }; }, ); @@ -46,18 +50,3 @@ class _VisitorButton extends StatelessWidget { ); } } - -class _ActiveUserAvatar extends StatelessWidget { - final String letter; - - const _ActiveUserAvatar({ - required this.letter, - }); - - @override - Widget build(BuildContext context) { - return VoicesAvatar( - icon: Text(letter), - ); - } -} From 53f122c376a739eb1abd1766bbfbd616c4b3ee63 Mon Sep 17 00:00:00 2001 From: Stefano Cunego <93382903+kukkok3@users.noreply.github.com> Date: Mon, 23 Sep 2024 14:34:47 +0200 Subject: [PATCH 05/23] fix(cat-voices): rename wallet test folder (#856) * fix: remove test folder * fix: test report path * fix: path --- .github/workflows/nightly-ci.yml | 2 +- .../catalyst_cardano/{test => }/wallet-automation/Earthfile | 2 +- .../catalyst_cardano/{test => }/wallet-automation/compose.yml | 0 .../{test => }/wallet-automation/global-setup.ts | 0 .../catalyst_cardano/{test => }/wallet-automation/keys.txt | 0 .../{test => }/wallet-automation/package-lock.json | 0 .../catalyst_cardano/{test => }/wallet-automation/package.json | 0 .../{test => }/wallet-automation/playwright.config.ts | 0 .../catalyst_cardano/{test => }/wallet-automation/utils.ts | 0 .../{test => }/wallet-automation/wallet-tests.spec.ts | 0 10 files changed, 2 insertions(+), 2 deletions(-) rename catalyst_voices_packages/catalyst_cardano/catalyst_cardano/{test => }/wallet-automation/Earthfile (97%) rename catalyst_voices_packages/catalyst_cardano/catalyst_cardano/{test => }/wallet-automation/compose.yml (100%) rename catalyst_voices_packages/catalyst_cardano/catalyst_cardano/{test => }/wallet-automation/global-setup.ts (100%) rename catalyst_voices_packages/catalyst_cardano/catalyst_cardano/{test => }/wallet-automation/keys.txt (100%) rename catalyst_voices_packages/catalyst_cardano/catalyst_cardano/{test => }/wallet-automation/package-lock.json (100%) rename catalyst_voices_packages/catalyst_cardano/catalyst_cardano/{test => }/wallet-automation/package.json (100%) rename catalyst_voices_packages/catalyst_cardano/catalyst_cardano/{test => }/wallet-automation/playwright.config.ts (100%) rename catalyst_voices_packages/catalyst_cardano/catalyst_cardano/{test => }/wallet-automation/utils.ts (100%) rename catalyst_voices_packages/catalyst_cardano/catalyst_cardano/{test => }/wallet-automation/wallet-tests.spec.ts (100%) diff --git a/.github/workflows/nightly-ci.yml b/.github/workflows/nightly-ci.yml index 367c0af318..71e4bc44db 100644 --- a/.github/workflows/nightly-ci.yml +++ b/.github/workflows/nightly-ci.yml @@ -68,7 +68,7 @@ jobs: if: always() continue-on-error: true with: - earthfile: ./catalyst_voices_packages/catalyst_cardano/catalyst_cardano/test/wallet-automation/ + earthfile: ./catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/ flags: --allow-privileged targets: nightly-test target_flags: diff --git a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/test/wallet-automation/Earthfile b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/Earthfile similarity index 97% rename from catalyst_voices_packages/catalyst_cardano/catalyst_cardano/test/wallet-automation/Earthfile rename to catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/Earthfile index ffa8a64a0e..d066ed128b 100644 --- a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/test/wallet-automation/Earthfile +++ b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/Earthfile @@ -35,7 +35,7 @@ package-test: builder: DO flutter-ci+SETUP - COPY ../../../../../+repo-catalyst-voices-all/repo . + COPY ../../../../+repo-catalyst-voices-all/repo . DO flutter-ci+BOOTSTRAP build-web: diff --git a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/test/wallet-automation/compose.yml b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/compose.yml similarity index 100% rename from catalyst_voices_packages/catalyst_cardano/catalyst_cardano/test/wallet-automation/compose.yml rename to catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/compose.yml diff --git a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/test/wallet-automation/global-setup.ts b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/global-setup.ts similarity index 100% rename from catalyst_voices_packages/catalyst_cardano/catalyst_cardano/test/wallet-automation/global-setup.ts rename to catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/global-setup.ts diff --git a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/test/wallet-automation/keys.txt b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/keys.txt similarity index 100% rename from catalyst_voices_packages/catalyst_cardano/catalyst_cardano/test/wallet-automation/keys.txt rename to catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/keys.txt diff --git a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/test/wallet-automation/package-lock.json b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/package-lock.json similarity index 100% rename from catalyst_voices_packages/catalyst_cardano/catalyst_cardano/test/wallet-automation/package-lock.json rename to catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/package-lock.json diff --git a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/test/wallet-automation/package.json b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/package.json similarity index 100% rename from catalyst_voices_packages/catalyst_cardano/catalyst_cardano/test/wallet-automation/package.json rename to catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/package.json diff --git a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/test/wallet-automation/playwright.config.ts b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/playwright.config.ts similarity index 100% rename from catalyst_voices_packages/catalyst_cardano/catalyst_cardano/test/wallet-automation/playwright.config.ts rename to catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/playwright.config.ts diff --git a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/test/wallet-automation/utils.ts b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/utils.ts similarity index 100% rename from catalyst_voices_packages/catalyst_cardano/catalyst_cardano/test/wallet-automation/utils.ts rename to catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/utils.ts diff --git a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/test/wallet-automation/wallet-tests.spec.ts b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/wallet-tests.spec.ts similarity index 100% rename from catalyst_voices_packages/catalyst_cardano/catalyst_cardano/test/wallet-automation/wallet-tests.spec.ts rename to catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/wallet-tests.spec.ts From 2ccebd685936c71d3ab667f91f14dc3aa09b65df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damian=20Moli=C5=84ski?= <47773413+damian-molinski@users.noreply.github.com> Date: Mon, 23 Sep 2024 16:04:05 +0200 Subject: [PATCH 06/23] feat: /m4 redirects to /m4/discovery (#868) Co-authored-by: Dominik Toton <166132265+dtscalac@users.noreply.github.com> --- .../lib/routes/guards/milestone_guard.dart | 11 +++++++++-- catalyst_voices/lib/routes/routing/routes.dart | 14 +++++++------- .../lib/src/session/session_bloc.dart | 7 ++++++- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/catalyst_voices/lib/routes/guards/milestone_guard.dart b/catalyst_voices/lib/routes/guards/milestone_guard.dart index a27f5e7083..e661e57aa6 100644 --- a/catalyst_voices/lib/routes/guards/milestone_guard.dart +++ b/catalyst_voices/lib/routes/guards/milestone_guard.dart @@ -12,13 +12,20 @@ final class MilestoneGuard implements RouteGuard { @override FutureOr redirect(BuildContext context, GoRouterState state) { + final location = state.uri.toString(); + + // redirects /m4 page to /m4/discovery + if (location == '/${Routes.currentMilestone}') { + return const DiscoveryRoute().location; + } + // allow milestone sub pages - if (state.uri.toString().startsWith('/${Routes.currentMilestone}')) { + if (location.startsWith('/${Routes.currentMilestone}')) { return null; } // if already at destination skip redirect - if (state.uri.toString() == const ComingSoonRoute().location) { + if (location == const ComingSoonRoute().location) { return null; } diff --git a/catalyst_voices/lib/routes/routing/routes.dart b/catalyst_voices/lib/routes/routing/routes.dart index e44d80c1a1..11d75a1638 100644 --- a/catalyst_voices/lib/routes/routing/routes.dart +++ b/catalyst_voices/lib/routes/routing/routes.dart @@ -11,14 +11,14 @@ import 'package:go_router/go_router.dart'; abstract final class Routes { static const currentMilestone = 'm4'; + static final List routes = [ + ...coming_soon.$appRoutes, + ...login.$appRoutes, + ...spaces.$appRoutes, + ...overall_spaces.$appRoutes, + ]; + static String get initialLocation { return const coming_soon.ComingSoonRoute().location; } - - static List get routes => [ - ...coming_soon.$appRoutes, - ...login.$appRoutes, - ...spaces.$appRoutes, - ...overall_spaces.$appRoutes, - ]; } diff --git a/catalyst_voices/packages/catalyst_voices_blocs/lib/src/session/session_bloc.dart b/catalyst_voices/packages/catalyst_voices_blocs/lib/src/session/session_bloc.dart index 77545c8e8a..949518e234 100644 --- a/catalyst_voices/packages/catalyst_voices_blocs/lib/src/session/session_bloc.dart +++ b/catalyst_voices/packages/catalyst_voices_blocs/lib/src/session/session_bloc.dart @@ -5,7 +5,12 @@ import 'package:flutter_bloc/flutter_bloc.dart'; /// Manages the user session. final class SessionBloc extends Bloc { - SessionBloc() : super(const VisitorSessionState()) { + SessionBloc() + : super( + const ActiveUserSessionState( + user: User(name: 'Account'), + ), + ) { on(_handleSessionEvent); } From 6167e596b5547e77e7fe8ff1ffe64313ddd3a96c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damian=20Moli=C5=84ski?= <47773413+damian-molinski@users.noreply.github.com> Date: Mon, 23 Sep 2024 16:19:22 +0200 Subject: [PATCH 07/23] feat(cat-voices): local storage + vault (#864) * feat: WIP - interfaces * refactor: move storage to services package + implement codec * feat: More storage types options * chore: docs * feat: secure storage * feat: export storage classes + fix voices usage * test: StorageStringMixin unit tests * test: first secure storage test * secure storage tests * chore: LockFactor tests * chore: codec tests * chore: SecureStorageVault tests * refactor: renaming of lockFactor variables to lock/unlock * refactor: cleanup vault functions order * refactor: Rename Storage mixin * feat: dummy auth storage which encapsulates keys --------- Co-authored-by: Dominik Toton <166132265+dtscalac@users.noreply.github.com> --- .../lib/dependency/dependencies.dart | 8 +- .../src/credentials_storage_repository.dart | 28 +-- .../lib/src/catalyst_voices_services.dart | 8 +- .../src/secure_storage/secure_storage.dart | 2 - .../secure_storage/secure_storage_keys.dart | 6 - .../secure_storage_service.dart | 22 --- .../lib/src/storage/dummy_auth_storage.dart | 47 +++++ .../lib/src/storage/secure_storage.dart | 50 ++++++ .../lib/src/storage/storage.dart | 45 +++++ .../lib/src/storage/storage_string_mixin.dart | 76 ++++++++ .../lib/src/storage/vault/lock_factor.dart | 87 ++++++++++ .../src/storage/vault/lock_factor_codec.dart | 41 +++++ .../storage/vault/secure_storage_vault.dart | 140 +++++++++++++++ .../lib/src/storage/vault/vault.dart | 25 +++ .../catalyst_voices_services/pubspec.yaml | 2 +- .../test/src/storage/secure_storage_test.dart | 80 +++++++++ .../storage/storage_string_mixin_test.dart | 162 ++++++++++++++++++ .../storage/vault/lock_factor_codec_test.dart | 20 +++ .../src/storage/vault/lock_factor_test.dart | 132 ++++++++++++++ .../vault/secure_storage_vault_test.dart | 125 ++++++++++++++ melos.yaml | 1 + 21 files changed, 1052 insertions(+), 55 deletions(-) delete mode 100644 catalyst_voices/packages/catalyst_voices_services/lib/src/secure_storage/secure_storage.dart delete mode 100644 catalyst_voices/packages/catalyst_voices_services/lib/src/secure_storage/secure_storage_keys.dart delete mode 100644 catalyst_voices/packages/catalyst_voices_services/lib/src/secure_storage/secure_storage_service.dart create mode 100644 catalyst_voices/packages/catalyst_voices_services/lib/src/storage/dummy_auth_storage.dart create mode 100644 catalyst_voices/packages/catalyst_voices_services/lib/src/storage/secure_storage.dart create mode 100644 catalyst_voices/packages/catalyst_voices_services/lib/src/storage/storage.dart create mode 100644 catalyst_voices/packages/catalyst_voices_services/lib/src/storage/storage_string_mixin.dart create mode 100644 catalyst_voices/packages/catalyst_voices_services/lib/src/storage/vault/lock_factor.dart create mode 100644 catalyst_voices/packages/catalyst_voices_services/lib/src/storage/vault/lock_factor_codec.dart create mode 100644 catalyst_voices/packages/catalyst_voices_services/lib/src/storage/vault/secure_storage_vault.dart create mode 100644 catalyst_voices/packages/catalyst_voices_services/lib/src/storage/vault/vault.dart create mode 100644 catalyst_voices/packages/catalyst_voices_services/test/src/storage/secure_storage_test.dart create mode 100644 catalyst_voices/packages/catalyst_voices_services/test/src/storage/storage_string_mixin_test.dart create mode 100644 catalyst_voices/packages/catalyst_voices_services/test/src/storage/vault/lock_factor_codec_test.dart create mode 100644 catalyst_voices/packages/catalyst_voices_services/test/src/storage/vault/lock_factor_test.dart create mode 100644 catalyst_voices/packages/catalyst_voices_services/test/src/storage/vault/secure_storage_vault_test.dart diff --git a/catalyst_voices/lib/dependency/dependencies.dart b/catalyst_voices/lib/dependency/dependencies.dart index 589ca073dd..3c9a6b4ba0 100644 --- a/catalyst_voices/lib/dependency/dependencies.dart +++ b/catalyst_voices/lib/dependency/dependencies.dart @@ -33,7 +33,7 @@ final class Dependencies extends DependencyProvider { void _registerRepositories() { this ..registerSingleton( - CredentialsStorageRepository(secureStorageService: get()), + CredentialsStorageRepository(storage: get()), ) ..registerSingleton( AuthenticationRepository(credentialsStorageRepository: get()), @@ -41,8 +41,8 @@ final class Dependencies extends DependencyProvider { } void _registerServices() { - registerSingleton( - SecureStorageService(), - ); + registerSingleton(const SecureStorage()); + registerSingleton(const SecureStorageVault()); + registerSingleton(const SecureDummyAuthStorage()); } } diff --git a/catalyst_voices/packages/catalyst_voices_repositories/lib/src/credentials_storage_repository.dart b/catalyst_voices/packages/catalyst_voices_repositories/lib/src/credentials_storage_repository.dart index 6367bd42a5..25beccc74b 100644 --- a/catalyst_voices/packages/catalyst_voices_repositories/lib/src/credentials_storage_repository.dart +++ b/catalyst_voices/packages/catalyst_voices_repositories/lib/src/credentials_storage_repository.dart @@ -9,21 +9,18 @@ import 'package:result_type/result_type.dart'; /// It will be replaced by a proper implementation as soon as authentication /// flow will be defined. final class CredentialsStorageRepository { - final SecureStorageService secureStorageService; + final DummyAuthStorage _storage; - const CredentialsStorageRepository({required this.secureStorageService}); + const CredentialsStorageRepository({ + required DummyAuthStorage storage, + }) : _storage = storage; - void get clearSessionData => secureStorageService.deleteAll; + Future get clearSessionData async => _storage.clear(); Future> getSessionData() async { try { - final email = await secureStorageService.get( - SecureStorageKeysConst.dummyEmail, - ); - - final password = await secureStorageService.get( - SecureStorageKeysConst.dummyPassword, - ); + final email = await _storage.readEmail(); + final password = await _storage.readPassword(); if (email == null || password == null) { return Success(null); @@ -44,15 +41,8 @@ final class CredentialsStorageRepository { SessionData sessionData, ) async { try { - await secureStorageService.set( - SecureStorageKeysConst.dummyEmail, - sessionData.email, - ); - - await secureStorageService.set( - SecureStorageKeysConst.dummyPassword, - sessionData.password, - ); + await _storage.writeEmail(sessionData.email); + await _storage.writePassword(sessionData.password); return Success(null); } on SecureStorageError catch (_) { return Failure(SecureStorageError.canNotSaveData); diff --git a/catalyst_voices/packages/catalyst_voices_services/lib/src/catalyst_voices_services.dart b/catalyst_voices/packages/catalyst_voices_services/lib/src/catalyst_voices_services.dart index b9cfd362c0..c86d5ab5db 100644 --- a/catalyst_voices/packages/catalyst_voices_services/lib/src/catalyst_voices_services.dart +++ b/catalyst_voices/packages/catalyst_voices_services/lib/src/catalyst_voices_services.dart @@ -1 +1,7 @@ -export 'secure_storage/secure_storage.dart'; +export 'storage/dummy_auth_storage.dart'; +export 'storage/secure_storage.dart'; +export 'storage/storage.dart'; +export 'storage/vault/lock_factor.dart'; +export 'storage/vault/lock_factor_codec.dart' show LockFactorCodec; +export 'storage/vault/secure_storage_vault.dart'; +export 'storage/vault/vault.dart'; diff --git a/catalyst_voices/packages/catalyst_voices_services/lib/src/secure_storage/secure_storage.dart b/catalyst_voices/packages/catalyst_voices_services/lib/src/secure_storage/secure_storage.dart deleted file mode 100644 index 37c0fba470..0000000000 --- a/catalyst_voices/packages/catalyst_voices_services/lib/src/secure_storage/secure_storage.dart +++ /dev/null @@ -1,2 +0,0 @@ -export 'secure_storage_keys.dart'; -export 'secure_storage_service.dart'; diff --git a/catalyst_voices/packages/catalyst_voices_services/lib/src/secure_storage/secure_storage_keys.dart b/catalyst_voices/packages/catalyst_voices_services/lib/src/secure_storage/secure_storage_keys.dart deleted file mode 100644 index 7a5df87dd4..0000000000 --- a/catalyst_voices/packages/catalyst_voices_services/lib/src/secure_storage/secure_storage_keys.dart +++ /dev/null @@ -1,6 +0,0 @@ -final class SecureStorageKeysConst { - static const dummyEmail = 'email'; - static const dummyPassword = 'password'; - - const SecureStorageKeysConst._(); -} diff --git a/catalyst_voices/packages/catalyst_voices_services/lib/src/secure_storage/secure_storage_service.dart b/catalyst_voices/packages/catalyst_voices_services/lib/src/secure_storage/secure_storage_service.dart deleted file mode 100644 index 6c506911c9..0000000000 --- a/catalyst_voices/packages/catalyst_voices_services/lib/src/secure_storage/secure_storage_service.dart +++ /dev/null @@ -1,22 +0,0 @@ -import 'package:flutter_secure_storage/flutter_secure_storage.dart'; - -final class SecureStorageService { - final _storage = const FlutterSecureStorage(); - - SecureStorageService(); - - Future get deleteAll async => _storage.deleteAll(); - - Future delete(String key) { - return _storage.delete(key: key); - } - - Future get(String key) async { - final value = await _storage.read(key: key); - return value; - } - - Future set(String key, String value) async { - return _storage.write(key: key, value: value); - } -} diff --git a/catalyst_voices/packages/catalyst_voices_services/lib/src/storage/dummy_auth_storage.dart b/catalyst_voices/packages/catalyst_voices_services/lib/src/storage/dummy_auth_storage.dart new file mode 100644 index 0000000000..74a5674591 --- /dev/null +++ b/catalyst_voices/packages/catalyst_voices_services/lib/src/storage/dummy_auth_storage.dart @@ -0,0 +1,47 @@ +import 'dart:async'; + +import 'package:catalyst_voices_services/src/storage/secure_storage.dart'; + +abstract interface class DummyAuthStorage { + FutureOr readEmail(); + + FutureOr writeEmail(String? value); + + FutureOr readPassword(); + + FutureOr writePassword(String? value); + + Future clear(); +} + +final class SecureDummyAuthStorage extends SecureStorage + implements DummyAuthStorage { + static const _emailKey = 'email'; + static const _passwordKey = 'password'; + + const SecureDummyAuthStorage({ + super.secureStorage, + }); + + @override + FutureOr readEmail() => readString(key: _emailKey); + + @override + FutureOr writeEmail(String? value) { + return writeString(value, key: _emailKey); + } + + @override + FutureOr readPassword() => readString(key: _passwordKey); + + @override + FutureOr writePassword(String? value) { + return writeString(value, key: _passwordKey); + } + + @override + Future clear() async { + await writeEmail(null); + await writePassword(null); + } +} diff --git a/catalyst_voices/packages/catalyst_voices_services/lib/src/storage/secure_storage.dart b/catalyst_voices/packages/catalyst_voices_services/lib/src/storage/secure_storage.dart new file mode 100644 index 0000000000..ca9d3aebbd --- /dev/null +++ b/catalyst_voices/packages/catalyst_voices_services/lib/src/storage/secure_storage.dart @@ -0,0 +1,50 @@ +import 'dart:async'; + +import 'package:catalyst_voices_services/src/storage/storage.dart'; +import 'package:catalyst_voices_services/src/storage/storage_string_mixin.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; + +const _keyPrefix = 'SecureStorage'; + +base class SecureStorage with StorageAsStringMixin implements Storage { + final FlutterSecureStorage _secureStorage; + + const SecureStorage({ + FlutterSecureStorage secureStorage = const FlutterSecureStorage(), + }) : _secureStorage = secureStorage; + + @override + Future readString({required String key}) { + final effectiveKey = _buildVaultKey(key); + + return _secureStorage.read(key: effectiveKey); + } + + @override + Future writeString( + String? value, { + required String key, + }) async { + final effectiveKey = _buildVaultKey(key); + + if (value != null) { + await _secureStorage.write(key: effectiveKey, value: value); + } else { + await _secureStorage.delete(key: effectiveKey); + } + } + + @override + FutureOr clear() async { + final all = await _secureStorage.readAll(); + final vaultKeys = List.of(all.keys).where((e) => e.startsWith(_keyPrefix)); + + for (final key in vaultKeys) { + await _secureStorage.delete(key: key); + } + } + + String _buildVaultKey(String key) { + return '$_keyPrefix.$key'; + } +} diff --git a/catalyst_voices/packages/catalyst_voices_services/lib/src/storage/storage.dart b/catalyst_voices/packages/catalyst_voices_services/lib/src/storage/storage.dart new file mode 100644 index 0000000000..7e602b3705 --- /dev/null +++ b/catalyst_voices/packages/catalyst_voices_services/lib/src/storage/storage.dart @@ -0,0 +1,45 @@ +//ignore_for_file: avoid_positional_boolean_parameters + +import 'dart:async'; + +import 'package:flutter/foundation.dart'; + +/// Abstract representation of generic storage. This interface does +/// not determinate where data should be stored or how it should be stored. +/// Encrypted or not. +/// +/// Implementation may use local memory / filesystem or shared preferences or +/// any other. +abstract interface class Storage { + FutureOr readString({required String key}); + + FutureOr writeString( + String? value, { + required String key, + }); + + FutureOr readInt({required String key}); + + FutureOr writeInt( + int? value, { + required String key, + }); + + FutureOr readBool({required String key}); + + FutureOr writeBool( + bool? value, { + required String key, + }); + + FutureOr readBytes({required String key}); + + FutureOr writeBytes( + Uint8List? value, { + required String key, + }); + + FutureOr delete({required String key}); + + FutureOr clear(); +} diff --git a/catalyst_voices/packages/catalyst_voices_services/lib/src/storage/storage_string_mixin.dart b/catalyst_voices/packages/catalyst_voices_services/lib/src/storage/storage_string_mixin.dart new file mode 100644 index 0000000000..ccb19f245d --- /dev/null +++ b/catalyst_voices/packages/catalyst_voices_services/lib/src/storage/storage_string_mixin.dart @@ -0,0 +1,76 @@ +//ignore_for_file: avoid_positional_boolean_parameters + +import 'dart:async'; +import 'dart:convert'; + +import 'package:catalyst_voices_services/src/storage/storage.dart'; +import 'package:catalyst_voices_services/src/storage/vault/secure_storage_vault.dart'; +import 'package:flutter/foundation.dart'; + +/// Utility mixin which implements all but String read/write of [Storage] +/// interface. Every method is has its mapping to [readString]/[writeString]. +/// +/// See [SecureStorageVault] as example. +mixin StorageAsStringMixin implements Storage { + @override + FutureOr readInt({required String key}) async { + final value = await readString(key: key); + return value != null ? int.parse(value) : null; + } + + @override + FutureOr writeInt( + int? value, { + required String key, + }) { + return writeString(value?.toString(), key: key); + } + + @override + FutureOr readBool({required String key}) async { + final value = await readInt(key: key); + + return switch (value) { + 0 => false, + 1 => true, + _ => null, + }; + } + + @override + FutureOr writeBool( + bool? value, { + required String key, + }) { + final asInt = value != null + ? value + ? 1 + : 0 + : null; + + return writeInt(asInt, key: key); + } + + @override + FutureOr readBytes({required String key}) async { + final base64String = await readString(key: key); + final bytes = base64String != null + ? Uint8List.fromList(base64Decode(base64String)) + : null; + + return bytes; + } + + @override + FutureOr writeBytes( + Uint8List? value, { + required String key, + }) { + final base64String = value != null ? base64Encode(value) : null; + + return writeString(base64String, key: key); + } + + @override + FutureOr delete({required String key}) => writeString(null, key: key); +} diff --git a/catalyst_voices/packages/catalyst_voices_services/lib/src/storage/vault/lock_factor.dart b/catalyst_voices/packages/catalyst_voices_services/lib/src/storage/vault/lock_factor.dart new file mode 100644 index 0000000000..905e44a570 --- /dev/null +++ b/catalyst_voices/packages/catalyst_voices_services/lib/src/storage/vault/lock_factor.dart @@ -0,0 +1,87 @@ +import 'package:catalyst_voices_services/src/storage/vault/vault.dart'; + +enum _LockFactorType { voidFactor, password } + +// Note. +// In future we may add MultiLockFactor for bio and password unlock factors + +/// Abstract representation of different factors that can lock [Vault] with. +/// +/// Most common is [PasswordLockFactor] which can be use as standalone factor. +/// +/// This class is serializable to/from json. +sealed class LockFactor { + /// Use [LockFactor.toJson] as parameter for this factory. + factory LockFactor.fromJson(Map json) { + final typeName = json['type']; + final type = _LockFactorType.values.asNameMap()[typeName]; + + return switch (type) { + _LockFactorType.voidFactor => const VoidLockFactor(), + _LockFactorType.password => PasswordLockFactor.fromJson(json), + null => throw ArgumentError('Unknown type name($typeName)', 'json'), + }; + } + + /// Returns true when this [LockFactor] can be used to unlock + /// other [LockFactor]. + bool unlocks(LockFactor factor); + + /// Returns json representation on this [LockFactor]. + /// + /// Should be used with [LockFactor.fromJson]. + Map toJson(); +} + +/// Can not be used to unlock anything. Useful as default value for [LockFactor] +/// variables. +/// +/// [unlocks] always returns false. +final class VoidLockFactor implements LockFactor { + const VoidLockFactor(); + + @override + bool unlocks(LockFactor factor) => false; + + @override + Map toJson() { + return { + 'type': _LockFactorType.voidFactor.name, + }; + } + + @override + String toString() => 'VoidLockFactor'; +} + +/// Password matching [LockFactor]. +/// +/// Only unlocks other [PasswordLockFactor] with matching +/// [PasswordLockFactor._data]. +final class PasswordLockFactor implements LockFactor { + final String _data; + + const PasswordLockFactor(this._data); + + factory PasswordLockFactor.fromJson(Map json) { + return PasswordLockFactor( + json['data'] as String, + ); + } + + @override + bool unlocks(LockFactor factor) { + return factor is PasswordLockFactor && _data == factor._data; + } + + @override + Map toJson() { + return { + 'type': _LockFactorType.password.name, + 'data': _data, + }; + } + + @override + String toString() => 'PasswordLockFactor(data=****)'; +} diff --git a/catalyst_voices/packages/catalyst_voices_services/lib/src/storage/vault/lock_factor_codec.dart b/catalyst_voices/packages/catalyst_voices_services/lib/src/storage/vault/lock_factor_codec.dart new file mode 100644 index 0000000000..c6754ed75e --- /dev/null +++ b/catalyst_voices/packages/catalyst_voices_services/lib/src/storage/vault/lock_factor_codec.dart @@ -0,0 +1,41 @@ +import 'dart:convert'; + +import 'package:catalyst_voices_services/src/storage/vault/lock_factor.dart'; + +abstract class LockFactorCodec extends Codec { + const LockFactorCodec(); +} + +/// Uses [LockFactor.toJson] and [LockFactor.fromJson] to serialize to +/// [String] using [json]. +class DefaultLockFactorCodec extends LockFactorCodec { + const DefaultLockFactorCodec(); + + @override + Converter get decoder => const _LockFactorDecoder(); + + @override + Converter get encoder => const _LockFactorEncoder(); +} + +class _LockFactorDecoder extends Converter { + const _LockFactorDecoder(); + + @override + LockFactor convert(String input) { + final json = jsonDecode(input) as Map; + + return LockFactor.fromJson(json); + } +} + +class _LockFactorEncoder extends Converter { + const _LockFactorEncoder(); + + @override + String convert(LockFactor input) { + final json = input.toJson(); + + return jsonEncode(json); + } +} diff --git a/catalyst_voices/packages/catalyst_voices_services/lib/src/storage/vault/secure_storage_vault.dart b/catalyst_voices/packages/catalyst_voices_services/lib/src/storage/vault/secure_storage_vault.dart new file mode 100644 index 0000000000..024b3ebac0 --- /dev/null +++ b/catalyst_voices/packages/catalyst_voices_services/lib/src/storage/vault/secure_storage_vault.dart @@ -0,0 +1,140 @@ +import 'dart:async'; + +import 'package:catalyst_voices_services/src/storage/storage_string_mixin.dart'; +import 'package:catalyst_voices_services/src/storage/vault/lock_factor.dart'; +import 'package:catalyst_voices_services/src/storage/vault/lock_factor_codec.dart'; +import 'package:catalyst_voices_services/src/storage/vault/vault.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; + +const _keyPrefix = 'SecureStorageVault'; +const _lockKey = 'LockFactorKey'; +const _unlockKey = 'UnlockFactorKey'; + +// TODO(damian-molinski): Maybe we'll need to encrypt data with LockFactor +/// Implementation of [Vault] that uses [FlutterSecureStorage] as +/// facade for read/write operations. +base class SecureStorageVault with StorageAsStringMixin implements Vault { + final FlutterSecureStorage _secureStorage; + final LockFactorCodec _lockCodec; + + const SecureStorageVault({ + FlutterSecureStorage secureStorage = const FlutterSecureStorage(), + LockFactorCodec lockCodec = const DefaultLockFactorCodec(), + }) : _secureStorage = secureStorage, + _lockCodec = lockCodec; + + /// If storage does not have [LockFactor] this getter will + /// return [VoidLockFactor] as fallback. + Future get _lock => _readLock(_lockKey); + + /// If storage does not have [LockFactor] this getter will + /// return [VoidLockFactor] as fallback. + Future get _unlock => _readLock(_unlockKey); + + @override + Future get isUnlocked async { + final lock = await _lock; + final unlock = await _unlock; + + return unlock.unlocks(lock); + } + + @override + Future lock() => _writeLock(null, key: _unlockKey); + + @override + Future unlock(LockFactor unlock) async { + await _writeLock(unlock, key: _unlockKey); + + return isUnlocked; + } + + @override + Future setLock(LockFactor lock) { + return _writeLock(lock, key: _lockKey); + } + + @override + Future readString({required String key}) => _guardedRead(key: key); + + @override + Future writeString( + String? value, { + required String key, + }) { + return _guardedWrite(value, key: key); + } + + @override + Future clear() async { + final all = await _secureStorage.readAll(); + final vaultKeys = List.of(all.keys).where((e) => e.startsWith(_keyPrefix)); + + for (final key in vaultKeys) { + await _secureStorage.delete(key: key); + } + } + + Future _writeLock( + LockFactor? lock, { + required String key, + }) { + final encodedLock = lock != null ? _lockCodec.encode(lock) : null; + + return _guardedWrite( + encodedLock, + key: key, + requireUnlocked: false, + ); + } + + Future _readLock(String key) async { + final value = await _guardedRead(key: key, requireUnlocked: false); + + return value != null ? _lockCodec.decode(value) : const VoidLockFactor(); + } + + /// Allows operation only when [isUnlocked] it true, otherwise non op. + /// + /// * When [value] is non null writes it to [key]. + /// * When [value] is null then [key] value is deleted. + Future _guardedWrite( + String? value, { + required String key, + bool requireUnlocked = true, + }) async { + final hasAccess = !requireUnlocked || await isUnlocked; + if (!hasAccess) { + return; + } + + final effectiveKey = _buildVaultKey(key); + + if (value != null) { + await _secureStorage.write(key: effectiveKey, value: value); + } else { + await _secureStorage.delete(key: effectiveKey); + } + } + + /// Allows operation only when [isUnlocked] it true, otherwise returns null. + /// + /// Returns value assigned to [key]. May return null if non found for [key]. + Future _guardedRead({ + required String key, + bool requireUnlocked = true, + }) async { + final hasAccess = !requireUnlocked || await isUnlocked; + if (!hasAccess) { + return null; + } + + final effectiveKey = _buildVaultKey(key); + + return _secureStorage.read(key: effectiveKey); + } + + String _buildVaultKey(String key) { + return '$_keyPrefix.$key'; + } +} diff --git a/catalyst_voices/packages/catalyst_voices_services/lib/src/storage/vault/vault.dart b/catalyst_voices/packages/catalyst_voices_services/lib/src/storage/vault/vault.dart new file mode 100644 index 0000000000..35717e704b --- /dev/null +++ b/catalyst_voices/packages/catalyst_voices_services/lib/src/storage/vault/vault.dart @@ -0,0 +1,25 @@ +import 'package:catalyst_voices_services/src/storage/storage.dart'; +import 'package:catalyst_voices_services/src/storage/vault/lock_factor.dart'; + +/// Secure version of [Storage] where any read/write methods can take +/// effect only when [isUnlocked] returns true. +/// +/// In order to unlock [Vault] sufficient [LockFactor] have to be +/// set via [unlock] that can unlock [LockFactor] from [setLock]. +/// +/// See [LockFactor.unlocks] for more details. +abstract interface class Vault implements Storage { + /// Returns true when have sufficient [LockFactor] from [unlock]. + Future get isUnlocked; + + /// Deletes unlockFactor if have any. + Future lock(); + + /// Changes [isUnlocked] when [unlock] can unlock [LockFactor] + /// from [setLock]. + Future unlock(LockFactor unlock); + + /// Sets [LockFactor] that which prevents read/write on this [Vault] + /// unless unlocked with matching [LockFactor] via [unlock]. + Future setLock(LockFactor lock); +} diff --git a/catalyst_voices/packages/catalyst_voices_services/pubspec.yaml b/catalyst_voices/packages/catalyst_voices_services/pubspec.yaml index 427e6268e9..45a2d329fe 100644 --- a/catalyst_voices/packages/catalyst_voices_services/pubspec.yaml +++ b/catalyst_voices/packages/catalyst_voices_services/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: chopper: ^7.2.0 flutter: sdk: flutter - flutter_secure_storage: ^9.0.0 + flutter_secure_storage: ^9.2.2 json_annotation: ^4.8.1 rxdart: ^0.27.7 diff --git a/catalyst_voices/packages/catalyst_voices_services/test/src/storage/secure_storage_test.dart b/catalyst_voices/packages/catalyst_voices_services/test/src/storage/secure_storage_test.dart new file mode 100644 index 0000000000..72c8921b2d --- /dev/null +++ b/catalyst_voices/packages/catalyst_voices_services/test/src/storage/secure_storage_test.dart @@ -0,0 +1,80 @@ +import 'package:catalyst_voices_services/src/storage/secure_storage.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:test/test.dart'; + +void main() { + late final FlutterSecureStorage flutterSecureStorage; + late final SecureStorage secureStorage; + + setUpAll(() { + FlutterSecureStorage.setMockInitialValues({}); + + flutterSecureStorage = const FlutterSecureStorage(); + secureStorage = SecureStorage(secureStorage: flutterSecureStorage); + }); + + tearDown(() async { + await secureStorage.clear(); + }); + + test('read returns null when no value found for key', () async { + // Given + const key = 'key'; + + // When + final value = await secureStorage.readString(key: key); + + // Then + expect(value, isNull); + }); + + test('read returns stored value when has one', () async { + // Given + const key = 'key'; + const expectedValue = 'qqqq'; + + // When + await secureStorage.writeString(expectedValue, key: key); + final value = await secureStorage.readString(key: key); + + // Then + expect(value, expectedValue); + }); + + test('writing null deletes value', () async { + // Given + const key = 'key'; + const expectedValue = 'qqqq'; + + // When + await secureStorage.writeString(expectedValue, key: key); + await secureStorage.writeString(null, key: key); + final value = await secureStorage.readString(key: key); + + // Then + expect(value, isNull); + }); + + test('clear removes all values for this storage', () async { + // Given + const keyValues = { + 'one': 'qqq', + 'two': 'qqq', + }; + + // When + for (final entity in keyValues.entries) { + await secureStorage.writeString(entity.value, key: entity.key); + } + + await secureStorage.clear(); + + final futures = + keyValues.keys.map((e) => secureStorage.readString(key: e)).toList(); + + final values = await Future.wait(futures); + + // Then + expect(values, everyElement(isNull)); + }); +} diff --git a/catalyst_voices/packages/catalyst_voices_services/test/src/storage/storage_string_mixin_test.dart b/catalyst_voices/packages/catalyst_voices_services/test/src/storage/storage_string_mixin_test.dart new file mode 100644 index 0000000000..8792e0243f --- /dev/null +++ b/catalyst_voices/packages/catalyst_voices_services/test/src/storage/storage_string_mixin_test.dart @@ -0,0 +1,162 @@ +import 'dart:async'; +import 'dart:typed_data'; + +import 'package:catalyst_voices_services/src/storage/storage.dart'; +import 'package:catalyst_voices_services/src/storage/storage_string_mixin.dart'; +import 'package:test/test.dart'; + +void main() { + const key = 'key'; + + final storage = _TestStorage(); + + setUp(storage.clear); + + group('int', () { + test('read returns null when no value found', () async { + // Given + + // When + final value = await storage.readInt(key: key); + + // Then + expect(value, isNull); + }); + + test('read returns non-null when value found', () async { + // Given + const expected = 1; + + // When + storage._data[key] = '$expected'; + final value = await storage.readInt(key: key); + + // Then + expect(value, expected); + }); + + test('internally keeps correct String', () async { + // Given + const expected = 1; + storage._data[key] = '$expected'; + + // When + await storage.writeInt(expected, key: key); + final value = storage.readString(key: key); + + // Then + expect(value, '$expected'); + }); + }); + + group('bool', () { + test('read returns null when no value found', () async { + // Given + + // When + final value = await storage.readBool(key: key); + + // Then + expect(value, isNull); + }); + + test('read stores false as 0', () async { + // Given + const expected = false; + const expectedString = '0'; + + // When + await storage.writeBool(expected, key: key); + final value = await storage.readString(key: key); + + // Then + expect(value, expectedString); + }); + + test('read stores true as 1', () async { + // Given + const expected = true; + const expectedString = '1'; + + // When + await storage.writeBool(expected, key: key); + final value = await storage.readString(key: key); + + // Then + expect(value, expectedString); + }); + + test('write and read values matches', () async { + // Given + const expected = true; + + // When + await storage.writeBool(expected, key: key); + final value = await storage.readBool(key: key); + + // Then + expect(value, expected); + }); + }); + + group('bytes', () { + test('read returns null when no value found', () async { + // Given + + // When + final value = await storage.readBytes(key: key); + + // Then + expect(value, isNull); + }); + + test('can write and read value correctly', () async { + // Given + final bytes = Uint8List.fromList([0, 0, 0, 0, 0, 1]); + + // When + await storage.writeBytes(bytes, key: key); + final value = await storage.readBytes(key: key); + + // Then + expect(value, bytes); + }); + }); + + test('delete writes null string', () async { + // Given + const randomValue = 'D'; + + // When + await storage.writeString(randomValue, key: key); + await storage.delete(key: key); + final value = await storage.readString(key: key); + + // Then + expect(value, isNull); + }); +} + +class _TestStorage with StorageAsStringMixin implements Storage { + final _data = {}; + + @override + FutureOr clear() { + _data.clear(); + } + + @override + FutureOr readString({required String key}) => _data[key]; + + @override + FutureOr writeString( + String? value, { + required String key, + }) { + if (value != null) { + _data[key] = value; + } else { + _data.remove(key); + } + } +} diff --git a/catalyst_voices/packages/catalyst_voices_services/test/src/storage/vault/lock_factor_codec_test.dart b/catalyst_voices/packages/catalyst_voices_services/test/src/storage/vault/lock_factor_codec_test.dart new file mode 100644 index 0000000000..d4857ba8eb --- /dev/null +++ b/catalyst_voices/packages/catalyst_voices_services/test/src/storage/vault/lock_factor_codec_test.dart @@ -0,0 +1,20 @@ +import 'package:catalyst_voices_services/catalyst_voices_services.dart'; +import 'package:catalyst_voices_services/src/storage/vault/lock_factor_codec.dart'; +import 'package:test/expect.dart'; +import 'package:test/scaffolding.dart'; + +void main() { + test('encoding and decoding results in same lock factor', () { + // Given + const lock = PasswordLockFactor('pass1234'); + const LockFactorCodec codec = DefaultLockFactorCodec(); + + // When + final encoded = codec.encoder.convert(lock); + final decoded = codec.decoder.convert(encoded); + + // Then + expect(decoded, isA()); + expect(decoded.unlocks(lock), isTrue); + }); +} diff --git a/catalyst_voices/packages/catalyst_voices_services/test/src/storage/vault/lock_factor_test.dart b/catalyst_voices/packages/catalyst_voices_services/test/src/storage/vault/lock_factor_test.dart new file mode 100644 index 0000000000..3faf9efa23 --- /dev/null +++ b/catalyst_voices/packages/catalyst_voices_services/test/src/storage/vault/lock_factor_test.dart @@ -0,0 +1,132 @@ +import 'package:catalyst_voices_services/catalyst_voices_services.dart'; +import 'package:test/test.dart'; + +void main() { + group('LockFactor', () { + test('void lock serialization does work', () { + // Given + const lock = VoidLockFactor(); + + // When + final json = lock.toJson(); + final deserializedFactor = LockFactor.fromJson(json); + + // Then + expect(deserializedFactor, isA()); + }); + + test('description', () { + // Given + const lock = PasswordLockFactor('pass1234'); + + // When + final json = lock.toJson(); + final deserializedFactor = LockFactor.fromJson(json); + + // Then + expect(deserializedFactor, isA()); + expect(deserializedFactor.unlocks(lock), isTrue); + }); + }); + + group('VoidLockFactor', () { + test('does not unlocks any other lock', () { + // Given + const lock = VoidLockFactor(); + const locks = [ + VoidLockFactor(), + PasswordLockFactor('pass1234'), + ]; + + // When + final unlocks = locks.map((e) => lock.unlocks(e)).toList(); + + // Then + expect(unlocks, everyElement(false)); + }); + + test('toJson result has type field', () { + // Given + const lock = VoidLockFactor(); + + // When + final json = lock.toJson(); + + // Then + expect(json.containsKey('type'), isTrue); + }); + + test('toString equals class name', () { + // Given + const lock = VoidLockFactor(); + + // When + final asString = lock.toString(); + + // Then + expect(asString, lock.runtimeType.toString()); + }); + }); + + group('PasswordLockFactor', () { + test('unlocks other PasswordLockFactor with matching data', () { + // Given + const lock = PasswordLockFactor('admin1234'); + const otherLock = PasswordLockFactor('admin1234'); + + // When + final unlocks = lock.unlocks(otherLock); + + // Then + expect(unlocks, isTrue); + }); + + test('does not unlocks other PasswordLockFactor with different data', () { + // Given + const lock = PasswordLockFactor('admin1234'); + const otherLock = PasswordLockFactor('pass1234'); + + // When + final unlocks = lock.unlocks(otherLock); + + // Then + expect(unlocks, isFalse); + }); + + test('does not unlocks other non PasswordLockFactor', () { + // Given + const lock = PasswordLockFactor('admin1234'); + const otherLock = VoidLockFactor(); + + // When + final unlocks = lock.unlocks(otherLock); + + // Then + expect(unlocks, isFalse); + }); + + test('toJson result has type and data field', () { + // Given + const lock = PasswordLockFactor('admin1234'); + + // When + final json = lock.toJson(); + + // Then + expect(json.containsKey('type'), isTrue); + expect(json.containsKey('data'), isTrue); + }); + + test('toString does not contain password', () { + // Given + const password = 'admin1234'; + const lock = PasswordLockFactor(password); + + // When + final asString = lock.toString(); + + // Then + expect(asString, isNot(contains(password))); + }); + }); +} diff --git a/catalyst_voices/packages/catalyst_voices_services/test/src/storage/vault/secure_storage_vault_test.dart b/catalyst_voices/packages/catalyst_voices_services/test/src/storage/vault/secure_storage_vault_test.dart new file mode 100644 index 0000000000..cfba41eb73 --- /dev/null +++ b/catalyst_voices/packages/catalyst_voices_services/test/src/storage/vault/secure_storage_vault_test.dart @@ -0,0 +1,125 @@ +import 'package:catalyst_voices_services/src/storage/vault/lock_factor.dart'; +import 'package:catalyst_voices_services/src/storage/vault/secure_storage_vault.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:test/test.dart'; + +void main() { + late final FlutterSecureStorage flutterSecureStorage; + late final SecureStorageVault vault; + + setUpAll(() { + FlutterSecureStorage.setMockInitialValues({}); + + flutterSecureStorage = const FlutterSecureStorage(); + vault = SecureStorageVault(secureStorage: flutterSecureStorage); + }); + + tearDown(() async { + await flutterSecureStorage.deleteAll(); + }); + + test('lock and unlock factor fallbacks to lock state', () async { + // Given + + // When + final isUnlocked = await vault.isUnlocked; + + // Then + expect(isUnlocked, isFalse); + }); + + test('read returns null when not unlocked', () async { + // Given + const key = 'SecureStorageVault.key'; + const value = 'username'; + + // When + await flutterSecureStorage.write(key: key, value: value); + final readValue = await vault.readString(key: key); + + // Then + expect(readValue, isNull); + }); + + test('write wont happen when is locked', () async { + // Given + const key = 'key'; + const fKey = 'SecureStorageVault.$key'; + const value = 'username'; + + // When + await vault.writeString(value, key: key); + final readValue = await flutterSecureStorage.read(key: fKey); + + // Then + expect(readValue, isNull); + }); + + test('unlock update lock and returns null when locked', () async { + // Given + const lock = PasswordLockFactor('pass1234'); + const key = 'key'; + const value = 'username'; + + // When + await vault.setLock(lock); + final isUnlocked = await vault.unlock(lock); + await vault.writeString(value, key: key); + final readValue = await vault.readString(key: key); + + // Then + expect(isUnlocked, isTrue); + expect(readValue, value); + }); + + test('lock makes vault locked', () async { + // Given + const lock = PasswordLockFactor('pass1234'); + + // When + await vault.setLock(lock); + await vault.unlock(lock); + await vault.lock(); + + final isUnlocked = await vault.isUnlocked; + + // Then + expect(isUnlocked, isFalse); + }); + + test('clear removes all vault keys', () async { + // Given + const lock = PasswordLockFactor('pass1234'); + const vaultKeyValues = { + 'one': 'qqq', + 'two': 'qqq', + }; + const nonVaultKeyValues = { + 'three': 'qqq', + }; + + // When + await vault.setLock(lock); + await vault.unlock(lock); + + for (final entity in vaultKeyValues.entries) { + await vault.writeString(entity.value, key: entity.key); + } + + for (final entity in nonVaultKeyValues.entries) { + await flutterSecureStorage.write(key: entity.key, value: entity.value); + } + + await vault.clear(); + + final futures = + vaultKeyValues.keys.map((e) => vault.readString(key: e)).toList(); + + final values = await Future.wait(futures); + final fValues = await flutterSecureStorage.readAll(); + + // Then + expect(values, everyElement(isNull)); + expect(fValues, nonVaultKeyValues); + }); +} diff --git a/melos.yaml b/melos.yaml index 345b88fae7..4a40c3aa22 100644 --- a/melos.yaml +++ b/melos.yaml @@ -28,6 +28,7 @@ command: flutter_localized_locales: ^2.0.5 flutter_quill: ^10.5.13 flutter_quill_extensions: ^10.5.13 + flutter_secure_storage: ^9.2.2 formz: ^0.7.0 intl: ^0.19.0 logging: ^1.2.0 From ac764d6b011b398a949c998987f570695e59db4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damian=20Moli=C5=84ski?= <47773413+damian-molinski@users.noreply.github.com> Date: Mon, 23 Sep 2024 20:31:10 +0200 Subject: [PATCH 08/23] feat: discovery cta modal (#869) * feat: discovery alert dialog * feat: dialog barrier color --- .../lib/pages/discovery/discovery_page.dart | 13 ++++++++++++- .../lib/src/themes/catalyst.dart | 5 ++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/catalyst_voices/lib/pages/discovery/discovery_page.dart b/catalyst_voices/lib/pages/discovery/discovery_page.dart index 44dc96f11b..7049932a0d 100644 --- a/catalyst_voices/lib/pages/discovery/discovery_page.dart +++ b/catalyst_voices/lib/pages/discovery/discovery_page.dart @@ -1,3 +1,5 @@ +import 'dart:async'; + import 'package:catalyst_voices/pages/discovery/current_status_text.dart'; import 'package:catalyst_voices/pages/discovery/toggle_state_text.dart'; import 'package:catalyst_voices/widgets/widgets.dart'; @@ -84,7 +86,16 @@ class _Segment extends StatelessWidget { const Spacer(), VoicesFilledButton( child: const Text('CTA to Model'), - onTap: () {}, + onTap: () { + unawaited( + VoicesDialog.show( + context: context, + builder: (context) { + return const VoicesDesktopInfoDialog(title: Text('')); + }, + ), + ); + }, ), ], ), diff --git a/catalyst_voices/packages/catalyst_voices_brands/lib/src/themes/catalyst.dart b/catalyst_voices/packages/catalyst_voices_brands/lib/src/themes/catalyst.dart index 52149626e6..1e76d0c85a 100644 --- a/catalyst_voices/packages/catalyst_voices_brands/lib/src/themes/catalyst.dart +++ b/catalyst_voices/packages/catalyst_voices_brands/lib/src/themes/catalyst.dart @@ -310,9 +310,8 @@ ThemeData _buildThemeData( backgroundColor: voicesColorScheme.onSurfaceNeutralOpaqueLv0, ), dialogTheme: DialogTheme( - // TODO(damian-molinski): themed value needed. - // We don't have it defined yet. - barrierColor: const Color(0x612A3D61), + // N10-38 + barrierColor: const Color(0x212A3D61), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), clipBehavior: Clip.hardEdge, backgroundColor: voicesColorScheme.elevationsOnSurfaceNeutralLv1White, From d728f10f0d3c66e04d9fdb722944a5c6869c0cec Mon Sep 17 00:00:00 2001 From: Joshua Gilman Date: Mon, 23 Sep 2024 11:52:01 -0700 Subject: [PATCH 09/23] ci(general): integrates catalyst-forge (#847) --- .github/workflows/ci.yml | 11 +--- blueprint.cue | 51 +++++++++++++++++++ catalyst-gateway/blueprint.cue | 2 + catalyst-gateway/event-db/blueprint.cue | 2 + .../tests/api_tests/blueprint.cue | 2 + catalyst-gateway/tests/blueprint.cue | 2 + .../tests/schemathesis_tests/blueprint.cue | 2 + catalyst_voices/Earthfile | 6 ++- catalyst_voices/blueprint.cue | 2 + .../test/wallet-automation/blueprint.cue | 2 + docs/blueprint.cue | 2 + utilities/wallet-tester/blueprint.cue | 2 + 12 files changed, 75 insertions(+), 11 deletions(-) create mode 100644 blueprint.cue create mode 100644 catalyst-gateway/blueprint.cue create mode 100644 catalyst-gateway/event-db/blueprint.cue create mode 100644 catalyst-gateway/tests/api_tests/blueprint.cue create mode 100644 catalyst-gateway/tests/blueprint.cue create mode 100644 catalyst-gateway/tests/schemathesis_tests/blueprint.cue create mode 100644 catalyst_voices/blueprint.cue create mode 100644 catalyst_voices_packages/catalyst_cardano/catalyst_cardano/test/wallet-automation/blueprint.cue create mode 100644 docs/blueprint.cue create mode 100644 utilities/wallet-tester/blueprint.cue diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6a83c0527f..0d887d7800 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,13 +10,6 @@ permissions: jobs: ci: - uses: input-output-hk/catalyst-ci/.github/workflows/ci.yml@master + uses: input-output-hk/catalyst-forge/.github/workflows/ci.yml@master with: - aws_ecr_registry: 332405224602.dkr.ecr.eu-central-1.amazonaws.com - aws_role_arn: arn:aws:iam::332405224602:role/ci - aws_region: eu-central-1 - secrets: - dockerhub_token: ${{ secrets.DOCKERHUB_TOKEN }} - dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }} - earthly_runner_address: ${{ secrets.EARTHLY_SATELLITE_ADDRESS }} - earthly_runner_secret: ${{ secrets.EARTHLY_RUNNER_SECRET }} \ No newline at end of file + forge_version: latest \ No newline at end of file diff --git a/blueprint.cue b/blueprint.cue new file mode 100644 index 0000000000..193d3916f6 --- /dev/null +++ b/blueprint.cue @@ -0,0 +1,51 @@ +version: "1.0" +global: { + ci: { + local: [ + "^check(-.*)?$", + "^build(-.*)?$", + "^package(-.*)?$", + "^test(-.*)?$", + "^release(-.*)?$", + "^publish(-.*)?$", + ] + registries: [ + ci.providers.aws.registry, + ] + providers: { + aws: { + region: "eu-central-1" + registry: "332405224602.dkr.ecr.eu-central-1.amazonaws.com" + role: "arn:aws:iam::332405224602:role/ci" + } + + docker: credentials: { + provider: "aws" + path: "global/ci/docker" + } + + earthly: { + credentials: { + provider: "aws" + path: "global/ci/earthly" + } + org: "Catalyst" + satellite: "ci" + version: "0.8.15" + } + + github: registry: "ghcr.io" + } + secrets: [ + { + name: "GITHUB_TOKEN" + optional: true + provider: "env" + path: "GITHUB_TOKEN" + }, + ] + tagging: { + strategy: "commit" + } + } +} diff --git a/catalyst-gateway/blueprint.cue b/catalyst-gateway/blueprint.cue new file mode 100644 index 0000000000..3278906156 --- /dev/null +++ b/catalyst-gateway/blueprint.cue @@ -0,0 +1,2 @@ +version: "1.0.0" +project: name: "gateway" diff --git a/catalyst-gateway/event-db/blueprint.cue b/catalyst-gateway/event-db/blueprint.cue new file mode 100644 index 0000000000..1dad7a98b0 --- /dev/null +++ b/catalyst-gateway/event-db/blueprint.cue @@ -0,0 +1,2 @@ +version: "1.0.0" +project: name: "gateway-event-db" diff --git a/catalyst-gateway/tests/api_tests/blueprint.cue b/catalyst-gateway/tests/api_tests/blueprint.cue new file mode 100644 index 0000000000..d15bf941d5 --- /dev/null +++ b/catalyst-gateway/tests/api_tests/blueprint.cue @@ -0,0 +1,2 @@ +version: "1.0.0" +project: name: "gateway-api-tests" diff --git a/catalyst-gateway/tests/blueprint.cue b/catalyst-gateway/tests/blueprint.cue new file mode 100644 index 0000000000..17b8489385 --- /dev/null +++ b/catalyst-gateway/tests/blueprint.cue @@ -0,0 +1,2 @@ +version: "1.0.0" +project: name: "catalyst-gateway-tests" diff --git a/catalyst-gateway/tests/schemathesis_tests/blueprint.cue b/catalyst-gateway/tests/schemathesis_tests/blueprint.cue new file mode 100644 index 0000000000..4a26b5160d --- /dev/null +++ b/catalyst-gateway/tests/schemathesis_tests/blueprint.cue @@ -0,0 +1,2 @@ +version: "1.0.0" +project: name: "gateway-schema-tests" diff --git a/catalyst_voices/Earthfile b/catalyst_voices/Earthfile index 989dbce65b..f22c850de5 100644 --- a/catalyst_voices/Earthfile +++ b/catalyst_voices/Earthfile @@ -83,6 +83,8 @@ package: publish: FROM +package - ARG tag='latest' - SAVE IMAGE voices-frontend:$tag \ No newline at end of file + ARG container="voices" + ARG tag="latest" + + SAVE IMAGE ${container}:${tag} \ No newline at end of file diff --git a/catalyst_voices/blueprint.cue b/catalyst_voices/blueprint.cue new file mode 100644 index 0000000000..c76d4145ee --- /dev/null +++ b/catalyst_voices/blueprint.cue @@ -0,0 +1,2 @@ +version: "1.0.0" +project: name: "voices" diff --git a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/test/wallet-automation/blueprint.cue b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/test/wallet-automation/blueprint.cue new file mode 100644 index 0000000000..cb4463fa63 --- /dev/null +++ b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/test/wallet-automation/blueprint.cue @@ -0,0 +1,2 @@ +version: "1.0.0" +project: name: "voices-wallet-automation-test" diff --git a/docs/blueprint.cue b/docs/blueprint.cue new file mode 100644 index 0000000000..d5db755573 --- /dev/null +++ b/docs/blueprint.cue @@ -0,0 +1,2 @@ +version: "1.0.0" +project: name: "voices-docs" diff --git a/utilities/wallet-tester/blueprint.cue b/utilities/wallet-tester/blueprint.cue new file mode 100644 index 0000000000..263a5d2095 --- /dev/null +++ b/utilities/wallet-tester/blueprint.cue @@ -0,0 +1,2 @@ +version: "1.0.0" +project: name: "voices-wallet-tester" From d972a977a0bd2d660b5138d7600849d9b1869845 Mon Sep 17 00:00:00 2001 From: Apisit Ritreungroj <38898766+apskhem@users.noreply.github.com> Date: Tue, 24 Sep 2024 13:28:49 +0700 Subject: [PATCH 10/23] ci(cat-voices): Add license checker (#865) * feat: initial checks * fix: add -i flag * feat: new ci version * chore: bump ci version --------- Co-authored-by: Dominik Toton <166132265+dtscalac@users.noreply.github.com> --- catalyst_voices/Earthfile | 7 +- catalyst_voices/uikit_example/Earthfile | 2 +- .../wallet-automation/Earthfile | 2 +- melos.yaml | 66 +++++++++++++++++++ 4 files changed, 74 insertions(+), 3 deletions(-) diff --git a/catalyst_voices/Earthfile b/catalyst_voices/Earthfile index f22c850de5..ff6b0d1c25 100644 --- a/catalyst_voices/Earthfile +++ b/catalyst_voices/Earthfile @@ -1,7 +1,7 @@ VERSION 0.8 IMPORT ../catalyst-gateway AS catalyst-gateway -IMPORT github.com/input-output-hk/catalyst-ci/earthly/flutter:v3.2.04 AS flutter-ci +IMPORT github.com/input-output-hk/catalyst-ci/earthly/flutter:v3.2.06 AS flutter-ci # Copy all the necessary files and running bootstrap builder: @@ -52,6 +52,11 @@ check-package-publishing: FROM +builder DO flutter-ci+PUBLISH_DRY_RUN +# Runs the license checks for Catalyst Voices. +check-license: + FROM +builder + RUN melos run license-check + # Run unit tests test-unit: FROM +builder diff --git a/catalyst_voices/uikit_example/Earthfile b/catalyst_voices/uikit_example/Earthfile index 309d129344..c5e6381e6d 100644 --- a/catalyst_voices/uikit_example/Earthfile +++ b/catalyst_voices/uikit_example/Earthfile @@ -1,7 +1,7 @@ VERSION 0.8 IMPORT ../ AS catalyst-voices -IMPORT github.com/input-output-hk/catalyst-ci/earthly/flutter:v3.2.04 AS flutter-ci +IMPORT github.com/input-output-hk/catalyst-ci/earthly/flutter:v3.2.06 AS flutter-ci # local-build-web - build web version of UIKit example. # Prefixed by "local" to make sure it's not auto triggered, the target was diff --git a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/Earthfile b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/Earthfile index d066ed128b..37f8843afa 100644 --- a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/Earthfile +++ b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/Earthfile @@ -1,5 +1,5 @@ VERSION 0.8 -IMPORT github.com/input-output-hk/catalyst-ci/earthly/flutter:v3.2.04 AS flutter-ci +IMPORT github.com/input-output-hk/catalyst-ci/earthly/flutter:v3.2.06 AS flutter-ci deps: FROM mcr.microsoft.com/playwright:v1.45.2-jammy diff --git a/melos.yaml b/melos.yaml index 4a40c3aa22..e8d7e36277 100644 --- a/melos.yaml +++ b/melos.yaml @@ -8,6 +8,67 @@ packages: - catalyst_voices_packages/** - utilities/** +permittedLicenses: +- MIT +- Apache-2.0 +- Unicode-DFS-2016 +- BSD-3-Clause +- BSD-2-Clause +- BlueOak-1.0.0 +- Apache-2.0 WITH LLVM-exception +- CC0-1.0 + +packageLicenseOverride: + fuchsia_remote_debug_protocol: BSD-3-Clause + flutter_driver: BSD-3-Clause + flutter_localizations: BSD-3-Clause + flutter_test: BSD-3-Clause + flutter_web_plugins: BSD-3-Clause + integration_test: BSD-3-Clause + rxdart: Apache-2.0 + vector_math: Apache-2.0 + sky_engine: Apache-2.0 + flutter_gen: MIT + # catalyst packages + catalyst_analysis: Apache-2.0 + catalyst_cose: Apache-2.0 + catalyst_cardano_serialization: Apache-2.0 + catalyst_cardano_platform_interface: Apache-2.0 + catalyst_compression: Apache-2.0 + catalyst_compression_web: Apache-2.0 + catalyst_cardano_web: Apache-2.0 + catalyst_compression_platform_interface: Apache-2.0 + catalyst_voices_assets: Apache-2.0 + catalyst_voices_assets_example: Apache-2.0 + catalyst_cardano: Apache-2.0 + catalyst_cardano_example: Apache-2.0 + catalyst_voices_localization: Apache-2.0 + catalyst_voices_models: Apache-2.0 + example: Apache-2.0 + catalyst_voices_remote_widgets: Apache-2.0 + remote_widgets_example: Apache-2.0 + catalyst_voices_view_models: Apache-2.0 + catalyst_voices_blocs: Apache-2.0 + catalyst_voices_shared: Apache-2.0 + catalyst_voices_brands: Apache-2.0 + catalyst_voices_services: Apache-2.0 + poc_local_storage: Apache-2.0 + catalyst_voices_repositories: Apache-2.0 + catalyst_voices: Apache-2.0 + uikit_example: Apache-2.0 + +packageSourceOverride: + fuchsia_remote_debug_protocol: https://github.com/flutter/flutter/blob/main/LICENSE + flutter_driver: https://github.com/flutter/flutter/blob/main/LICENSE + flutter_localizations: https://github.com/flutter/flutter/blob/main/LICENSE + flutter_test: https://github.com/flutter/flutter/blob/main/LICENSE + flutter_web_plugins: https://github.com/flutter/flutter/blob/main/LICENSE + integration_test: https://github.com/flutter/flutter/blob/main/LICENSE + rxdart: https://github.com/ReactiveX/rxdart/blob/master/LICENSE + vector_math: https://github.com/google/vector_math.dart/blob/master/LICENSE + sky_engine: https://github.com/flutter/engine/blob/main/sky/packages/sky_engine/LICENSE + flutter_gen: https://github.com/FlutterGen/flutter_gen/blob/main/LICENSE + command: version: linkToCommits: true @@ -76,6 +137,11 @@ scripts: melos exec -c 1 --dir-exists="integration_test" -- "find . -name "*.dart" ! -name "*.g.dart" ! -path '*/generated/*' | tr '\n' ' ' | xargs dart format --output none --set-exit-if-changed" description: Run `dart format` checks for all packages. + license-check: + run: | + melos exec -- lic_ck check-licenses -c $MELOS_ROOT_PATH/melos.yaml -i + description: Run `lic_ck` checks for all packages. + test:select: run: | melos exec -c 1 --dir-exists="test" -- flutter test From 626476a79cde7159a9c2f38d8f3509ccc2362b68 Mon Sep 17 00:00:00 2001 From: digitalheartxs Date: Tue, 24 Sep 2024 12:37:37 +0200 Subject: [PATCH 11/23] feat: Simplify MVE1 workspace (#874) --- .../lib/pages/workspace/workspace_page.dart | 23 +------------------ .../widgets/rich_text/voices_rich_text.dart | 2 +- 2 files changed, 2 insertions(+), 23 deletions(-) diff --git a/catalyst_voices/lib/pages/workspace/workspace_page.dart b/catalyst_voices/lib/pages/workspace/workspace_page.dart index ae19d06783..96de89afa6 100644 --- a/catalyst_voices/lib/pages/workspace/workspace_page.dart +++ b/catalyst_voices/lib/pages/workspace/workspace_page.dart @@ -3,8 +3,6 @@ import 'package:catalyst_voices/pages/workspace/proposal_navigation_panel.dart'; import 'package:catalyst_voices/pages/workspace/proposal_segment_controller.dart'; import 'package:catalyst_voices/pages/workspace/proposal_setup_panel.dart'; import 'package:catalyst_voices/pages/workspace/sample_rich_text.dart'; -import 'package:catalyst_voices/pages/workspace/sample_rich_text2.dart'; -import 'package:catalyst_voices/pages/workspace/sample_rich_text3.dart'; import 'package:catalyst_voices/widgets/widgets.dart'; import 'package:catalyst_voices_models/catalyst_voices_models.dart'; import 'package:flutter/material.dart'; @@ -17,31 +15,12 @@ final _proposalNavigation = WorkspaceProposalNavigation( WorkspaceProposalSetup( id: _setupSegmentId, steps: [ - const WorkspaceProposalSegmentStep( - id: 0, - title: 'Title', - description: 'F14 / Promote Social Entrepreneurs and a ' - 'longer title up-to 60 characters', - isEditable: true, - ), WorkspaceProposalSegmentStep( - id: 1, + id: 0, title: 'Rich text', document: Document.fromJson(sampleRichText), isEditable: true, ), - WorkspaceProposalSegmentStep( - id: 2, - title: 'Other topic', - document: Document.fromJson(sampleRichText2), - isEditable: false, - ), - WorkspaceProposalSegmentStep( - id: 3, - title: 'Other topic', - document: Document.fromJson(sampleRichText3), - isEditable: false, - ), ], ), ], diff --git a/catalyst_voices/lib/widgets/rich_text/voices_rich_text.dart b/catalyst_voices/lib/widgets/rich_text/voices_rich_text.dart index 697060c9c5..af4ee01f1f 100644 --- a/catalyst_voices/lib/widgets/rich_text/voices_rich_text.dart +++ b/catalyst_voices/lib/widgets/rich_text/voices_rich_text.dart @@ -150,7 +150,7 @@ class _Editor extends StatelessWidget { return Padding( padding: const EdgeInsets.symmetric(horizontal: 24), child: ResizableBoxParent( - minHeight: 320, + minHeight: 470, resizableVertically: true, resizableHorizontally: false, child: DecoratedBox( From 28cb3c5a507f97f801471e793f6b973b2cf7a710 Mon Sep 17 00:00:00 2001 From: Pal Dorogi <1113398+ilap@users.noreply.github.com> Date: Tue, 24 Sep 2024 16:37:42 +0200 Subject: [PATCH 12/23] feat(dart/catalyst_cardano_serialization)!: Implement tiered fee calculation for reference scripts (#871) * fix(dart/catalyst_cardano_serialization): update inputs to Set for CDDL alignment and change referenceInputs for reference script fee calculation * feat(catalyst_cardano_serialization): add length getter to the Script's classes for reference script fee calculation * feat(catalyst_cardano_serialization): Implement tiered fee calculation for reference scripts * Replace LinearFee with TieredFee to support tiered fee calculation for transactions that consider reference scripts. * Rename the minNoScriptFee() method to minFee() for clarity. * Make the script constructors private and add a fromHex(String cborHex) factory constructor for PlutusScripts. * Add tests for the length property of scripts, which also validates the fromHex factory constructor. * Add tests for fee calculation with reference scripts. * Add a ReferenceScriptSizeLimitExceededException class for handling errors when the reference script size limit is exceeded. * fix(catalyst_cardano_serialization): add missing fields (multiplier, sizeIncrement, maxRefScriptSize) to props for equality * fix(catalyst_cardano): resolve compilation errors in dependent packages caused by catalyst_cardano_serialization changes --------- Co-authored-by: Steven Johnson Co-authored-by: Dominik Toton <166132265+dtscalac@users.noreply.github.com> --- .../catalyst_cardano/README.md | 9 +- .../catalyst_cardano/example/lib/main.dart | 4 +- .../example/lib/sign_and_submit_rbac_tx.dart | 4 +- .../example/lib/sign_and_submit_tx.dart | 9 +- .../lib/src/cardano_wallet.dart | 2 +- .../catalyst_cardano_wallet_proxy.dart | 6 +- .../catalyst_cardano_serialization/README.md | 7 +- .../example/main.dart | 9 +- .../lib/src/builders/transaction_builder.dart | 10 +- .../lib/src/exceptions.dart | 18 + .../lib/src/fees.dart | 171 +++++++- .../lib/src/hashes.dart | 2 +- .../lib/src/scripts.dart | 86 ++-- .../test/fees_test.dart | 224 ++++++++++- .../test/hashes_test.dart | 2 +- .../test/scripts_test.dart | 44 ++- .../test/test_utils/test_data.dart | 367 +++++++++++++++++- .../test/transaction_output_test.dart | 2 +- 18 files changed, 868 insertions(+), 108 deletions(-) diff --git a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/README.md b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/README.md index b089a8e850..af110d7dab 100644 --- a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/README.md +++ b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/README.md @@ -101,13 +101,14 @@ Future main() async { } Transaction _buildUnsignedTx({ - required List utxos, + required Set utxos, required ShelleyAddress changeAddress, }) { const txBuilderConfig = TransactionBuilderConfig( - feeAlgo: LinearFee( - constant: Coin(155381), - coefficient: Coin(44), + feeAlgo: TieredFee( + constant: 155381, + coefficient: 44, + refScriptByteCost: 15, ), maxTxSize: 16384, maxValueSize: 5000, diff --git a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/example/lib/main.dart b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/example/lib/main.dart index a3fd2f5c2c..0e99f9d7d3 100644 --- a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/example/lib/main.dart +++ b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/example/lib/main.dart @@ -238,7 +238,7 @@ class _WalletDetailsState extends State<_WalletDetails> { List? _rewardAddresses; List? _unusedAddresses; List? _usedAddresses; - List? _utxos; + Set? _utxos; PubDRepKey? _pubDRepKey; List? _registeredPubStakeKeys; List? _unregisteredPubStakeKeys; @@ -450,7 +450,7 @@ String _formatBalance(Balance? balance) { return buffer.toString(); } -String _formatUtxos(List? utxos) { +String _formatUtxos(Set? utxos) { if (utxos == null) { return '---'; } diff --git a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/example/lib/sign_and_submit_rbac_tx.dart b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/example/lib/sign_and_submit_rbac_tx.dart index 5ad2c02bd6..ac34dc1ab6 100644 --- a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/example/lib/sign_and_submit_rbac_tx.dart +++ b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/example/lib/sign_and_submit_rbac_tx.dart @@ -75,7 +75,7 @@ Future _signAndSubmitRbacTx({ } Future> _buildMetadataEnvelope({ - required List utxos, + required Set utxos, required ShelleyAddress rewardAddress, }) async { final seed = List.generate( @@ -152,7 +152,7 @@ Future> _buildMetadataEnvelope({ } Transaction _buildUnsignedRbacTx({ - required List inputs, + required Set inputs, required ShelleyAddress changeAddress, required ShelleyAddress rewardAddress, required AuxiliaryData auxiliaryData, diff --git a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/example/lib/sign_and_submit_tx.dart b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/example/lib/sign_and_submit_tx.dart index 47a07f8fd2..a92f886e61 100644 --- a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/example/lib/sign_and_submit_tx.dart +++ b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/example/lib/sign_and_submit_tx.dart @@ -47,7 +47,7 @@ Future _signAndSubmitTx({ } Transaction _buildUnsignedTx({ - required List utxos, + required Set utxos, required ShelleyAddress changeAddress, }) { /* cSpell:disable */ @@ -81,9 +81,10 @@ Transaction _buildUnsignedTx({ TransactionBuilderConfig _buildTransactionBuilderConfig() { return const TransactionBuilderConfig( - feeAlgo: LinearFee( - constant: Coin(155381), - coefficient: Coin(44), + feeAlgo: TieredFee( + constant: 155381, + coefficient: 44, + refScriptByteCost: 15, ), maxTxSize: 16384, maxValueSize: 5000, diff --git a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano_platform_interface/lib/src/cardano_wallet.dart b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano_platform_interface/lib/src/cardano_wallet.dart index 46ad60abd7..5ae71169b5 100644 --- a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano_platform_interface/lib/src/cardano_wallet.dart +++ b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano_platform_interface/lib/src/cardano_wallet.dart @@ -116,7 +116,7 @@ abstract interface class CardanoWalletApi { /// specified in amount, and if this cannot be attained, /// null shall be returned. The results can be further paginated by /// [paginate] if it is not null. - Future> getUtxos({ + Future> getUtxos({ Balance? amount, Paginate? paginate, }); diff --git a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano_web/lib/src/interop/catalyst_cardano_wallet_proxy.dart b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano_web/lib/src/interop/catalyst_cardano_wallet_proxy.dart index 77f1ca0b18..025232180f 100644 --- a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano_web/lib/src/interop/catalyst_cardano_wallet_proxy.dart +++ b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano_web/lib/src/interop/catalyst_cardano_wallet_proxy.dart @@ -171,7 +171,7 @@ class JSCardanoWalletApiProxy implements CardanoWalletApi { } @override - Future> getUtxos({ + Future> getUtxos({ Balance? amount, Paginate? paginate, }) async { @@ -183,7 +183,7 @@ class JSCardanoWalletApiProxy implements CardanoWalletApi { paginate != null ? JSPaginate.fromDart(paginate) : makeUndefined(), ); - if (utxos == null) return []; + if (utxos == null) return {}; return await utxos.toDart.then( (array) => array.toDart @@ -192,7 +192,7 @@ class JSCardanoWalletApiProxy implements CardanoWalletApi { cbor.decode(hex.decode(item.toDart)), ), ) - .toList(), + .toSet(), ); } catch (ex) { throw _mapApiException(ex) ?? diff --git a/catalyst_voices_packages/catalyst_cardano_serialization/README.md b/catalyst_voices_packages/catalyst_cardano_serialization/README.md index 4cb692b5d5..8188f53185 100644 --- a/catalyst_voices_packages/catalyst_cardano_serialization/README.md +++ b/catalyst_voices_packages/catalyst_cardano_serialization/README.md @@ -52,9 +52,10 @@ import 'package:convert/convert.dart'; /* cSpell:disable */ void main() { const txBuilderConfig = TransactionBuilderConfig( - feeAlgo: LinearFee( - constant: Coin(155381), - coefficient: Coin(44), + feeAlgo: TieredFee( + constant: 155381, + coefficient: 44, + refScriptByteCost: 0, ), maxTxSize: 16384, maxValueSize: 5000, diff --git a/catalyst_voices_packages/catalyst_cardano_serialization/example/main.dart b/catalyst_voices_packages/catalyst_cardano_serialization/example/main.dart index bb01322031..6183e5010f 100644 --- a/catalyst_voices_packages/catalyst_cardano_serialization/example/main.dart +++ b/catalyst_voices_packages/catalyst_cardano_serialization/example/main.dart @@ -7,9 +7,10 @@ import 'package:convert/convert.dart'; /* cSpell:disable */ void main() { const txBuilderConfig = TransactionBuilderConfig( - feeAlgo: LinearFee( - constant: Coin(155381), - coefficient: Coin(44), + feeAlgo: TieredFee( + constant: 155381, + coefficient: 44, + refScriptByteCost: 15, ), maxTxSize: 16384, maxValueSize: 5000, @@ -58,7 +59,7 @@ void main() { final txBuilder = TransactionBuilder( config: txBuilderConfig, - inputs: [utxo], + inputs: {utxo}, // fee can be left empty so that it's auto calculated or can be hardcoded // fee: const Coin(1000000), ttl: const SlotBigNum(410021), diff --git a/catalyst_voices_packages/catalyst_cardano_serialization/lib/src/builders/transaction_builder.dart b/catalyst_voices_packages/catalyst_cardano_serialization/lib/src/builders/transaction_builder.dart index 96d071ace6..9d53004f9a 100644 --- a/catalyst_voices_packages/catalyst_cardano_serialization/lib/src/builders/transaction_builder.dart +++ b/catalyst_voices_packages/catalyst_cardano_serialization/lib/src/builders/transaction_builder.dart @@ -19,7 +19,7 @@ final class TransactionBuilder extends Equatable { /// /// Enough [inputs] must be provided to be greater or equal /// the amount of [outputs] + [fee]. - final List inputs; + final Set inputs; /// The list of transaction outputs which describes which address /// will receive what amount of [Coin]. @@ -64,7 +64,7 @@ final class TransactionBuilder extends Equatable { final Coin? totalCollateral; /// Reference inputs as nonempty set of transaction inputs. - final Set? referenceInputs; + final Set? referenceInputs; /// The builder that builds the witness set of the transaction. /// @@ -249,7 +249,7 @@ final class TransactionBuilder extends Equatable { Coin minFee() { final txBody = _copyWith(fee: const Coin(Numbers.intMaxValue)).buildBody(); final fullTx = buildFakeTransaction(txBody); - return config.feeAlgo.minNoScriptFee(fullTx); + return config.feeAlgo.minFee(fullTx, {...inputs, ...?referenceInputs}); } @override @@ -521,7 +521,7 @@ final class TransactionBuilder extends Equatable { networkId: networkId, collateralReturn: collateralReturn, totalCollateral: totalCollateral, - referenceInputs: referenceInputs, + referenceInputs: referenceInputs?.map((utxo) => utxo.input).toSet(), ); } @@ -555,7 +555,7 @@ final class TransactionBuilder extends Equatable { /// protocol parameters and other constants. final class TransactionBuilderConfig extends Equatable { /// The protocol parameter which describes the transaction fee algorithm. - final LinearFee feeAlgo; + final TieredFee feeAlgo; /// The protocol parameter which limits the maximum transaction size in bytes. final int maxTxSize; diff --git a/catalyst_voices_packages/catalyst_cardano_serialization/lib/src/exceptions.dart b/catalyst_voices_packages/catalyst_cardano_serialization/lib/src/exceptions.dart index fb27c13362..f809d27d54 100644 --- a/catalyst_voices_packages/catalyst_cardano_serialization/lib/src/exceptions.dart +++ b/catalyst_voices_packages/catalyst_cardano_serialization/lib/src/exceptions.dart @@ -190,3 +190,21 @@ final class InsufficientAdaForAssetsException extends Equatable @override List get props => []; } + +/// Exception thrown when the total size of reference scripts exceeds the limit. +final class ReferenceScriptSizeLimitExceededException extends Equatable + implements Exception { + /// The maximum size of reference scripts allowed per transaction. + final int maxRefScriptSize; + + /// The default constructor for [ReferenceScriptSizeLimitExceededException]. + const ReferenceScriptSizeLimitExceededException(this.maxRefScriptSize); + + @override + String toString() => + 'Total size of reference scripts exceeds the limit of $maxRefScriptSize ' + 'bytes'; + + @override + List get props => [maxRefScriptSize]; +} diff --git a/catalyst_voices_packages/catalyst_cardano_serialization/lib/src/fees.dart b/catalyst_voices_packages/catalyst_cardano_serialization/lib/src/fees.dart index f0aaad83a1..954c1d6927 100644 --- a/catalyst_voices_packages/catalyst_cardano_serialization/lib/src/fees.dart +++ b/catalyst_voices_packages/catalyst_cardano_serialization/lib/src/fees.dart @@ -1,35 +1,172 @@ +import 'package:catalyst_cardano_serialization/src/exceptions.dart'; import 'package:catalyst_cardano_serialization/src/transaction.dart'; +import 'package:catalyst_cardano_serialization/src/transaction_output.dart'; import 'package:catalyst_cardano_serialization/src/types.dart'; import 'package:cbor/cbor.dart'; import 'package:equatable/equatable.dart'; -/// Calculates fees for the transaction on Cardano blockchain. +/// A final class that implements a flexible fee algorithm. It calculates +/// fees for transactions using both linear and tiered logic based on the +/// size of reference scripts. /// -/// The fee is calculated using the following formula: -/// - `fee = constant + tx.bytes.len * coefficient` -final class LinearFee extends Equatable { - /// The constant amount of [Coin] that is charged per transaction. - final Coin constant; +/// If the [refScriptByteCost] parameter is `0` or if there are no reference +/// scripts in the `inputs`, then the [TieredFee] class behaves like the +/// pre-Conway linear fee model. +final class TieredFee extends Equatable { + /// The constant amount of lovelace charged per transaction. + /// + /// This value is derived from the protocol parameter `minFeeA`. + final int constant; + + /// The amount charged per transaction byte. + /// + /// This value is derived from the protocol parameter `minFeeB`. + final int coefficient; + + /// The multiplier for the tiered fee algorithm. + /// This factor increases the fee per byte at each size increment. + /// + /// For the Conway era, this value on mainnet is set to 1.2. + final double multiplier; + + /// The size increment for the tiered fee algorithm. + /// The fee per byte increases after this size. + /// + /// For the Conway era, this value on mainnet is set to 25,600 bytes. + final int sizeIncrement; - /// The amount of [Coin] per transaction byte that is charged per transaction. - final Coin coefficient; + /// The cost per byte for reference scripts. + /// This value is derived from the protocol parameter + /// `minFeeRefScriptCostPerByte`. + final int refScriptByteCost; - /// The default constructor for [LinearFee]. + /// The maximum size of reference scripts allowed per transaction. /// - /// The parameters are Cardano protocol parameters. - const LinearFee({ + /// This value is currently hardcoded, but will be turned into an actual + /// protocol parameter in the next era after Conway. + /// + /// For the Conway era, this value on mainnet is set to 204,800 bytes + /// (200 KiB). + final int maxRefScriptSize; + + /// The default constructor for [TieredFee], which applies both linear and + /// tiered pricing based on transaction size. + /// + /// The parameters represent Cardano protocol values. + /// > Note: The [multiplier], [sizeIncrement] and [maxRefScriptSize] are + /// currently hardcoded for mainnet but may become protocol parameters in + /// the future. + const TieredFee({ required this.constant, required this.coefficient, + this.multiplier = 1.2, + this.sizeIncrement = 25600, + required this.refScriptByteCost, + this.maxRefScriptSize = 204800, }); - /// Calculates the fee for the transaction denominated in lovelaces. + /// Calculates the minimum fee for the transaction, adding any reference + /// script-related costs if applicable. + Coin minFee(Transaction tx, Set inputs) { + final refScriptsBytes = _calculateReferenceScriptSize(inputs); + + if (refScriptsBytes > maxRefScriptSize) { + throw ReferenceScriptSizeLimitExceededException(maxRefScriptSize); + } + + final minTxFee = tieredFee( + cbor.encode(tx.toCbor()).length, + refScriptsBytes, + ); + + return Coin(minTxFee); + } + + /// Calculates the linear fee for a transaction based on its size in bytes. + /// + /// The linear fee formula is: + /// - `fee = constant + (tx.bytes.len * coefficient)` + /// + /// > This formula does not account for smart contract scripts. + int linearFee(int bytesCount) => bytesCount * coefficient + constant; + + /// Calculates the fee for a transaction using the tiered pricing model. + /// This includes both the linear fee and, if applicable, a reference script + /// fee. + int tieredFee(int txBytes, int refScriptsBytes) { + final txFee = linearFee(txBytes); + final scriptFee = refScriptByteCost > 0 && refScriptsBytes > 0 + ? refScriptFee( + multiplier, + sizeIncrement, + refScriptByteCost, + refScriptsBytes, + ) + : 0; + return txFee + scriptFee; + } + + /// Calculates the fee for the reference scripts. /// - /// The formula doesn't take into account smart contract scripts. - Coin minNoScriptFee(Transaction tx) { - final bytesCount = cbor.encode(tx.toCbor()).length; - return Coin(bytesCount) * coefficient + constant; + /// The reference script fee is based on a tiered pricing model: + /// - The fee increases for each additional `25KiB` chunk of reference + /// script size. + /// - The first `25KiB` is charged at a base cost per byte, and subsequent + /// chunks are charged at progressively higher rates, multiplied by `1.2`. + int refScriptFee( + double multiplier, + int sizeIncrement, + int refScriptCostPerByte, + int resScriptSize, + ) { + int calcRefScriptFee(double acc, double curTierPrice, int n) => + n <= sizeIncrement + ? (acc + n * curTierPrice).floor() + : calcRefScriptFee( + acc + curTierPrice * sizeIncrement, + curTierPrice * multiplier, + n - sizeIncrement, + ); + return calcRefScriptFee( + 0, + refScriptCostPerByte.toDouble(), + resScriptSize, + ); + } + + /// Calculates the total size of reference scripts used in a transaction. + /// + /// This includes the sizes of reference scripts from both inputs and + /// reference inputs. Outputs without reference scripts do not contribute + /// to the total size. + /// + /// Duplicate reference scripts are counted each time they appear in the + /// transaction, i.e., when the same script is used on different inputs. + /// + /// However, any input that appears in both regular inputs and + /// reference inputs of a transaction is only used once in this computation. + int _calculateReferenceScriptSize(Set inputs) { + final totalSize = inputs.fold( + 0, + (prevSize, input) => + prevSize + + switch (input.output) { + final TransactionOutput output => + output.scriptRef != null ? output.scriptRef!.length : 0, + _ => 0, + }, + ); + + return totalSize; } @override - List get props => [constant, coefficient]; + List get props => [ + constant, + coefficient, + multiplier, + sizeIncrement, + refScriptByteCost, + maxRefScriptSize, + ]; } diff --git a/catalyst_voices_packages/catalyst_cardano_serialization/lib/src/hashes.dart b/catalyst_voices_packages/catalyst_cardano_serialization/lib/src/hashes.dart index dd46935752..6fa16006d0 100644 --- a/catalyst_voices_packages/catalyst_cardano_serialization/lib/src/hashes.dart +++ b/catalyst_voices_packages/catalyst_cardano_serialization/lib/src/hashes.dart @@ -94,7 +94,7 @@ final class TransactionInputsHash extends BaseHash { /// Constructs the [TransactionInputsHash] from a [TransactionBody]. TransactionInputsHash.fromTransactionInputs( - List utxos, + Set utxos, ) : super.fromBytes( bytes: Hash.blake2b( Uint8List.fromList( diff --git a/catalyst_voices_packages/catalyst_cardano_serialization/lib/src/scripts.dart b/catalyst_voices_packages/catalyst_cardano_serialization/lib/src/scripts.dart index 1cda0ef908..6e5a6c71dc 100644 --- a/catalyst_voices_packages/catalyst_cardano_serialization/lib/src/scripts.dart +++ b/catalyst_voices_packages/catalyst_cardano_serialization/lib/src/scripts.dart @@ -2,6 +2,7 @@ import 'dart:typed_data'; import 'package:catalyst_cardano_serialization/src/hashes.dart'; import 'package:catalyst_cardano_serialization/src/types.dart'; import 'package:cbor/cbor.dart'; +import 'package:convert/convert.dart'; import 'package:equatable/equatable.dart'; import 'package:pinenacl/digests.dart'; @@ -89,24 +90,25 @@ sealed class Script extends Equatable implements CborEncodable { /// Blake2b hash of the resulting bytes. Uint8List get hash { final cborValue = toCbor(); - final bytesToHash = cborValue is CborBytes - ? _handleDoubleEncodedCbor(cborValue.bytes) - : cborValue; + final cborBytes = cbor.encode(cborValue); - final cborBytes = cbor.encode(bytesToHash); final bytes = Uint8List.fromList([tag, ...cborBytes]); return Hash.blake2b(bytes, digestSize: scriptHashSize); } - CborValue _handleDoubleEncodedCbor(List bytes) { - final decoded = cbor.decode(bytes); - if (decoded is CborBytes) { + static CborValue _handleDoubleEncodedCbor(CborValue cborValue) { + if (cborValue is CborBytes) { try { - return cbor.decode(decoded.bytes); + return cbor.decode(cborValue.bytes); } catch (_) {} } - return decoded; + return cborValue; } + + /// The length of the script in bytes. + /// + /// This is an abstract getter that must be implemented by the child classes. + int get length; } /// Abstract base class for native scripts, extending [Script]. @@ -222,6 +224,10 @@ sealed class NativeScript extends Script { _invalidCborError(value); } } + + /// Returns the length of the [NativeScript]'s in bytes. + @override + int get length => cbor.encode(toCbor()).length; } /// Class representing a public key based native script. @@ -405,7 +411,7 @@ class InvalidAfter extends NativeScript { /// Abstract base class for Plutus scripts, extending [Script]. sealed class PlutusScript extends Script { /// [PlutusScript] represented as encoded CBOR bytes. - final Uint8List bytes; + final List bytes; // TODO(ilap): Check whether the Plutus script bytes are valid CBOR CborByte-s // and throw an error if does not. @@ -418,50 +424,76 @@ sealed class PlutusScript extends Script { CborValue toCbor() => CborBytes(bytes); /// Validates if the CBOR value is a valid Plutus script. - static void _plutusScriptValidity(CborValue value) { - if (value is! CborBytes) { - throw ArgumentError.value(value, 'value', 'Invalid Plutus script cbor'); - } + static CborValue _plutusScriptValidity(CborValue value) { + return value is CborBytes + ? Script._handleDoubleEncodedCbor(value) + : throw ArgumentError.value( + value, + 'value', + 'Invalid Plutus script cbor', + ); } /// Equatable props for value comparison of all Plutus scripts. @override List get props => [bytes]; + + /// Returns the length of the [PlutusScript]'s in bytes. + @override + int get length => cbor.encode(CborBytes(bytes)).length; } /// Class representing a Plutus V1 script. class PlutusV1Script extends PlutusScript { /// [PlutusV1Script] constructor. - const PlutusV1Script(super.bytes); + const PlutusV1Script._(super.bytes); /// Factory constructor to create an [PlutusV1Script] from a CBOR list. factory PlutusV1Script.fromCbor(CborValue value) { - PlutusScript._plutusScriptValidity(value); - return PlutusV1Script(Uint8List.fromList((value as CborBytes).bytes)); + final validCbor = PlutusScript._plutusScriptValidity(value); + return PlutusV1Script._((validCbor as CborBytes).bytes); + } + + /// Factory constructor to create an [PlutusV2Script] from a CBOR hex string. + factory PlutusV1Script.fromHex(String cborHex) { + final cborValue = cbor.decode(hex.decode(cborHex)); + return PlutusV1Script.fromCbor(cborValue); } } /// Class representing a Plutus V2 script. class PlutusV2Script extends PlutusScript { /// [PlutusV2Script] constructor. - const PlutusV2Script(super.bytes); + const PlutusV2Script._(super.bytes); /// Factory constructor to create an [PlutusV2Script] from a CBOR list. - factory PlutusV2Script.fromCbor(CborValue value) { - PlutusScript._plutusScriptValidity(value); - return PlutusV2Script(Uint8List.fromList((value as CborBytes).bytes)); + factory PlutusV2Script.fromCbor(CborValue cborValue) { + final validCbor = PlutusScript._plutusScriptValidity(cborValue); + return PlutusV2Script._((validCbor as CborBytes).bytes); + } + + /// Factory constructor to create an [PlutusV2Script] from a CBOR hex string. + factory PlutusV2Script.fromHex(String cborHex) { + final cborValue = cbor.decode(hex.decode(cborHex)); + return PlutusV2Script.fromCbor(cborValue); } } /// Class representing a Plutus V3 script. class PlutusV3Script extends PlutusScript { /// [PlutusV3Script] constructor. - const PlutusV3Script(super.bytes); + const PlutusV3Script._(super.bytes); /// Factory constructor to create an [PlutusV3Script] from a CBOR list. - factory PlutusV3Script.fromCbor(CborValue value) { - PlutusScript._plutusScriptValidity(value); - return PlutusV3Script(Uint8List.fromList((value as CborBytes).bytes)); + factory PlutusV3Script.fromCbor(CborValue cborValue) { + final validCbor = PlutusScript._plutusScriptValidity(cborValue); + return PlutusV3Script._((validCbor as CborBytes).bytes); + } + + /// Factory constructor to create an [PlutusV2Script] from a CBOR hex string. + factory PlutusV3Script.fromHex(String cborHex) { + final cborValue = cbor.decode(hex.decode(cborHex)); + return PlutusV3Script.fromCbor(cborValue); } } @@ -512,4 +544,8 @@ class ScriptRef extends Script { /// Equatable props for value comparison. @override List get props => [script]; + + /// Returns the length of the [ScriptRef]'s script in bytes. + @override + int get length => script.length; } diff --git a/catalyst_voices_packages/catalyst_cardano_serialization/test/fees_test.dart b/catalyst_voices_packages/catalyst_cardano_serialization/test/fees_test.dart index 4ed5f2898a..09ca244ec3 100644 --- a/catalyst_voices_packages/catalyst_cardano_serialization/test/fees_test.dart +++ b/catalyst_voices_packages/catalyst_cardano_serialization/test/fees_test.dart @@ -5,35 +5,227 @@ import 'package:test/test.dart'; import 'test_utils/test_data.dart'; void main() { - group(LinearFee, () { - test('minFeeNoScript with current protocol params', () { - const linearFee = LinearFee( - constant: Coin(155381), - coefficient: Coin(44), + final txInputs = { + testUtxo(index: 0, scriptRef: refInputScripts[0]), + testUtxo(index: 1, scriptRef: refInputScripts[1]), + testUtxo(index: 2, scriptRef: refInputScripts[2]), + }; + + final refInputs = { + testUtxo(index: 3, scriptRef: refInputScripts[0]), + testUtxo(index: 4, scriptRef: refInputScripts[1]), + testUtxo(index: 5, scriptRef: refInputScripts[2]), + }; + + group(TieredFee, () { + test('minFee with current protocol params', () { + const tieredFee = TieredFee( + constant: 155381, + coefficient: 44, + refScriptByteCost: 15, ); final tx = fullSignedTestTransaction(); - expect(linearFee.minNoScriptFee(tx), equals(177777)); + expect(tieredFee.minFee(tx, {}), equals(const Coin(177777))); }); - test('minFeeNoScript with constant fee only', () { - const linearFee = LinearFee( - constant: Coin(155381), - coefficient: Coin(0), + test('minFee with constant fee only', () { + const tieredFee = TieredFee( + constant: 155381, + coefficient: 0, + refScriptByteCost: 15, ); final tx = fullSignedTestTransaction(); - expect(linearFee.minNoScriptFee(tx), equals(linearFee.constant)); + expect(tieredFee.minFee(tx, {}), equals(Coin(tieredFee.constant))); }); - test('minFeeNoScript with coefficient fee only', () { - const linearFee = LinearFee( - constant: Coin(0), - coefficient: Coin(44), + test('minFee with coefficient fee only', () { + const tieredFee = TieredFee( + constant: 0, + coefficient: 44, + refScriptByteCost: 15, ); final tx = fullSignedTestTransaction(); - expect(linearFee.minNoScriptFee(tx), equals(22396)); + expect(tieredFee.minFee(tx, {}), equals(const Coin(22396))); + }); + + test('refScriptFee is a linear function when multiplier is 1', () { + const scriptByteFee = 15; + const size = 500; + + const tieredFee = TieredFee( + constant: 155381, + coefficient: 44, + multiplier: 1, + refScriptByteCost: 15, + ); + + const expectedFee = size * scriptByteFee; + final actualFee = tieredFee.refScriptFee( + 1, + tieredFee.sizeIncrement, + scriptByteFee, + size, + ); + + expect(actualFee, equals(expectedFee)); + }); + + test('tierRefScriptFee with tiered pricing', () { + const multiplier = 1.5; + const sizeIncrement = 25600; + const baseFee = 15; + + const tieredFee = TieredFee( + constant: 0, + coefficient: 44, + refScriptByteCost: 15, + ); + + const sizes = [ + 0, + sizeIncrement, + 2 * sizeIncrement, + 3 * sizeIncrement, + 4 * sizeIncrement, + 5 * sizeIncrement, + 6 * sizeIncrement, + 7 * sizeIncrement, + 8 * sizeIncrement, + ]; + + const expectedFees = [ + 0, + 384000, + 960000, + 1824000, + 3120000, + 5064000, + 7980000, + 12354000, + 18915000, + ]; + final actualFees = sizes + .map( + (size) => tieredFee.refScriptFee( + multiplier, + sizeIncrement, + baseFee, + size, + ), + ) + .toList(); + + expect(actualFees, equals(expectedFees)); + }); + + test('refScriptFee for a large reference script size and multiplier', () { + const tieredFee = TieredFee( + constant: 155381, + coefficient: 44, + multiplier: 1.5, + refScriptByteCost: 15, + ); + + const size = 100000; + const expectedFee = 2998500; + final actualFee = tieredFee.refScriptFee( + tieredFee.multiplier, + tieredFee.sizeIncrement, + tieredFee.refScriptByteCost, + size, + ); + + expect(actualFee, equals(expectedFee)); + }); + + test('tieredFee and refScriptFee calculations', () { + const byteCost = 15; + const tieredFee = TieredFee( + constant: 155381, + coefficient: 44, + refScriptByteCost: byteCost, + ); + + const txBytes = 10000; + const refScriptsBytes = 5000; + + final linearFee = tieredFee.linearFee(txBytes); + final scriptFee = + tieredFee.refScriptFee(1.5, 25600, byteCost, refScriptsBytes); + final expectedFee = Coin(linearFee + scriptFee); + final actualFee = tieredFee.tieredFee(txBytes, refScriptsBytes); + + expect(actualFee, equals(expectedFee)); }); }); + + test('minFee for a large transaction with multiple reference scripts', () { + const tieredFee = TieredFee( + constant: 155381, + coefficient: 44, + refScriptByteCost: 15, + ); + + final inputs = txInputs.map((utxo) => utxo.input).toSet(); + + final tx = fullSignedTestTransaction(inputs: inputs); + final sum = + refInputScriptsSizes.reduce((value, element) => value + element); + + final refScriptsFee = tieredFee.refScriptFee( + tieredFee.multiplier, + tieredFee.sizeIncrement, + tieredFee.refScriptByteCost, + sum, + ); + + const expectedFee = 180945; + + final minNoScriptFee = tieredFee.minFee(tx, {}); + + // With no reference scripts. + expect(minNoScriptFee, equals(const Coin(expectedFee))); + + expect( + tieredFee.minFee(tx, refInputs), + equals(minNoScriptFee + Coin(refScriptsFee)), + ); + }); + + test('minFee for a large transaction with duplicate reference scripts', () { + const tieredFee = TieredFee( + constant: 155381, + coefficient: 44, + refScriptByteCost: 15, + ); + + final inputs = + {...txInputs, ...refInputs}.map((utxo) => utxo.input).toSet(); + + final tx = fullSignedTestTransaction(inputs: inputs); + final sum = + refInputScriptsSizes.reduce((value, element) => value + element); + + final refScriptsFee = tieredFee.refScriptFee( + tieredFee.multiplier, + tieredFee.sizeIncrement, + tieredFee.refScriptByteCost, + 2 * sum, + ); + + const expectedFee = 185697; + + final minNoScriptFee = tieredFee.minFee(tx, {}); + + // With no reference scripts. + expect(minNoScriptFee, equals(const Coin(expectedFee))); + + expect( + tieredFee.minFee(tx, {...txInputs, ...refInputs}), + equals(minNoScriptFee + Coin(refScriptsFee)), + ); + }); } diff --git a/catalyst_voices_packages/catalyst_cardano_serialization/test/hashes_test.dart b/catalyst_voices_packages/catalyst_cardano_serialization/test/hashes_test.dart index 8136b31c12..537207d5a6 100644 --- a/catalyst_voices_packages/catalyst_cardano_serialization/test/hashes_test.dart +++ b/catalyst_voices_packages/catalyst_cardano_serialization/test/hashes_test.dart @@ -66,7 +66,7 @@ void main() { }); test('from transaction inputs', () { - final hash = TransactionInputsHash.fromTransactionInputs([testUtxo()]); + final hash = TransactionInputsHash.fromTransactionInputs({testUtxo()}); expect( hash, equals( diff --git a/catalyst_voices_packages/catalyst_cardano_serialization/test/scripts_test.dart b/catalyst_voices_packages/catalyst_cardano_serialization/test/scripts_test.dart index ca5a4ccf53..c6abc2e59d 100644 --- a/catalyst_voices_packages/catalyst_cardano_serialization/test/scripts_test.dart +++ b/catalyst_voices_packages/catalyst_cardano_serialization/test/scripts_test.dart @@ -1,5 +1,5 @@ -import 'dart:typed_data'; import 'package:catalyst_cardano_serialization/catalyst_cardano_serialization.dart'; +import 'package:cbor/cbor.dart'; import 'package:convert/convert.dart'; import 'package:test/test.dart'; @@ -189,6 +189,17 @@ void main() { final json = script['json']! as Map; final simpleScript = NativeScript.fromJSON(json); + final cborValue = simpleScript.toCbor(); + final cborLen = cbor.encode(cborValue).length; + final fromCbor = NativeScript.fromCbor(cborValue); + + // Length check + expect(cborLen, equals(simpleScript.length)); + + // from/toCbor check + expect(simpleScript, equals(fromCbor)); + + // Golden hash test. expect( simpleScript.hash, equals(hex.decode(script['hash']! as String)), @@ -200,10 +211,21 @@ void main() { group(PlutusScript, () { test('hashes (V2 only)', () { for (final script in plutusV2ScriptsJSON) { - final scriptCborBytes = - Uint8List.fromList(hex.decode(script['compiledCode']!)); - final plutusScript = PlutusV2Script(scriptCborBytes); + final compiledCode = script['compiledCode']!; + final scriptLength = compiledCode.length ~/ 2; + + final decodedCode = cbor.decode(hex.decode(compiledCode)); + + final plutusScript = PlutusV2Script.fromHex(compiledCode); + final cborValue = plutusScript.toCbor(); + // Length check + expect(scriptLength, equals(plutusScript.length)); + + // from/toCbor check + expect(cborValue, equals(decodedCode)); + + // Golden hash test expect(plutusScript.hash, equals(hex.decode(script['hash']!))); } }); @@ -216,15 +238,21 @@ void main() { final hash = json['hash']! as String; final type = script['type'] as String; final cborHex = script['cborHex'] as String; - final cborBytes = Uint8List.fromList(hex.decode(cborHex)); + + // The cborHex has a `45` prefix. + final scriptLength = cborHex.length ~/ 2 - 1; final plutusScript = switch (type) { - 'PlutusScriptV1' => PlutusV1Script(cborBytes), - 'PlutusScriptV2' => PlutusV2Script(cborBytes), - 'PlutusScriptV3' => PlutusV3Script(cborBytes), + 'PlutusScriptV1' => PlutusV1Script.fromHex(cborHex), + 'PlutusScriptV2' => PlutusV2Script.fromHex(cborHex), + 'PlutusScriptV3' => PlutusV3Script.fromHex(cborHex), _ => throw Exception('Unknown script type: $type'), }; + // Length check + expect(scriptLength, equals(plutusScript.length)); + + // Golden hash test expect(plutusScript.hash, equals(hex.decode(hash))); } }); diff --git a/catalyst_voices_packages/catalyst_cardano_serialization/test/test_utils/test_data.dart b/catalyst_voices_packages/catalyst_cardano_serialization/test/test_utils/test_data.dart index 829f338872..45c7d330e7 100644 --- a/catalyst_voices_packages/catalyst_cardano_serialization/test/test_utils/test_data.dart +++ b/catalyst_voices_packages/catalyst_cardano_serialization/test/test_utils/test_data.dart @@ -1,5 +1,6 @@ import 'package:catalyst_cardano_serialization/src/address.dart'; import 'package:catalyst_cardano_serialization/src/hashes.dart'; +import 'package:catalyst_cardano_serialization/src/scripts.dart'; import 'package:catalyst_cardano_serialization/src/signature.dart'; import 'package:catalyst_cardano_serialization/src/transaction.dart'; import 'package:catalyst_cardano_serialization/src/transaction_output.dart'; @@ -31,26 +32,27 @@ final testTransactionHash = TransactionHash.fromHex( '4c1fbc5433ec764164945d736a09dc087d59ff30e64d26d462ff8570cd4be9a7', ); -TransactionUnspentOutput testUtxo() { +TransactionUnspentOutput testUtxo({int? index, ScriptRef? scriptRef}) { return TransactionUnspentOutput( input: TransactionInput( transactionId: testTransactionHash, - index: 0, + index: index ?? 0, ), - output: PreBabbageTransactionOutput( + output: TransactionOutput( address: ShelleyAddress.fromBech32( 'addr_test1qpu5vlrf4xkxv2qpwngf6cjhtw542ayty80v8dyr49rf5' 'ewvxwdrt70qlcpeeagscasafhffqsxy36t90ldv06wqrk2qum8x5w', ), amount: const Balance(coin: Coin(100000000)), + scriptRef: scriptRef, ), ); } -Transaction minimalUnsignedTestTransaction() { +Transaction minimalUnsignedTestTransaction({Set? inputs}) { return Transaction( body: TransactionBody( - inputs: {testUtxo().input}, + inputs: inputs ?? {testUtxo().input}, outputs: [ PreBabbageTransactionOutput( address: testnetAddr, @@ -69,10 +71,10 @@ Transaction minimalUnsignedTestTransaction() { } /// Returns a minimal transaction with optional fields skipped. -Transaction minimalSignedTestTransaction() { +Transaction minimalSignedTestTransaction({Set? inputs}) { return Transaction( body: TransactionBody( - inputs: {testUtxo().input}, + inputs: inputs ?? {testUtxo().input}, outputs: [ PreBabbageTransactionOutput( address: testnetAddr, @@ -108,12 +110,12 @@ Transaction minimalSignedTestTransaction() { ); } -Transaction fullUnsignedTestTransaction() { +Transaction fullUnsignedTestTransaction({Set? inputs}) { final auxiliaryData = testAuxiliaryData(); return Transaction( body: TransactionBody( - inputs: {testUtxo().input}, + inputs: inputs ?? {testUtxo().input}, outputs: [ PreBabbageTransactionOutput( address: testnetAddr, @@ -146,12 +148,12 @@ Transaction fullUnsignedTestTransaction() { } /// Returns a full transaction with all possible optional fields. -Transaction fullSignedTestTransaction() { +Transaction fullSignedTestTransaction({Set? inputs}) { final auxiliaryData = testAuxiliaryData(); return Transaction( body: TransactionBody( - inputs: {testUtxo().input}, + inputs: inputs ?? {testUtxo().input}, outputs: [ PreBabbageTransactionOutput( address: testnetAddr, @@ -274,3 +276,346 @@ A2679B6E682D2A26945ED0B2 .replaceAll('\n', ''); /* cSpell:enable */ + +/// Reference scripts that exist on the Preview network, with sizes verified. +const refInputScriptsSizes = [2470, 6296, 1579]; + +final refInputScripts = [ + ScriptRef( + PlutusV2Script.fromHex( + '5909a30100003323232323232323232323232322322323232323222533300f32' + '323253330123008301437540022646464646464a666030601e60346ea80044c8' + 'c8c94ccc07c00454cc07005c584c94ccc080c08c0084c8c94ccc078cdc3a4008' + '60406ea80044c8c8c8c8c8c94ccc090cccc004c8cc004004040894ccc0a80045' + '2f5bded8c0264646464a66605466e45221000021533302a3371e910100002100' + '3100513302f337606ea4008dd3000998030030019bab302c003375c605400460' + '5c00460580026eb8c008c09cdd50029bae30083027375400aa66604800629001' + '0a4002264a66604a666600400203e666e31200048008dd7180498141baa00648' + '00854cc8cc098cdc399918008009129998160008a40002600666004004605e00' + '2646600200200644a666058002297ae013302d302a302e00133002002302f001' + '480104c8c8c8c94ccc0a8cdc39bad3014302d3754016600a6eb4c050c0b4dd50' + '110a99981519b894800000454ccc0a8cdc380099b80002533302a00914800852' + '00113371e6eb8c020c0b4dd50111bae3008302d375401629405280a503002375' + 'c600660586ea8028c004dd7180118159baa02023253330293370e66e38009200' + '04818054ccc0a4c07c004520001613232333001001480012000222533302d337' + '0e0020082004266600600664a66605ca66605c66e25206000113371200290390' + 'a5013370066e0800d201433700002902f8a99817a4811f657870656374206279' + '7465203e3d2034382026262062797465203c3d20353700163371c00c00260100' + '026e34008dc6800918169817181718170009b804800854cc0992413565787065' + '6374206c6973742e6c656e6774682876616c75652e706f6c6963696573286f75' + '747075745f76616c75652929203d3d203200161533026491866578706563740a' + '2020202020206861735f6f6e6c795f746f6b656e280a20202020202020206f75' + '747075745f76616c75652c0a2020202020202020617574685f746f6b656e2c0a' + '20202020202020206279746561727261792e74616b65286e65775f7374617465' + '2e6164617461672c2031292c0a2020202020202020312c0a2020202020202900' + '1637566018604e6ea802454cc0952401a66578706563740a202020202020636f' + '72726563745f6e66745f616d6f756e74280a20202020202020206d696e74696e' + '673a206d696e74696e672c0a20202020202020206d696e743a206d696e742c0a' + '202020202020202073796d626f6c3a206e65775f73746174652e6d696e74696e' + '675f706f6c6963792c0a2020202020202020746f6b656e5f6e616d653a206e65' + '775f73746174652e6164617461672c0a202020202020290016222232533302c0' + '01153302902716132533302d3030002132533302a3371e6eb8c0b00080144cdc' + '38008020a50375a60580022a660540502c605c00264a666050603c60546ea800' + '452f5bded8c026eacc0b8c0acdd500099198008008029129998168008a6103d8' + '7a8000132323232533302d337220120042a66605a66e3c0240084cdd2a400066' + '0646e980052f5c02980103d87a80001330060060033756605e0066eb8c0b4008' + 'c0c4008c0bc0048c0a4c0a8c0a8c0a8c0a8c0a8004cdd7980498121baa0024c1' + '03d87980003301500101d53333330270011001153302001c16153302001c1615' + '3302001c16153302001c163024302137540022a6603e92013065787065637420' + '496e6c696e65446174756d286e65775f737461746529203d206f776e5f6f7574' + '7075742e646174756d001630013020375400446046604860480022a6603a0302' + 'c6042002646600200200e44a666040002297ae013232533301e3375e60106042' + '6ea80080144cc08c008cc0100100044cc010010004c090008c088004c07cc070' + 'dd51800980e1baa301f301c37540044603e60400022a66032921346578706563' + '7420536f6d65286f776e5f696e70757429203d2066696e645f696e7075742869' + '6e707574732c206f776e5f7265662900163322323300100100322533301f0011' + '4c0103d87a800013232533301d3375e600e60406ea80080144cdd2a400066044' + '00497ae0133004004001302300230210013758603a00a603a60346ea80188c07' + '4004dd5980d980e180e0011bac301a001301a301a001301537540042a6602692' + '011f657870656374205370656e64286f776e5f72656629203d20707572706f73' + '650016301730180023016001301237540022930a998082491856616c69646174' + '6f722072657475726e65642066616c736500136563300100400a22533300d300' + '4300f3754004264a6660240022a6601e0042c26464a6660280022a660220082c' + '26464a66602c0022a6602600c2c26464a6660300022a6602a0102c26464a6660' + '340022a6602e0142c26464a6660380022a660320182c264a66603a6040004264' + '9319299980d18088008a99980f180e9baa00a149854cc06c0385854ccc068c04' + '000454ccc078c074dd50050a4c2a6603601c2c2a6603601c2c60366ea802454c' + 'c06803458c94cccccc08400454cc0680345854cc0680345854cc0680345854cc' + '068034584dd7000980f000980f00119299999980f8008a9980c0058b0a9980c0' + '058b0a9980c0058b0a9980c0058b09bae001301c001301c00232533333301d00' + '11533016009161533016009161533016009161533016009161375c0026034002' + '603400464a6666660360022a6602800e2c2a6602800e2c2a6602800e2c2a6602' + '800e2c26eb8004c060004c060008c94cccccc064004400454cc0480145854cc0' + '480145854cc0480145854cc04801458c058004c058008c94cccccc05c00454cc' + '04000c5854cc04000c5854cc04000c584dd68008a998080018b180a00098081b' + 'aa002153300e00116370e90011b87480014cccccc040004400454cc024018585' + '4cc0240185854cc0240185854cc02401858dd7000a4981657870656374205b6f' + '776e5f6f75747075745d203d0a2020202020206c6973742e66696c746572280a' + '20202020202020206f7574707574732c0a2020202020202020666e286f757470' + '75743a204f757470757429207b206f75747075742e61646472657373203d3d20' + '696e7075745f61646472657373207d2c0a202020202020290049012365787065' + '6374206e65775f73746174653a205374617465203d206e65775f737461746500' + '4901106f6c645f73746174653a20537461746500490159657870656374205b50' + '61697228746e2c207175616e74697479295d203d0a2020202076616c0a202020' + '2020207c3e20746f6b656e7328706f6c6963795f6964290a2020202020207c3e' + '20646963742e746f5f70616972732829005734ae7155ceaab9e5573eae815d0a' + 'ba257489811e581cbd61dd11567ca6bb8e341e2cd5957cc5072412525e43f145' + 'b6cd15b80001', + ), + ), + ScriptRef( + PlutusV2Script.fromHex( + '59189501000033232323232323232323232323232323222323232322533300f3' + '23232533301230073014375400226464646464646464646464a6660420022a66' + '03c02c2c264a666044604a00426464a66466042600260466ea80084c8c8c8c8c' + '8c94ccc0ac00454cc0a0088584c94ccc0b0c0bc0084c94ccc0a4c024c0acdd50' + '00899191919191929991981819919119299981a299981a1802800899b8900148' + '08052809919299981b18031801240002a66606c600a002264646660020029452' + '000222533303a3370e00200820042666006006a66607464a6660766014002294' + '454ccc0eccdc3800a417c02294454ccc0eccdc3800a40b429444cdc3800a40b8' + '600c00220042940cdc0000a40046e340105280a5030013370000490009b8e002' + '14a06e3400494ccc0c8c0080045288a99981919b89481800044cdc4800a40e42' + '94094ccc0c4cdc4a418402002266e2400520f40114a06eb8c048c0ccdd500309' + '9192999819192999819a9998199919299981a9814981b9baa001132325333037' + '32325333039302e00114a22a666072605a002264a66607464a66607e607c0022' + 'a666076605e607a002294454ccc0ecc0c0c0f40045280b0b1baa3020303d3754' + '6042607a6ea801c4cdc4800802899b88001005375a607e60786ea8008528181d' + '1baa001301e303a3754603c60746ea801040045281919299981c18168008a501' + '5333038302c001132533303932533303e303d0011533303a302e303c00114a22' + 'a666074605e607800229405858dd5180f981e1baa301f303c375400c266e2401' + '00044cdc40020009bad303e303b37540042944c0e4dd5000980e981c9baa301c' + '303937540066eb4c0ecc0e0dd50008a9981b2481396578706563742046696e69' + '7465286c6f7765725f626f756e6429203d2072616e67652e6c6f7765725f626f' + '756e642e626f756e645f747970650016301b303737546036606e6ea8070c01cc' + 'c0e0c01ccc0e0cdd2a4004660706006606c6ea80ad2f5c066070666066945301' + '03d87a80004c0103d87980004bd701981c26010ad8799fd87b80d87a80ff004b' + 'd700a51153303449013574696d655f656c61707365642872616e67652c207061' + '72616d732e646561637469766174696f6e5f74696d6529203f2046616c736500' + '14a0294454ccc0cd4ccc0ccc94ccc0d0c0a0c0d8dd519299981c8008a60103d8' + '7a8000130093303a333035300630373754607600298103d87a80004c0103d879' + '80004bd70191980080081011299981d0008a5eb804c8c94ccc0e0c0b0c0e8dd5' + '00089980200200109981e99981c1804981d1baa303e303b3754002980103d87a' + '80004c0103d8798000330040040025333037300833300a3756603a60746ea8c0' + 'f40080100145300107d8799fd87a80ff0014c103d87a8000303d00114a02944d' + 'd7181c981d181d181d181d181d181d181b1baa02b14a22a6606892013b6f7574' + '7075745f6861735f746f6b656e286f7574707574732c20706172616d732e6164' + '6168616e646c652c2061646174616729203f2046616c73650014a0294454ccc0' + 'ccc94ccc0e000454cc0d40c8584c94ccc0e4c0f00084c94ccc0d8c058c0e0dd5' + '000899191919299981d299981d199911299981e9818800899b89003002153233' + '303e301e002133712600290020018a99981f19b87480180084cdc49800a40100' + '062a66607c66e1d2008002133712600290080018a99981f19b87480280084cdc' + '49800a40400062a66607c66e1d200c00213371260029020001899b894807800c' + 'dc18019bad3009303d375406466601a6eacc080c0f4dd500324500488100371a' + '010294454cc0ed2401516861735f76616c69645f6465706f7369742870617261' + '6d732e6465706f7369745f626173652c206465706f7369742c20627974656172' + '7261792e6c656e677468286164617461672929203f2046616c73650014a02a66' + '607464a666076605e607a6ea80044cdc499b80375a6082607c6ea8004dd69820' + '98211821182118211821181f1baa033002153303c49139657870656374204669' + '6e6974652875707065725f626f756e6429203d2072616e67652e75707065725f' + '626f756e642e626f756e645f7479706500163021303d37546040607a6ea80885' + '288a9981da49336861735f76616c69645f646561646c696e6528706172616d73' + '2c2072616e67652c20646561646c696e6529203f2046616c73650014a02940dd' + '6980f981e1baa0025333038302d303a3754002264a66607a0022a660740702c2' + '6464a66607e0022a660780742c264a66608060860042930a9981e81d8b192999' + '9998220008a9981e81d8b0a9981e81d8b0a9981e81d8b09bad001153303d03b1' + '630410013041002325333333042001153303b03916153303b03916153303b039' + '16153303b039161375c002607e00260766ea800454cc0e40dc594cccccc0fc00' + '4400454cc0e00d85854cc0e00d85854cc0e00d85854cc0e00d858c0f0c0e4dd5' + '0008a9981ba4813465787065637420496e6c696e65446174756d2874696d6564' + '65706f7369745f646174756d29203d206f75747075742e646174756d00163017' + '303837540022a6606c0662c60740026601c03c6eb8c054c0d8dd50158a511533' + '034491626861735f76616c69645f74696d656465706f7369745f6f7574707574' + '28706172616d732c2072616e67652c206f7574707574732c20706172616d732e' + '74696d656465706f7369745f76616c696461746f722c2061646174616729203f' + '2046616c73650014a06eb8c050c0d4dd50040a9998191813981a1baa02813253' + '33033302700513333333323232322222222323232533304133333300b4a00100' + '08006004002266666601694401c01000c0080045282999820299982019baf330' + '0b375c604c60866ea8014025300103d879800013375e660160126eb8c088c10c' + 'dd5002a60103d879800014a02646608c0026608ca66608266ebc018014400440' + '14cc118c054cc118dd4804998231ba900a3304630233044375400c97ae04bd70' + '180a19822981398219baa0053304530263043375400a6608a6ea40252f5c02c6' + '018006601600644444464646464a666080602260846ea8c11801054ccc100008' + '4cdc78008048a5014a06eb8c114c118008c03cc100dd51822000982200099199' + '9800800a504a000a4444a666080606860846ea80044cc114ccc10000d30103d8' + '7a80004c0103d8798000330453330400024c0103d87a80004c0103d879800033' + '04530463043375400297ae013232323232323232323232323232323232533305' + '1533305101b1533305100e14a2201a29404c8c8c8c8c8c8cc170ccc15d4ccc15' + 'c03c528880526103d87a80004c0103d87980003305c333057533305700d14a22' + '01098103d87a80004c0103d87980003305c37526660466eb8c174008dd7182e8' + '009bae305d305e0014bd70182e800a99982aa99982a99baf00400214a2202226' + '464660b86ea4c090010cc170c174004cc170c174c1780052f5c0a646660aea66' + '60ae60020182600200e29404cc170dd48011982e1ba90074bd700a99982ba999' + '82b99982b98008062504a22600200e29404cc170dd48061982e1ba90024bd700' + 'b1b8f48920e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca49599' + '1b7852b85500333021302200148920e3b0c44298fc1c149afbf4c8996fb92427' + 'ae41e4649b934ca495991b7852b85500488120e3b0c44298fc1c149afbf4c899' + '6fb92427ae41e4649b934ca495991b7852b855001533305501213305a3752604' + '4008660b46ea4028cc168dd4802a5eb8058c168c16c008c164004c16405cc15c' + '0584cc158ccc1454ccc1440245288802260103d87a80004c0103d87980003305' + '6333051533305100714a2200498103d87a80004c0103d8798000330563752666' + '03a02000c00297ae0375c60ac60ae004604060a26ea8c154004c154008c078c1' + '3cdd518298009999808008003803182918298051bae30513052002301b304c37' + '5460a000260a0004603260946ea8c138004cccc02c02c008004c1340154ccc11' + '8020528880129998228040a5110023371e00601466e3c008028c124008dd7182' + '380098219baa001225333037337200040022980103d8798000153330373371e0' + '040022980103d87a800014c103d87b8000222372466e2800ccdc500100091b92' + '337146eb8c06cc0dcdd500099b8a375c6034606e6ea8004dd7180b181b9baa00' + '1375c602a606c6ea8024dd71801981b1baa009375c6004606c6ea8044dd71801' + '181b1baa009301a303637540026032606c6ea8004c054c0d8dd50008a5030383' + '03537540502a66606466e1c011200114a029405281181c181c981c981c981c80' + '09181b981c181c181c0009b8848000528199800991980080080c11299981a000' + '8a5eb7bdb1804c8c8c8c94ccc0d0cdc8a44100002153330343371e9101000021' + '0031005133039337606ea4008dd3000998030030019bab3036003375c6068004' + '6070004606c0020386eb8c040c0c4dd5002111192999818981298199baa00114' + '80004dd6981b981a1baa0013253330313025303337540022980103d87a800013' + '23300100137566070606a6ea8008894ccc0dc004530103d87a80001323232325' + '333037337220100042a66606e66e3c0200084c02ccc0f0dd4000a5eb80530103' + 'd87a8000133006006003375a60720066eb8c0dc008c0ec008c0e4004c8cc0040' + '04010894ccc0d80045300103d87a80001323232325333036337220100042a666' + '06c66e3c0200084c028cc0ecdd3000a5eb80530103d87a800013300600600337' + '5660700066eb8c0d8008c0e8008c0e0004dd2a40006601000204ea6666660640' + '0220022a6605604c2c2a6605604c2c2a6605604c2c2a6605604c2c605e60586e' + 'a800454cc0a924013665787065637420496e6c696e65446174756d286e65775f' + '737461746529203d2076616c696461746f725f6f75747075742e646174756d00' + '16300a302b37540022a660520462c605a002660020226eb8c030c0a4dd500f11' + '198060011192999814980e98159baa00113371e0066eb8c0bcc0b0dd50008a50' + '300f302b3754601e60566ea8004cc004008078894ccc094c068c09cdd5001099' + '29998150008a998138010b0991929998160008a998148020b099192999817000' + '8a998158030b0991929998180008a998168040b0991929998190008a99817805' + '0b09919299981a0008a998188060b099299981a981c00109924c64a666064604' + 'e0022a66606c606a6ea8028526153303300e1615333032302600115333036303' + '537540142930a998198070b0a998198070b18199baa009153303200d16325333' + '333039001153303200d16153303200d16153303200d16153303200d161375c00' + '2606c002606c00464a66666606e0022a660600162c2a660600162c2a66060016' + '2c2a660600162c26eb8004c0d0004c0d0008c94cccccc0d400454cc0b8024585' + '4cc0b80245854cc0b80245854cc0b8024584dd70009819000981900119299999' + '98198008a998160038b0a998160038b0a998160038b0a998160038b09bae0013' + '03000130300023253333330310011001153302a00516153302a00516153302a0' + '0516153302a00516302e001302e00232533333302f0011533028003161533028' + '003161533028003161375a0022a660500062c605800260506ea800854cc09800' + '4594cccccc0a8004400454cc08c0705854cc08c0705854cc08c0705854cc08c0' + '7058c09cc090dd50011b874801054cc08524013c65787065637420496e6c696e' + '65446174756d286f6c645f737461746529203d2076616c696461746f725f696e' + '7075742e6f75747075742e646174756d0016300130223754600a60446ea80088' + 'c094c098c09800454cc07c05c58c08c004cc88cc00c0088c94ccc080c050c088' + 'dd5000899b8f003375c604c60466ea8004528180318111baa300630223754600' + 'a60446ea8004dd618110049bae3002301f375402844646600200200644a66604' + '6002297ae0132325333021300500213302600233004004001133004004001302' + '7002302500123021302200123020001301e301f301f301f0023756603a002603' + 'a603a0046eb0c06c004c06cc06c004c058dd50019bae3018301537540022a660' + '26920121657870656374204d696e74286f776e5f706f6c69637929203d207075' + '72706f73650016301730180023016001301237540022930a998082491856616c' + '696461746f722072657475726e65642066616c73650013656323232533301030' + '050011325333015001153301200e16132533301630190021324994ccc048c01c' + 'c050dd5000899299980b8008a9980a0080b09919299980c8008a9980b0090b09' + '919299980d8008a9980c00a0b099299980e180f801099191924c6601a00602e6' + '601600802c6601400a02a2a6603202a2c64a66666604000220022a6603202a2c' + '2a6603202a2c2a6603202a2c2a6603202a2c603a002603a00464a66666603c00' + '220022a6602e0262c2a6602e0262c2a6602e0262c2a6602e0262c60360026036' + '00464a66666603800220022a6602a0222c2a6602a0222c2a6602a0222c2a6602' + 'a0222c6032002602a6ea800454cc04c03c5854cc04c03c58c94cccccc0680044' + '00454cc04c03c5854cc04c03c5854cc04c03c5854cc04c03c58c05c004c04cdd' + '50030a9998081802000899299980a8008a998090070b099299980b180c801099' + '24ca666024600e60286ea80044c94ccc05c00454cc050040584c8c94ccc06400' + '454cc058048584c8c94ccc06c00454cc060050584c8c94ccc07400454cc06805' + '8584c94ccc078c0840084c8c8c8c9263301000401a3300e0050193300d006018' + '3300c007017153301b017163253333330220011001153301b01716153301b017' + '16153301b01716153301b01716301f001301f002325333333020001100115330' + '1901516153301901516153301901516153301901516301d001301d0023253333' + '3301e0011001153301701316153301701316153301701316153301701316301b' + '001301b00232533333301c001100115330150111615330150111615330150111' + '61533015011163019001301537540022a6602601e2c2a6602601e2c64a666666' + '03400220022a6602601e2c2a6602601e2c2a6602601e2c2a6602601e2c602e00' + '260266ea801854cc04403458c044dd5002912999808180298091baa002132533' + '3015001153301200216132325333017001153301400416132325333019001153' + '301600616132533301a301d002149854cc05c01c58c94cccccc07800454cc05c' + '01c5854cc05c01c5854cc05c01c5854cc05c01c584dd7000980d800980d80119' + '299999980e0008a9980a8028b0a9980a8028b0a9980a8028b0a9980a8028b09b' + 'ae0013019001301900232533333301a001153301300316153301300316153301' + '3003161533013003161375c002602e00260266ea800854cc0440045888c8cc00' + '400400c88c94ccc048c01c0044c94ccc05c00454cc050014584c8c94ccc06400' + '454cc05801c584c8c94ccc06c00454cc060024584c94ccc070c07c0084c8c926' + '3300a00a00233009009003153301900a163253333330200011001153301900a1' + '6153301900a16153301900a16153301900a16301d001301d00232533333301e0' + '011001153301700816153301700816153301700816153301700816301b001301' + 'b00232533333301c001153301500616153301500616153301500616153301500' + '6161375c0026032002602a6ea800854ccc048c0180044c94ccc05c00454cc050' + '014584c94ccc060c06c00852615330150061632533333301c001153301500616' + '1533015006161533015006161533015006161375c0026032002602a6ea800854' + 'cc04c01058c04cdd50009b8748008dc3a4000a66666602400220022a6601600e' + '2c2a6601600e2c2a6601600e2c2a6601600e2c920165657870656374205b7661' + '6c696461746f725f696e7075745d203d0a20202020202066696e645f73637269' + '70745f696e7075747328696e707574733a20696e707574732c20736372697074' + '5f686173683a20706172616d732e73746174655f686f6c646572290049012365' + '7870656374206f6c645f73746174653a205374617465203d206f6c645f737461' + '746500490153657870656374205b76616c696461746f725f6f75747075745d20' + '3d0a20202020202066696e645f7363726970745f6f757470757473286f757470' + '7574732c20706172616d732e73746174655f686f6c6465722900490123657870' + '656374206e65775f73746174653a205374617465203d206e65775f7374617465' + '0049011072646d723a204d696e74416374696f6e00490139657870656374205b' + '6f75747075745d203d2066696e645f7363726970745f6f757470757473286f75' + '74707574732c20706f6c6963795f6964290049013e6578706563742074696d65' + '6465706f7369745f646174756d3a2054696d654465706f736974446174756d20' + '3d2074696d656465706f7369745f646174756d005734ae7155ceaab9e5573eae' + '815d0aba257489818dd8799f581cbd61dd11567ca6bb8e341e2cd5957cc50724' + '12525e43f145b6cd15b8581ca03469e9ffb55592d9badbd35de9cb6525517044' + '055cd7001818f640581cc4c5846d83cc27ad145ca5c7eba39734e8e7ae80c509' + '9d35f928669c1b00000192510f28031906d61a05265c00581cf0ff48bbb7bbe9' + 'd59a40f1ce90e9e9d0ff5002ec48f232b49ca0fb9aff0001', + ), + ), + ScriptRef( + PlutusV2Script.fromHex( + '5906280100003323232323232323232323232222323232322533300c32323253' + '3300f300730113754010266666002944028dd7180118091baa00b375a6006602' + '46ea802c0104c94ccc040c020c048dd5000899299980a8008a998090070b0991' + '9299980b8008a9980a0080b099299980c180d80109999980325000f003001009' + '15330150111632533333301c0011533015011161533015011161533015011161' + '375a0022a6602a0222c6032002603200464a6666660340022a6602601e2c2a66' + '02601e2c2a6602601e2c2a6602601e2c26eb8004c05c004c04cdd50008a99808' + '8068b299999980b80508050a998080060b0a998080060b0a998080060b0a9980' + '80060b1111119299980a299980a299980a19baf4c103d8798000005153330140' + '0614a22a6602a9210f69735f636f6c6c203f2046616c73650014a0264a66602a' + '6464a66602e601c60326ea80044c8c94ccc064c8c94ccc06cc04c0045288a999' + '80d9809000899299980e19299981098100008a99980e980a180f8008a5115333' + '01d3015301f00114a02c2c6ea8c040c07cdd51807980f9baa00713371200200a' + '266e20004014dd69810980f1baa00214a060386ea8004c030c070dd51806180e' + '1baa004100114a06464a6660346024002294054ccc068c0440044c94ccc06cc9' + '4ccc080c07c00454ccc070c04cc0780045288a99980e180a180f0008a5016163' + '754601e603c6ea8c03cc078dd5003099b890040011337100080026eb4c080c07' + '4dd50010a51301b3754002601660366ea8c030c06cdd50019bad301d301a3754' + '0022a660309201396578706563742046696e697465286c6f7765725f626f756e' + '6429203d2072616e67652e6c6f7765725f626f756e642e626f756e645f747970' + '650016300930193754601260326ea8c070c074c074c074c074c074c074c074c0' + '64dd51804980c9baa0043374a90001980d19ba548000cc068cdd2a4004660346' + 'ea00112f5c06603466602a94530103d87a80004c0103d87980004bd701980d26' + '010ad8799fd87b80d87a80ff004bd700a51153301649013e74696d655f656c61' + '7073656428636f6e746578742e7472616e73616374696f6e2e76616c69646974' + '795f72616e67652c2074696d6529203f2046616c73650014a064a66602a601a6' + '02e6ea80044c94ccc06800454cc05c054584c8c94ccc07000454cc06405c584c' + '94ccc074c080008526153301a01816325333333021001153301a01816153301a' + '01816153301a018161375a0022a660340302c603c002603c00464a66666603e0' + '022a6603002c2c2a6603002c2c2a6603002c2c2a6603002c2c26eb8004c07000' + '4c060dd50008a9980b00a0b299999980e00288028a9980a8098b0a9980a8098b' + '0a9980a8098b0a9980a8098b0a5115330154910d76616c6964203f2046616c73' + '650014a02a666028002294454cc0552401117369676e65645f6279203f204661' + '6c73650014a029414ccc04cc8cc004004dd6180d180d980d980d980d980d980d' + '980d980d980b9baa30073017375400444a66603200229404c94ccc058cdc79ba' + 'e301c00200614a22660060060026038002294454cc0512413d6c6973742e6861' + '7328636f6e746578742e7472616e73616374696f6e2e65787472615f7369676e' + '61746f726965732c206372656429203f2046616c73650014a046028002460266' + '0280022930a99806a4811856616c696461746f722072657475726e6564206661' + '6c7365001365632533300b30030011533300f300e37540082930a998060048b0' + 'a99980598010008a99980798071baa004149854cc0300245854cc03002458c03' + '0dd50019b8748008dc3a4000a66666601e00220022a6601000a2c2a6601000a2' + 'c2a6601000a2c2a6601000a2c921556578706563742054696d654465706f7369' + '74446174756d207b2062656e65666963696172792c20646561646c696e65207d' + '3a2054696d654465706f736974446174756d203d0a2020202020202020202064' + '6174756d0049011972646d723a2054696d654465706f73697452656465656d65' + '7200490123657870656374205f643a2054696d654465706f736974446174756d' + '203d20646174756d005734ae7155ceaab9e5573eae815d0aba257489812bd879' + '9f581cd5c9e4617211e2ff7c7fd01d0de9ac82e5bb81dc5a5e16b59911866a1b' + '00000192eb8df003ff0001', + ), + ), +]; diff --git a/catalyst_voices_packages/catalyst_cardano_serialization/test/transaction_output_test.dart b/catalyst_voices_packages/catalyst_cardano_serialization/test/transaction_output_test.dart index a55aa5f6d1..1bb4512983 100644 --- a/catalyst_voices_packages/catalyst_cardano_serialization/test/transaction_output_test.dart +++ b/catalyst_voices_packages/catalyst_cardano_serialization/test/transaction_output_test.dart @@ -15,7 +15,7 @@ void main() { final datumData = Data(CborBytes(Uint8List.fromList([1, 2, 3, 4, 5, 6]))); final datumOptionHash = DatumOption(datumHash); final datumOptionData = DatumOption(datumData); - final script = PlutusV2Script(Uint8List.fromList([0x43, 0x01, 0x02, 0x03])); + final script = PlutusV2Script.fromHex('43010203'); final scriptRef = ScriptRef(script); group('TransactionOutput encoding/decoding Tests', () { From 8981f16c152f6bfc38480bec89cf5f1cca54a2aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damian=20Moli=C5=84ski?= <47773413+damian-molinski@users.noreply.github.com> Date: Tue, 24 Sep 2024 17:38:59 +0200 Subject: [PATCH 13/23] feat(cat-voices): account creation task picture (#879) * feat: account creation task picture * chore: clean up discovery --- .../pages/account/creation/task_picture.dart | 100 ++++++++++++++++++ .../assets/images/2.0x/task_illustration.webp | Bin 0 -> 33062 bytes .../assets/images/3.0x/task_illustration.webp | Bin 0 -> 39236 bytes .../assets/images/keychain.svg | 22 ++++ .../assets/images/task_illustration.webp | Bin 0 -> 13508 bytes .../lib/generated/assets.gen.dart | 27 +++-- .../lib/generated/colors.gen.dart | 2 +- .../lib/src/assets_ext.dart | 2 + .../lib/src/catalyst_svg_icon.dart | 7 +- 9 files changed, 149 insertions(+), 11 deletions(-) create mode 100644 catalyst_voices/lib/pages/account/creation/task_picture.dart create mode 100644 catalyst_voices/packages/catalyst_voices_assets/assets/images/2.0x/task_illustration.webp create mode 100644 catalyst_voices/packages/catalyst_voices_assets/assets/images/3.0x/task_illustration.webp create mode 100644 catalyst_voices/packages/catalyst_voices_assets/assets/images/keychain.svg create mode 100644 catalyst_voices/packages/catalyst_voices_assets/assets/images/task_illustration.webp diff --git a/catalyst_voices/lib/pages/account/creation/task_picture.dart b/catalyst_voices/lib/pages/account/creation/task_picture.dart new file mode 100644 index 0000000000..a6927de0c0 --- /dev/null +++ b/catalyst_voices/lib/pages/account/creation/task_picture.dart @@ -0,0 +1,100 @@ +import 'package:catalyst_voices_assets/catalyst_voices_assets.dart'; +import 'package:catalyst_voices_brands/catalyst_voices_brands.dart'; +import 'package:flutter/material.dart'; + +enum TaskPictureType { + normal, + success, + error; + + Color _foregroundColor(ThemeData theme) { + return switch (this) { + // TODO(damian-molinski): Color should come from colors scheme + TaskPictureType.normal => const Color(0xFF0C288D), + TaskPictureType.success => theme.colors.successContainer!, + TaskPictureType.error => theme.colors.errorContainer!, + }; + } + + Color _backgroundColor(ThemeData theme) { + return switch (this) { + // TODO(damian-molinski): Color should come from colors scheme + TaskPictureType.normal => const Color(0xFFCCE2FF), + TaskPictureType.success => theme.colors.success!, + TaskPictureType.error => theme.colorScheme.error, + }; + } +} + +class TaskKeychainPicture extends StatelessWidget { + final TaskPictureType type; + + const TaskKeychainPicture({ + super.key, + this.type = TaskPictureType.normal, + }); + + @override + Widget build(BuildContext context) { + return TaskPicture( + child: TaskPictureIconBox( + type: type, + child: VoicesAssets.images.keychain.buildIcon(allowSize: false), + ), + ); + } +} + +class TaskPicture extends StatelessWidget { + final Widget child; + + const TaskPicture({ + super.key, + required this.child, + }); + + @override + Widget build(BuildContext context) { + return Stack( + alignment: Alignment.topRight, + children: [ + CatalystImage.asset(VoicesAssets.images.taskIllustration.path), + child, + ], + ); + } +} + +class TaskPictureIconBox extends StatelessWidget { + final TaskPictureType type; + final Widget child; + + const TaskPictureIconBox({ + super.key, + this.type = TaskPictureType.normal, + required this.child, + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + final foregroundColor = type._foregroundColor(theme); + final backgroundColor = type._backgroundColor(theme); + + final iconThemeData = IconThemeData(color: foregroundColor); + + return IconTheme( + data: iconThemeData, + child: Container( + constraints: BoxConstraints.tight(const Size.square(125)), + decoration: BoxDecoration( + color: backgroundColor, + shape: BoxShape.circle, + ), + alignment: Alignment.center, + child: child, + ), + ); + } +} diff --git a/catalyst_voices/packages/catalyst_voices_assets/assets/images/2.0x/task_illustration.webp b/catalyst_voices/packages/catalyst_voices_assets/assets/images/2.0x/task_illustration.webp new file mode 100644 index 0000000000000000000000000000000000000000..c55e59b9ff89877a06dc3ff70066e42a59939df5 GIT binary patch literal 33062 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 literal 0 HcmV?d00001 diff --git a/catalyst_voices/packages/catalyst_voices_assets/assets/images/3.0x/task_illustration.webp b/catalyst_voices/packages/catalyst_voices_assets/assets/images/3.0x/task_illustration.webp new file mode 100644 index 0000000000000000000000000000000000000000..afaaa67d4fd243133453ced98690174066df459b GIT binary patch literal 39236 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 hL1^eg6$?uemA59#fB*mh000000000000000005R*@)Q67 literal 0 HcmV?d00001 diff --git a/catalyst_voices/packages/catalyst_voices_assets/assets/images/keychain.svg b/catalyst_voices/packages/catalyst_voices_assets/assets/images/keychain.svg new file mode 100644 index 0000000000..5c04db0777 --- /dev/null +++ b/catalyst_voices/packages/catalyst_voices_assets/assets/images/keychain.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/catalyst_voices/packages/catalyst_voices_assets/assets/images/task_illustration.webp b/catalyst_voices/packages/catalyst_voices_assets/assets/images/task_illustration.webp new file mode 100644 index 0000000000000000000000000000000000000000..86db01c3530a8ac92ca5b25bc1cec86d0937d677 GIT binary patch literal 13508 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 literal 0 HcmV?d00001 diff --git a/catalyst_voices/packages/catalyst_voices_assets/lib/generated/assets.gen.dart b/catalyst_voices/packages/catalyst_voices_assets/lib/generated/assets.gen.dart index 6eb993c8b4..58c87d3180 100644 --- a/catalyst_voices/packages/catalyst_voices_assets/lib/generated/assets.gen.dart +++ b/catalyst_voices/packages/catalyst_voices_assets/lib/generated/assets.gen.dart @@ -7,10 +7,10 @@ // ignore_for_file: type=lint // ignore_for_file: directives_ordering,unnecessary_import,implicit_dynamic_list_literal,deprecated_member_use -import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; -import 'package:flutter_svg/flutter_svg.dart' as _svg; -import 'package:vector_graphics/vector_graphics.dart' as _vg; +import 'package:flutter/services.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:vector_graphics/vector_graphics.dart'; class $AssetsIconsGen { const $AssetsIconsGen(); @@ -1199,6 +1199,9 @@ class $AssetsImagesGen { SvgGenImage get fallbackLogoIcon => const SvgGenImage('assets/images/fallback_logo_icon.svg'); + /// File path: assets/images/keychain.svg + SvgGenImage get keychain => const SvgGenImage('assets/images/keychain.svg'); + /// File path: assets/images/linkedin.svg SvgGenImage get linkedin => const SvgGenImage('assets/images/linkedin.svg'); @@ -1214,6 +1217,10 @@ class $AssetsImagesGen { AssetGenImage get proposalBackground2 => const AssetGenImage('assets/images/proposal_background_2.webp'); + /// File path: assets/images/task_illustration.webp + AssetGenImage get taskIllustration => + const AssetGenImage('assets/images/task_illustration.webp'); + /// File path: assets/images/x.svg SvgGenImage get x => const SvgGenImage('assets/images/x.svg'); @@ -1233,10 +1240,12 @@ class $AssetsImagesGen { facebookMono, fallbackLogo, fallbackLogoIcon, + keychain, linkedin, linkedinMono, proposalBackground1, proposalBackground2, + taskIllustration, x, xMono ]; @@ -1348,7 +1357,7 @@ class SvgGenImage { final Set flavors; final bool _isVecFormat; - _svg.SvgPicture svg({ + SvgPicture svg({ Key? key, bool matchTextDirection = false, AssetBundle? bundle, @@ -1361,29 +1370,29 @@ class SvgGenImage { WidgetBuilder? placeholderBuilder, String? semanticsLabel, bool excludeFromSemantics = false, - _svg.SvgTheme? theme, + SvgTheme? theme, ColorFilter? colorFilter, Clip clipBehavior = Clip.hardEdge, @deprecated Color? color, @deprecated BlendMode colorBlendMode = BlendMode.srcIn, @deprecated bool cacheColorFilter = false, }) { - final _svg.BytesLoader loader; + final BytesLoader loader; if (_isVecFormat) { - loader = _vg.AssetBytesLoader( + loader = AssetBytesLoader( _assetName, assetBundle: bundle, packageName: package, ); } else { - loader = _svg.SvgAssetLoader( + loader = SvgAssetLoader( _assetName, assetBundle: bundle, packageName: package, theme: theme, ); } - return _svg.SvgPicture( + return SvgPicture( loader, key: key, matchTextDirection: matchTextDirection, diff --git a/catalyst_voices/packages/catalyst_voices_assets/lib/generated/colors.gen.dart b/catalyst_voices/packages/catalyst_voices_assets/lib/generated/colors.gen.dart index 39255c360d..8932c457c8 100644 --- a/catalyst_voices/packages/catalyst_voices_assets/lib/generated/colors.gen.dart +++ b/catalyst_voices/packages/catalyst_voices_assets/lib/generated/colors.gen.dart @@ -227,7 +227,7 @@ class VoicesColors { static const Color lightAvatarsWarning = Color(0xFFFDE1CE); /// Color: #FFFFFF - static const Color lightElevationsOnSurfaceNeutralLv0 = Color(0x16123CD3); + static const Color lightElevationsOnSurfaceNeutralLv0 = Color(0xFFFFFFFF); /// Color: #F2F4F8 static const Color lightElevationsOnSurfaceNeutralLv1Grey = Color(0xFFF2F4F8); diff --git a/catalyst_voices/packages/catalyst_voices_assets/lib/src/assets_ext.dart b/catalyst_voices/packages/catalyst_voices_assets/lib/src/assets_ext.dart index a52047b0e2..74eb0768b2 100644 --- a/catalyst_voices/packages/catalyst_voices_assets/lib/src/assets_ext.dart +++ b/catalyst_voices/packages/catalyst_voices_assets/lib/src/assets_ext.dart @@ -81,6 +81,7 @@ extension SvgGenImageExt on SvgGenImage { String? semanticsLabel, bool excludeFromSemantics = false, double? size, + bool allowSize = true, BoxFit fit = BoxFit.contain, Alignment alignment = Alignment.center, bool matchTextDirection = false, @@ -105,6 +106,7 @@ extension SvgGenImageExt on SvgGenImage { semanticsLabel: semanticsLabel, excludeFromSemantics: excludeFromSemantics, size: size, + allowSize: allowSize, fit: fit, alignment: alignment, matchTextDirection: matchTextDirection, diff --git a/catalyst_voices/packages/catalyst_voices_assets/lib/src/catalyst_svg_icon.dart b/catalyst_voices/packages/catalyst_voices_assets/lib/src/catalyst_svg_icon.dart index 88a827dfeb..0a9b094c8b 100644 --- a/catalyst_voices/packages/catalyst_voices_assets/lib/src/catalyst_svg_icon.dart +++ b/catalyst_voices/packages/catalyst_voices_assets/lib/src/catalyst_svg_icon.dart @@ -10,6 +10,9 @@ class CatalystSvgIcon extends StatelessWidget { /// See [SvgPicture.width] and [SvgPicture.height] final double? size; + /// Whether [size] can be applied to final widget. + final bool allowSize; + /// See [SvgPicture.fit] final BoxFit fit; @@ -54,6 +57,7 @@ class CatalystSvgIcon extends StatelessWidget { this.bytesLoader, { super.key, this.size, + this.allowSize = true, this.fit = BoxFit.contain, this.alignment = Alignment.center, this.matchTextDirection = false, @@ -77,6 +81,7 @@ class CatalystSvgIcon extends StatelessWidget { String? package = 'catalyst_voices_assets', SvgTheme? theme, this.size, + this.allowSize = true, this.fit = BoxFit.contain, this.alignment = Alignment.center, this.matchTextDirection = false, @@ -101,7 +106,7 @@ class CatalystSvgIcon extends StatelessWidget { @override Widget build(BuildContext context) { - final effectiveSize = size ?? IconTheme.of(context).size; + final effectiveSize = allowSize ? size ?? IconTheme.of(context).size : null; final effectiveColorFilter = allowColorFilter ? _colorFilter ?? IconTheme.of(context).asColorFilter() : null; From c1bbf1a316a6763e61dadeb9c1db592f982b5b69 Mon Sep 17 00:00:00 2001 From: Dominik Toton <166132265+dtscalac@users.noreply.github.com> Date: Wed, 25 Sep 2024 09:35:37 +0200 Subject: [PATCH 14/23] fix: samples (#880) --- .../catalyst_cardano/catalyst_cardano/README.md | 2 +- .../catalyst_cardano_serialization/README.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/README.md b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/README.md index af110d7dab..3a1ec3c2ff 100644 --- a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/README.md +++ b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/README.md @@ -123,7 +123,7 @@ Transaction _buildUnsignedTx({ final txOutput = TransactionOutput( address: preprodFaucetAddress, - amount: const Value(coin: Coin(1000000)), + amount: const Balance(coin: Coin(1000000)), ); final txBuilder = TransactionBuilder( diff --git a/catalyst_voices_packages/catalyst_cardano_serialization/README.md b/catalyst_voices_packages/catalyst_cardano_serialization/README.md index 8188f53185..e9c6c10e71 100644 --- a/catalyst_voices_packages/catalyst_cardano_serialization/README.md +++ b/catalyst_voices_packages/catalyst_cardano_serialization/README.md @@ -91,7 +91,7 @@ void main() { 'addr_test1qpu5vlrf4xkxv2qpwngf6cjhtw542ayty80v8dyr49rf5ewvxwdrt70' 'qlcpeeagscasafhffqsxy36t90ldv06wqrk2qum8x5w', ), - amount: const Value(coin: Coin(10162333)), + amount: const Balance(coin: Coin(10162333)), ), ); @@ -99,12 +99,12 @@ void main() { address: ShelleyAddress.fromBech32( 'addr_test1vzpwq95z3xyum8vqndgdd9mdnmafh3djcxnc6jemlgdmswcve6tkw', ), - amount: const Value(coin: Coin(1000000)), + amount: const Balance(coin: Coin(1000000)), ); final txBuilder = TransactionBuilder( config: txBuilderConfig, - inputs: [utxo], + inputs: {utxo}, // fee can be left empty so that it's auto calculated or can be hardcoded // fee: const Coin(1000000), ttl: const SlotBigNum(410021), From 77062753069d920a80c2f062c40477c7f9be353c Mon Sep 17 00:00:00 2001 From: Dominik Toton <166132265+dtscalac@users.noreply.github.com> Date: Wed, 25 Sep 2024 10:07:06 +0200 Subject: [PATCH 15/23] feat(cat-voices): wallet link flow structure (#877) * feat: add link wallet flow structure * fix(cat-voices): typo * feat: add content for link wallet intro dialog * feat(cat-voices): add picture * refactor(cat-voices): cleanup * refactor(cat-voices): make link wallet dialog private, move learn more button --- .../intro/link_wallet_intro_dialog.dart | 62 +++++++++++++++++++ .../link_wallet/link_wallet_dialog.dart | 50 +++++++++++++++ .../link_wallet/link_wallet_stage.dart | 8 +++ .../select_wallet/select_wallet_dialog.dart | 25 ++++++++ .../lib/widgets/buttons/voices_buttons.dart | 21 +++++++ .../lib/src/themes/catalyst.dart | 1 + .../catalyst_voices_localizations.dart | 36 +++++++++++ .../catalyst_voices_localizations_en.dart | 18 ++++++ .../catalyst_voices_localizations_es.dart | 18 ++++++ .../lib/l10n/intl_en.arb | 24 +++++++ 10 files changed, 263 insertions(+) create mode 100644 catalyst_voices/lib/pages/registration/link_wallet/intro/link_wallet_intro_dialog.dart create mode 100644 catalyst_voices/lib/pages/registration/link_wallet/link_wallet_dialog.dart create mode 100644 catalyst_voices/lib/pages/registration/link_wallet/link_wallet_stage.dart create mode 100644 catalyst_voices/lib/pages/registration/link_wallet/select_wallet/select_wallet_dialog.dart diff --git a/catalyst_voices/lib/pages/registration/link_wallet/intro/link_wallet_intro_dialog.dart b/catalyst_voices/lib/pages/registration/link_wallet/intro/link_wallet_intro_dialog.dart new file mode 100644 index 0000000000..066cc83863 --- /dev/null +++ b/catalyst_voices/lib/pages/registration/link_wallet/intro/link_wallet_intro_dialog.dart @@ -0,0 +1,62 @@ +import 'package:catalyst_voices/pages/account/creation/task_picture.dart'; +import 'package:catalyst_voices/widgets/widgets.dart'; +import 'package:catalyst_voices_assets/catalyst_voices_assets.dart'; +import 'package:catalyst_voices_localization/catalyst_voices_localization.dart'; +import 'package:flutter/material.dart'; + +/// The initial screen for the link wallet flow during registration. +class LinkWalletIntroDialog extends StatelessWidget { + final VoidCallback onSelectWallet; + + const LinkWalletIntroDialog({ + super.key, + required this.onSelectWallet, + }); + + @override + Widget build(BuildContext context) { + return VoicesDesktopPanelsDialog( + left: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + context.l10n.walletLink_header, + style: Theme.of(context).textTheme.titleLarge, + ), + const SizedBox(height: 12), + Text( + context.l10n.walletLink_subheader, + style: Theme.of(context).textTheme.titleMedium, + ), + const SizedBox(height: 50), + const TaskKeychainPicture(), + const Spacer(), + VoicesLearnMoreButton( + onTap: () {}, + ), + ], + ), + right: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + const SizedBox(height: 24), + Text( + context.l10n.walletLink_intro_title, + style: Theme.of(context).textTheme.titleMedium, + ), + const SizedBox(height: 24), + Text( + context.l10n.walletLink_intro_content, + style: Theme.of(context).textTheme.bodyMedium, + ), + const Spacer(), + VoicesFilledButton( + leading: VoicesAssets.icons.wallet.buildIcon(), + onTap: onSelectWallet, + child: Text(context.l10n.chooseCardanoWallet), + ), + ], + ), + ); + } +} diff --git a/catalyst_voices/lib/pages/registration/link_wallet/link_wallet_dialog.dart b/catalyst_voices/lib/pages/registration/link_wallet/link_wallet_dialog.dart new file mode 100644 index 0000000000..edfd4312ec --- /dev/null +++ b/catalyst_voices/lib/pages/registration/link_wallet/link_wallet_dialog.dart @@ -0,0 +1,50 @@ +import 'package:catalyst_cardano/catalyst_cardano.dart'; +import 'package:catalyst_voices/pages/registration/link_wallet/intro/link_wallet_intro_dialog.dart'; +import 'package:catalyst_voices/pages/registration/link_wallet/link_wallet_stage.dart'; +import 'package:catalyst_voices/pages/registration/link_wallet/select_wallet/select_wallet_dialog.dart'; +import 'package:catalyst_voices/widgets/modals/voices_dialog.dart'; +import 'package:flutter/material.dart'; + +/// The link wallet flow consisting +/// of [LinkWalletStage]'s during the registration. +class LinkWalletDialog extends StatefulWidget { + const LinkWalletDialog._(); + + /// Shows the [LinkWalletDialog] flow. + static Future show({required BuildContext context}) { + return VoicesDialog.show( + context: context, + routeSettings: const RouteSettings(name: '/register/link-wallet'), + builder: (context) => const LinkWalletDialog._(), + ); + } + + @override + State createState() => _LinkWalletDialogState(); +} + +class _LinkWalletDialogState extends State { + LinkWalletStage _stage = LinkWalletStage.intro; + + @override + Widget build(BuildContext context) { + return switch (_stage) { + LinkWalletStage.intro => LinkWalletIntroDialog( + onSelectWallet: _onSelectWallet, + ), + LinkWalletStage.selectWallet => SelectWalletDialog( + onSelectedWallet: _onSelectedWallet, + ), + }; + } + + void _onSelectWallet() { + setState(() { + _stage = LinkWalletStage.selectWallet; + }); + } + + void _onSelectedWallet(CardanoWallet wallet) { + // TODO(dtscalac): store selected wallet and proceed to next stage + } +} diff --git a/catalyst_voices/lib/pages/registration/link_wallet/link_wallet_stage.dart b/catalyst_voices/lib/pages/registration/link_wallet/link_wallet_stage.dart new file mode 100644 index 0000000000..4ca59a842e --- /dev/null +++ b/catalyst_voices/lib/pages/registration/link_wallet/link_wallet_stage.dart @@ -0,0 +1,8 @@ +/// Describes the link wallet flow during registration. +enum LinkWalletStage { + /// The welcome screen for the link wallet flow. + intro, + + /// A screen where the user is asked to connect the cardano wallet. + selectWallet, +} diff --git a/catalyst_voices/lib/pages/registration/link_wallet/select_wallet/select_wallet_dialog.dart b/catalyst_voices/lib/pages/registration/link_wallet/select_wallet/select_wallet_dialog.dart new file mode 100644 index 0000000000..6799dafcff --- /dev/null +++ b/catalyst_voices/lib/pages/registration/link_wallet/select_wallet/select_wallet_dialog.dart @@ -0,0 +1,25 @@ +import 'package:catalyst_cardano/catalyst_cardano.dart'; +import 'package:catalyst_voices/widgets/widgets.dart'; +import 'package:flutter/material.dart'; + +// TODO(dtscalac): add content for the screen +class SelectWalletDialog extends StatelessWidget { + final ValueChanged onSelectedWallet; + + const SelectWalletDialog({ + super.key, + required this.onSelectedWallet, + }); + + @override + Widget build(BuildContext context) { + return const VoicesDesktopPanelsDialog( + left: Column( + children: [], + ), + right: Column( + children: [], + ), + ); + } +} diff --git a/catalyst_voices/lib/widgets/buttons/voices_buttons.dart b/catalyst_voices/lib/widgets/buttons/voices_buttons.dart index 1d9cba19a1..a12419eb16 100644 --- a/catalyst_voices/lib/widgets/buttons/voices_buttons.dart +++ b/catalyst_voices/lib/widgets/buttons/voices_buttons.dart @@ -1,7 +1,9 @@ import 'dart:async'; import 'package:catalyst_voices/widgets/buttons/voices_icon_button.dart'; +import 'package:catalyst_voices/widgets/buttons/voices_text_button.dart'; import 'package:catalyst_voices_assets/catalyst_voices_assets.dart'; +import 'package:catalyst_voices_localization/catalyst_voices_localization.dart'; import 'package:flutter/material.dart'; class DrawerToggleButton extends StatelessWidget { @@ -146,3 +148,22 @@ class MoreOptionsButton extends StatelessWidget { ); } } + +/// A "Learn More" button that redirects usually to an external content. +class VoicesLearnMoreButton extends StatelessWidget { + final VoidCallback onTap; + + const VoicesLearnMoreButton({ + super.key, + required this.onTap, + }); + + @override + Widget build(BuildContext context) { + return VoicesTextButton( + trailing: VoicesAssets.icons.externalLink.buildIcon(), + onTap: onTap, + child: Text(context.l10n.learnMore), + ); + } +} diff --git a/catalyst_voices/packages/catalyst_voices_brands/lib/src/themes/catalyst.dart b/catalyst_voices/packages/catalyst_voices_brands/lib/src/themes/catalyst.dart index 1e76d0c85a..4c4c7efd64 100644 --- a/catalyst_voices/packages/catalyst_voices_brands/lib/src/themes/catalyst.dart +++ b/catalyst_voices/packages/catalyst_voices_brands/lib/src/themes/catalyst.dart @@ -302,6 +302,7 @@ ThemeData _buildThemeData( final textTheme = _buildTextTheme(voicesColorScheme); return ThemeData( + visualDensity: VisualDensity.standard, appBarTheme: AppBarTheme( backgroundColor: voicesColorScheme.onSurfaceNeutralOpaqueLv1, scrolledUnderElevation: 0, diff --git a/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations.dart b/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations.dart index 1105d7c665..cf70a944c9 100644 --- a/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations.dart +++ b/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations.dart @@ -663,6 +663,42 @@ abstract class VoicesLocalizations { /// In en, this message translates to: /// **'Good password strength'** String get goodPasswordStrength; + + /// A button label to select a cardano wallet. + /// + /// In en, this message translates to: + /// **'Choose Cardano Wallet'** + String get chooseCardanoWallet; + + /// A label on a clickable element that can show more content. + /// + /// In en, this message translates to: + /// **'Learn More'** + String get learnMore; + + /// A header in link wallet flow in registration. + /// + /// In en, this message translates to: + /// **'Link keys to your Catalyst Keychain'** + String get walletLink_header; + + /// A subheader in link wallet flow in registration. + /// + /// In en, this message translates to: + /// **'Link your Cardano wallet'** + String get walletLink_subheader; + + /// A title in link wallet flow on intro screen. + /// + /// In en, this message translates to: + /// **'Link Cardano Wallet & Catalyst Roles to you Catalyst Keychain.'** + String get walletLink_intro_title; + + /// A message (content) in link wallet flow on intro screen. + /// + /// In en, this message translates to: + /// **'You\'re almost there! This is the final and most important step in your account setup.\n\nWe\'re going to link a Cardano Wallet to your Catalyst Keychain, so you can start collecting Role Keys.\n\nRole Keys allow you to enter new spaces, discover new ways to participate, and unlock new ways to earn rewards.\n\nWe\'ll start with your Voter Key by default. You can decide to add a Proposer Key and Drep key if you want, or you can always add them later.'** + String get walletLink_intro_content; } class _VoicesLocalizationsDelegate extends LocalizationsDelegate { diff --git a/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations_en.dart b/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations_en.dart index b4ae93ae36..08a982619f 100644 --- a/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations_en.dart +++ b/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations_en.dart @@ -345,4 +345,22 @@ class VoicesLocalizationsEn extends VoicesLocalizations { @override String get goodPasswordStrength => 'Good password strength'; + + @override + String get chooseCardanoWallet => 'Choose Cardano Wallet'; + + @override + String get learnMore => 'Learn More'; + + @override + String get walletLink_header => 'Link keys to your Catalyst Keychain'; + + @override + String get walletLink_subheader => 'Link your Cardano wallet'; + + @override + String get walletLink_intro_title => 'Link Cardano Wallet & Catalyst Roles to you Catalyst Keychain.'; + + @override + String get walletLink_intro_content => 'You\'re almost there! This is the final and most important step in your account setup.\n\nWe\'re going to link a Cardano Wallet to your Catalyst Keychain, so you can start collecting Role Keys.\n\nRole Keys allow you to enter new spaces, discover new ways to participate, and unlock new ways to earn rewards.\n\nWe\'ll start with your Voter Key by default. You can decide to add a Proposer Key and Drep key if you want, or you can always add them later.'; } diff --git a/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations_es.dart b/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations_es.dart index 734ef69842..33a5b51913 100644 --- a/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations_es.dart +++ b/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations_es.dart @@ -345,4 +345,22 @@ class VoicesLocalizationsEs extends VoicesLocalizations { @override String get goodPasswordStrength => 'Good password strength'; + + @override + String get chooseCardanoWallet => 'Choose Cardano Wallet'; + + @override + String get learnMore => 'Learn More'; + + @override + String get walletLink_header => 'Link keys to your Catalyst Keychain'; + + @override + String get walletLink_subheader => 'Link your Cardano wallet'; + + @override + String get walletLink_intro_title => 'Link Cardano Wallet & Catalyst Roles to you Catalyst Keychain.'; + + @override + String get walletLink_intro_content => 'You\'re almost there! This is the final and most important step in your account setup.\n\nWe\'re going to link a Cardano Wallet to your Catalyst Keychain, so you can start collecting Role Keys.\n\nRole Keys allow you to enter new spaces, discover new ways to participate, and unlock new ways to earn rewards.\n\nWe\'ll start with your Voter Key by default. You can decide to add a Proposer Key and Drep key if you want, or you can always add them later.'; } diff --git a/catalyst_voices/packages/catalyst_voices_localization/lib/l10n/intl_en.arb b/catalyst_voices/packages/catalyst_voices_localization/lib/l10n/intl_en.arb index 65c3750b5b..22a2c7f2fe 100644 --- a/catalyst_voices/packages/catalyst_voices_localization/lib/l10n/intl_en.arb +++ b/catalyst_voices/packages/catalyst_voices_localization/lib/l10n/intl_en.arb @@ -425,5 +425,29 @@ "goodPasswordStrength": "Good password strength", "@goodPasswordStrength": { "description": "Describes a password that is strong." + }, + "chooseCardanoWallet": "Choose Cardano Wallet", + "@chooseCardanoWallet": { + "description": "A button label to select a cardano wallet." + }, + "learnMore": "Learn More", + "@learnMore": { + "description": "A label on a clickable element that can show more content." + }, + "walletLink_header": "Link keys to your Catalyst Keychain", + "@walletLink_header": { + "description": "A header in link wallet flow in registration." + }, + "walletLink_subheader": "Link your Cardano wallet", + "@walletLink_subheader": { + "description": "A subheader in link wallet flow in registration." + }, + "walletLink_intro_title": "Link Cardano Wallet & Catalyst Roles to you Catalyst Keychain.", + "@walletLink_intro_title": { + "description": "A title in link wallet flow on intro screen." + }, + "walletLink_intro_content": "You're almost there! This is the final and most important step in your account setup.\n\nWe're going to link a Cardano Wallet to your Catalyst Keychain, so you can start collecting Role Keys.\n\nRole Keys allow you to enter new spaces, discover new ways to participate, and unlock new ways to earn rewards.\n\nWe'll start with your Voter Key by default. You can decide to add a Proposer Key and Drep key if you want, or you can always add them later.", + "@walletLink_intro_content": { + "description": "A message (content) in link wallet flow on intro screen." } } \ No newline at end of file From e1835e046fcc2dd38948359047067feb358612c9 Mon Sep 17 00:00:00 2001 From: Steven Johnson Date: Wed, 25 Sep 2024 15:34:44 +0700 Subject: [PATCH 16/23] feat(cat-gateway): Add Mithril Snapshot Downloader control env vars (#875) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(docs): Fix up docs issues * fix(backend): Huge refactor to prep for scylladb config management * fix(backend): Clean up logging a little, and add build info logs as required for production. * Refactor and setup cassandra config/session * feat(backend): Index DB schema setup seems to work * WIP * fix(rust): Format fixes * fix(rust): Build fixes * fix(rust): Adjust index DB so we can index without querying, and can optimize on first detected spend. * fix(rust): add more docs * fix(rust): basic new follower integration * fix(rust): wip * fix(ci): Bump rust compiler version to match CI * ci(backend): Bump rust version to match CI * fix(backend): Fix code format and lints * feat(backend): simple new block indexer just to test the logic works * feat(gateway): Simple indexing with cassandra seems to work * refactor(backend): Remove lazy and once_cell in favor of new standard library replacements * fix(backend): WIP indexing for stake addresses and unstaked ada * fix(backend): indexing WIP * fix(backend): Add support for log control with env vars, default to mainnet, adjust `justfile` to properly select preprod and also refresh git dependencies. * feat(backend): Make local test scylla db run with 4 nodes, not 1 * fix(backend-lib): Add stop for cassandra db cluster * refactor(backend-lib): Remove c509-certificate because its moved to catalyst-libs * fix(backend): Remove dependencies from Workspace, and move into project * fix(backend): Use temporary cat-ci branch for rust builders * fix(backend): Remove obsolete common crates subdirectory * fix(backend): Don't use pre-packaged mithril snapshots in integration tests * fix(backend): Fix code so it builds with latest chain follower code. Also eliminates redundant logic now incorporated into chain follower. * fix(backend): Fix broken reference to catalyst libs * ci(ci): Bump all earthfiles to latest WIP cat-ci branch * fix(frontend-pkg): Ignore .dart_tool directory in frontend files checking markdown * fix(ci): Fix spelling * fix(spelling): Add more project words and properly sort list * fix(backend): Sync rust configs and add target to make it easier in future * fix(backend): Enable all features of Scylla for now. * fix(frontend-pkg): Fix markdown table having too many columns * ci(spelling): Fix spelling issues * fix(docs): Bump docs to latest WIP cat-ci version * feat(gateway): Add low resource scylla db instance for local testing * feat(gateway): Add and update developer convenience functions for backend * fix(backend): Fix code format * fix(backend): Fix spelling issues in CQL files * fix(spelling): Remove duplicates from the project words dictionary * fix(backend): Get the backend building properly with earthly. * feat(backend): remove obsoleted postgres logic for chain indexing * revert(event-db): Revert extension changes to sql files after fixing sqlfluff version * fix(frontend): Regenerate the dart api interface file, and add doing that to the pre-push just command * fix(backend): temporarily disable API tests * fix(backend): Also temporarily stop workflow consuming test reports that are disabled * fix(ci): Try and stop coveralls running for api-tests * ci(general): Replace temp CI branch with tagged release * feat: Add Handler for Permissionless Auth (#825) * docs(cips): Add Formal Defintion of auth token * fix(docs): Fix comments in cddl file * fix(docs): sig size * fix(docs): Rename CDDL for the auth token * docs(docs): Add auth-header documentation * docs(docs): Fix markdown line length error * docs(general): Fix spelling * fix(backend-lib): Bump to catalyst-libs tagged version * fix(backend): stub out obsolete code (to be removed in follow up PR). * fix(backend-lib): code format * fix(backend): remove unused crate dependencies * feat: auth token (#723) * feat(auth token encode and decode): permissionless auth * feat(auth token encode and decode): permissionless auth * feat(auth token encode and decode): permissionless auth * feat(auth token encode and decode): permissionless auth * feat(auth token encode and decode): permissionless auth * iron out tests * iron out tests * refactor(auth token encode and decode): ed25519 Signature cbor fields Sig over the preceding two fields - sig(cbor(kid), cbor(ulid)) * refactor(auth token encode and decode): ed25519 Signature cbor fields Sig over the preceding two fields - sig(cbor(kid), cbor(ulid)) * feat(cat security scheme): open api * feat(cat security scheme): open api * feat(mock cert state): given kid from bearer return pub key * feat(auth token): cache TTL * feat(auth token): cache TTL * feat(auth token): cache TT * ci(spell check): fix * ci(spell check): fix * ci(spell check): fix * refactor(clippy): housekeeping tidy * refactor(clippy): housekeeping tidy * refactor(clippy): housekeeping tidy * refactor(clippy): housekeeping tidy * fix(backend): Re-enable dependent crates used by this code * fix(backend): clippy lints * fix(backend): spelling --------- Co-authored-by: Steven Johnson Co-authored-by: Steven Johnson * feat: Update GET staked_ada endpoint to fetch from ScyllaDB (#728) * feat: get staked ada from scylladb * chore: revert justfile changes * chore: filter TXOs in rust instead of filtering in ScyllaDB query * fix(backend): spelling * fix(backend): Eliminate lint errors from Derived function * fix(backend): code format * fix(backend): Udate autogenerated dart code * chore(cat-voices): fix tests --------- Co-authored-by: Steven Johnson Co-authored-by: Steven Johnson Co-authored-by: Dominik Toton * feat: DB Indexing for CIP-36 registrations (#788) * feat: add schema for cip-36 registration tables * feat: index cip-36 by stake address * feat: index cip-36 registrations by vote key * fix: use TxiInserParams::new when adding txi data * fix: remove unused cfg attributes * fix: refactor Cip36RegistrationInsertQuery::new * fix(backend): Refactor queries and add multiple tables for cip36 registration indexes * fix(backend): Cip36 Primary key is stake key. Stake Key N->1 Vote Key * fix(backend): code format --------- Co-authored-by: Steven Johnson Co-authored-by: Steven Johnson * docs(general): Cleanup project dictionary * docs(spelling): Fix spelling * fix(backend): remove obsolete clippy lint cfg * docs(backend): Improve field documentation so its not ambiguous. * docs(backend): Fix comment * docs(backend): Improve comment * fix(backend): Vote Key index logic, and update comments * fix(backend): Earthfile needs to be executed from root of repo, to properly pick up secrets * fix(backend): make generic saturating value converter and use it instead of type specific ones * test(cat-gateway): Add tests for float conversion and better docs about functions limitations. * fix(cat-gateway): Developer lints in release mode, and also refer to correct local release binary * fix(cat-gateway): CIP36 index schema error * fix(cat-gateway): Cip36 indexing working, improve bad cassandra query reporting. * refactor(cat-gateway): Make settings a sub-module * refactor(cat-gateway): Break up Envvar handling into multiple files * refactor(cat-gateway): Fix code format * feat(cat-gateway): Add chain-sync downloader options to cat-gateway env vars * test(cat-gateway): Make debug logs visible in local testing * fix(cat-gateway): Minimum timeout for mithril downloads * test(cat-gateway): Silence gratuitous debug log in cassandra queries * refactor(cat-gateway): Decrease verboseness of the string env var logging code * fix(general): Bump alpine version and pin to fix missing upstream containers * ci(general): Bump cat-ci to v3.2.07 --------- Co-authored-by: cong-or <60357579+cong-or@users.noreply.github.com> Co-authored-by: Felipe Rosa Co-authored-by: Dominik Toton Co-authored-by: Joaquín Rosales --- Earthfile | 6 +- catalyst-gateway/Earthfile | 4 +- catalyst-gateway/Justfile | 4 +- catalyst-gateway/bin/src/cardano/mod.rs | 14 +- .../bin/src/db/index/block/certs.rs | 6 +- .../src/db/index/block/cip36/insert_cip36.rs | 4 +- .../block/cip36/insert_cip36_for_vote_key.rs | 4 +- .../index/block/cip36/insert_cip36_invalid.rs | 4 +- .../bin/src/db/index/block/cip36/mod.rs | 4 +- .../bin/src/db/index/block/mod.rs | 4 +- .../bin/src/db/index/block/txi.rs | 4 +- .../bin/src/db/index/block/txo/insert_txo.rs | 4 +- .../db/index/block/txo/insert_txo_asset.rs | 4 +- .../db/index/block/txo/insert_unstaked_txo.rs | 4 +- .../block/txo/insert_unstaked_txo_asset.rs | 4 +- .../bin/src/db/index/block/txo/mod.rs | 4 +- .../bin/src/db/index/queries/mod.rs | 14 +- .../queries/staked_ada/update_txo_spent.rs | 4 +- .../bin/src/db/index/schema/mod.rs | 8 +- catalyst-gateway/bin/src/db/index/session.rs | 10 +- .../bin/src/settings/cassandra_db.rs | 121 +++++ .../bin/src/settings/chain_follower.rs | 135 ++++++ .../bin/src/{settings.rs => settings/mod.rs} | 453 +----------------- .../bin/src/settings/str_env_var.rs | 239 +++++++++ catalyst-gateway/event-db/Earthfile | 2 +- catalyst-gateway/tests/Earthfile | 2 +- catalyst-gateway/tests/api_tests/Earthfile | 2 +- .../tests/schemathesis_tests/Earthfile | 4 +- catalyst_voices/Earthfile | 4 +- catalyst_voices/uikit_example/Earthfile | 2 +- .../wallet-automation/Earthfile | 6 +- docs/Earthfile | 2 +- utilities/local-cluster/Earthfile | 2 +- 33 files changed, 586 insertions(+), 502 deletions(-) create mode 100644 catalyst-gateway/bin/src/settings/cassandra_db.rs create mode 100644 catalyst-gateway/bin/src/settings/chain_follower.rs rename catalyst-gateway/bin/src/{settings.rs => settings/mod.rs} (52%) create mode 100644 catalyst-gateway/bin/src/settings/str_env_var.rs diff --git a/Earthfile b/Earthfile index 95f6e0ee2c..306dcf3452 100644 --- a/Earthfile +++ b/Earthfile @@ -1,8 +1,8 @@ VERSION 0.8 -IMPORT github.com/input-output-hk/catalyst-ci/earthly/mdlint:v3.2.03 AS mdlint-ci -IMPORT github.com/input-output-hk/catalyst-ci/earthly/cspell:v3.2.03 AS cspell-ci -IMPORT github.com/input-output-hk/catalyst-ci/earthly/postgresql:v3.2.03 AS postgresql-ci +IMPORT github.com/input-output-hk/catalyst-ci/earthly/mdlint:v3.2.07 AS mdlint-ci +IMPORT github.com/input-output-hk/catalyst-ci/earthly/cspell:v3.2.07 AS cspell-ci +IMPORT github.com/input-output-hk/catalyst-ci/earthly/postgresql:v3.2.07 AS postgresql-ci FROM debian:stable-slim diff --git a/catalyst-gateway/Earthfile b/catalyst-gateway/Earthfile index 0795a93f6f..8ec606226d 100644 --- a/catalyst-gateway/Earthfile +++ b/catalyst-gateway/Earthfile @@ -1,6 +1,6 @@ VERSION 0.8 -IMPORT github.com/input-output-hk/catalyst-ci/earthly/rust:v3.2.03 AS rust-ci +IMPORT github.com/input-output-hk/catalyst-ci/earthly/rust:v3.2.07 AS rust-ci #cspell: words rustfmt toolsets USERARCH stdcfgs @@ -62,7 +62,7 @@ all-hosts-build: package-cat-gateway: ARG tag="latest" - FROM alpine:3.19 + FROM alpine:3.20.3 WORKDIR /cat-gateway RUN apk add --no-cache gcc bash diff --git a/catalyst-gateway/Justfile b/catalyst-gateway/Justfile index a07d9b0c0e..724c79f5bc 100644 --- a/catalyst-gateway/Justfile +++ b/catalyst-gateway/Justfile @@ -44,12 +44,12 @@ build-cat-gateway: code-format code-lint # Run cat-gateway natively on preprod run-cat-gateway: build-cat-gateway CHAIN_FOLLOWER_SYNC_TASKS="16" \ - RUST_LOG="error,cat-gateway=debug,cardano_chain_follower=debug,mithril-client=debug" \ + RUST_LOG="error,cat_gateway=debug,cardano_chain_follower=debug,mithril-client=debug" \ CHAIN_NETWORK="Preprod" \ ./target/release/cat-gateway run --log-level debug # Run cat-gateway natively on mainnet run-cat-gateway-mainnet: build-cat-gateway CHAIN_FOLLOWER_SYNC_TASKS="1" \ - RUST_LOG="error,cat-gateway=debug,cardano_chain_follower=debug,mithril-client=debug" \ + RUST_LOG="error,cat_gateway=debug,cardano_chain_follower=debug,mithril-client=debug" \ ./target/release/cat-gateway run --log-level debug diff --git a/catalyst-gateway/bin/src/cardano/mod.rs b/catalyst-gateway/bin/src/cardano/mod.rs index 08e1c9015b..60ac5ae2ab 100644 --- a/catalyst-gateway/bin/src/cardano/mod.rs +++ b/catalyst-gateway/bin/src/cardano/mod.rs @@ -12,7 +12,7 @@ use tracing::{error, info, warn}; use crate::{ db::index::{block::index_block, session::CassandraSession}, - settings::Settings, + settings::{chain_follower, Settings}, }; // pub(crate) mod cip36_registration_obsolete; @@ -26,9 +26,13 @@ const MAX_BLOCKS_BATCH_LEN: usize = 1024; const INDEXING_DB_READY_WAIT_INTERVAL: Duration = Duration::from_secs(1); /// Start syncing a particular network -async fn start_sync_for(chain: Network) -> anyhow::Result<()> { - let cfg = ChainSyncConfig::default_for(chain); - info!(chain = %cfg.chain, "Starting Blockchain Sync"); +async fn start_sync_for(cfg: &chain_follower::EnvVars) -> anyhow::Result<()> { + let chain = cfg.chain; + let dl_config = cfg.dl_config.clone(); + + let mut cfg = ChainSyncConfig::default_for(chain); + cfg.mithril_cfg = cfg.mithril_cfg.with_dl_config(dl_config); + info!(chain = %chain, "Starting Blockchain Sync"); if let Err(error) = cfg.run().await { error!(chain=%chain, error=%error, "Failed to start chain sync task"); @@ -275,7 +279,7 @@ pub(crate) async fn start_followers() -> anyhow::Result<()> { cfg.log(); // Start Syncing the blockchain, so we can consume its data as required. - start_sync_for(cfg.chain).await?; + start_sync_for(&cfg).await?; info!(chain=%cfg.chain,"Chain Sync is started."); tokio::spawn(async move { diff --git a/catalyst-gateway/bin/src/db/index/block/certs.rs b/catalyst-gateway/bin/src/db/index/block/certs.rs index 86240df12b..1a8ecbf570 100644 --- a/catalyst-gateway/bin/src/db/index/block/certs.rs +++ b/catalyst-gateway/bin/src/db/index/block/certs.rs @@ -13,7 +13,7 @@ use crate::{ session::CassandraSession, }, service::utilities::convert::from_saturating, - settings::CassandraEnvVars, + settings::cassandra_db, }; /// Insert TXI Query and Parameters @@ -109,7 +109,7 @@ impl StakeRegistrationInsertQuery { /// Prepare Batch of Insert TXI Index Data Queries pub(crate) async fn prepare_batch( - session: &Arc, cfg: &CassandraEnvVars, + session: &Arc, cfg: &cassandra_db::EnvVars, ) -> anyhow::Result { let insert_queries = PreparedQueries::prepare_batch( session.clone(), @@ -145,7 +145,7 @@ impl CertInsertQuery { /// Prepare Batch of Insert TXI Index Data Queries pub(crate) async fn prepare_batch( - session: &Arc, cfg: &CassandraEnvVars, + session: &Arc, cfg: &cassandra_db::EnvVars, ) -> anyhow::Result { // Note: for now we have one query, but there are many certs, and later we may have more // to add here. diff --git a/catalyst-gateway/bin/src/db/index/block/cip36/insert_cip36.rs b/catalyst-gateway/bin/src/db/index/block/cip36/insert_cip36.rs index 771cb9b5d2..d0a94fe7d5 100644 --- a/catalyst-gateway/bin/src/db/index/block/cip36/insert_cip36.rs +++ b/catalyst-gateway/bin/src/db/index/block/cip36/insert_cip36.rs @@ -8,7 +8,7 @@ use tracing::error; use crate::{ db::index::queries::{PreparedQueries, SizedBatch}, - settings::CassandraEnvVars, + settings::cassandra_db, }; /// Index Registration by Stake Address @@ -82,7 +82,7 @@ impl Params { /// Prepare Batch of Insert CIP-36 Registration Index Data Queries pub(super) async fn prepare_batch( - session: &Arc, cfg: &CassandraEnvVars, + session: &Arc, cfg: &cassandra_db::EnvVars, ) -> anyhow::Result { let insert_queries = PreparedQueries::prepare_batch( session.clone(), diff --git a/catalyst-gateway/bin/src/db/index/block/cip36/insert_cip36_for_vote_key.rs b/catalyst-gateway/bin/src/db/index/block/cip36/insert_cip36_for_vote_key.rs index b7f0d48d83..e990443e30 100644 --- a/catalyst-gateway/bin/src/db/index/block/cip36/insert_cip36_for_vote_key.rs +++ b/catalyst-gateway/bin/src/db/index/block/cip36/insert_cip36_for_vote_key.rs @@ -8,7 +8,7 @@ use tracing::error; use crate::{ db::index::queries::{PreparedQueries, SizedBatch}, - settings::CassandraEnvVars, + settings::cassandra_db, }; /// Index Registration by Vote Key @@ -49,7 +49,7 @@ impl Params { /// Prepare Batch of Insert CIP-36 Registration Index Data Queries pub(super) async fn prepare_batch( - session: &Arc, cfg: &CassandraEnvVars, + session: &Arc, cfg: &cassandra_db::EnvVars, ) -> anyhow::Result { let insert_queries = PreparedQueries::prepare_batch( session.clone(), diff --git a/catalyst-gateway/bin/src/db/index/block/cip36/insert_cip36_invalid.rs b/catalyst-gateway/bin/src/db/index/block/cip36/insert_cip36_invalid.rs index 0ab3fd8122..a5a82e1d26 100644 --- a/catalyst-gateway/bin/src/db/index/block/cip36/insert_cip36_invalid.rs +++ b/catalyst-gateway/bin/src/db/index/block/cip36/insert_cip36_invalid.rs @@ -8,7 +8,7 @@ use tracing::error; use crate::{ db::index::queries::{PreparedQueries, SizedBatch}, - settings::CassandraEnvVars, + settings::cassandra_db, }; /// Index Registration by Stake Address (Invalid Registrations) @@ -99,7 +99,7 @@ impl Params { /// Prepare Batch of Insert CIP-36 Registration Index Data Queries pub(super) async fn prepare_batch( - session: &Arc, cfg: &CassandraEnvVars, + session: &Arc, cfg: &cassandra_db::EnvVars, ) -> anyhow::Result { let insert_queries = PreparedQueries::prepare_batch( session.clone(), diff --git a/catalyst-gateway/bin/src/db/index/block/cip36/mod.rs b/catalyst-gateway/bin/src/db/index/block/cip36/mod.rs index 13d4c70b46..a03dca54e2 100644 --- a/catalyst-gateway/bin/src/db/index/block/cip36/mod.rs +++ b/catalyst-gateway/bin/src/db/index/block/cip36/mod.rs @@ -14,7 +14,7 @@ use crate::{ queries::{FallibleQueryTasks, PreparedQuery, SizedBatch}, session::CassandraSession, }, - settings::CassandraEnvVars, + settings::cassandra_db, }; /// Insert CIP-36 Registration Queries @@ -39,7 +39,7 @@ impl Cip36InsertQuery { /// Prepare Batch of Insert Cip36 Registration Data Queries pub(crate) async fn prepare_batch( - session: &Arc, cfg: &CassandraEnvVars, + session: &Arc, cfg: &cassandra_db::EnvVars, ) -> anyhow::Result<(SizedBatch, SizedBatch, SizedBatch)> { let insert_cip36_batch = insert_cip36::Params::prepare_batch(session, cfg).await; let insert_cip36_invalid_batch = diff --git a/catalyst-gateway/bin/src/db/index/block/mod.rs b/catalyst-gateway/bin/src/db/index/block/mod.rs index 775b55d502..71969ef913 100644 --- a/catalyst-gateway/bin/src/db/index/block/mod.rs +++ b/catalyst-gateway/bin/src/db/index/block/mod.rs @@ -9,7 +9,7 @@ pub(crate) mod txo; use cardano_chain_follower::MultiEraBlock; use certs::CertInsertQuery; use cip36::Cip36InsertQuery; -use tracing::{debug, error}; +use tracing::error; use txi::TxiInsertQuery; use txo::TxoInsertQuery; @@ -75,7 +75,7 @@ pub(crate) async fn index_block(block: &MultiEraBlock) -> anyhow::Result<()> { match handle.await { Ok(join_res) => { match join_res { - Ok(res) => debug!(res=?res,"Query OK"), + Ok(_res) => {}, // debug!(res=?res,"Query OK") Err(error) => { // IF a query fails, assume everything else is broken. error!(error=%error,"Query Failed"); diff --git a/catalyst-gateway/bin/src/db/index/block/txi.rs b/catalyst-gateway/bin/src/db/index/block/txi.rs index 9dd4e0c8f9..f8ff02da8a 100644 --- a/catalyst-gateway/bin/src/db/index/block/txi.rs +++ b/catalyst-gateway/bin/src/db/index/block/txi.rs @@ -10,7 +10,7 @@ use crate::{ queries::{FallibleQueryTasks, PreparedQueries, PreparedQuery, SizedBatch}, session::CassandraSession, }, - settings::CassandraEnvVars, + settings::cassandra_db, }; /// Insert TXI Query and Parameters @@ -54,7 +54,7 @@ impl TxiInsertQuery { /// Prepare Batch of Insert TXI Index Data Queries pub(crate) async fn prepare_batch( - session: &Arc, cfg: &CassandraEnvVars, + session: &Arc, cfg: &cassandra_db::EnvVars, ) -> anyhow::Result { let txi_insert_queries = PreparedQueries::prepare_batch( session.clone(), diff --git a/catalyst-gateway/bin/src/db/index/block/txo/insert_txo.rs b/catalyst-gateway/bin/src/db/index/block/txo/insert_txo.rs index 94837b5093..d6c8b7702c 100644 --- a/catalyst-gateway/bin/src/db/index/block/txo/insert_txo.rs +++ b/catalyst-gateway/bin/src/db/index/block/txo/insert_txo.rs @@ -9,7 +9,7 @@ use tracing::error; use crate::{ db::index::queries::{PreparedQueries, SizedBatch}, - settings::CassandraEnvVars, + settings::cassandra_db, }; /// TXO by Stake Address Indexing query @@ -54,7 +54,7 @@ impl Params { /// Prepare Batch of Staked Insert TXO Asset Index Data Queries pub(super) async fn prepare_batch( - session: &Arc, cfg: &CassandraEnvVars, + session: &Arc, cfg: &cassandra_db::EnvVars, ) -> anyhow::Result { let txo_insert_queries = PreparedQueries::prepare_batch( session.clone(), diff --git a/catalyst-gateway/bin/src/db/index/block/txo/insert_txo_asset.rs b/catalyst-gateway/bin/src/db/index/block/txo/insert_txo_asset.rs index a42ea5b61e..ba7bbde7c4 100644 --- a/catalyst-gateway/bin/src/db/index/block/txo/insert_txo_asset.rs +++ b/catalyst-gateway/bin/src/db/index/block/txo/insert_txo_asset.rs @@ -7,7 +7,7 @@ use tracing::error; use crate::{ db::index::queries::{PreparedQueries, SizedBatch}, - settings::CassandraEnvVars, + settings::cassandra_db, }; /// TXO Asset by Stake Address Indexing Query @@ -56,7 +56,7 @@ impl Params { /// Prepare Batch of Staked Insert TXO Asset Index Data Queries pub(super) async fn prepare_batch( - session: &Arc, cfg: &CassandraEnvVars, + session: &Arc, cfg: &cassandra_db::EnvVars, ) -> anyhow::Result { let txo_insert_queries = PreparedQueries::prepare_batch( session.clone(), diff --git a/catalyst-gateway/bin/src/db/index/block/txo/insert_unstaked_txo.rs b/catalyst-gateway/bin/src/db/index/block/txo/insert_unstaked_txo.rs index 24957e92b3..7f68823af2 100644 --- a/catalyst-gateway/bin/src/db/index/block/txo/insert_unstaked_txo.rs +++ b/catalyst-gateway/bin/src/db/index/block/txo/insert_unstaked_txo.rs @@ -6,7 +6,7 @@ use tracing::error; use crate::{ db::index::queries::{PreparedQueries, SizedBatch}, - settings::CassandraEnvVars, + settings::cassandra_db, }; /// Unstaked TXO by Stake Address Indexing query @@ -47,7 +47,7 @@ impl Params { /// Prepare Batch of Staked Insert TXO Asset Index Data Queries pub(super) async fn prepare_batch( - session: &Arc, cfg: &CassandraEnvVars, + session: &Arc, cfg: &cassandra_db::EnvVars, ) -> anyhow::Result { let txo_insert_queries = PreparedQueries::prepare_batch( session.clone(), diff --git a/catalyst-gateway/bin/src/db/index/block/txo/insert_unstaked_txo_asset.rs b/catalyst-gateway/bin/src/db/index/block/txo/insert_unstaked_txo_asset.rs index 78605f92ae..250ca8ae1c 100644 --- a/catalyst-gateway/bin/src/db/index/block/txo/insert_unstaked_txo_asset.rs +++ b/catalyst-gateway/bin/src/db/index/block/txo/insert_unstaked_txo_asset.rs @@ -7,7 +7,7 @@ use tracing::error; use crate::{ db::index::queries::{PreparedQueries, SizedBatch}, - settings::CassandraEnvVars, + settings::cassandra_db, }; /// Unstaked TXO Asset by Stake Address Indexing Query @@ -56,7 +56,7 @@ impl Params { /// Prepare Batch of Staked Insert TXO Asset Index Data Queries pub(super) async fn prepare_batch( - session: &Arc, cfg: &CassandraEnvVars, + session: &Arc, cfg: &cassandra_db::EnvVars, ) -> anyhow::Result { let txo_insert_queries = PreparedQueries::prepare_batch( session.clone(), diff --git a/catalyst-gateway/bin/src/db/index/block/txo/mod.rs b/catalyst-gateway/bin/src/db/index/block/txo/mod.rs index 9b4029fc3b..66bd950822 100644 --- a/catalyst-gateway/bin/src/db/index/block/txo/mod.rs +++ b/catalyst-gateway/bin/src/db/index/block/txo/mod.rs @@ -18,7 +18,7 @@ use crate::{ session::CassandraSession, }, service::utilities::convert::from_saturating, - settings::CassandraEnvVars, + settings::cassandra_db, }; /// This is used to indicate that there is no stake address. @@ -52,7 +52,7 @@ impl TxoInsertQuery { /// Prepare Batch of Insert TXI Index Data Queries pub(crate) async fn prepare_batch( - session: &Arc, cfg: &CassandraEnvVars, + session: &Arc, cfg: &cassandra_db::EnvVars, ) -> anyhow::Result<(SizedBatch, SizedBatch, SizedBatch, SizedBatch)> { let txo_staked_insert_batch = insert_txo::Params::prepare_batch(session, cfg).await; let txo_unstaked_insert_batch = diff --git a/catalyst-gateway/bin/src/db/index/queries/mod.rs b/catalyst-gateway/bin/src/db/index/queries/mod.rs index 505918b58f..e34db0647e 100644 --- a/catalyst-gateway/bin/src/db/index/queries/mod.rs +++ b/catalyst-gateway/bin/src/db/index/queries/mod.rs @@ -20,7 +20,7 @@ use staked_ada::{ use super::block::{ certs::CertInsertQuery, cip36::Cip36InsertQuery, txi::TxiInsertQuery, txo::TxoInsertQuery, }; -use crate::settings::{CassandraEnvVars, CASSANDRA_MIN_BATCH_SIZE}; +use crate::settings::cassandra_db; /// Batches of different sizes, prepared and ready for use. pub(crate) type SizedBatch = SkipMap>; @@ -98,7 +98,9 @@ pub(crate) type FallibleQueryTasks = Vec, cfg: &CassandraEnvVars) -> anyhow::Result { + pub(crate) async fn new( + session: Arc, cfg: &cassandra_db::EnvVars, + ) -> anyhow::Result { // We initialize like this, so that all errors preparing querys get shown before aborting. let txi_insert_queries = TxiInsertQuery::prepare_batch(&session, cfg).await; let all_txo_queries = TxoInsertQuery::prepare_batch(&session, cfg).await; @@ -154,7 +156,7 @@ impl PreparedQueries { /// It is necessary to do this because batches are pre-sized, they can not be dynamic. /// Preparing the batches in advance is a very larger performance increase. pub(crate) async fn prepare_batch( - session: Arc, query: &str, cfg: &CassandraEnvVars, + session: Arc, query: &str, cfg: &cassandra_db::EnvVars, consistency: scylla::statement::Consistency, idempotent: bool, logged: bool, ) -> anyhow::Result { let sized_batches: SizedBatch = SkipMap::new(); @@ -163,7 +165,7 @@ impl PreparedQueries { // same. let prepared = Self::prepare(session, query, consistency, idempotent).await?; - for batch_size in CASSANDRA_MIN_BATCH_SIZE..=cfg.max_batch_size { + for batch_size in cassandra_db::MIN_BATCH_SIZE..=cfg.max_batch_size { let mut batch: Batch = Batch::new(if logged { scylla::batch::BatchType::Logged } else { @@ -171,7 +173,7 @@ impl PreparedQueries { }); batch.set_consistency(consistency); batch.set_is_idempotent(idempotent); - for _ in CASSANDRA_MIN_BATCH_SIZE..=batch_size { + for _ in cassandra_db::MIN_BATCH_SIZE..=batch_size { batch.append_statement(prepared.clone()); } @@ -208,7 +210,7 @@ impl PreparedQueries { /// This will divide the batch into optimal sized chunks and execute them until all /// values have been executed or the first error is encountered. pub(crate) async fn execute_batch( - &self, session: Arc, cfg: Arc, query: PreparedQuery, + &self, session: Arc, cfg: Arc, query: PreparedQuery, values: Vec, ) -> FallibleQueryResults { let query_map = match query { diff --git a/catalyst-gateway/bin/src/db/index/queries/staked_ada/update_txo_spent.rs b/catalyst-gateway/bin/src/db/index/queries/staked_ada/update_txo_spent.rs index 0fe0a60bcf..3c99869030 100644 --- a/catalyst-gateway/bin/src/db/index/queries/staked_ada/update_txo_spent.rs +++ b/catalyst-gateway/bin/src/db/index/queries/staked_ada/update_txo_spent.rs @@ -10,7 +10,7 @@ use crate::{ queries::{FallibleQueryResults, PreparedQueries, PreparedQuery, SizedBatch}, session::CassandraSession, }, - settings::CassandraEnvVars, + settings::cassandra_db, }; /// Update TXO spent query string. @@ -37,7 +37,7 @@ pub(crate) struct UpdateTxoSpentQuery; impl UpdateTxoSpentQuery { /// Prepare a batch of update TXO spent queries. pub(crate) async fn prepare_batch( - session: Arc, cfg: &CassandraEnvVars, + session: Arc, cfg: &cassandra_db::EnvVars, ) -> anyhow::Result { let update_txo_spent_queries = PreparedQueries::prepare_batch( session.clone(), diff --git a/catalyst-gateway/bin/src/db/index/schema/mod.rs b/catalyst-gateway/bin/src/db/index/schema/mod.rs index 4bfd4725db..89cba358da 100644 --- a/catalyst-gateway/bin/src/db/index/schema/mod.rs +++ b/catalyst-gateway/bin/src/db/index/schema/mod.rs @@ -8,7 +8,7 @@ use scylla::Session; use serde_json::json; use tracing::error; -use crate::settings::CassandraEnvVars; +use crate::settings::cassandra_db; /// Keyspace Create (Templated) const CREATE_NAMESPACE_CQL: &str = include_str!("./cql/namespace.cql"); @@ -67,7 +67,7 @@ const SCHEMAS: &[(&str, &str)] = &[ ]; /// Get the namespace for a particular db configuration -pub(crate) fn namespace(cfg: &CassandraEnvVars) -> String { +pub(crate) fn namespace(cfg: &cassandra_db::EnvVars) -> String { // Build and set the Keyspace to use. format!("{}_V{}", cfg.namespace.as_str(), SCHEMA_VERSION) } @@ -75,7 +75,7 @@ pub(crate) fn namespace(cfg: &CassandraEnvVars) -> String { /// Create the namespace we will use for this session /// Ok to run this if the namespace already exists. async fn create_namespace( - session: &mut Arc, cfg: &CassandraEnvVars, + session: &mut Arc, cfg: &cassandra_db::EnvVars, ) -> anyhow::Result<()> { let keyspace = namespace(cfg); @@ -102,7 +102,7 @@ async fn create_namespace( /// Create the Schema on the connected Cassandra DB pub(crate) async fn create_schema( - session: &mut Arc, cfg: &CassandraEnvVars, + session: &mut Arc, cfg: &cassandra_db::EnvVars, ) -> anyhow::Result<()> { create_namespace(session, cfg).await?; diff --git a/catalyst-gateway/bin/src/db/index/session.rs b/catalyst-gateway/bin/src/db/index/session.rs index 300bc9d92a..41c447634c 100644 --- a/catalyst-gateway/bin/src/db/index/session.rs +++ b/catalyst-gateway/bin/src/db/index/session.rs @@ -21,7 +21,7 @@ use super::{ }; use crate::{ db::index::queries, - settings::{CassandraEnvVars, Settings}, + settings::{cassandra_db, Settings}, }; /// Configuration Choices for compression @@ -55,7 +55,7 @@ pub(crate) struct CassandraSession { #[allow(dead_code)] persistent: bool, /// Configuration for this session. - cfg: Arc, + cfg: Arc, /// The actual session. session: Arc, /// All prepared queries we can use on this session. @@ -138,7 +138,7 @@ impl CassandraSession { /// /// The intention here is that we should be able to tune this based on configuration, /// but for now we don't so the `cfg` is not used yet. -fn make_execution_profile(_cfg: &CassandraEnvVars) -> ExecutionProfile { +fn make_execution_profile(_cfg: &cassandra_db::EnvVars) -> ExecutionProfile { ExecutionProfile::builder() .consistency(scylla::statement::Consistency::LocalQuorum) .serial_consistency(Some(scylla::statement::SerialConsistency::LocalSerial)) @@ -158,7 +158,7 @@ fn make_execution_profile(_cfg: &CassandraEnvVars) -> ExecutionProfile { } /// Construct a session based on the given configuration. -async fn make_session(cfg: &CassandraEnvVars) -> anyhow::Result> { +async fn make_session(cfg: &cassandra_db::EnvVars) -> anyhow::Result> { let cluster_urls: Vec<&str> = cfg.url.as_str().split(',').collect(); let mut sb = SessionBuilder::new() @@ -208,7 +208,7 @@ async fn make_session(cfg: &CassandraEnvVars) -> anyhow::Result> { /// Continuously try and init the DB, if it fails, backoff. /// /// Display reasonable logs to help diagnose DB connection issues. -async fn retry_init(cfg: CassandraEnvVars, persistent: bool) { +async fn retry_init(cfg: cassandra_db::EnvVars, persistent: bool) { let mut retry_delay = Duration::from_secs(0); let db_type = if persistent { "Persistent" } else { "Volatile" }; diff --git a/catalyst-gateway/bin/src/settings/cassandra_db.rs b/catalyst-gateway/bin/src/settings/cassandra_db.rs new file mode 100644 index 0000000000..6ce6e220a2 --- /dev/null +++ b/catalyst-gateway/bin/src/settings/cassandra_db.rs @@ -0,0 +1,121 @@ +//! Command line and environment variable settings for the service + +use tracing::info; + +use super::str_env_var::StringEnvVar; +use crate::db::{ + self, + index::session::{CompressionChoice, TlsChoice}, +}; + +/// Default Cassandra DB URL for the Persistent DB. +pub(super) const PERSISTENT_URL_DEFAULT: &str = "127.0.0.1:9042"; + +/// Default Cassandra DB URL for the Persistent DB. +pub(super) const PERSISTENT_NAMESPACE_DEFAULT: &str = "persistent"; + +/// Default Cassandra DB URL for the Persistent DB. +pub(super) const VOLATILE_URL_DEFAULT: &str = "127.0.0.1:9042"; + +/// Default Cassandra DB URL for the Persistent DB. +pub(super) const VOLATILE_NAMESPACE_DEFAULT: &str = "volatile"; + +/// Default maximum batch size. +/// This comes from: +/// +/// Scylla may support larger batches for better performance. +/// Larger batches will incur more memory overhead to store the prepared batches. +const MAX_BATCH_SIZE_DEFAULT: i64 = 30; + +/// Minimum possible batch size. +pub(crate) const MIN_BATCH_SIZE: i64 = 1; + +/// Maximum possible batch size. +const MAX_BATCH_SIZE: i64 = 256; + +/// Configuration for an individual cassandra cluster. +#[derive(Clone)] +pub(crate) struct EnvVars { + /// The Address/s of the DB. + pub(crate) url: StringEnvVar, + + /// The Namespace of Cassandra DB. + pub(crate) namespace: StringEnvVar, + + /// The `UserName` to use for the Cassandra DB. + pub(crate) username: Option, + + /// The Password to use for the Cassandra DB.. + pub(crate) password: Option, + + /// Use TLS for the connection? + pub(crate) tls: TlsChoice, + + /// Use TLS for the connection? + pub(crate) tls_cert: Option, + + /// Compression to use. + pub(crate) compression: CompressionChoice, + + /// Maximum Configured Batch size. + pub(crate) max_batch_size: i64, +} + +impl EnvVars { + /// Create a config for a cassandra cluster, identified by a default namespace. + pub(super) fn new(url: &str, namespace: &str) -> Self { + let name = namespace.to_uppercase(); + + // We can actually change the namespace, but can't change the name used for env vars. + let namespace = StringEnvVar::new(&format!("CASSANDRA_{name}_NAMESPACE"), namespace.into()); + + let tls = + StringEnvVar::new_as_enum(&format!("CASSANDRA_{name}_TLS"), TlsChoice::Disabled, false); + let compression = StringEnvVar::new_as_enum( + &format!("CASSANDRA_{name}_COMPRESSION"), + CompressionChoice::Lz4, + false, + ); + + Self { + url: StringEnvVar::new(&format!("CASSANDRA_{name}_URL"), url.into()), + namespace, + username: StringEnvVar::new_optional(&format!("CASSANDRA_{name}_USERNAME"), false), + password: StringEnvVar::new_optional(&format!("CASSANDRA_{name}_PASSWORD"), true), + tls, + tls_cert: StringEnvVar::new_optional(&format!("CASSANDRA_{name}_TLS_CERT"), false), + compression, + max_batch_size: StringEnvVar::new_as( + &format!("CASSANDRA_{name}_BATCH_SIZE"), + MAX_BATCH_SIZE_DEFAULT, + MIN_BATCH_SIZE, + MAX_BATCH_SIZE, + ), + } + } + + /// Log the configuration of this Cassandra DB + pub(crate) fn log(&self, persistent: bool) { + let db_type = if persistent { "Persistent" } else { "Volatile" }; + + let auth = match (&self.username, &self.password) { + (Some(u), Some(_)) => format!("Username: {} Password: REDACTED", u.as_str()), + _ => "No Authentication".to_string(), + }; + + let tls_cert = match &self.tls_cert { + None => "No TLS Certificate Defined".to_string(), + Some(cert) => cert.as_string(), + }; + + info!( + url = self.url.as_str(), + namespace = db::index::schema::namespace(self), + auth = auth, + tls = self.tls.to_string(), + cert = tls_cert, + compression = self.compression.to_string(), + "Cassandra {db_type} DB Configuration" + ); + } +} diff --git a/catalyst-gateway/bin/src/settings/chain_follower.rs b/catalyst-gateway/bin/src/settings/chain_follower.rs new file mode 100644 index 0000000000..9311f71cbc --- /dev/null +++ b/catalyst-gateway/bin/src/settings/chain_follower.rs @@ -0,0 +1,135 @@ +//! Command line and environment variable settings for the service + +use std::{cmp::min, time::Duration}; + +use cardano_chain_follower::{turbo_downloader::DlConfig, ChainSyncConfig, Network}; +use tracing::info; + +use super::str_env_var::StringEnvVar; + +/// Default chain to follow. +const DEFAULT_NETWORK: Network = Network::Mainnet; + +/// Default number of sync tasks (must be in the range 1 to 256 inclusive.) +const DEFAULT_SYNC_TASKS: u16 = 16; + +/// Maximum number of sync tasks (must be in the range 1 to 256 inclusive.) +const MAX_SYNC_TASKS: u16 = 256; + +/// Maximum number of DL Connections (must be in the range 1 to 256 inclusive.) +const MAX_DL_CONNECTIONS: usize = 256; + +/// Maximum DL Chunk Size in MB (must be in the range 1 to 256 inclusive.) +const MAX_DL_CHUNK_SIZE: usize = 256; + +/// Maximum DL Chunk Queue Ahead (must be in the range 1 to 256 inclusive.) +const MAX_DL_CHUNK_QUEUE_AHEAD: usize = 256; + +/// Maximum DL Chunk Connect/Data Timeout in seconds (0 = Disabled). +const MAX_DL_TIMEOUT: u64 = 300; + +/// Number of bytes in a Megabyte +const ONE_MEGABYTE: usize = 1_048_576; + +/// Configuration for the chain follower. +#[derive(Clone)] +pub(crate) struct EnvVars { + /// The Blockchain we sync from. + pub(crate) chain: Network, + + /// The maximum number of sync tasks. + pub(crate) sync_tasks: u16, + + /// The Mithril Downloader Configuration. + pub(crate) dl_config: DlConfig, +} + +impl EnvVars { + /// Create a config for a cassandra cluster, identified by a default namespace. + pub(super) fn new() -> Self { + let chain = StringEnvVar::new_as_enum("CHAIN_NETWORK", DEFAULT_NETWORK, false); + let sync_tasks: u16 = StringEnvVar::new_as( + "CHAIN_FOLLOWER_SYNC_TASKS", + DEFAULT_SYNC_TASKS, + 1, + MAX_SYNC_TASKS, + ); + + let cfg = ChainSyncConfig::default_for(chain); + let mut dl_config = cfg.mithril_cfg.dl_config.clone().unwrap_or_default(); + + let workers = StringEnvVar::new_as( + "CHAIN_FOLLOWER_DL_CONNECTIONS", + dl_config.workers, + 1, + MAX_DL_CONNECTIONS, + ); + dl_config = dl_config.with_workers(workers); + + let default_dl_chunk_size = min(1, dl_config.chunk_size / ONE_MEGABYTE); + + let chunk_size = StringEnvVar::new_as( + "CHAIN_FOLLOWER_DL_CHUNK_SIZE", + default_dl_chunk_size, + 1, + MAX_DL_CHUNK_SIZE, + ) * ONE_MEGABYTE; + dl_config = dl_config.with_chunk_size(chunk_size); + + let queue_ahead = StringEnvVar::new_as( + "CHAIN_FOLLOWER_DL_QUEUE_AHEAD", + dl_config.queue_ahead, + 1, + MAX_DL_CHUNK_QUEUE_AHEAD, + ); + dl_config = dl_config.with_queue_ahead(queue_ahead); + + let default_dl_connect_timeout = match dl_config.connection_timeout { + Some(timeout) => timeout.as_secs(), + None => 0, + }; + let dl_connect_timeout = StringEnvVar::new_as( + "CHAIN_FOLLOWER_DL_CONNECT_TIMEOUT", + default_dl_connect_timeout, + 0, + MAX_DL_TIMEOUT, + ); + if dl_connect_timeout == 0 { + dl_config.connection_timeout = None; + } else { + dl_config = dl_config.with_connection_timeout(Duration::from_secs(dl_connect_timeout)); + } + + let default_dl_data_timeout = match dl_config.data_read_timeout { + Some(timeout) => timeout.as_secs(), + None => 0, + }; + let dl_data_timeout = StringEnvVar::new_as( + "CHAIN_FOLLOWER_DL_DATA_TIMEOUT", + default_dl_data_timeout, + 0, + MAX_DL_TIMEOUT, + ); + if dl_connect_timeout == 0 { + dl_config.data_read_timeout = None; + } else { + dl_config = dl_config.with_data_read_timeout(Duration::from_secs(dl_data_timeout)); + } + + Self { + chain, + sync_tasks, + dl_config, + } + } + + /// Log the configuration of this Chain Follower + pub(crate) fn log(&self) { + info!( + chain = self.chain.to_string(), + sync_tasks = self.sync_tasks, + dl_config = ?self.dl_config, + "Chain Follower Configuration" + ); + } +} diff --git a/catalyst-gateway/bin/src/settings.rs b/catalyst-gateway/bin/src/settings/mod.rs similarity index 52% rename from catalyst-gateway/bin/src/settings.rs rename to catalyst-gateway/bin/src/settings/mod.rs index b6d2d99b8f..fa96587296 100644 --- a/catalyst-gateway/bin/src/settings.rs +++ b/catalyst-gateway/bin/src/settings/mod.rs @@ -1,7 +1,5 @@ //! Command line and environment variable settings for the service use std::{ - env::{self, VarError}, - fmt::{self, Display}, net::{IpAddr, Ipv4Addr, SocketAddr}, path::PathBuf, str::FromStr, @@ -10,25 +8,24 @@ use std::{ }; use anyhow::anyhow; -use cardano_chain_follower::Network; use clap::Args; use cryptoxide::{blake2b::Blake2b, mac::Mac}; use dotenvy::dotenv; use duration_string::DurationString; -use strum::VariantNames; -use tracing::{error, info}; +use str_env_var::StringEnvVar; +use tracing::error; use url::Url; use crate::{ build_info::{log_build_info, BUILD_INFO}, - db::{ - self, - index::session::{CompressionChoice, TlsChoice}, - }, logger::{self, LogLevel, LOG_LEVEL_DEFAULT}, service::utilities::net::{get_public_ipv4, get_public_ipv6}, }; +pub(crate) mod cassandra_db; +pub(crate) mod chain_follower; +mod str_env_var; + /// Default address to start service on. const ADDRESS_DEFAULT: &str = "0.0.0.0:3030"; @@ -58,37 +55,6 @@ const CHECK_CONFIG_TICK_DEFAULT: &str = "5s"; const EVENT_DB_URL_DEFAULT: &str = "postgresql://postgres:postgres@localhost/catalyst_events?sslmode=disable"; -/// Default Cassandra DB URL for the Persistent DB. -const CASSANDRA_PERSISTENT_DB_URL_DEFAULT: &str = "127.0.0.1:9042"; - -/// Default Cassandra DB URL for the Persistent DB. -const CASSANDRA_PERSISTENT_DB_NAMESPACE_DEFAULT: &str = "persistent"; - -/// Default Cassandra DB URL for the Persistent DB. -const CASSANDRA_VOLATILE_DB_URL_DEFAULT: &str = "127.0.0.1:9042"; - -/// Default Cassandra DB URL for the Persistent DB. -const CASSANDRA_VOLATILE_DB_NAMESPACE_DEFAULT: &str = "volatile"; - -/// Default maximum batch size. -/// This comes from: -/// -/// Scylla may support larger batches for better performance. -/// Larger batches will incur more memory overhead to store the prepared batches. -const CASSANDRA_MAX_BATCH_SIZE_DEFAULT: i64 = 30; - -/// Minimum possible batch size. -pub(crate) const CASSANDRA_MIN_BATCH_SIZE: i64 = 1; - -/// Maximum possible batch size. -const CASSANDRA_MAX_BATCH_SIZE: i64 = 256; - -/// Default chain to follow. -const CHAIN_FOLLOWER_DEFAULT: Network = Network::Mainnet; - -/// Default number of sync tasks (must be in the range 1 to 255 inclusive.) -const CHAIN_FOLLOWER_SYNC_TASKS_DEFAULT: u16 = 16; - /// Hash the Public IPv4 and IPv6 address of the machine, and convert to a 128 bit V4 /// UUID. fn calculate_service_uuid() -> String { @@ -146,389 +112,6 @@ pub(crate) struct DocsSettings { pub(crate) server_name: Option, } -/// An environment variable read as a string. -#[derive(Clone)] -pub(crate) struct StringEnvVar { - /// Value of the env var. - value: String, - /// Whether the env var is displayed redacted or not. - redacted: bool, -} - -/// Ergonomic way of specifying if a env var needs to be redacted or not. -enum StringEnvVarParams { - /// The env var is plain and should not be redacted. - Plain(String, Option), - /// The env var is redacted and should be redacted. - Redacted(String, Option), -} - -impl From<&str> for StringEnvVarParams { - fn from(s: &str) -> Self { - StringEnvVarParams::Plain(String::from(s), None) - } -} - -impl From for StringEnvVarParams { - fn from(s: String) -> Self { - StringEnvVarParams::Plain(s, None) - } -} - -impl From<(&str, bool)> for StringEnvVarParams { - fn from((s, r): (&str, bool)) -> Self { - if r { - StringEnvVarParams::Redacted(String::from(s), None) - } else { - StringEnvVarParams::Plain(String::from(s), None) - } - } -} - -impl From<(&str, bool, &str)> for StringEnvVarParams { - fn from((s, r, c): (&str, bool, &str)) -> Self { - if r { - StringEnvVarParams::Redacted(String::from(s), Some(String::from(c))) - } else { - StringEnvVarParams::Plain(String::from(s), Some(String::from(c))) - } - } -} - -/// An environment variable read as a string. -impl StringEnvVar { - /// Read the env var from the environment. - /// - /// If not defined, read from a .env file. - /// If still not defined, use the default. - /// - /// # Arguments - /// - /// * `var_name`: &str - the name of the env var - /// * `default_value`: &str - the default value - /// - /// # Returns - /// - /// * Self - the value - /// - /// # Example - /// - /// ```rust,no_run - /// #use cat_data_service::settings::StringEnvVar; - /// - /// let var = StringEnvVar::new("MY_VAR", "default"); - /// assert_eq!(var.as_str(), "default"); - /// ``` - fn new(var_name: &str, param: StringEnvVarParams) -> Self { - let (default_value, redacted, choices) = match param { - StringEnvVarParams::Plain(s, c) => (s, false, c), - StringEnvVarParams::Redacted(s, c) => (s, true, c), - }; - - match env::var(var_name) { - Ok(value) => { - if redacted { - info!(env = var_name, value = "Redacted", "Env Var Defined"); - } else { - info!(env = var_name, value = value, "Env Var Defined"); - } - Self { value, redacted } - }, - Err(VarError::NotPresent) => { - if let Some(choices) = choices { - if redacted { - info!( - env = var_name, - default = "Default Redacted", - choices = choices, - "Env Var Defaulted" - ); - } else { - info!( - env = var_name, - default = default_value, - choices = choices, - "Env Var Defaulted" - ); - }; - } else if redacted { - info!( - env = var_name, - default = "Default Redacted", - "Env Var Defined" - ); - } else { - info!(env = var_name, default = default_value, "Env Var Defaulted"); - } - - Self { - value: default_value, - redacted, - } - }, - Err(error) => { - error!( - env = var_name, - default = default_value, - error = ?error, - "Env Var Error" - ); - Self { - value: default_value, - redacted, - } - }, - } - } - - /// New Env Var that is optional. - fn new_optional(var_name: &str, redacted: bool) -> Option { - match env::var(var_name) { - Ok(value) => { - if redacted { - info!(env = var_name, value = "Redacted", "Env Var Defined"); - } else { - info!(env = var_name, value = value, "Env Var Defined"); - } - Some(Self { value, redacted }) - }, - Err(VarError::NotPresent) => { - info!(env = var_name, "Env Var Not Set"); - None - }, - Err(error) => { - error!( - env = var_name, - error = ?error, - "Env Var Error" - ); - None - }, - } - } - - /// Convert an Envvar into the required Enum Type. - fn new_as_enum( - var_name: &str, default: T, redacted: bool, - ) -> T - where ::Err: std::fmt::Display { - let mut choices = String::new(); - for name in T::VARIANTS { - if choices.is_empty() { - choices.push('['); - } else { - choices.push(','); - } - choices.push_str(name); - } - choices.push(']'); - - let choice = StringEnvVar::new( - var_name, - (default.to_string().as_str(), redacted, choices.as_str()).into(), - ); - - let value = match T::from_str(choice.as_str()) { - Ok(var) => var, - Err(error) => { - error!(error=%error, default=%default, choices=choices, choice=%choice, "Invalid choice. Using Default."); - default - }, - }; - - value - } - - /// Convert an Envvar into an integer in the bounded range. - fn new_as_i64(var_name: &str, default: i64, min: i64, max: i64) -> i64 -where { - let choices = format!("A value in the range {min} to {max} inclusive"); - - let raw_value = StringEnvVar::new( - var_name, - (default.to_string().as_str(), false, choices.as_str()).into(), - ) - .as_string(); - - match raw_value.parse::() { - Ok(value) => { - if value < min { - error!("{var_name} out of range. Range = {min} to {max} inclusive. Clamped to {min}"); - min - } else if value > max { - error!("{var_name} out of range. Range = {min} to {max} inclusive. Clamped to {max}"); - max - } else { - value - } - }, - Err(error) => { - error!(error=%error, default=default, "{var_name} not an integer. Range = {min} to {max} inclusive. Defaulted"); - default - }, - } - } - - /// Get the read env var as a str. - /// - /// # Returns - /// - /// * &str - the value - pub(crate) fn as_str(&self) -> &str { - &self.value - } - - /// Get the read env var as a str. - /// - /// # Returns - /// - /// * &str - the value - pub(crate) fn as_string(&self) -> String { - self.value.clone() - } -} - -impl fmt::Display for StringEnvVar { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - if self.redacted { - return write!(f, "REDACTED"); - } - write!(f, "{}", self.value) - } -} - -impl fmt::Debug for StringEnvVar { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - if self.redacted { - return write!(f, "REDACTED"); - } - write!(f, "env: {}", self.value) - } -} - -/// Configuration for an individual cassandra cluster. -#[derive(Clone)] -pub(crate) struct CassandraEnvVars { - /// The Address/s of the DB. - pub(crate) url: StringEnvVar, - - /// The Namespace of Cassandra DB. - pub(crate) namespace: StringEnvVar, - - /// The `UserName` to use for the Cassandra DB. - pub(crate) username: Option, - - /// The Password to use for the Cassandra DB.. - pub(crate) password: Option, - - /// Use TLS for the connection? - pub(crate) tls: TlsChoice, - - /// Use TLS for the connection? - pub(crate) tls_cert: Option, - - /// Compression to use. - pub(crate) compression: CompressionChoice, - - /// Maximum Configured Batch size. - pub(crate) max_batch_size: i64, -} - -impl CassandraEnvVars { - /// Create a config for a cassandra cluster, identified by a default namespace. - fn new(url: &str, namespace: &str) -> Self { - let name = namespace.to_uppercase(); - - // We can actually change the namespace, but can't change the name used for env vars. - let namespace = StringEnvVar::new(&format!("CASSANDRA_{name}_NAMESPACE"), namespace.into()); - - let tls = - StringEnvVar::new_as_enum(&format!("CASSANDRA_{name}_TLS"), TlsChoice::Disabled, false); - let compression = StringEnvVar::new_as_enum( - &format!("CASSANDRA_{name}_COMPRESSION"), - CompressionChoice::Lz4, - false, - ); - - Self { - url: StringEnvVar::new(&format!("CASSANDRA_{name}_URL"), url.into()), - namespace, - username: StringEnvVar::new_optional(&format!("CASSANDRA_{name}_USERNAME"), false), - password: StringEnvVar::new_optional(&format!("CASSANDRA_{name}_PASSWORD"), true), - tls, - tls_cert: StringEnvVar::new_optional(&format!("CASSANDRA_{name}_TLS_CERT"), false), - compression, - max_batch_size: StringEnvVar::new_as_i64( - &format!("CASSANDRA_{name}_BATCH_SIZE"), - CASSANDRA_MAX_BATCH_SIZE_DEFAULT, - CASSANDRA_MIN_BATCH_SIZE, - CASSANDRA_MAX_BATCH_SIZE, - ), - } - } - - /// Log the configuration of this Cassandra DB - pub(crate) fn log(&self, persistent: bool) { - let db_type = if persistent { "Persistent" } else { "Volatile" }; - - let auth = match (&self.username, &self.password) { - (Some(u), Some(_)) => format!("Username: {} Password: REDACTED", u.as_str()), - _ => "No Authentication".to_string(), - }; - - let tls_cert = match &self.tls_cert { - None => "No TLS Certificate Defined".to_string(), - Some(cert) => cert.as_string(), - }; - - info!( - url = self.url.as_str(), - namespace = db::index::schema::namespace(self), - auth = auth, - tls = self.tls.to_string(), - cert = tls_cert, - compression = self.compression.to_string(), - "Cassandra {db_type} DB Configuration" - ); - } -} - -/// Configuration for the chain follower. -#[derive(Clone)] -pub(crate) struct ChainFollowerEnvVars { - /// The Blockchain we sync from. - pub(crate) chain: Network, - - /// The maximum number of sync tasks. - pub(crate) sync_tasks: u16, -} - -impl ChainFollowerEnvVars { - /// Create a config for a cassandra cluster, identified by a default namespace. - fn new() -> Self { - let chain = StringEnvVar::new_as_enum("CHAIN_NETWORK", CHAIN_FOLLOWER_DEFAULT, false); - let sync_tasks: u16 = StringEnvVar::new_as_i64( - "CHAIN_FOLLOWER_SYNC_TASKS", - CHAIN_FOLLOWER_SYNC_TASKS_DEFAULT.into(), - 1, - u16::MAX.into(), - ) - .try_into() - .unwrap_or(CHAIN_FOLLOWER_SYNC_TASKS_DEFAULT); - - Self { chain, sync_tasks } - } - - /// Log the configuration of this Chain Follower - pub(crate) fn log(&self) { - info!( - chain = self.chain.to_string(), - sync_tasks = self.sync_tasks, - "Chain Follower Configuration" - ); - } -} - /// All the `EnvVars` used by the service. struct EnvVars { /// The github repo owner @@ -562,13 +145,13 @@ struct EnvVars { event_db_password: Option, /// The Config of the Persistent Cassandra DB. - cassandra_persistent_db: CassandraEnvVars, + cassandra_persistent_db: cassandra_db::EnvVars, /// The Config of the Volatile Cassandra DB. - cassandra_volatile_db: CassandraEnvVars, + cassandra_volatile_db: cassandra_db::EnvVars, /// The Chain Follower configuration - chain_follower: ChainFollowerEnvVars, + chain_follower: chain_follower::EnvVars, /// Tick every N seconds until config exists in db #[allow(unused)] @@ -613,15 +196,15 @@ static ENV_VARS: LazyLock = LazyLock::new(|| { event_db_url: StringEnvVar::new("EVENT_DB_URL", EVENT_DB_URL_DEFAULT.into()), event_db_username: StringEnvVar::new_optional("EVENT_DB_USERNAME", false), event_db_password: StringEnvVar::new_optional("EVENT_DB_PASSWORD", true), - cassandra_persistent_db: CassandraEnvVars::new( - CASSANDRA_PERSISTENT_DB_URL_DEFAULT, - CASSANDRA_PERSISTENT_DB_NAMESPACE_DEFAULT, + cassandra_persistent_db: cassandra_db::EnvVars::new( + cassandra_db::PERSISTENT_URL_DEFAULT, + cassandra_db::PERSISTENT_NAMESPACE_DEFAULT, ), - cassandra_volatile_db: CassandraEnvVars::new( - CASSANDRA_VOLATILE_DB_URL_DEFAULT, - CASSANDRA_VOLATILE_DB_NAMESPACE_DEFAULT, + cassandra_volatile_db: cassandra_db::EnvVars::new( + cassandra_db::VOLATILE_URL_DEFAULT, + cassandra_db::VOLATILE_NAMESPACE_DEFAULT, ), - chain_follower: ChainFollowerEnvVars::new(), + chain_follower: chain_follower::EnvVars::new(), check_config_tick, } }); @@ -683,7 +266,7 @@ impl Settings { } /// Get the Persistent & Volatile Cassandra DB config for this service. - pub(crate) fn cassandra_db_cfg() -> (CassandraEnvVars, CassandraEnvVars) { + pub(crate) fn cassandra_db_cfg() -> (cassandra_db::EnvVars, cassandra_db::EnvVars) { ( ENV_VARS.cassandra_persistent_db.clone(), ENV_VARS.cassandra_volatile_db.clone(), @@ -691,7 +274,7 @@ impl Settings { } /// Get the configuration of the chain follower. - pub(crate) fn follower_cfg() -> ChainFollowerEnvVars { + pub(crate) fn follower_cfg() -> chain_follower::EnvVars { ENV_VARS.chain_follower.clone() } diff --git a/catalyst-gateway/bin/src/settings/str_env_var.rs b/catalyst-gateway/bin/src/settings/str_env_var.rs new file mode 100644 index 0000000000..18e8a6414b --- /dev/null +++ b/catalyst-gateway/bin/src/settings/str_env_var.rs @@ -0,0 +1,239 @@ +//! Processing for String Environment Variables +use std::{ + env::{self, VarError}, + fmt::{self, Display}, + str::FromStr, +}; + +use strum::VariantNames; +use tracing::{error, info}; + +/// An environment variable read as a string. +#[derive(Clone)] +pub(crate) struct StringEnvVar { + /// Value of the env var. + value: String, + /// Whether the env var is displayed redacted or not. + redacted: bool, +} + +/// Ergonomic way of specifying if a env var needs to be redacted or not. +pub(super) enum StringEnvVarParams { + /// The env var is plain and should not be redacted. + Plain(String, Option), + /// The env var is redacted and should be redacted. + Redacted(String, Option), +} + +impl From<&str> for StringEnvVarParams { + fn from(s: &str) -> Self { + StringEnvVarParams::Plain(String::from(s), None) + } +} + +impl From for StringEnvVarParams { + fn from(s: String) -> Self { + StringEnvVarParams::Plain(s, None) + } +} + +impl From<(&str, bool)> for StringEnvVarParams { + fn from((s, r): (&str, bool)) -> Self { + if r { + StringEnvVarParams::Redacted(String::from(s), None) + } else { + StringEnvVarParams::Plain(String::from(s), None) + } + } +} + +impl From<(&str, bool, &str)> for StringEnvVarParams { + fn from((s, r, c): (&str, bool, &str)) -> Self { + if r { + StringEnvVarParams::Redacted(String::from(s), Some(String::from(c))) + } else { + StringEnvVarParams::Plain(String::from(s), Some(String::from(c))) + } + } +} + +/// An environment variable read as a string. +impl StringEnvVar { + /// Read the env var from the environment. + /// + /// If not defined, read from a .env file. + /// If still not defined, use the default. + /// + /// # Arguments + /// + /// * `var_name`: &str - the name of the env var + /// * `default_value`: &str - the default value + /// + /// # Returns + /// + /// * Self - the value + /// + /// # Example + /// + /// ```rust,no_run + /// #use cat_data_service::settings::StringEnvVar; + /// + /// let var = StringEnvVar::new("MY_VAR", "default"); + /// assert_eq!(var.as_str(), "default"); + /// ``` + pub(super) fn new(var_name: &str, param: StringEnvVarParams) -> Self { + let (default_value, redacted, choices) = match param { + StringEnvVarParams::Plain(s, c) => (s, false, c), + StringEnvVarParams::Redacted(s, c) => (s, true, c), + }; + + match env::var(var_name) { + Ok(value) => { + let value = Self { value, redacted }; + info!(env=var_name, value=%value, "Env Var Defined"); + value + }, + Err(err) => { + let value = Self { + value: default_value, + redacted, + }; + if err == VarError::NotPresent { + if let Some(choices) = choices { + info!(env=var_name, default=%value, choices=choices, "Env Var Defaulted"); + } else { + info!(env=var_name, default=%value, "Env Var Defaulted"); + } + } else if let Some(choices) = choices { + info!(env=var_name, default=%value, choices=choices, error=?err, + "Env Var Error"); + } else { + info!(env=var_name, default=%value, error=?err, "Env Var Error"); + } + + value + }, + } + } + + /// New Env Var that is optional. + pub(super) fn new_optional(var_name: &str, redacted: bool) -> Option { + match env::var(var_name) { + Ok(value) => { + let value = Self { value, redacted }; + info!(env = var_name, value = %value, "Env Var Defined"); + Some(value) + }, + Err(VarError::NotPresent) => { + info!(env = var_name, "Env Var Not Set"); + None + }, + Err(error) => { + error!(env = var_name, error = ?error, "Env Var Error"); + None + }, + } + } + + /// Convert an Envvar into the required Enum Type. + pub(super) fn new_as_enum( + var_name: &str, default: T, redacted: bool, + ) -> T + where ::Err: std::fmt::Display { + let mut choices = String::new(); + for name in T::VARIANTS { + if choices.is_empty() { + choices.push('['); + } else { + choices.push(','); + } + choices.push_str(name); + } + choices.push(']'); + + let choice = StringEnvVar::new( + var_name, + (default.to_string().as_str(), redacted, choices.as_str()).into(), + ); + + let value = match T::from_str(choice.as_str()) { + Ok(var) => var, + Err(error) => { + error!(error=%error, default=%default, choices=choices, choice=%choice, + "Invalid choice. Using Default."); + default + }, + }; + + value + } + + /// Convert an Envvar into an integer in the bounded range. + pub(super) fn new_as(var_name: &str, default: T, min: T, max: T) -> T + where + T: FromStr + Display + PartialOrd + tracing::Value, + ::Err: std::fmt::Display, + { + let choices = format!("A value in the range {min} to {max} inclusive"); + + let raw_value = StringEnvVar::new( + var_name, + (default.to_string().as_str(), false, choices.as_str()).into(), + ) + .as_string(); + + match raw_value.parse::() { + Ok(value) => { + if value < min { + error!("{var_name} out of range. Range = {min} to {max} inclusive. Clamped to {min}"); + min + } else if value > max { + error!("{var_name} out of range. Range = {min} to {max} inclusive. Clamped to {max}"); + max + } else { + value + } + }, + Err(error) => { + error!(error=%error, default=default, "{var_name} not an integer. Range = {min} to {max} inclusive. Defaulted"); + default + }, + } + } + + /// Get the read env var as a str. + /// + /// # Returns + /// + /// * &str - the value + pub(crate) fn as_str(&self) -> &str { + &self.value + } + + /// Get the read env var as a str. + /// + /// # Returns + /// + /// * &str - the value + pub(crate) fn as_string(&self) -> String { + self.value.clone() + } +} + +impl fmt::Display for StringEnvVar { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + if self.redacted { + return write!(f, "REDACTED"); + } + write!(f, "{}", self.value) + } +} + +impl fmt::Debug for StringEnvVar { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + if self.redacted { + return write!(f, "REDACTED"); + } + write!(f, "env: {}", self.value) + } +} diff --git a/catalyst-gateway/event-db/Earthfile b/catalyst-gateway/event-db/Earthfile index 823d60a0c8..79c7917b10 100644 --- a/catalyst-gateway/event-db/Earthfile +++ b/catalyst-gateway/event-db/Earthfile @@ -3,7 +3,7 @@ # the database and its associated software. VERSION 0.8 -IMPORT github.com/input-output-hk/catalyst-ci/earthly/postgresql:v3.2.03 AS postgresql-ci +IMPORT github.com/input-output-hk/catalyst-ci/earthly/postgresql:v3.2.07 AS postgresql-ci # cspell: words diff --git a/catalyst-gateway/tests/Earthfile b/catalyst-gateway/tests/Earthfile index 41d344b024..d3e0b7df81 100644 --- a/catalyst-gateway/tests/Earthfile +++ b/catalyst-gateway/tests/Earthfile @@ -1,5 +1,5 @@ VERSION 0.8 -IMPORT github.com/input-output-hk/catalyst-ci/earthly/spectral:v3.2.03 AS spectral-ci +IMPORT github.com/input-output-hk/catalyst-ci/earthly/spectral:v3.2.07 AS spectral-ci # test-lint-openapi - OpenAPI linting from an artifact # testing whether the OpenAPI generated during build stage follows good practice. diff --git a/catalyst-gateway/tests/api_tests/Earthfile b/catalyst-gateway/tests/api_tests/Earthfile index 0aac1a2e78..3ebea8e0f8 100644 --- a/catalyst-gateway/tests/api_tests/Earthfile +++ b/catalyst-gateway/tests/api_tests/Earthfile @@ -1,6 +1,6 @@ VERSION 0.8 -IMPORT github.com/input-output-hk/catalyst-ci/earthly/python:v3.2.03 AS python-ci +IMPORT github.com/input-output-hk/catalyst-ci/earthly/python:v3.2.07 AS python-ci builder: FROM python-ci+python-base diff --git a/catalyst-gateway/tests/schemathesis_tests/Earthfile b/catalyst-gateway/tests/schemathesis_tests/Earthfile index ded02e5a58..a10bd3e110 100644 --- a/catalyst-gateway/tests/schemathesis_tests/Earthfile +++ b/catalyst-gateway/tests/schemathesis_tests/Earthfile @@ -1,7 +1,7 @@ VERSION 0.8 package-schemathesis: - FROM python:3.12-alpine3.19 + FROM python:3.12-alpine3.20 # TODO: https://github.com/input-output-hk/catalyst-voices/issues/465 RUN apk add --no-cache gcc musl-dev RUN python -m pip install schemathesis==3.27.1 @@ -29,7 +29,7 @@ package-schemathesis: # test-fuzzer-api - Fuzzy test cat-gateway using openapi specs. # Disabled in CI, to enable it rename to `test-fuzzer-api`. fuzzer-api: - FROM earthly/dind:alpine-3.19 + FROM earthly/dind:alpine-alpine-3.20-docker-26.1.5-r0 RUN apk update && apk add iptables-legacy # workaround for https://github.com/earthly/earthly/issues/3784 RUN apk add yq zstd COPY schemathesis-docker-compose.yml . diff --git a/catalyst_voices/Earthfile b/catalyst_voices/Earthfile index ff6b0d1c25..abbf261917 100644 --- a/catalyst_voices/Earthfile +++ b/catalyst_voices/Earthfile @@ -1,7 +1,7 @@ VERSION 0.8 IMPORT ../catalyst-gateway AS catalyst-gateway -IMPORT github.com/input-output-hk/catalyst-ci/earthly/flutter:v3.2.06 AS flutter-ci +IMPORT github.com/input-output-hk/catalyst-ci/earthly/flutter:v3.2.07 AS flutter-ci # Copy all the necessary files and running bootstrap builder: @@ -77,7 +77,7 @@ build-web: END package: - FROM nginx:alpine3.18 + FROM nginx:alpine3.20-slim ARG tag='latest' COPY +build-web/web /app diff --git a/catalyst_voices/uikit_example/Earthfile b/catalyst_voices/uikit_example/Earthfile index c5e6381e6d..dd7eec8dda 100644 --- a/catalyst_voices/uikit_example/Earthfile +++ b/catalyst_voices/uikit_example/Earthfile @@ -1,7 +1,7 @@ VERSION 0.8 IMPORT ../ AS catalyst-voices -IMPORT github.com/input-output-hk/catalyst-ci/earthly/flutter:v3.2.06 AS flutter-ci +IMPORT github.com/input-output-hk/catalyst-ci/earthly/flutter:v3.2.07 AS flutter-ci # local-build-web - build web version of UIKit example. # Prefixed by "local" to make sure it's not auto triggered, the target was diff --git a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/Earthfile b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/Earthfile index 37f8843afa..68ae4dc003 100644 --- a/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/Earthfile +++ b/catalyst_voices_packages/catalyst_cardano/catalyst_cardano/wallet-automation/Earthfile @@ -1,5 +1,5 @@ VERSION 0.8 -IMPORT github.com/input-output-hk/catalyst-ci/earthly/flutter:v3.2.06 AS flutter-ci +IMPORT github.com/input-output-hk/catalyst-ci/earthly/flutter:v3.2.07 AS flutter-ci deps: FROM mcr.microsoft.com/playwright:v1.45.2-jammy @@ -45,13 +45,13 @@ build-web: SAVE ARTIFACT web package-app: - FROM nginx:alpine3.18 + FROM nginx:alpine3.20-slim ARG tag='latest' COPY +build-web/web /usr/share/nginx/html/ SAVE IMAGE test-app:$tag nightly-test: - FROM earthly/dind:alpine-3.19 + FROM earthly/alpine-3.20-docker-26.1.5-r0 COPY compose.yml . WITH DOCKER \ --compose compose.yml \ diff --git a/docs/Earthfile b/docs/Earthfile index 79eb3c40d2..741d0f4867 100644 --- a/docs/Earthfile +++ b/docs/Earthfile @@ -1,6 +1,6 @@ VERSION 0.8 -IMPORT github.com/input-output-hk/catalyst-ci/earthly/docs:v3.2.03 AS docs-ci +IMPORT github.com/input-output-hk/catalyst-ci/earthly/docs:v3.2.07 AS docs-ci IMPORT .. AS repo IMPORT ../catalyst-gateway AS catalyst-gateway diff --git a/utilities/local-cluster/Earthfile b/utilities/local-cluster/Earthfile index d046ba9a5d..85a5885dde 100644 --- a/utilities/local-cluster/Earthfile +++ b/utilities/local-cluster/Earthfile @@ -30,7 +30,7 @@ cluster-test: # kubernetes-base : base container with tooling set up for local access kubernetes-base: - FROM alpine:3.19 + FROM alpine:3.20.3 # Install kubectl RUN apk update && \ From e75eab9bb7f690ac80d3b9f44a923b9b96534e0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damian=20Moli=C5=84ski?= <47773413+damian-molinski@users.noreply.github.com> Date: Wed, 25 Sep 2024 11:00:27 +0200 Subject: [PATCH 17/23] fix: task picture scaling (#882) --- .../pages/account/creation/task_picture.dart | 37 +++++++++++++++---- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/catalyst_voices/lib/pages/account/creation/task_picture.dart b/catalyst_voices/lib/pages/account/creation/task_picture.dart index a6927de0c0..04d9cb038d 100644 --- a/catalyst_voices/lib/pages/account/creation/task_picture.dart +++ b/catalyst_voices/lib/pages/account/creation/task_picture.dart @@ -46,21 +46,45 @@ class TaskKeychainPicture extends StatelessWidget { } class TaskPicture extends StatelessWidget { + final Size preferredSize; final Widget child; + // Original size is 125 but we want to have it scale with overall picture + static const _childSizeFactor = 125 / 354; + const TaskPicture({ super.key, + // Original asset sizes. "Magic number" from figma. + this.preferredSize = const Size(354, 340), required this.child, }); @override Widget build(BuildContext context) { - return Stack( - alignment: Alignment.topRight, - children: [ - CatalystImage.asset(VoicesAssets.images.taskIllustration.path), - child, - ], + return LayoutBuilder( + builder: (context, constraints) { + final size = constraints + .constrainSizeAndAttemptToPreserveAspectRatio(preferredSize); + final childSize = Size.square(size.width * _childSizeFactor); + + return SizedBox.fromSize( + size: size, + child: Stack( + alignment: Alignment.topRight, + children: [ + CatalystImage.asset( + VoicesAssets.images.taskIllustration.path, + width: size.width, + height: size.height, + ), + ConstrainedBox( + constraints: BoxConstraints.tight(childSize), + child: child, + ), + ], + ), + ); + }, ); } } @@ -87,7 +111,6 @@ class TaskPictureIconBox extends StatelessWidget { return IconTheme( data: iconThemeData, child: Container( - constraints: BoxConstraints.tight(const Size.square(125)), decoration: BoxDecoration( color: backgroundColor, shape: BoxShape.circle, From a14909c34a4f805291248089ede2c78e8441fd59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damian=20Moli=C5=84ski?= <47773413+damian-molinski@users.noreply.github.com> Date: Wed, 25 Sep 2024 11:37:45 +0200 Subject: [PATCH 18/23] feat(cat-voices): account creation type dialog (#881) * wip * feat: localization + rename dialog * fix: missing comma * refactor: extract learn more button --------- Co-authored-by: Dominik Toton <166132265+dtscalac@users.noreply.github.com> --- .../get_started/account_create_dialog.dart | 187 ++++++++++++++++++ .../lib/pages/spaces/spaces_shell_page.dart | 45 ++++- .../session/session_action_header.dart | 19 +- .../lib/src/session/session_bloc.dart | 7 +- .../catalyst_voices_localizations.dart | 36 ++++ .../catalyst_voices_localizations_en.dart | 18 ++ .../catalyst_voices_localizations_es.dart | 18 ++ .../lib/l10n/intl_en.arb | 11 +- 8 files changed, 320 insertions(+), 21 deletions(-) create mode 100644 catalyst_voices/lib/pages/account/creation/get_started/account_create_dialog.dart diff --git a/catalyst_voices/lib/pages/account/creation/get_started/account_create_dialog.dart b/catalyst_voices/lib/pages/account/creation/get_started/account_create_dialog.dart new file mode 100644 index 0000000000..ea69f13db6 --- /dev/null +++ b/catalyst_voices/lib/pages/account/creation/get_started/account_create_dialog.dart @@ -0,0 +1,187 @@ +import 'package:catalyst_voices/pages/account/creation/task_picture.dart'; +import 'package:catalyst_voices/widgets/buttons/voices_buttons.dart'; +import 'package:catalyst_voices/widgets/modals/voices_desktop_dialog.dart'; +import 'package:catalyst_voices/widgets/modals/voices_dialog.dart'; +import 'package:catalyst_voices_assets/catalyst_voices_assets.dart'; +import 'package:catalyst_voices_brands/catalyst_voices_brands.dart'; +import 'package:catalyst_voices_localization/catalyst_voices_localization.dart'; +import 'package:catalyst_voices_shared/catalyst_voices_shared.dart'; +import 'package:flutter/material.dart'; + +enum AccountCreateType { + createNew, + recover; + + SvgGenImage get _icon => switch (this) { + AccountCreateType.createNew => VoicesAssets.icons.colorSwatch, + AccountCreateType.recover => VoicesAssets.icons.download, + }; + + String _getTitle(VoicesLocalizations l10n) => switch (this) { + AccountCreateType.createNew => l10n.accountCreationCreate, + AccountCreateType.recover => l10n.accountCreationRecover, + }; + + String _getSubtitle(VoicesLocalizations l10n) { + return l10n.accountCreationOnThisDevice; + } +} + +class AccountCreateDialog extends StatelessWidget { + const AccountCreateDialog._(); + + static Future show(BuildContext context) { + return VoicesDialog.show( + context: context, + builder: (context) => const AccountCreateDialog._(), + ); + } + + @override + Widget build(BuildContext context) { + return const VoicesDesktopPanelsDialog( + left: _LeftPanel(), + right: _RightPanel(), + ); + } +} + +class _LeftPanel extends StatelessWidget { + const _LeftPanel(); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + context.l10n.getStarted, + style: theme.textTheme.titleLarge?.copyWith( + color: theme.colors.textOnPrimaryLevel0, + ), + ), + const SizedBox(height: 12), + const Expanded(child: Center(child: TaskKeychainPicture())), + const SizedBox(height: 32), + // TODO(damian-molinski): External url redirect + VoicesLearnMoreButton(onTap: () {}), + ], + ); + } +} + +class _RightPanel extends StatelessWidget { + const _RightPanel(); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 24), + Text( + context.l10n.accountCreationGetStartedTitle, + style: theme.textTheme.titleMedium?.copyWith( + color: theme.colors.textOnPrimaryLevel1, + ), + ), + const SizedBox(height: 12), + Text( + context.l10n.accountCreationGetStatedDesc, + style: theme.textTheme.bodyMedium?.copyWith( + color: theme.colors.textOnPrimaryLevel1, + ), + ), + const SizedBox(height: 32), + Text( + context.l10n.accountCreationGetStatedWhatNext, + style: theme.textTheme.titleSmall?.copyWith( + color: theme.colors.textOnPrimaryLevel0, + ), + ), + const SizedBox(height: 24), + Column( + mainAxisSize: MainAxisSize.min, + children: AccountCreateType.values + .map((type) { + return _AccountCreateTypeTile( + key: ValueKey(type), + type: type, + onTap: () => Navigator.of(context).pop(type), + ); + }) + .separatedBy(const SizedBox(height: 12)) + .toList(), + ), + ], + ); + } +} + +class _AccountCreateTypeTile extends StatelessWidget { + final AccountCreateType type; + final VoidCallback? onTap; + + const _AccountCreateTypeTile({ + super.key, + required this.type, + this.onTap, + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + return ConstrainedBox( + constraints: const BoxConstraints.tightFor(height: 80), + child: Material( + color: theme.colorScheme.primary, + borderRadius: BorderRadius.circular(12), + child: InkWell( + onTap: onTap, + borderRadius: BorderRadius.circular(12), + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Row( + children: [ + type._icon.buildIcon( + size: 48, + color: theme.colorScheme.onPrimary, + ), + const SizedBox(width: 10), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + type._getTitle(context.l10n), + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: theme.textTheme.titleSmall?.copyWith( + color: theme.colorScheme.onPrimary, + ), + ), + Text( + type._getSubtitle(context.l10n), + maxLines: 1, + overflow: TextOverflow.clip, + style: theme.textTheme.bodySmall?.copyWith( + color: theme.colorScheme.onPrimary, + ), + ), + ], + ), + ), + ], + ), + ), + ), + ), + ); + } +} diff --git a/catalyst_voices/lib/pages/spaces/spaces_shell_page.dart b/catalyst_voices/lib/pages/spaces/spaces_shell_page.dart index 26b10d01de..8f5b6f9c00 100644 --- a/catalyst_voices/lib/pages/spaces/spaces_shell_page.dart +++ b/catalyst_voices/lib/pages/spaces/spaces_shell_page.dart @@ -1,4 +1,5 @@ import 'package:catalyst_voices/common/ext/ext.dart'; +import 'package:catalyst_voices/pages/account/creation/get_started/account_create_dialog.dart'; import 'package:catalyst_voices/pages/spaces/drawer/spaces_drawer.dart'; import 'package:catalyst_voices/widgets/widgets.dart'; import 'package:catalyst_voices_blocs/catalyst_voices_blocs.dart'; @@ -7,7 +8,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; -class SpacesShellPage extends StatelessWidget { +class SpacesShellPage extends StatefulWidget { final Space space; final Widget child; @@ -40,6 +41,11 @@ class SpacesShellPage extends StatelessWidget { required this.child, }); + @override + State createState() => _SpacesShellPageState(); +} + +class _SpacesShellPageState extends State { @override Widget build(BuildContext context) { final sessionBloc = context.watch(); @@ -48,27 +54,50 @@ class SpacesShellPage extends StatelessWidget { return CallbackShortcuts( bindings: { - for (final entry in _spacesShortcutsActivators.entries) + for (final entry in SpacesShellPage._spacesShortcutsActivators.entries) entry.value: () => entry.key.go(context), }, child: Scaffold( appBar: VoicesAppBar( leading: isVisitor ? null : const DrawerToggleButton(), automaticallyImplyLeading: false, - actions: const [ - SessionActionHeader(), - SessionStateHeader(), + actions: [ + SessionActionHeader( + onGetStartedTap: _showAccountGetStarted, + ), + const SessionStateHeader(), ], ), drawer: isVisitor ? null : SpacesDrawer( - space: space, - spacesShortcutsActivators: _spacesShortcutsActivators, + space: widget.space, + spacesShortcutsActivators: + SpacesShellPage._spacesShortcutsActivators, isUnlocked: isUnlocked, ), - body: child, + body: widget.child, ), ); } + + Future _showAccountGetStarted() async { + final type = await AccountCreateDialog.show(context); + if (type == null) { + return; + } + + if (mounted) { + switch (type) { + case AccountCreateType.createNew: + _showCreateAccountFlow().ignore(); + case AccountCreateType.recover: + _showRecoverAccountFlow().ignore(); + } + } + } + + Future _showCreateAccountFlow() async {} + + Future _showRecoverAccountFlow() async {} } diff --git a/catalyst_voices/lib/widgets/app_bar/session/session_action_header.dart b/catalyst_voices/lib/widgets/app_bar/session/session_action_header.dart index 7d52d730a2..d354771106 100644 --- a/catalyst_voices/lib/widgets/app_bar/session/session_action_header.dart +++ b/catalyst_voices/lib/widgets/app_bar/session/session_action_header.dart @@ -8,14 +8,19 @@ import 'package:flutter_bloc/flutter_bloc.dart'; /// Displays current session action and toggling to next when clicked. class SessionActionHeader extends StatelessWidget { - const SessionActionHeader({super.key}); + final VoidCallback? onGetStartedTap; + + const SessionActionHeader({ + super.key, + this.onGetStartedTap, + }); @override Widget build(BuildContext context) { return BlocBuilder( builder: (context, state) { return switch (state) { - VisitorSessionState() => const _GetStartedButton(), + VisitorSessionState() => _GetStartedButton(onTap: onGetStartedTap), GuestSessionState() => const _UnlockButton(), ActiveUserSessionState() => const _LockButton(), }; @@ -25,14 +30,16 @@ class SessionActionHeader extends StatelessWidget { } class _GetStartedButton extends StatelessWidget { - const _GetStartedButton(); + final VoidCallback? onTap; + + const _GetStartedButton({ + this.onTap, + }); @override Widget build(BuildContext context) { return VoicesFilledButton( - onTap: () { - context.read().add(const ActiveUserSessionEvent()); - }, + onTap: onTap, child: Text(context.l10n.getStarted), ); } diff --git a/catalyst_voices/packages/catalyst_voices_blocs/lib/src/session/session_bloc.dart b/catalyst_voices/packages/catalyst_voices_blocs/lib/src/session/session_bloc.dart index 949518e234..77545c8e8a 100644 --- a/catalyst_voices/packages/catalyst_voices_blocs/lib/src/session/session_bloc.dart +++ b/catalyst_voices/packages/catalyst_voices_blocs/lib/src/session/session_bloc.dart @@ -5,12 +5,7 @@ import 'package:flutter_bloc/flutter_bloc.dart'; /// Manages the user session. final class SessionBloc extends Bloc { - SessionBloc() - : super( - const ActiveUserSessionState( - user: User(name: 'Account'), - ), - ) { + SessionBloc() : super(const VisitorSessionState()) { on(_handleSessionEvent); } diff --git a/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations.dart b/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations.dart index cf70a944c9..a35785803a 100644 --- a/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations.dart +++ b/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations.dart @@ -699,6 +699,42 @@ abstract class VoicesLocalizations { /// In en, this message translates to: /// **'You\'re almost there! This is the final and most important step in your account setup.\n\nWe\'re going to link a Cardano Wallet to your Catalyst Keychain, so you can start collecting Role Keys.\n\nRole Keys allow you to enter new spaces, discover new ways to participate, and unlock new ways to earn rewards.\n\nWe\'ll start with your Voter Key by default. You can decide to add a Proposer Key and Drep key if you want, or you can always add them later.'** String get walletLink_intro_content; + + /// No description provided for @accountCreationCreate. + /// + /// In en, this message translates to: + /// **'Create a new 
Catalyst Keychain'** + String get accountCreationCreate; + + /// No description provided for @accountCreationRecover. + /// + /// In en, this message translates to: + /// **'Recover your
Catalyst Keychain'** + String get accountCreationRecover; + + /// Indicates that created keychain will be stored in this device only + /// + /// In en, this message translates to: + /// **'On this device'** + String get accountCreationOnThisDevice; + + /// No description provided for @accountCreationGetStartedTitle. + /// + /// In en, this message translates to: + /// **'Welcome to Catalyst'** + String get accountCreationGetStartedTitle; + + /// No description provided for @accountCreationGetStatedDesc. + /// + /// In en, this message translates to: + /// **'If you already have a Catalyst keychain you can restore it on this device, or you can create a new Catalyst Keychain.'** + String get accountCreationGetStatedDesc; + + /// No description provided for @accountCreationGetStatedWhatNext. + /// + /// In en, this message translates to: + /// **'What do you want to do?'** + String get accountCreationGetStatedWhatNext; } class _VoicesLocalizationsDelegate extends LocalizationsDelegate { diff --git a/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations_en.dart b/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations_en.dart index 08a982619f..e8a6c7e7fd 100644 --- a/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations_en.dart +++ b/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations_en.dart @@ -363,4 +363,22 @@ class VoicesLocalizationsEn extends VoicesLocalizations { @override String get walletLink_intro_content => 'You\'re almost there! This is the final and most important step in your account setup.\n\nWe\'re going to link a Cardano Wallet to your Catalyst Keychain, so you can start collecting Role Keys.\n\nRole Keys allow you to enter new spaces, discover new ways to participate, and unlock new ways to earn rewards.\n\nWe\'ll start with your Voter Key by default. You can decide to add a Proposer Key and Drep key if you want, or you can always add them later.'; + + @override + String get accountCreationCreate => 'Create a new 
Catalyst Keychain'; + + @override + String get accountCreationRecover => 'Recover your
Catalyst Keychain'; + + @override + String get accountCreationOnThisDevice => 'On this device'; + + @override + String get accountCreationGetStartedTitle => 'Welcome to Catalyst'; + + @override + String get accountCreationGetStatedDesc => 'If you already have a Catalyst keychain you can restore it on this device, or you can create a new Catalyst Keychain.'; + + @override + String get accountCreationGetStatedWhatNext => 'What do you want to do?'; } diff --git a/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations_es.dart b/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations_es.dart index 33a5b51913..2b10c965db 100644 --- a/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations_es.dart +++ b/catalyst_voices/packages/catalyst_voices_localization/lib/generated/catalyst_voices_localizations_es.dart @@ -363,4 +363,22 @@ class VoicesLocalizationsEs extends VoicesLocalizations { @override String get walletLink_intro_content => 'You\'re almost there! This is the final and most important step in your account setup.\n\nWe\'re going to link a Cardano Wallet to your Catalyst Keychain, so you can start collecting Role Keys.\n\nRole Keys allow you to enter new spaces, discover new ways to participate, and unlock new ways to earn rewards.\n\nWe\'ll start with your Voter Key by default. You can decide to add a Proposer Key and Drep key if you want, or you can always add them later.'; + + @override + String get accountCreationCreate => 'Create a new 
Catalyst Keychain'; + + @override + String get accountCreationRecover => 'Recover your
Catalyst Keychain'; + + @override + String get accountCreationOnThisDevice => 'On this device'; + + @override + String get accountCreationGetStartedTitle => 'Welcome to Catalyst'; + + @override + String get accountCreationGetStatedDesc => 'If you already have a Catalyst keychain you can restore it on this device, or you can create a new Catalyst Keychain.'; + + @override + String get accountCreationGetStatedWhatNext => 'What do you want to do?'; } diff --git a/catalyst_voices/packages/catalyst_voices_localization/lib/l10n/intl_en.arb b/catalyst_voices/packages/catalyst_voices_localization/lib/l10n/intl_en.arb index 22a2c7f2fe..e15b1f68e2 100644 --- a/catalyst_voices/packages/catalyst_voices_localization/lib/l10n/intl_en.arb +++ b/catalyst_voices/packages/catalyst_voices_localization/lib/l10n/intl_en.arb @@ -449,5 +449,14 @@ "walletLink_intro_content": "You're almost there! This is the final and most important step in your account setup.\n\nWe're going to link a Cardano Wallet to your Catalyst Keychain, so you can start collecting Role Keys.\n\nRole Keys allow you to enter new spaces, discover new ways to participate, and unlock new ways to earn rewards.\n\nWe'll start with your Voter Key by default. You can decide to add a Proposer Key and Drep key if you want, or you can always add them later.", "@walletLink_intro_content": { "description": "A message (content) in link wallet flow on intro screen." - } + }, + "accountCreationCreate": "Create a new \u2028Catalyst Keychain", + "accountCreationRecover": "Recover your\u2028Catalyst Keychain", + "accountCreationOnThisDevice": "On this device", + "@accountCreationOnThisDevice": { + "description": "Indicates that created keychain will be stored in this device only" + }, + "accountCreationGetStartedTitle": "Welcome to Catalyst", + "accountCreationGetStatedDesc": "If you already have a Catalyst keychain you can restore it on this device, or you can create a new Catalyst Keychain.", + "accountCreationGetStatedWhatNext": "What do you want to do?" } \ No newline at end of file From 7c707d03984235f5b186c1f1f0f8cad6a2756b6a Mon Sep 17 00:00:00 2001 From: digitalheartxs Date: Wed, 25 Sep 2024 13:07:24 +0200 Subject: [PATCH 19/23] feat(cat-voices): Account page (#878) * feat: My account, account page * feat: My account, account page, introduce VoicesTextButton's customColor * feat: My account, account page, add correct bg asset * feat: My account, account page, add onRemoveKeychain callback * feat: My account, account page, lint issues * feat: My account, account page, translations * feat: My account, account page, reformatting * feat: My account, account page, add const constructors * feat: My account, account page, extract AccountRole enum * feat: My account, account page, AccountRole translations * feat: My account, account page, rename from cutomColor to custom * feat: My account, account page, move padding * feat: My account, account page, wrap SizedBox in DecoratedBox * feat: My account, account page, merge and fix for translation --- .../lib/pages/account/account.dart | 1 + .../lib/pages/account/account_page.dart | 268 ++++++++++++++++++ .../lib/routes/routing/account_route.dart | 19 ++ .../lib/routes/routing/routes.dart | 2 + .../lib/routes/routing/routing.dart | 1 + .../app_bar/session/session_state_header.dart | 7 +- .../widgets/buttons/voices_text_button.dart | 20 +- .../assets/images/account_bg.png | Bin 0 -> 936779 bytes .../lib/generated/assets.gen.dart | 5 + .../catalyst_voices_localizations.dart | 66 +++++ .../catalyst_voices_localizations_en.dart | 33 +++ .../catalyst_voices_localizations_es.dart | 33 +++ .../lib/l10n/intl_en.arb | 46 ++- .../lib/examples/voices_tabs_example.dart | 1 + 14 files changed, 499 insertions(+), 3 deletions(-) create mode 100644 catalyst_voices/lib/pages/account/account.dart create mode 100644 catalyst_voices/lib/pages/account/account_page.dart create mode 100644 catalyst_voices/lib/routes/routing/account_route.dart create mode 100644 catalyst_voices/packages/catalyst_voices_assets/assets/images/account_bg.png diff --git a/catalyst_voices/lib/pages/account/account.dart b/catalyst_voices/lib/pages/account/account.dart new file mode 100644 index 0000000000..343bf63edb --- /dev/null +++ b/catalyst_voices/lib/pages/account/account.dart @@ -0,0 +1 @@ +export 'account_page.dart'; diff --git a/catalyst_voices/lib/pages/account/account_page.dart b/catalyst_voices/lib/pages/account/account_page.dart new file mode 100644 index 0000000000..0716aaa2c8 --- /dev/null +++ b/catalyst_voices/lib/pages/account/account_page.dart @@ -0,0 +1,268 @@ +import 'package:catalyst_voices/widgets/buttons/voices_icon_button.dart'; +import 'package:catalyst_voices/widgets/buttons/voices_text_button.dart'; +import 'package:catalyst_voices_assets/catalyst_voices_assets.dart'; +import 'package:catalyst_voices_brands/catalyst_voices_brands.dart'; +import 'package:catalyst_voices_localization/catalyst_voices_localization.dart'; +import 'package:flutter/material.dart'; +import 'package:go_router/go_router.dart'; + +final class AccountPage extends StatelessWidget { + const AccountPage({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + body: SingleChildScrollView( + padding: const EdgeInsets.all(32), + child: Column( + children: [ + const _Header(), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 32), + const _Tab(), + const SizedBox(height: 48), + _KeychainCard( + connectedWallet: 'Lace', + roles: const [ + AccountRole.voter, + AccountRole.proposer, + AccountRole.drep, + ], + defaultRole: AccountRole.voter, + onRemoveKeychain: () => debugPrint('Keychain removed'), + ), + ], + ), + ), + ], + ), + ), + ); + } +} + +class _Header extends StatelessWidget { + const _Header(); + + @override + Widget build(BuildContext context) { + return DecoratedBox( + decoration: BoxDecoration( + image: DecorationImage( + image: CatalystImage.asset( + VoicesAssets.images.accountBg.path, + ).image, + fit: BoxFit.cover, + ), + ), + child: SizedBox( + width: double.infinity, + height: 350, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.only( + top: 24, + left: 8, + ), + child: VoicesIconButton.filled( + onTap: () { + GoRouter.of(context).pop(); + }, + style: ButtonStyle( + backgroundColor: WidgetStateProperty.all( + Theme.of(context).colors.elevationsOnSurfaceNeutralLv1White, + ), + foregroundColor: WidgetStateProperty.all( + Theme.of(context).colors.iconsForeground, + ), + ), + child: VoicesAssets.icons.arrowNarrowLeft.buildIcon(), + ), + ), + const Spacer(), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 32), + child: Text( + context.l10n.myAccountProfileKeychain, + style: Theme.of(context).textTheme.displayMedium?.copyWith( + color: Colors.white, + ), + ), + ), + const SizedBox(height: 4), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 32), + child: Text( + context.l10n.yourCatalystKeychainAndRoleRegistration, + style: Theme.of(context).textTheme.titleMedium?.copyWith( + color: Colors.white, + ), + ), + ), + const SizedBox(height: 48), + ], + ), + ), + ); + } +} + +class _Tab extends StatelessWidget { + const _Tab(); + + @override + Widget build(BuildContext context) { + return DefaultTabController( + length: 1, + child: TabBar( + padding: const EdgeInsets.symmetric(horizontal: 20), + isScrollable: true, + tabs: [ + Tab(text: context.l10n.profileAndKeychain), + ], + ), + ); + } +} + +class _KeychainCard extends StatelessWidget { + final String? connectedWallet; + final List roles; + final AccountRole? defaultRole; + final VoidCallback? onRemoveKeychain; + + const _KeychainCard({ + this.connectedWallet, + this.roles = const [], + this.defaultRole, + this.onRemoveKeychain, + }); + + @override + Widget build(BuildContext context) { + return Container( + constraints: const BoxConstraints(maxWidth: 600), + decoration: BoxDecoration( + borderRadius: const BorderRadius.all( + Radius.circular(16), + ), + border: Border.all( + color: Theme.of(context).colors.outlineBorderVariant!, + width: 1, + ), + color: Theme.of(context).colors.elevationsOnSurfaceNeutralLv1White, + ), + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Expanded( + child: Text( + context.l10n.catalystKeychain, + style: Theme.of(context).textTheme.titleLarge, + ), + ), + VoicesTextButton.custom( + leading: VoicesAssets.icons.x.buildIcon(), + color: Theme.of(context).colors.iconsError, + onTap: onRemoveKeychain, + child: Text( + context.l10n.removeKeychain, + ), + ), + ], + ), + if (connectedWallet != null) + Padding( + padding: const EdgeInsets.symmetric(vertical: 24), + child: Text( + context.l10n.walletConnected, + style: Theme.of(context).textTheme.titleMedium, + ), + ), + if (connectedWallet != null) + Row( + children: [ + VoicesIconButton.filled( + style: ButtonStyle( + padding: WidgetStateProperty.all(EdgeInsets.zero), + foregroundColor: WidgetStateProperty.all( + Theme.of(context).colors.successContainer, + ), + backgroundColor: WidgetStateProperty.all( + Theme.of(context).colors.success, + ), + ), + child: VoicesAssets.icons.check.buildIcon(), + ), + const SizedBox(width: 12), + Text( + connectedWallet!, + style: Theme.of(context).textTheme.bodyLarge, + ), + ], + ), + if (roles.isNotEmpty) + Padding( + padding: const EdgeInsets.only( + top: 40, + bottom: 24, + ), + child: Text( + context.l10n.currentRoleRegistrations, + style: Theme.of(context).textTheme.titleMedium, + ), + ), + if (roles.isNotEmpty) + Text( + roles + .map((e) => _formatRoleBullet(e, defaultRole, context)) + .join('\n'), + style: Theme.of(context).textTheme.bodyLarge, + ), + ], + ), + ); + } + + String _formatRoleBullet( + AccountRole role, + AccountRole? defaultRole, + BuildContext context, + ) { + String label; + if (role == defaultRole) { + label = '${role.name(context)} (${context.l10n.defaultRole})'; + } else { + label = role.name(context); + } + return ' • $label'; + } +} + +enum AccountRole { + voter, + proposer, + drep, +} + +extension on AccountRole { + String name(BuildContext context) { + switch (this) { + case AccountRole.voter: + return context.l10n.voter; + case AccountRole.proposer: + return context.l10n.proposer; + case AccountRole.drep: + return context.l10n.drep; + } + } +} diff --git a/catalyst_voices/lib/routes/routing/account_route.dart b/catalyst_voices/lib/routes/routing/account_route.dart new file mode 100644 index 0000000000..75cfb4ed9a --- /dev/null +++ b/catalyst_voices/lib/routes/routing/account_route.dart @@ -0,0 +1,19 @@ +import 'package:catalyst_voices/pages/account/account_page.dart'; +import 'package:catalyst_voices/routes/routing/routes.dart'; +import 'package:catalyst_voices/routes/routing/transitions/fade_page_transition_mixin.dart'; +import 'package:flutter/widgets.dart'; +import 'package:go_router/go_router.dart'; + +part 'account_route.g.dart'; + +@TypedGoRoute( + path: '/${Routes.currentMilestone}/account', +) +final class AccountRoute extends GoRouteData with FadePageTransitionMixin { + const AccountRoute(); + + @override + Widget build(BuildContext context, GoRouterState state) { + return const AccountPage(); + } +} diff --git a/catalyst_voices/lib/routes/routing/routes.dart b/catalyst_voices/lib/routes/routing/routes.dart index 11d75a1638..e533df0b65 100644 --- a/catalyst_voices/lib/routes/routing/routes.dart +++ b/catalyst_voices/lib/routes/routing/routes.dart @@ -1,3 +1,4 @@ +import 'package:catalyst_voices/routes/routing/account_route.dart' as account; import 'package:catalyst_voices/routes/routing/coming_soon_route.dart' as coming_soon; import 'package:catalyst_voices/routes/routing/login_route.dart' as login; @@ -12,6 +13,7 @@ abstract final class Routes { static const currentMilestone = 'm4'; static final List routes = [ + ...account.$appRoutes, ...coming_soon.$appRoutes, ...login.$appRoutes, ...spaces.$appRoutes, diff --git a/catalyst_voices/lib/routes/routing/routing.dart b/catalyst_voices/lib/routes/routing/routing.dart index fbec95ce4c..e531151988 100644 --- a/catalyst_voices/lib/routes/routing/routing.dart +++ b/catalyst_voices/lib/routes/routing/routing.dart @@ -1,3 +1,4 @@ +export 'account_route.dart' hide $appRoutes; export 'coming_soon_route.dart' hide $appRoutes; export 'login_route.dart' hide $appRoutes; export 'overall_spaces_route.dart' hide $appRoutes; diff --git a/catalyst_voices/lib/widgets/app_bar/session/session_state_header.dart b/catalyst_voices/lib/widgets/app_bar/session/session_state_header.dart index a84223a205..79eb2e0fb0 100644 --- a/catalyst_voices/lib/widgets/app_bar/session/session_state_header.dart +++ b/catalyst_voices/lib/widgets/app_bar/session/session_state_header.dart @@ -1,4 +1,7 @@ +import 'dart:async'; + import 'package:catalyst_voices/pages/account/account_popup.dart'; +import 'package:catalyst_voices/routes/routing/account_route.dart'; import 'package:catalyst_voices/widgets/widgets.dart'; import 'package:catalyst_voices_blocs/catalyst_voices_blocs.dart'; import 'package:catalyst_voices_localization/catalyst_voices_localization.dart'; @@ -19,7 +22,9 @@ class SessionStateHeader extends StatelessWidget { ActiveUserSessionState(:final user) => AccountPopup( avatarLetter: user.acronym ?? 'A', onLockAccountTap: () => debugPrint('Lock account'), - onProfileKeychainTap: () => debugPrint('Open Profile screen'), + onProfileKeychainTap: () => unawaited( + const AccountRoute().push(context), + ), ), }; }, diff --git a/catalyst_voices/lib/widgets/buttons/voices_text_button.dart b/catalyst_voices/lib/widgets/buttons/voices_text_button.dart index d9ce555aaa..0e1c8b540a 100644 --- a/catalyst_voices/lib/widgets/buttons/voices_text_button.dart +++ b/catalyst_voices/lib/widgets/buttons/voices_text_button.dart @@ -2,7 +2,7 @@ import 'package:catalyst_voices/widgets/buttons/voices_button_affix_decoration.d import 'package:catalyst_voices_brands/catalyst_voices_brands.dart'; import 'package:flutter/material.dart'; -enum _Variant { primary, neutral, secondary } +enum _Variant { primary, neutral, secondary, custom } /// A button that combines a `TextButton` with optional leading and trailing /// elements. @@ -22,6 +22,9 @@ class VoicesTextButton extends StatelessWidget { /// The main content of the button. final Widget child; + /// The foreground color of the button. + final Color? color; + final _Variant _variant; const VoicesTextButton({ @@ -29,6 +32,7 @@ class VoicesTextButton extends StatelessWidget { this.onTap, this.leading, this.trailing, + this.color, required this.child, }) : _variant = _Variant.primary; @@ -37,6 +41,7 @@ class VoicesTextButton extends StatelessWidget { this.onTap, this.leading, this.trailing, + this.color, required this.child, }) : _variant = _Variant.neutral; @@ -45,9 +50,19 @@ class VoicesTextButton extends StatelessWidget { this.onTap, this.leading, this.trailing, + this.color, required this.child, }) : _variant = _Variant.secondary; + const VoicesTextButton.custom({ + super.key, + this.onTap, + this.leading, + this.trailing, + required this.color, + required this.child, + }) : _variant = _Variant.custom; + @override Widget build(BuildContext context) { return TextButton( @@ -75,6 +90,9 @@ class VoicesTextButton extends StatelessWidget { _Variant.secondary => TextButton.styleFrom( foregroundColor: Theme.of(context).colorScheme.secondary, ), + _Variant.custom => TextButton.styleFrom( + foregroundColor: color, + ), }; } } diff --git a/catalyst_voices/packages/catalyst_voices_assets/assets/images/account_bg.png b/catalyst_voices/packages/catalyst_voices_assets/assets/images/account_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..8a3c87e0c3bc8829dc7b97a4b2cfc99984bf33c1 GIT binary patch literal 936779 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

7{5-1_UP@9@j3fZU$ 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ℑu_ixD%nU_D!_^QVn{ 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 z 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

    %Cd1LaYK%##8JKvMzvnS8R=yYPZZe%QR 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�kmYtgkEPNGdnUwRRM9%IsQH^&GeL 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 z%0D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%0Ahx=cF_+rf+F7n+Ar?0B|I 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

    xmq)^`HVI6 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

    L+YYL`! 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

    9K$R2_oR2sY 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

    +NB0HVjGLOpY?e9{O*$DAJ*|U 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