### Table of Contents - [Ed25519Keypair][1] - [Parameters][2] - [Properties][3] - [Connection][4] - [Parameters][5] - [getBlock][6] - [Parameters][7] - [getTransaction][8] - [Parameters][9] - [listBlocks][10] - [Parameters][11] - [listOutputs][12] - [Parameters][13] - [listTransactions][14] - [Parameters][15] - [postTransaction][16] - [Parameters][17] - [postTransactionSync][18] - [Parameters][19] - [postTransactionAsync][20] - [Parameters][21] - [postTransactionCommit][22] - [Parameters][23] - [searchAssets][24] - [Parameters][25] - [searchMetadata][26] - [Parameters][27] - [Transaction][28] - [serializeTransactionIntoCanonicalString][29] - [Parameters][30] - [makeCreateTransaction][31] - [Parameters][32] - [makeEd25519Condition][33] - [Parameters][34] - [makeOutput][35] - [Parameters][36] - [makeSha256Condition][37] - [Parameters][38] - [makeThresholdCondition][39] - [Parameters][40] - [makeTransferTransaction][41] - [Parameters][42] - [signTransaction][43] - [Parameters][44] - [delegateSignTransaction][45] - [Parameters][46] - [delegateSignTransactionAsync][47] - [Parameters][48] - [ccJsonLoad][49] - [Parameters][50] - [ccJsonify][51] - [Parameters][52] ## Ed25519Keypair [src/Ed25519Keypair.js:16-21][53] Type: [Object][54] ### Parameters - `seed` **[Buffer][55]?** A seed that will be used as a key derivation function ### Properties - `publicKey` **[string][56]** - `privateKey` **[string][56]** ## Connection [src/connection.js:21-199][57] ### Parameters - `nodes` - `headers` **[Object][54]** Common headers for every request (optional, default `{}`) - `timeout` **float** Optional timeout in secs (optional, default `DEFAULT_TIMEOUT`) ### getBlock [src/connection.js:79-85][58] #### Parameters - `blockHeight` ### getTransaction [src/connection.js:90-96][59] #### Parameters - `transactionId` ### listBlocks [src/connection.js:102-108][60] #### Parameters - `transactionId` - `status` ### listOutputs [src/connection.js:114-126][61] #### Parameters - `publicKey` - `spent` ### listTransactions [src/connection.js:132-139][62] #### Parameters - `assetId` - `operation` ### postTransaction [src/connection.js:144-146][63] #### Parameters - `transaction` ### postTransactionSync [src/connection.js:151-156][64] #### Parameters - `transaction` ### postTransactionAsync [src/connection.js:161-166][65] #### Parameters - `transaction` ### postTransactionCommit [src/connection.js:171-176][66] #### Parameters - `transaction` ### searchAssets [src/connection.js:181-187][67] #### Parameters - `search` ### searchMetadata [src/connection.js:192-198][68] #### Parameters - `search` ## Transaction [src/transaction.js:16-288][69] Construct Transactions ### serializeTransactionIntoCanonicalString [src/transaction.js:22-29][70] Canonically serializes a transaction into a string by sorting the keys #### Parameters - `transaction` - `null` **[Object][54]** (transaction) Returns **[string][56]** a canonically serialized Transaction ### makeCreateTransaction [src/transaction.js:80-87][71] Generate a `CREATE` transaction holding the `asset`, `metadata`, and `outputs`, to be signed by the `issuers`. #### Parameters - `asset` **[Object][54]** Created asset's data - `metadata` **[Object][54]** Metadata for the Transaction - `outputs` **[Array][72]<[Object][54]>** Array of Output objects to add to the Transaction. Think of these as the recipients of the asset after the transaction. For `CREATE` Transactions, this should usually just be a list of Outputs wrapping Ed25519 Conditions generated from the issuers' public keys (so that the issuers are the recipients of the created asset). - `issuers` **...[Array][72]<[string][56]>** Public key of one or more issuers to the asset being created by this Transaction. Note: Each of the private keys corresponding to the given public keys MUST be used later (and in the same order) when signing the Transaction (`signTransaction()`). Returns **[Object][54]** Unsigned transaction -- make sure to call signTransaction() on it before sending it off! ### makeEd25519Condition [src/transaction.js:96-101][73] Create an Ed25519 Cryptocondition from an Ed25519 public key to put into an Output of a Transaction #### Parameters - `publicKey` **[string][56]** base58 encoded Ed25519 public key for the recipient of the Transaction - `json` **[boolean][74]** If true returns a json object otherwise a crypto-condition type (optional, default `true`) Returns **[Object][54]** Ed25519 Condition (that will need to wrapped in an Output) ### makeOutput [src/transaction.js:111-131][75] Create an Output from a Condition. Note: Assumes the given Condition was generated from a single public key (e.g. a Ed25519 Condition) #### Parameters - `condition` **[Object][54]** Condition (e.g. a Ed25519 Condition from `makeEd25519Condition()`) - `amount` **[string][56]** Amount of the output (optional, default `'1'`) Returns **[Object][54]** An Output usable in a Transaction ### makeSha256Condition [src/transaction.js:139-143][76] Create a Preimage-Sha256 Cryptocondition from a secret to put into an Output of a Transaction #### Parameters - `preimage` **[string][56]** Preimage to be hashed and wrapped in a crypto-condition - `json` **[boolean][74]** If true returns a json object otherwise a crypto-condition type (optional, default `true`) Returns **[Object][54]** Preimage-Sha256 Condition (that will need to wrapped in an Output) ### makeThresholdCondition [src/transaction.js:152-162][77] Create an Sha256 Threshold Cryptocondition from threshold to put into an Output of a Transaction #### Parameters - `threshold` **[number][78]** - `subconditions` **[Array][72]** (optional, default `[]`) - `json` **[boolean][74]** If true returns a json object otherwise a crypto-condition type (optional, default `true`) Returns **[Object][54]** Sha256 Threshold Condition (that will need to wrapped in an Output) ### makeTransferTransaction [src/transaction.js:185-206][79] Generate a `TRANSFER` transaction holding the `asset`, `metadata`, and `outputs`, that fulfills the `fulfilledOutputs` of `unspentTransaction`. #### Parameters - `unspentOutputs` - `outputs` **[Array][72]<[Object][54]>** Array of Output objects to add to the Transaction. Think of these as the recipients of the asset after the transaction. For `TRANSFER` Transactions, this should usually just be a list of Outputs wrapping Ed25519 Conditions generated from the public keys of the recipients. - `metadata` **[Object][54]** Metadata for the Transaction - `unspentTransaction` **[Object][54]** Previous Transaction you have control over (i.e. can fulfill its Output Condition) - `OutputIndices` **...[number][78]** Indices of the Outputs in `unspentTransaction` that this Transaction fulfills. Note that listed public keys listed must be used (and in the same order) to sign the Transaction (`signTransaction()`). Returns **[Object][54]** Unsigned transaction -- make sure to call signTransaction() on it before sending it off! ### signTransaction [src/transaction.js:219-243][80] Sign the given `transaction` with the given `privateKey`s, returning a new copy of `transaction` that's been signed. Note: Only generates Ed25519 Fulfillments. Thresholds and other types of Fulfillments are left as an exercise for the user. #### Parameters - `transaction` **[Object][54]** Transaction to sign. `transaction` is not modified. - `privateKeys` **...[string][56]** Private keys associated with the issuers of the `transaction`. Looped through to iteratively sign any Input Fulfillments found in the `transaction`. Returns **[Object][54]** The signed version of `transaction`. ### delegateSignTransaction [src/transaction.js:252-265][81] Delegate signing of the given `transaction` returning a new copy of `transaction` that's been signed. #### Parameters - `transaction` **[Object][54]** Transaction to sign. `transaction` is not modified. - `signFn` **[Function][82]** Function signing the transaction, expected to return the fulfillment. Returns **[Object][54]** The signed version of `transaction`. ### delegateSignTransactionAsync [src/transaction.js:274-287][83] Delegate signing of the given `transaction` returning a new copy of `transaction` that's been signed. #### Parameters - `transaction` **[Object][54]** Transaction to sign. `transaction` is not modified. - `signFn` **[Function][82]** Function signing the transaction, expected to resolve the fulfillment. Returns **[Promise][84]<[Object][54]>** The signed version of `transaction`. ## ccJsonLoad [src/utils/ccJsonLoad.js:13-44][85] Loads a crypto-condition class (Fulfillment or Condition) from a BigchainDB JSON object ### Parameters - `conditionJson` **[Object][54]** Returns **cc.Condition** Ed25519 Condition (that will need to wrapped in an Output) ## ccJsonify [src/utils/ccJsonify.js:12-65][86] Serializes a crypto-condition class (Condition or Fulfillment) into a BigchainDB-compatible JSON ### Parameters - `fulfillment` **cc.Fulfillment** base58 encoded Ed25519 public key for recipient of the Transaction Returns **[Object][54]** Ed25519 Condition (that will need to wrapped in an Output) [1]: #ed25519keypair [2]: #parameters [3]: #properties [4]: #connection [5]: #parameters-1 [6]: #getblock [7]: #parameters-2 [8]: #gettransaction [9]: #parameters-3 [10]: #listblocks [11]: #parameters-4 [12]: #listoutputs [13]: #parameters-5 [14]: #listtransactions [15]: #parameters-6 [16]: #posttransaction [17]: #parameters-7 [18]: #posttransactionsync [19]: #parameters-8 [20]: #posttransactionasync [21]: #parameters-9 [22]: #posttransactioncommit [23]: #parameters-10 [24]: #searchassets [25]: #parameters-11 [26]: #searchmetadata [27]: #parameters-12 [28]: #transaction [29]: #serializetransactionintocanonicalstring [30]: #parameters-13 [31]: #makecreatetransaction [32]: #parameters-14 [33]: #makeed25519condition [34]: #parameters-15 [35]: #makeoutput [36]: #parameters-16 [37]: #makesha256condition [38]: #parameters-17 [39]: #makethresholdcondition [40]: #parameters-18 [41]: #maketransfertransaction [42]: #parameters-19 [43]: #signtransaction [44]: #parameters-20 [45]: #delegatesigntransaction [46]: #parameters-21 [47]: #delegatesigntransactionasync [48]: #parameters-22 [49]: #ccjsonload [50]: #parameters-23 [51]: #ccjsonify [52]: #parameters-24 [53]: https://github.com/bigchaindb/js-bigchaindb-driver/blob/76c877c649801f0a26351d03237e0b59c18bd3ef/src/Ed25519Keypair.js#L16-L21 "Source code on GitHub" [54]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object [55]: https://nodejs.org/api/buffer.html [56]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String [57]: https://github.com/bigchaindb/js-bigchaindb-driver/blob/76c877c649801f0a26351d03237e0b59c18bd3ef/src/connection.js#L21-L199 "Source code on GitHub" [58]: https://github.com/bigchaindb/js-bigchaindb-driver/blob/76c877c649801f0a26351d03237e0b59c18bd3ef/src/connection.js#L79-L85 "Source code on GitHub" [59]: https://github.com/bigchaindb/js-bigchaindb-driver/blob/76c877c649801f0a26351d03237e0b59c18bd3ef/src/connection.js#L90-L96 "Source code on GitHub" [60]: https://github.com/bigchaindb/js-bigchaindb-driver/blob/76c877c649801f0a26351d03237e0b59c18bd3ef/src/connection.js#L102-L108 "Source code on GitHub" [61]: https://github.com/bigchaindb/js-bigchaindb-driver/blob/76c877c649801f0a26351d03237e0b59c18bd3ef/src/connection.js#L114-L126 "Source code on GitHub" [62]: https://github.com/bigchaindb/js-bigchaindb-driver/blob/76c877c649801f0a26351d03237e0b59c18bd3ef/src/connection.js#L132-L139 "Source code on GitHub" [63]: https://github.com/bigchaindb/js-bigchaindb-driver/blob/76c877c649801f0a26351d03237e0b59c18bd3ef/src/connection.js#L144-L146 "Source code on GitHub" [64]: https://github.com/bigchaindb/js-bigchaindb-driver/blob/76c877c649801f0a26351d03237e0b59c18bd3ef/src/connection.js#L151-L156 "Source code on GitHub" [65]: https://github.com/bigchaindb/js-bigchaindb-driver/blob/76c877c649801f0a26351d03237e0b59c18bd3ef/src/connection.js#L161-L166 "Source code on GitHub" [66]: https://github.com/bigchaindb/js-bigchaindb-driver/blob/76c877c649801f0a26351d03237e0b59c18bd3ef/src/connection.js#L171-L176 "Source code on GitHub" [67]: https://github.com/bigchaindb/js-bigchaindb-driver/blob/76c877c649801f0a26351d03237e0b59c18bd3ef/src/connection.js#L181-L187 "Source code on GitHub" [68]: https://github.com/bigchaindb/js-bigchaindb-driver/blob/76c877c649801f0a26351d03237e0b59c18bd3ef/src/connection.js#L192-L198 "Source code on GitHub" [69]: https://github.com/bigchaindb/js-bigchaindb-driver/blob/76c877c649801f0a26351d03237e0b59c18bd3ef/src/transaction.js#L16-L288 "Source code on GitHub" [70]: https://github.com/bigchaindb/js-bigchaindb-driver/blob/76c877c649801f0a26351d03237e0b59c18bd3ef/src/transaction.js#L22-L29 "Source code on GitHub" [71]: https://github.com/bigchaindb/js-bigchaindb-driver/blob/76c877c649801f0a26351d03237e0b59c18bd3ef/src/transaction.js#L80-L87 "Source code on GitHub" [72]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array [73]: https://github.com/bigchaindb/js-bigchaindb-driver/blob/76c877c649801f0a26351d03237e0b59c18bd3ef/src/transaction.js#L96-L101 "Source code on GitHub" [74]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean [75]: https://github.com/bigchaindb/js-bigchaindb-driver/blob/76c877c649801f0a26351d03237e0b59c18bd3ef/src/transaction.js#L111-L131 "Source code on GitHub" [76]: https://github.com/bigchaindb/js-bigchaindb-driver/blob/76c877c649801f0a26351d03237e0b59c18bd3ef/src/transaction.js#L139-L143 "Source code on GitHub" [77]: https://github.com/bigchaindb/js-bigchaindb-driver/blob/76c877c649801f0a26351d03237e0b59c18bd3ef/src/transaction.js#L152-L162 "Source code on GitHub" [78]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number [79]: https://github.com/bigchaindb/js-bigchaindb-driver/blob/76c877c649801f0a26351d03237e0b59c18bd3ef/src/transaction.js#L185-L206 "Source code on GitHub" [80]: https://github.com/bigchaindb/js-bigchaindb-driver/blob/76c877c649801f0a26351d03237e0b59c18bd3ef/src/transaction.js#L219-L243 "Source code on GitHub" [81]: https://github.com/bigchaindb/js-bigchaindb-driver/blob/76c877c649801f0a26351d03237e0b59c18bd3ef/src/transaction.js#L252-L265 "Source code on GitHub" [82]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function [83]: https://github.com/bigchaindb/js-bigchaindb-driver/blob/76c877c649801f0a26351d03237e0b59c18bd3ef/src/transaction.js#L274-L287 "Source code on GitHub" [84]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise [85]: https://github.com/bigchaindb/js-bigchaindb-driver/blob/76c877c649801f0a26351d03237e0b59c18bd3ef/src/utils/ccJsonLoad.js#L13-L44 "Source code on GitHub" [86]: https://github.com/bigchaindb/js-bigchaindb-driver/blob/76c877c649801f0a26351d03237e0b59c18bd3ef/src/utils/ccJsonify.js#L12-L65 "Source code on GitHub"