mirror of
https://github.com/bigchaindb/js-bigchaindb-driver.git
synced 2025-02-14 21:10:32 +01:00
sign therhold condition
This commit is contained in:
parent
5e838447db
commit
d0b059829f
@ -26,8 +26,8 @@ export default function makeCreateTransaction(asset, metadata, outputs, ...issue
|
||||
const assetDefinition = {
|
||||
'data': asset || null,
|
||||
}
|
||||
const inputs = issuers.map((issuer) => makeInputTemplate([issuer], null,
|
||||
makeFulfillment([issuer])))
|
||||
// Create transaction has 1 and just 1 input
|
||||
const inputs = makeInputTemplate(issuers, null, makeFulfillment(issuers))
|
||||
|
||||
return makeTransaction('CREATE', assetDefinition, metadata, outputs, inputs)
|
||||
return makeTransaction('CREATE', assetDefinition, metadata, outputs, [inputs])
|
||||
}
|
||||
|
@ -22,18 +22,28 @@ export default function signTransaction(transaction, ...privateKeys) {
|
||||
const signedTx = clone(transaction)
|
||||
signedTx.inputs.forEach((input, index) => {
|
||||
console.log('inpuuuuut', input)
|
||||
transaction.inputs[index].fulfillment = null // OJOOO
|
||||
const serializedTransaction = serializeTransactionIntoCanonicalString(transaction)
|
||||
|
||||
if (input.fulfillment.type === 'ed25519-sha-256') {
|
||||
transaction.inputs[0].fulfillment = null
|
||||
const privateKey = privateKeys[index]
|
||||
const privateKey = privateKeys[index] // TODO index is not correct here. just work for some cases
|
||||
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'
|
||||
const thresholdFulfillment = new cc.ThresholdSha256()
|
||||
input.fulfillment.subconditions.forEach((subcondition, indexSubcondition) => {
|
||||
const privateKey = privateKeys[index + indexSubcondition] // TODO index is not correct here. just work for some cases
|
||||
const privateKeyBuffer = new Buffer(base58.decode(privateKey))
|
||||
const ed25519subFulfillment = new cc.Ed25519Sha256()
|
||||
ed25519subFulfillment.sign(new Buffer(serializedTransaction), privateKeyBuffer)
|
||||
thresholdFulfillment.addSubfulfillmentUri(ed25519subFulfillment)
|
||||
})
|
||||
thresholdFulfillment.setThreshold(1) // defaults to subconditions.length
|
||||
const fulfillmentUri = thresholdFulfillment.serializeUri()
|
||||
input.fulfillment = fulfillmentUri
|
||||
}
|
||||
})
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user