mirror of
https://github.com/bigchaindb/js-bigchaindb-driver.git
synced 2024-12-27 23:27:50 +01:00
Merge pull request #197 from bigchaindb/adding_asyncMethod
adding async method
This commit is contained in:
commit
5c977696ba
@ -51,14 +51,17 @@ Older versions
|
||||
anymore the `pollStatusAndFetchTransaction()` method as there are three
|
||||
different ways of posting a transaction:
|
||||
|
||||
- `async` using the `postTransaction`: the response will return immediately and not wait to see if the transaction is valid.
|
||||
- `commit` using the `postTransaction` or the `postTransactionCommit`: the response will return after the transaction is committed to a block.
|
||||
- `sync` using the `postTransactionSync`: the response will return after the transaction is validated.
|
||||
- `commit` using the `postTransactionCommit`: the response will return after the transaction is committed to a block.
|
||||
- `async` using the `postTransactionAsync`: the response will return immediately and not wait to see if the transaction is valid.
|
||||
|
||||
By default in the docs we will use the `postTransactionCommit` as is way of
|
||||
being sure that the transaction is validated and commited to a block, so
|
||||
there will not be any issue if you try to do any other action with the asset immediately.
|
||||
|
||||
Note: In order to not create breaking changes, both methods `postTransaction` and `postTransactionCommit` are kept although
|
||||
they do exactly the same
|
||||
|
||||
|
||||
**Version 3.2.x**
|
||||
|
||||
|
@ -24,6 +24,7 @@ export default class Connection {
|
||||
'outputs': 'outputs',
|
||||
'transactions': 'transactions',
|
||||
'transactionsSync': 'transactions?mode=sync',
|
||||
'transactionsAsync': 'transactions?mode=async',
|
||||
'transactionsCommit': 'transactions?mode=commit',
|
||||
'transactionsDetail': 'transactions/%(transactionId)s',
|
||||
'assets': 'assets',
|
||||
@ -118,10 +119,7 @@ export default class Connection {
|
||||
* @param transaction
|
||||
*/
|
||||
postTransaction(transaction) {
|
||||
return this._req(this.getApiUrls('transactions'), {
|
||||
method: 'POST',
|
||||
jsonBody: transaction
|
||||
})
|
||||
return this.postTransactionCommit(transaction)
|
||||
}
|
||||
|
||||
/**
|
||||
@ -134,6 +132,18 @@ export default class Connection {
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param transaction
|
||||
*/
|
||||
postTransactionAsync(transaction) {
|
||||
return this._req(this.getApiUrls('transactionsAsync'), {
|
||||
method: 'POST',
|
||||
jsonBody: transaction
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param transaction
|
||||
*/
|
||||
|
@ -27,6 +27,9 @@ test('Generate API URLS', t => {
|
||||
'blocksDetail': 'blocks/%(blockHeight)s',
|
||||
'outputs': 'outputs',
|
||||
'transactions': 'transactions',
|
||||
'transactionsSync': 'transactions?mode=sync',
|
||||
'transactionsAsync': 'transactions?mode=async',
|
||||
'transactionsCommit': 'transactions?mode=commit',
|
||||
'transactionsDetail': 'transactions/%(transactionId)s',
|
||||
'assets': 'assets',
|
||||
}
|
||||
|
@ -35,7 +35,39 @@ test('Valid CREATE transaction', t => {
|
||||
)
|
||||
const txSigned = Transaction.signTransaction(tx, alice.privateKey)
|
||||
|
||||
return conn.postTransactionCommit(txSigned)
|
||||
return conn.postTransaction(txSigned)
|
||||
.then(resTx => t.truthy(resTx))
|
||||
})
|
||||
|
||||
|
||||
test('Valid CREATE transaction using async', t => {
|
||||
const conn = new Connection(API_PATH)
|
||||
|
||||
const tx = Transaction.makeCreateTransaction(
|
||||
asset(),
|
||||
metaData,
|
||||
[aliceOutput],
|
||||
alice.publicKey
|
||||
)
|
||||
const txSigned = Transaction.signTransaction(tx, alice.privateKey)
|
||||
|
||||
return conn.postTransactionAsync(txSigned)
|
||||
.then(resTx => t.truthy(resTx))
|
||||
})
|
||||
|
||||
|
||||
test('Valid CREATE transaction using sync', t => {
|
||||
const conn = new Connection(API_PATH)
|
||||
|
||||
const tx = Transaction.makeCreateTransaction(
|
||||
asset(),
|
||||
metaData,
|
||||
[aliceOutput],
|
||||
alice.publicKey
|
||||
)
|
||||
const txSigned = Transaction.signTransaction(tx, alice.privateKey)
|
||||
|
||||
return conn.postTransactionSync(txSigned)
|
||||
.then(resTx => t.truthy(resTx))
|
||||
})
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user