HomePhabricator

[ecash-agora] Add `agora.py` plugin to index ONESHOT offers

Description

[ecash-agora] Add agora.py plugin to index ONESHOT offers

Summary:
Now that we have plugin support for Chronik, we can build a plugin to index Agora Oneshot offers efficiently.

Using the /utxos endpoint for the Agora plugin, users can basically fetch the equivalent of an orderbook from the blockchain.

D16551 allows us to use the test_framework's CScript class and all the opcodes.

We have to add a hash160 function; the current impl requires it to be enabled in OpenSSL, but we might add it from ripemd160.py from the test_framework too at some point, or add a function from Rust.

We also add Agora and AgoraOffer to ecash-agora, allowing easy fetching, accepting and cancelling of offers via the plugin, and to have a precise estimation of the required sats.

Depends on D16674.

Test Plan: npm run integration-tests

Reviewers: Fabien, #bitcoin_abc, bytesofman

Reviewed By: #bitcoin_abc, bytesofman

Subscribers: bytesofman

Differential Revision: https://reviews.bitcoinabc.org/D16544

Event Timeline