mirror of
https://github.com/bigchaindb/js-bigchaindb-driver.git
synced 2025-02-14 21:10:32 +01:00
fulfillment with values
This commit is contained in:
parent
5f2ee8c0d8
commit
860ce117e1
@ -1,3 +1,4 @@
|
||||
import makeFulfillment from './makeFulfillment'
|
||||
import makeInputTemplate from './makeInputTemplate'
|
||||
import makeTransaction from './makeTransaction'
|
||||
|
||||
@ -25,7 +26,8 @@ export default function makeCreateTransaction(asset, metadata, outputs, ...issue
|
||||
const assetDefinition = {
|
||||
'data': asset || null,
|
||||
}
|
||||
const inputs = issuers.map((issuer) => makeInputTemplate([issuer]))
|
||||
const inputs = issuers.map((issuer) => makeInputTemplate([issuer], null,
|
||||
makeFulfillment([issuer])))
|
||||
|
||||
return makeTransaction('CREATE', assetDefinition, metadata, outputs, inputs)
|
||||
}
|
||||
|
@ -1,3 +1,4 @@
|
||||
import clone from 'clone'
|
||||
import hashTransaction from './hashTransaction'
|
||||
|
||||
|
||||
@ -16,6 +17,8 @@ function makeTransactionTemplate() {
|
||||
|
||||
export default function makeTransaction(operation, asset, metadata = null, outputs = [], inputs = []) {
|
||||
const tx = makeTransactionTemplate()
|
||||
|
||||
const realInputs = clone(inputs)
|
||||
tx.operation = operation
|
||||
tx.asset = asset
|
||||
tx.metadata = metadata
|
||||
@ -23,6 +26,8 @@ export default function makeTransaction(operation, asset, metadata = null, outpu
|
||||
tx.outputs = outputs
|
||||
|
||||
// Hashing must be done after, as the hash is of the Transaction (up to now)
|
||||
tx.inputs[0].fulfillment = null
|
||||
tx.id = hashTransaction(tx)
|
||||
tx.inputs = realInputs
|
||||
return tx
|
||||
}
|
||||
|
@ -1,3 +1,4 @@
|
||||
import makeFulfillment from './makeFulfillment'
|
||||
import makeInputTemplate from './makeInputTemplate'
|
||||
import makeTransaction from './makeTransaction'
|
||||
|
||||
@ -36,14 +37,14 @@ export default function makeTransferTransaction(
|
||||
'output_index': outputIndex,
|
||||
'transaction_id': unspentTransaction.id,
|
||||
}
|
||||
|
||||
return makeInputTemplate(fulfilledOutput.public_keys, transactionLink)
|
||||
return makeInputTemplate(fulfilledOutput.public_keys, transactionLink,
|
||||
makeFulfillment(outputs[outputIndex].public_keys))
|
||||
})
|
||||
|
||||
const assetLink = {
|
||||
'id': unspentTransaction.operation === 'CREATE' ? unspentTransaction.id
|
||||
: unspentTransaction.asset.id
|
||||
}
|
||||
const makeT = makeTransaction('TRANSFER', assetLink, metadata, outputs, inputs)
|
||||
|
||||
return makeTransaction('TRANSFER', assetLink, metadata, outputs, inputs)
|
||||
return makeT
|
||||
}
|
||||
|
@ -21,14 +21,20 @@ import serializeTransactionIntoCanonicalString from './serializeTransactionIntoC
|
||||
export default function signTransaction(transaction, ...privateKeys) {
|
||||
const signedTx = clone(transaction)
|
||||
signedTx.inputs.forEach((input, index) => {
|
||||
const privateKey = privateKeys[index]
|
||||
const privateKeyBuffer = new Buffer(base58.decode(privateKey))
|
||||
const serializedTransaction = serializeTransactionIntoCanonicalString(transaction)
|
||||
const ed25519Fulfillment = new cc.Ed25519Sha256()
|
||||
ed25519Fulfillment.sign(new Buffer(serializedTransaction), privateKeyBuffer)
|
||||
const fulfillmentUri = ed25519Fulfillment.serializeUri()
|
||||
console.log('inpuuuuut', input)
|
||||
|
||||
input.fulfillment = fulfillmentUri
|
||||
if (input.fulfillment.type === 'ed25519-sha-256') {
|
||||
transaction.inputs[0].fulfillment = null
|
||||
const privateKey = privateKeys[index]
|
||||
const privateKeyBuffer = new Buffer(base58.decode(privateKey))
|
||||
const serializedTransaction = serializeTransactionIntoCanonicalString(transaction)
|
||||
const ed25519Fulfillment = new cc.Ed25519Sha256()
|
||||
ed25519Fulfillment.sign(new Buffer(serializedTransaction), privateKeyBuffer)
|
||||
const fulfillmentUri = ed25519Fulfillment.serializeUri()
|
||||
input.fulfillment = fulfillmentUri
|
||||
} else if (input.fulfillment.type === 'threshold-sha-256') {
|
||||
input.fulfillment = 'fulfillmentUri'
|
||||
}
|
||||
})
|
||||
|
||||
return signedTx
|
||||
|
Loading…
x
Reference in New Issue
Block a user