From 2b0df2c4ac40063922daf2d9ae833c3648013497 Mon Sep 17 00:00:00 2001 From: Dangerous Freedom Date: Sun, 17 Sep 2023 20:22:15 +0000 Subject: [PATCH 1/3] Add new file --- dangerousfreedom-2023-09.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 dangerousfreedom-2023-09.md diff --git a/dangerousfreedom-2023-09.md b/dangerousfreedom-2023-09.md new file mode 100644 index 0000000..43544a1 --- /dev/null +++ b/dangerousfreedom-2023-09.md @@ -0,0 +1,37 @@ +--- +layout: fr +title: dangerousfreedom - wallet work +author: DangerousFreedom +date: September 17, 2023 +amount: 96 +milestones: + - name: deliver of proposed demonstrator and wallet functions + funds: 96 + done: + status: unfinished +payouts: + - date: + amount: +--- + +## What and Why ? + +The end goal of this proposal is to be able to make a basic but broad demonstrator of the seraphis_wallet by opening a wallet, use @jberman scanner to load legacy enotes, make transactions, make transaction proofs, show enotes and balance, close wallet. A lot of work has been done in this direction but they are not yet fully organized. So the goal is to have this basic but organized demonstrator capable of doing that. + +In order to do so, I would work on the following tasks: +- Create basic functions for wallet initialization, program flow and terminal handling. +- Create the basic components of a seraphis_wallet (basically the wallet needs to load/save the KeyContainer, EnoteStore and TransactionHistory components). +- Create basic function to fill `EnoteStore` with jberman's scanner. +- Create functions similar to `create_transaction_2`, `create_transactions_from` on wallet2 and `construct_tx_for_mock_ledger_v1` in seraphis_mock to send a tx. +- Add entries to `TransactionHistory` when a transaction creation is attempted. +- Create terminal functions to show enotes and provide knowledge proofs. +- Use/review/integrate @ghostway's work and @shalit's work on the key_container and on the EnoteStore serialization + +All the efforts will be documented and made public on the seraphis_wallet group. Unit_tests will be provided whenever possible. + + +## Who? + +- I did [this](https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/298), [this](https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/344) and [this](https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/377) previous works. + +I propose to work for 40 USD per hour, 30h per week, for 12 weeks (or until finish all the tasks), which makes 96 XMR considering 150 USD/XMR. From a3658f072b4e7022798acc5fc5a1b492344533b5 Mon Sep 17 00:00:00 2001 From: Dangerous Freedom Date: Sun, 17 Sep 2023 20:26:12 +0000 Subject: [PATCH 2/3] Update dangerousfreedom-2023-09.md --- dangerousfreedom-2023-09.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dangerousfreedom-2023-09.md b/dangerousfreedom-2023-09.md index 43544a1..4617d15 100644 --- a/dangerousfreedom-2023-09.md +++ b/dangerousfreedom-2023-09.md @@ -20,7 +20,7 @@ The end goal of this proposal is to be able to make a basic but broad demonstrat In order to do so, I would work on the following tasks: - Create basic functions for wallet initialization, program flow and terminal handling. -- Create the basic components of a seraphis_wallet (basically the wallet needs to load/save the KeyContainer, EnoteStore and TransactionHistory components). +- Create the basic components of a seraphis_wallet (basically the wallet needs to load/save the `KeyContainer`, `EnoteStore` and `TransactionHistory` components). - Create basic function to fill `EnoteStore` with jberman's scanner. - Create functions similar to `create_transaction_2`, `create_transactions_from` on wallet2 and `construct_tx_for_mock_ledger_v1` in seraphis_mock to send a tx. - Add entries to `TransactionHistory` when a transaction creation is attempted. From b6c1a40919ed900adc375506e6d083b4f7cdd55e Mon Sep 17 00:00:00 2001 From: Dangerous Freedom Date: Fri, 22 Sep 2023 19:45:09 +0000 Subject: [PATCH 3/3] Update dangerousfreedom-2023-09.md --- dangerousfreedom-2023-09.md | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/dangerousfreedom-2023-09.md b/dangerousfreedom-2023-09.md index 4617d15..3357eed 100644 --- a/dangerousfreedom-2023-09.md +++ b/dangerousfreedom-2023-09.md @@ -3,10 +3,10 @@ layout: fr title: dangerousfreedom - wallet work author: DangerousFreedom date: September 17, 2023 -amount: 96 +amount: 64 milestones: - name: deliver of proposed demonstrator and wallet functions - funds: 96 + funds: 64 done: status: unfinished payouts: @@ -16,16 +16,22 @@ payouts: ## What and Why ? -The end goal of this proposal is to be able to make a basic but broad demonstrator of the seraphis_wallet by opening a wallet, use @jberman scanner to load legacy enotes, make transactions, make transaction proofs, show enotes and balance, close wallet. A lot of work has been done in this direction but they are not yet fully organized. So the goal is to have this basic but organized demonstrator capable of doing that. +The end goal is twofold: -In order to do so, I would work on the following tasks: +1) Get started with a basic variant to handle transactions both in legacy and seraphis: since a blockchain is made of blocks and blocks are made of transactions, we probably need a class to handle node queries smoothly between the classes `transaction` and `SpTxSquashedV1`. Hopefully this will generate discussions and start paving the way for future works about reading/writing data from/in the blockchain (1/4 of total time). + +2) Make a basic but broad demonstrator of the seraphis_wallet by: opening a wallet, make mock transactions, make transaction proofs, show enotes and balance, close wallet. A lot of work has been done in this direction but they are not yet fully organized. So the goal is to have this basic but organized demonstrator capable of doing that (3/4 of total time). + +I would work on the following tasks: +- Create the `TransactionVariant = tools::variant` to handle similar methods of these classes. +- Create unit_tests with legacy and seraphis transactions to test these methods. - Create basic functions for wallet initialization, program flow and terminal handling. - Create the basic components of a seraphis_wallet (basically the wallet needs to load/save the `KeyContainer`, `EnoteStore` and `TransactionHistory` components). -- Create basic function to fill `EnoteStore` with jberman's scanner. -- Create functions similar to `create_transaction_2`, `create_transactions_from` on wallet2 and `construct_tx_for_mock_ledger_v1` in seraphis_mock to send a tx. +- Create basic function to fill `EnoteStore`. +- Use mock transactions like `construct_tx_for_mock_ledger_v1` to create txs. - Add entries to `TransactionHistory` when a transaction creation is attempted. - Create terminal functions to show enotes and provide knowledge proofs. -- Use/review/integrate @ghostway's work and @shalit's work on the key_container and on the EnoteStore serialization +- Close/save wallet and make sure it loads everything when reopened. All the efforts will be documented and made public on the seraphis_wallet group. Unit_tests will be provided whenever possible. @@ -34,4 +40,4 @@ All the efforts will be documented and made public on the seraphis_wallet group. - I did [this](https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/298), [this](https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/344) and [this](https://repo.getmonero.org/monero-project/ccs-proposals/-/merge_requests/377) previous works. -I propose to work for 40 USD per hour, 30h per week, for 12 weeks (or until finish all the tasks), which makes 96 XMR considering 150 USD/XMR. +I propose to work for 40 USD per hour, 20h per week, for 12 weeks (or until I finish all the tasks), which makes 64 XMR considering 150 USD/XMR.