Comments (11)
Progress report
- Create POJOs for JsonRpcRequest and JsonRpcResponse: 0523aeb
- Start customizing the ObjectMapper with a CoinDeserializer: 91f7cc1
- Create and use more serializers and deserializers: 79d27ea
- More deserializers, custom "Module": 0d0d663
- Deserialize
listunspent
directly toList<UnspentOutput>
: 8d88420
What do you think, @dexX7 ?
from consensusj.
TODO:
- Split current
bitcoinj-json
project into two modules:-json
(jackson stuff) and-server
(services) - Make
bitcoinj-rpcclient
depend onbitcoinj-json
- Move serializers and deserializers from
-rpcclient
into a Jackson module inbitcoinj-json
.
from consensusj.
These changes are fantastic, really a great improvement!
In Omni Core we currently have a few results where some fields are omitted, depending on the state, e.g. whether a crowdsale is closed, or active, whether a transaction is confirmed or unconfirmed, which makes mapping to plain data objects probably pretty difficult. Makes me wonder..
from consensusj.
POJOs to create:
Block
object -getBlock
-- Done- List of block hashes -
setGenerate
-- Done SignedRawTransaction
-signRawTransaction
-- Done- List -
listReceivedByAddress
-- Done TxOutInfo
- getTxOut -- DoneServerInfo
- getInfo -- DoneChainTip
-getChainTips
-- DoneRawTransactionInfo
-getRawTransactionMap
-- DoneWalletTransactionInfo
-getTransaction
-- Done
Note: These changes are changing the API.
from consensusj.
some fields are omitted, depending on the state ... which makes mapping to plain data objects probably pretty difficult.
Can't those fields just be nullable in the POJO?
from consensusj.
List of UTXO - getTxOut
It returns a single unspent output or null, if the output is spent.
Can't those fields just be nullable in the POJO?
Ah, sure.
from consensusj.
List of UTXO - getTxOut
It returns a single unspent output or null, if the output is spent.
Thanks. Fixed, above.
from consensusj.
@dexX7 Finished all but (8) and (9) in the POJOs to create list. Any ideas or suggestions on (8) or (9)?
Update: I think the POJO definitions for (8) and (9) are definitely needed for the server implementation. The server will need to them to implement the standard JSON-RPC results and they can also be used for serializing JSON for the STOMP feed of transactions.
from consensusj.
If getTransaction
refers to gettransaction
, then this is a call to get a wallet transaction, which has some wallet specific information (such as listing potential conflicts, or the time of creation). If getRawTransactionMap
refers to getrawtransaction
, then it might either be mapped to a BitcoinJ transaction, or a new type: the verbose version has information about the chain (blocktime
, blockhash
, confirmations
(stateful)).
from consensusj.
Yes. In addition to mapping to org.bitcoinj.core.Transaction
we're going to need to create POJOs for both gettransaction
and getrawtransaction
. They're required for making the server version and, as you point out, they contain info that is not available in bitcoinj's Transaction
.
from consensusj.
Finished in v0.0.10: ff680a0.
from consensusj.
Related Issues (20)
- JsonRpcRequest: support params as maps (JSON-RPC 2.0 feature)
- JsonRpcServiceWrapper: use Jackson to map to custom types (after method is identified)
- Upgrade consensusj-jsonrpc and dependents to Java 17
- Numeric value (2345908848) out of range of int HOT 5
- Field "frozen" added to balance results HOT 1
- getRawTransaction hexEncoded Parse error HOT 2
- Best approach for NameLookupService? HOT 3
- Upgrade to Spring Boot 2.1.x HOT 1
- I want to use jsonrpc to connect bitcoind. What should I do? HOT 2
- Write User Guide
- JavaDoc (AsciiDoclet) won't build on JDK 11 HOT 2
- Add new Bitcoin RPC Method: generatetoaddress HOT 2
- Upgrade CLI modules to JDK 9 and use ToolProvider interface HOT 1
- Gradle build: migrate from deprecated `maven` plugin to `maven-publish` plugin HOT 1
- Resolve publishing issues with Spring Boot subprojects HOT 1
- Remove Spring Boot and Ratpack-based server apps HOT 5
- jakarta.inject migration is not complete HOT 3
- Publish jars on artifact repository (Bintray shutdown) HOT 5
- Publish to Maven Central
- Re-enable AsciiDoclet?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from consensusj.