Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Supporting chained-transactions #217

Open
Keith-CY opened this issue Jul 8, 2023 · 8 comments
Open

Supporting chained-transactions #217

Keith-CY opened this issue Jul 8, 2023 · 8 comments
Assignees
Labels
documentation Improvements or additions to documentation

Comments

@Keith-CY
Copy link
Member

Keith-CY commented Jul 8, 2023

This issue comes from #56 (comment)


【Preview sending transaction pop-ups】This will contain basic information about the build transaction and visual charts to help users understand the upcoming transaction submission and customize its settings in subsequent iterations.

  1. The transaction preview pop-up appears after the user clicks send on the send page.
  2. Preview information includes transaction hash, transaction information, transaction topology and operation area.
    • Transaction hash:Display full transaction hash and support replication
    • Transaction information:Display amount, fee, size and cyclesdata,no interaction.
    • Transaction topology:Includes transaction inputs and outputs,need to display the type and amount and support floating layers to display the full address.
    • Operation area:Confirmation and submission of transactions.
  3. Users need to be alerted when a transaction has been chained-up or removed.

Image

@Keith-CY Keith-CY added the documentation Improvements or additions to documentation label Jul 8, 2023
@Keith-CY Keith-CY added this to Neuron Jul 8, 2023
@Keith-CY
Copy link
Member Author

Keith-CY commented Jul 8, 2023

  1. I found there's only a send button on the window, which means it's mandatory to submit the transaction into the chained-transactions. IMO, the chained-transactions is an optional optimization because it may fail or take time. So the send button should be a menu of send directly and send in queue etc.
  2. What does the intermediate dialog(click next) do between send and confirm
  3. The chained-transactions can be viewed in a dialog with an open button next to each other. Is there a topology graph of the chained-transactions to be displayed?

@Keith-CY Keith-CY moved this to 📌Planning in Neuron Jul 8, 2023
@homura
Copy link

homura commented Jul 18, 2023

I suggest we can rename the title to "Supporting advanced transaction", because the chained-transaction should be an implicit feature that just allows a client to use an uncommitted cell, and they don't need to chain the transactions manually. After a (chained) transaction has committed, it would appear in the transaction list with a Pending status

But I think this draft design is still a good point to start for "advanced transaction". When a user enters the advanced mode, they can

  • preview the transaction structure consists of
    • (resolved) input cells
    • output cells
    • estimated cycles
    • estimated fee
    • size
    • hash
  • replace input cells
    • force to choose cells with data or type
  • adjust output cells
    • capacity of each one
    • construct cell manually, e.g. create a sUDT cell with 0 amount, pay fee by recipient, dived into smaller parts

@yanguoyu
Copy link

This feature will start after #218 because cell management will affect generate transactions.

  1. Add a parameter usePendingCell to control whether use pending cells when generating a transaction.

@Danie0918 Danie0918 assigned yanguoyu and unassigned Danie0918 Oct 24, 2023
@Danie0918 Danie0918 moved this from 📌Planning to 🏗 In Progress in Neuron Oct 24, 2023
@Danie0918
Copy link
Contributor

  1. Chained transactions - use pending cells to build transactions when enabled, submit transactions separately when not enabled
  2. Result popup - Removed. This is because there are currently results in the history and chained transactions cannot be predicted.

@yanguoyu
Copy link

yanguoyu commented Nov 27, 2023

I will create 2 PRs to complete this task.

@silySuper
Copy link

Only when the balance is insufficient can I build a transaction through the cell ?If not,when build a transaction through the cell what is the difference between balance is insufficient and balance is sufficient ?@Danie0918

@Danie0918
Copy link
Contributor

Only when the balance is insufficient can I build a transaction through the cell ?If not,when build a transaction through the cell what is the difference between balance is insufficient and balance is sufficient ?@Danie0918

I didn't quite get it . Chained transactions have nothing to do with balance, chained transaction mean lower fees and faster transaction speed.

@Keith-CY
Copy link
Member Author

Only when the balance is insufficient can I build a transaction through the cell ?If not,when build a transaction through the cell what is the difference between balance is insufficient and balance is sufficient ?@Danie0918

Chained transaction has a special usage that it can boost a pending transaction, named Child pay for parent(https://bitcoinops.org/en/topics/cpfp/#:~:text=Child%20Pays%20For%20Parent%20(CPFP)%20is%20a%20fee%20bumping%20technique,both%20transactions%20in%20a%20block.)

Briefly speaking, if a transaction_a was submitted with a lower fee, it will be de-prioritized. To fix the transaction fee, another transaction_b, which includes the outputs of transaction_a could be submitted with a higher fee, then the average fee of each transaction will be leveled up. Once the average fee is higher than the medium fee, these two transactions will be mined together.

@yanguoyu yanguoyu moved this from 🏗 In Progress to 🔎 Code Review in Neuron Dec 29, 2023
@Danie0918 Danie0918 moved this from 🔎 Code Review to 👀 Testing in Neuron Jan 15, 2024
@Danie0918 Danie0918 moved this from 👀 Testing to 🚩Pre Release in Neuron Jan 19, 2024
@Danie0918 Danie0918 moved this from 🚩Pre Release to ✅ Done in Neuron Aug 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
Status: ✅ Done
Development

No branches or pull requests

7 participants