Skip to content

Conversation

@philippem
Copy link
Collaborator

  • on liquid chains, provide additional information when a transaction input is a simplicity program
  • display program in base64 (not hex)

@imaginator
Copy link

+1 on this change. @philippem demoed it earlier to me and it looks great.

Copy link
Contributor

@delta1 delta1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM untested

@philippem philippem force-pushed the display-simplicity-inputs branch from 56ad7f3 to 3b31283 Compare October 31, 2025 16:13
@apoelstra
Copy link
Member

utACK 3b31283

Though eventually we should pull this stuff back into the API rather than doing Javascript parsing.

@roconnor-blockstream
Copy link

utACK

Copy link
Collaborator

@shesek shesek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great! Only some minor comments

@shesek
Copy link
Collaborator

shesek commented Nov 1, 2025

Though eventually we should pull this stuff back into the API rather than doing Javascript parsing.

This would be useful to have in the API, but perhaps behind a verbose/extended flag? It would result in larger JSONs due data getting duplicated in both the witness and the new fields parsed out of it, which could be avoided for clients that don't require it.

@philippem
Copy link
Collaborator Author

Though eventually we should pull this stuff back into the API rather than doing Javascript parsing.

This would be useful to have in the API, but perhaps behind a verbose/extended flag? It would result in larger JSONs due data getting duplicated in both the witness and the new fields parsed out of it, which could be avoided for clients that don't require it.

agree

@philippem philippem requested review from DeviaVir and shesek November 3, 2025 14:56
@roconnor-blockstream
Copy link

In the backend we can and maybe should do much more Simplicity parsing.

if (witnessLen !== 4 && !(witnessLen === 5 && hasAnnexBlock)) return false

const controlBlock = getControlBlock(vin.witness)
return controlBlock && (controlBlock.startsWith('be') || controlBlock.startsWith('bf'))
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we do something to give this operation more semantic meaning? Ex:

function hasSimplicityTapleafVersion(controlBlock) {
return controlBlock.startsWith('be') || controlBlock.startsWith('bf');
}

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good suggestion, added in subsequent commit

- simplicity program displayed in base64 (not hex)
@philippem philippem force-pushed the display-simplicity-inputs branch from 836cf6c to 066ce8d Compare November 7, 2025 21:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants