silkaj issueshttps://git.duniter.org/clients/python/silkaj/-/issues2023-08-16T21:12:04+02:00https://git.duniter.org/clients/python/silkaj/-/issues/478Implement authentication on money history command2023-08-16T21:12:04+02:00MoulImplement authentication on money history commandConvenient with account authentication.
- Can be done together with #350 refactoring
- [ ] Implement authentication on `money history` command
- [ ] Write tests
- [ ] Document usage also for `balance` commandConvenient with account authentication.
- Can be done together with #350 refactoring
- [ ] Implement authentication on `money history` command
- [ ] Write tests
- [ ] Document usage also for `balance` commandBackloghttps://git.duniter.org/clients/python/silkaj/-/issues/477Account storage support: authentication, revocation2024-02-29T08:56:19+01:00MoulAccount storage support: authentication, revocation- https://askubuntu.com/a/14536
- Storage per currency, per account name
- `$XDG_DATA_HOME`|`$HOME/.local/share/silkaj/${currency}`
- `${account_name}`: defined by the user, passed via general/specific option `-a/--account`
- `revo...- https://askubuntu.com/a/14536
- Storage per currency, per account name
- `$XDG_DATA_HOME`|`$HOME/.local/share/silkaj/${currency}`
- `${account_name}`: defined by the user, passed via general/specific option `-a/--account`
- `revocation.txt`
- `authentication_file_${format}.json`: Silkaj would discover which format is it, v1 formats will be dropped at some point
## Implementation
### Account storage
* [x] Introduce global `-a/--account` option
* [x] Storage class into `silkaj/storage.py` with tests `tests/units/test_storage.py`
### Authentication
Read from `--auth-*` method, store into account storage:
```plaintext
silkaj --account <account> authentication --auth-*
```
Need special handling of `--auth-*` and `--account` options separately in the authentication selection handling for the `authentication` command. Other commands using the authentication should read only from `--account`. The `authentication` command is kind of a converter command from `--auth-*` methods to account storage.
Use `authentication` command as an importer from scattered files to this account storage structure
* [x] Move `--auth-*` options as `authentication` specific options?
- Con: Would no longer allow easy authentication on other commands
- Pro: Would force more secure account storage usage, conversion
* [x] Set authentication methods as `MutuallyExclusive`
* [x] Implementation in `authentication` command to store in the account storage
* [x] Support a better default authentication file format creation in the storage than `seedhex`?
* [x] Implement [(E)WIF](https://git.duniter.org/documents/rfcs/-/blob/master/rfc/0013_Duniter_Encrypted_Wallet_Import_Format.md) authfile saving #173
* [ ] Discover which authfile format it is: v1 (seedhex, pubsec), v2 (encrypted json)
- `authentication_file_ed25519.txt`, `authentication_file_sr25519.json`
* [ ] Write tests
### Revocation
```plaintext
# read auth file, write revocation file
silkaj --account <account> wot revocation create
# read revocation file
silkaj --account <account> wot revocation {verify,publish}
```
* [x] `create` read authfile from `--account` and write revocation file into `--account`
* [x] `verify`/`publish`: consume file from general `--account` option
* [ ] Write tests
### Importer command?
- `account import`
- import already generated auth and revocation files to an account?
### New Account label
- [x] replace `Storage` label
### Documentation
- [x] Write documentation how this works (input as general option, output as command-specific option)
- [x] Update `README.md§Features` with `Account (storage)` and `Authentication methods`.
### `account` commands
- `account list` command
```py
def list(self):
for root, dirnames, filenames in self.path.parent.walk():
print(root, dirnames, filenames)
```
- list available accounts per currencies: there contents, auth file, revocation file
- following implementations can all be done with Unix commands. To be done in a follow-up ticket?
- instead of a copy to the right place?
- `account remove $account`: remove complete account, remove only authentication or revocation file?
- `account rename $old_name $new_name`0.12.0MoulMoulhttps://git.duniter.org/clients/python/silkaj/-/issues/446Publish on Spanish forum2023-11-13T15:06:54+01:00MoulPublish on Spanish forum- [ ] Setup DeathReaper account on https://foro.moneda-libre.org/
- [ ] Ask to make it administrator
- [ ] Generate token
- [ ] Implement Spanish forum handling in `excluded` command
- [ ] Spanish(/English) translation of the output
- [ ...- [ ] Setup DeathReaper account on https://foro.moneda-libre.org/
- [ ] Ask to make it administrator
- [ ] Generate token
- [ ] Implement Spanish forum handling in `excluded` command
- [ ] Spanish(/English) translation of the output
- [ ] DeathReaper repo: Setup Spanish Forum credentials for DeathReaper in CI/CD variables.
---
Priority to be considered regarding Substrate migration.
With Substrate, a better system could be setup. An web based email registration system, which would be listening to the blockchain/RPC or the Indexer and then send email. This would be a more efficient system, since now new G1 members do not necessarily have forums accounts.Backloghttps://git.duniter.org/clients/python/silkaj/-/issues/423Automate forestall/prevention of future exclusion via notification2022-04-20T08:47:46+02:00MoulAutomate forestall/prevention of future exclusion via notification### Need
- https://forum.duniter.org/t/je-me-presente-je-suis-deathreaper-alias-la-faucheuse/6539/82
- https://forum.monnaie-libre.fr/t/questions-exclusion-ecriture-inclusive/21873/2
- kind of done in [WotWizard UI](https://git.duniter.o...### Need
- https://forum.duniter.org/t/je-me-presente-je-suis-deathreaper-alias-la-faucheuse/6539/82
- https://forum.monnaie-libre.fr/t/questions-exclusion-ecriture-inclusive/21873/2
- kind of done in [WotWizard UI](https://git.duniter.org/clients/wotwizard-ui), but not as notifications on the forums
### Requirements
- [ ] Is wotwizard currently getting its information from Duniter v1.7 database scheme (v1.8 introduces a new database scheme)?
- [ ] Will wotwizard migrate its way of getting information over Substrate/RPC/SubSquid?
### Funding
Crowdfunding?
### Implementation
Exclusions due to:
- membership expiration
- missing enough certifications
- How much before the estimated exclusion? Two, three, four weeks? The longer seems better to have time to react to the notification. But the longer means more notifications.
- [ ] Read WotWizard GraphQL interface
- [ ] Generate message
- [ ] Implement subcommands in `silkaj excluded`: `exclusions`, `forecasts`/`predictions`
- [ ] Two new scheduled jobs on DeathReaper repository
- [ ] Three posts on the two forumsBackloghttps://git.duniter.org/clients/python/silkaj/-/issues/415Sign/Verify documents(ex. PDF) using Duniter private keys2021-12-10T13:35:26+01:00KapisSign/Verify documents(ex. PDF) using Duniter private keysI was looking at https://forum.duniter.org/t/utiliser-la-toile-de-confiance-pour-signer-des-messages/2964/14
but nothing came out.
Is there a way to use Duniter private key's (like in Pubsec or WIF or EWIF format, etc) to sign a docume...I was looking at https://forum.duniter.org/t/utiliser-la-toile-de-confiance-pour-signer-des-messages/2964/14
but nothing came out.
Is there a way to use Duniter private key's (like in Pubsec or WIF or EWIF format, etc) to sign a document like for exemple PDF as sometimes we are forced to do with our personal gvt digital certificate signature?
Also besides signing it would be cool to verify a signature in a file.
Or is this already possible with some external tool besides Silkaj? Seems that https://pypi.org/project/duniterpy/ already supports it but just as messages, maybe we need to convert to base64 the file.
THanks.Backloghttps://git.duniter.org/clients/python/silkaj/-/issues/394Ability to select transaction history range2022-03-29T11:12:51+02:00Mr-DjezAbility to select transaction history rangeHello.
I would like to be able to select a specific range between a start date and an end date in the transaction history of an account.Hello.
I would like to be able to select a specific range between a start date and an end date in the transaction history of an account.Backloghttps://git.duniter.org/clients/python/silkaj/-/issues/391Express relative amounts using previous or next UD2021-04-11T18:51:18+02:00MoulExpress relative amounts using previous or next UDOptions could allow to specify:
- [ ] #218: `history`:
- [ ] Using the UD value when the transaction was written
- [ ] Display relative amounts using a specified UD value (UD from Q2-Q3 2019)
- [ ] `balance`: Using next estimated UD,...Options could allow to specify:
- [ ] #218: `history`:
- [ ] Using the UD value when the transaction was written
- [ ] Display relative amounts using a specified UD value (UD from Q2-Q3 2019)
- [ ] `balance`: Using next estimated UD, to know how much our balance is reducing
- [ ] `tx`: allow to send using previous UD
The fist option for the `history` command is the most valuable and interesting usage. This one should be the first one to be implemented.Backloghttps://git.duniter.org/clients/python/silkaj/-/issues/383Implement --dry-run/-n option on the send-document commands2021-03-21T18:27:42+01:00MoulImplement --dry-run/-n option on the send-document commands#### Commands
- [x] #88: `membership`
- [ ] `cert`
- [ ] #380: `tx`
- [ ] #89: `revocation`
- [ ] #90: `identity`#### Commands
- [x] #88: `membership`
- [ ] `cert`
- [ ] #380: `tx`
- [ ] #89: `revocation`
- [ ] #90: `identity`Backloghttps://git.duniter.org/clients/python/silkaj/-/issues/372Option to store a user generated document2022-03-29T11:24:06+02:00MoulOption to store a user generated document> Original idea from https://forum.duniter.org/t/re-emission-dune-transaction/8161
- [ ] option format: `--store/-s --file/-f=<path>`
- [ ] #305: `tx`: would allow to send (by any messaging mean) the document to someone else to sign i...> Original idea from https://forum.duniter.org/t/re-emission-dune-transaction/8161
- [ ] option format: `--store/-s --file/-f=<path>`
- [ ] #305: `tx`: would allow to send (by any messaging mean) the document to someone else to sign it for multi-sig: #144.
- [ ] `cert`
- [ ] `membership`
- [x] `revocation`: basic feature of this command
- [ ] `identity`
- [ ] `sign`: to add a signature to a transaction
- [ ] `send`: new command to send those documents
- [ ] ability to resend a documentBackloghttps://git.duniter.org/clients/python/silkaj/-/issues/370Check if the node requested is up to date2021-07-27T13:33:36+02:00MoulCheck if the node requested is up to dateFor each network-command, calculate the difference between last block’s time and current time.
If the difference it too big, print a warning message.
Or, check the block numbers between different nodes.For each network-command, calculate the difference between last block’s time and current time.
If the difference it too big, print a warning message.
Or, check the block numbers between different nodes.Backloghttps://git.duniter.org/clients/python/silkaj/-/issues/329HD Wallet support2021-04-08T16:44:51+02:00MoulHD Wallet support> https://git.duniter.org/clients/python/duniterpy/-/issues/129
>
> https://git.duniter.org/clients/python/sakia/-/issues/812
- [HD Wallets Explained: From High Level to Nuts and Bolts](https://medium.com/@harshagoli/hd-wallets-explaine...> https://git.duniter.org/clients/python/duniterpy/-/issues/129
>
> https://git.duniter.org/clients/python/sakia/-/issues/812
- [HD Wallets Explained: From High Level to Nuts and Bolts](https://medium.com/@harshagoli/hd-wallets-explained-from-high-level-to-nuts-and-bolts-9a41545f5b0)
- [Deterministic wallet](https://en.bitcoinwiki.org/wiki/Deterministic_wallet)
- ~~[What are HD Wallets? (Deterministic Wallet)](https://coinsutra.com/hd-wallets-deterministic-wallet/)~~Backloghttps://git.duniter.org/clients/python/silkaj/-/issues/325Read blockchain from Duniter local storage2021-04-08T14:24:03+02:00MoulRead blockchain from Duniter local storageReading the blockchain from Duniter local storage, could be specified by an option (`--local`) by commands using the blockchain (`verify`, `blocks`, …).
Rather than getting the blockchain from the client API, reading should be faster.
...Reading the blockchain from Duniter local storage, could be specified by an option (`--local`) by commands using the blockchain (`verify`, `blocks`, …).
Rather than getting the blockchain from the client API, reading should be faster.
https://forum.duniter.org/t/parser-lensemble-des-blocs-du-stockage-local-de-duniter/7344
https://forum.monnaie-libre.fr/t/la-toile-de-confiance-animee/11132Backloghttps://git.duniter.org/clients/python/silkaj/-/issues/324change "lookup" command to "check" command and display more info2021-04-07T16:11:02+02:00matograinechange "lookup" command to "check" command and display more infoA "check" function would be useful, instead of "id", to display more info :
`check <pubkey>` gives :
* identity is it is a member account
* identity status (pool/BC)
* \<pubkey>:\<checksum>
* "virgin" wallet (with or without in/out txs)...A "check" function would be useful, instead of "id", to display more info :
`check <pubkey>` gives :
* identity is it is a member account
* identity status (pool/BC)
* \<pubkey>:\<checksum>
* "virgin" wallet (with or without in/out txs)
`check <pubkey>:<checksum>` gives :
* \<pubkey> if right checksum ; WRONG PUBKEY if not
* identity is it is a member account
* identity status (pool/BC)
* "virgin" wallet (with or without in/out txs)
`check <identity>` gives:
* \<pubkey> if existing identity // NON-EXISTING IDENTITY if not
* identity status (pool/BC)
* \<pubkey>:\<checksum>
* "virgin" wallet (with or without in/out txs)
For now, no Duniter client gives the pubkey + checksum, although it is a useful information.
Maybe the checksum should be displayed separately. This should be discussed.Backloghttps://git.duniter.org/clients/python/silkaj/-/issues/315Display pending certifications in wot command2021-04-07T16:12:09+02:00MoulDisplay pending certifications in wot commandFrom `wot/requirements/<pubkey>`.
[Need found here](https://forum.duniter.org/t/g1-potentiellement-bloquee-fofo-rulemembershipenoughcerts/7204)From `wot/requirements/<pubkey>`.
[Need found here](https://forum.duniter.org/t/g1-potentiellement-bloquee-fofo-rulemembershipenoughcerts/7204)Backloghttps://git.duniter.org/clients/python/silkaj/-/issues/314Display option to display the generated document before sending it2022-06-05T15:28:04+02:00MoulDisplay option to display the generated document before sending itImplement `--display/-d` option for the five send-documents commands. Implement it as a general option that would be used by the five commands: `tx`, `cert`, `membership`, `identity`, and `revocation`.
It would display the generated doc...Implement `--display/-d` option for the five send-documents commands. Implement it as a general option that would be used by the five commands: `tx`, `cert`, `membership`, `identity`, and `revocation`.
It would display the generated document, and would ask to send it or not. Afterwards, a confirmation prompt ask to send it after a visual check have been performed.
This would allow to be sure we are sending the correct document and it can also be used for debugging and testing purposes.
### Tasks
- [x] By-pass prompts?: license approval, send doc confirmation. No, since it would allow to send a document by by-passing them.
- [x] Merge table summary and document display confirmations when this option is passed
- [x] Global option over command-specific options? Would not duplicate five decorators on the five send-documents commands.
- [x] Display the document with and without the signature in case the `key` is not defined
- [x] In case the document have been signed (`key` provided), suggest to send the document after displaying it
#### Commands
- [x] `cert`
- [x] #88: `membership`
- [ ] #380: `tx`
- [ ] #89: `revocation`
- [ ] #90: `identity`BacklogMoulMoulhttps://git.duniter.org/clients/python/silkaj/-/issues/305Allow to store then send transactions documents in an offline mode2022-03-29T11:23:39+02:00MoulAllow to store then send transactions documents in an offline mode> Original idea from [this forum post](https://forum.duniter.org/t/definir-un-format-securise-pour-les-trousseaux-de-cles-g1/6904/110?u=moul)
This would store what could be generated of the tx.
Once home with an Internet connexion, comp...> Original idea from [this forum post](https://forum.duniter.org/t/definir-un-format-securise-pour-les-trousseaux-de-cles-g1/6904/110?u=moul)
This would store what could be generated of the tx.
Once home with an Internet connexion, complete the transaction documents (with fields from the network and the signature) and send them.Backloghttps://git.duniter.org/clients/python/silkaj/-/issues/304When creating an authfile, prevent or advice to create an encrypted authfile ...2023-07-10T22:08:50+02:00MoulWhen creating an authfile, prevent or advice to create an encrypted authfile in case of an identity or if there is lots of money on the walletSince Silkaj discover that the pubkey:
- corresponds to an identity (not member, but could become one)
- locks a certain amount of units 1 k?
…advice or prevent creating a non encrypted authfile.
Use EWIF or [DUWIF](https://forum.dunite...Since Silkaj discover that the pubkey:
- corresponds to an identity (not member, but could become one)
- locks a certain amount of units 1 k?
…advice or prevent creating a non encrypted authfile.
Use EWIF or [DUWIF](https://forum.duniter.org/t/definir-un-format-securise-pour-les-trousseaux-de-cles-g1/6904).Backloghttps://git.duniter.org/clients/python/silkaj/-/issues/289Warn when transfering money to recipient without activity2022-11-02T18:20:02+01:00MoulWarn when transfering money to recipient without activityIdea from [this post on the forum](https://forum.duniter.org/t/securisation-des-virements-validation-de-la-clef-publique-de-destination/6901/18?u=moul).
- [ ] Check if there is any transaction activity
- [ ] Check identity, certificatio...Idea from [this post on the forum](https://forum.duniter.org/t/securisation-des-virements-validation-de-la-clef-publique-de-destination/6901/18?u=moul).
- [ ] Check if there is any transaction activity
- [ ] Check identity, certifications? Seems useless
This would prevent to send money to non active pubkeys. A prompt could ask to force sending to this non-active pubkeys.Backloghttps://git.duniter.org/clients/python/silkaj/-/issues/258Implement CSV, JSON, YAML, XML, SQL output formats2021-04-22T12:04:16+02:00matograineImplement CSV, JSON, YAML, XML, SQL output formatsCreate `--format=<format>` options, to get the result as script-readable into following formats:
- [ ] `csv`
- [ ] `json`
- [ ] `yaml`
- [ ] `xml`
- [ ] `sql`
### Commands
- [ ] `history`
- [ ] `wot`
- …Create `--format=<format>` options, to get the result as script-readable into following formats:
- [ ] `csv`
- [ ] `json`
- [ ] `yaml`
- [ ] `xml`
- [ ] `sql`
### Commands
- [ ] `history`
- [ ] `wot`
- …Backloghttps://git.duniter.org/clients/python/silkaj/-/issues/218Transaction history table improvements2022-03-16T09:21:19+01:00MoulTransaction history table improvements### First
- [ ] Write unit tests
- [ ] #203
---
### Then
##### Around
- [ ] Use the authentication methods, to get the pubkey we want to get the history of
- [ ] Allow to check transactions from several pubkeys: merge transactions
- [ ]...### First
- [ ] Write unit tests
- [ ] #203
---
### Then
##### Around
- [ ] Use the authentication methods, to get the pubkey we want to get the history of
- [ ] Allow to check transactions from several pubkeys: merge transactions
- [ ] Add options to display the resulting table output in a “`less`” (pager) or directly to `stdout`
- [ ] Paint green incoming txs and red outgoing txs
- [ ] Option to display or to hide the header for faster result (not sure how this will speed up the cmd)
- [ ] Allow to sort rows according to a column as for `net` cmd
- [ ] Add [progression bar](https://click.palletsprojects.com/en/7.x/utils/#showing-progress-bars) when `--uids` option is passed (will become useless with GVA) The progress bar might still be necessary to process the data.
##### Content management
- [x] !160: Add `--full-pubkey` option to display the whole pubkeys
- [ ] Separate columns for the `uids` and for the `pubkeys`
- [ ] #394: Allow to display txs between two dates rather than the whole txs list
- [ ] Always display pending txs (and an estimation date when it’s sure they will enter the blockchain)
- [ ] Option to display one of the UTXO, pending or both
- [ ] Options to display only one of absolute or relative amounts, or both
- [ ] Option to display created UD `--ud`, consummed
- [ ] #391: Display relative amounts using the UD value from a chosed moment or at the time of the tx.
- [ ] Add filter options (remove transaction based on comment matching or issuer)
- [ ] [Handle multi-issuer tx display](https://forum.monnaie-libre.fr/t/comptes-en-negatif/15117/5)
- [ ] Option to display only sent or only received txs
- [ ] Add an option to display inputs and outputs
- [ ] TBR: `--uids` request once duplicate between sent and received, would no longer make sense with GVA
##### Content handling
- [ ] Handle other outputs’ conditions (XHX, CSV, CLTV)Backlog