camaraproject / BlockchainPublicAddress

Repository to describe, develop, document and test the Blockchain Public Address API family
Apache License 2.0
6 stars 4 forks source link

Deep Into Use Cases #11

Closed PedroDiez closed 1 year ago

PedroDiez commented 1 year ago

Problem description Provide more info about Use Cases

Expected action Based on discussion output, potential enhancements in https://github.com/camaraproject/BlockchainPublicAddress/blob/2ef709c7b7a132c67f79739441eb9a185a9546a0/documentation/API_documentation/BlockchainPublicAddress_User_Story.md

Additional context N/A

PedroDiez commented 1 year ago

Having as a reference: https://github.com/camaraproject/BlockchainPublicAddress/blob/main/documentation/API_documentation/BlockchainPublicAddress_User_Story.md

Use Case Exposition:

Initial Use Cases are intented to be able to perform transactions between user's blockchains regarding cryptocurrencies or digital assets. Within the scope of this API proposal is the functionality regarding to binding/unbinding a given user's blockchain to a friendly identifier (phone number) as well as to fetch the list of user's blockchains binding to a given phone number.

So by means of the binding association, it can be identified the blockchains with which operate, accessing them vía user's phone numbers.

The fact to bind a user's blockchain (public address) to a given phone number is due to is to make easier to end users and developers the management of blockchains and also a way for Telco Operators to expose this association by means of a natural user identifier.

Based on aforementioned, there are several preconditions or facts when using this solution:

  • One blockchain has no restrictions at all. Parameter is not present
  • One blockchain has some restrictions. Parameter (array) is present, indicanting one or more currencies.
PedroDiez commented 1 year ago

Specific comments per endpoint

1) Binding/Unbinding Process POST /blockchain-public-addresses DELETE /blockchain-public-addresses/{id}

Rationale: Only the user of the phone number must be able to perform the bind/unbind as he/she is performed an action over user resources (phone number and User's Blockchain Public Address)

2) Get Blockchains associated to a given phone number GET /blockchain-public-addresses

Rationale: The object of this endpoint is to obtain the Blockchain addresses associadted to a given phone_number in order to be able to manage transactions. Then this endpoint can be used via 2-legged token (i.e client_credentials grant) as input phone number even cannot belong to the Telco Operator receiving the request, so this case is needed in order to send this request towards end user's operator. Also could be used in 3-legged way (as point 1), however in this case it is not needed the check that input phone number matches with Access Token information.

PedroDiez commented 1 year ago

Some Use Cases TEF product has commented:

PedroDiez commented 1 year ago

I will be closing the issue this week if no further comments about that