@dashevo/dashcore-lib
Advanced tools
Comparing version 0.17.6 to 0.17.7
@@ -53,30 +53,58 @@ /* eslint-disable */ | ||
message: 'Internal Error on GovObject {0}', | ||
errors: [{ | ||
name: 'Proposal', | ||
message: 'Internal Error on Proposal {0}', | ||
errors: [{ | ||
name: 'invalidDate', | ||
message: 'Invalid Date' | ||
}, { | ||
name: 'invalidDateWindow', | ||
message: 'Invalid Timespan' | ||
}, { | ||
name: 'invalidAddress', | ||
message: 'Invalid Address' | ||
errors: [ | ||
{ | ||
name: 'Proposal', | ||
message: 'Internal Error on Proposal {0}', | ||
errors: [{ | ||
name: 'invalidDate', | ||
message: 'Invalid Date' | ||
}, { | ||
name: 'invalidDateWindow', | ||
message: 'Invalid Timespan' | ||
}, { | ||
name: 'invalidAddress', | ||
message: 'Invalid Address' | ||
}, | ||
{ | ||
name: 'invalidP2SHAddress', | ||
message: 'Invalid P2SHAddress' | ||
}, | ||
{ | ||
name: 'invalidPayment', | ||
message: 'Invalid Payment Amount' | ||
}, { | ||
name: 'invalidUrl', | ||
message: 'Invalid URL' | ||
}, { | ||
name: 'invalidName', | ||
message: 'Invalid Name' | ||
}] | ||
}, | ||
{ | ||
name: 'invalidP2SHAddress', | ||
message: 'Invalid P2SHAddress' | ||
name: 'Trigger', | ||
message: 'Internal Error on Trigger {0}', | ||
errors: [ | ||
{ | ||
name: 'invalidEBH', | ||
message: 'Invalid Event Block Height' | ||
}, | ||
{ | ||
name: 'fieldsMismatch', | ||
message: 'Mismatched number of addresses / amounts / proposals' | ||
}, | ||
{ | ||
name: 'invalidAddresses', | ||
message: 'Invalid Payment Addresses' | ||
}, | ||
{ | ||
name: 'invalidP2SHAddresses', | ||
message: 'Invalid P2SH Payment Addresses' | ||
}, | ||
{ | ||
name: 'invalidPaymentAmounts', | ||
message: 'Invalid Payment Amounts' | ||
}, | ||
] | ||
}, | ||
{ | ||
name: 'invalidPayment', | ||
message: 'Invalid Payment Amount' | ||
}, { | ||
name: 'invalidUrl', | ||
message: 'Invalid URL' | ||
}, { | ||
name: 'invalidName', | ||
message: 'Invalid Name' | ||
}] | ||
}] | ||
] | ||
}, { | ||
@@ -83,0 +111,0 @@ name: 'Transaction', |
@@ -103,2 +103,6 @@ /* eslint-disable */ | ||
return proposal; | ||
case 2: | ||
var trigger = new GovObject.Trigger; | ||
trigger = trigger.fromObject(govObject); | ||
return trigger; | ||
default: | ||
@@ -105,0 +109,0 @@ throw new Error('Unhandled GovObject type'); |
@@ -1,6 +0,4 @@ | ||
/* eslint-disable */ | ||
// TODO: Remove previous line and work through linting issues at next edit | ||
module.exports = require('./govobject'); | ||
module.exports.Proposal = require('./types/proposal'); | ||
module.exports.Trigger = require('./types/trigger'); |
@@ -10,3 +10,2 @@ /* eslint-disable */ | ||
var AbstractPayload = require('./abstractpayload'); | ||
var Script = require('../../script'); | ||
@@ -87,6 +86,8 @@ var CURRENT_PAYLOAD_VERSION = 1; | ||
payload.signersSize = payloadBufferReader.readVarintNum(); | ||
payload.signers = payloadBufferReader.read(Math.floor((payload.signersSize + 7) / 8)).toString('hex'); | ||
var signersBytesToRead = Math.floor((payload.signersSize + 7) / 8) || 1; | ||
payload.signers = payloadBufferReader.read(signersBytesToRead).toString('hex'); | ||
payload.validMembersSize = payloadBufferReader.readVarintNum(); | ||
payload.validMembers = payloadBufferReader.read(Math.floor((payload.validMembersSize + 7) / 8)).toString('hex'); | ||
var validMembersBytesToRead = Math.floor((payload.validMembersSize + 7) / 8) || 1; | ||
payload.validMembers = payloadBufferReader.read(validMembersBytesToRead).toString('hex'); | ||
@@ -149,3 +150,3 @@ payload.quorumPublicKey = payloadBufferReader.read(constants.BLS_PUBLIC_KEY_SIZE).toString('hex'); | ||
quorumHash: this.quorumHash, | ||
signerSize: this.signerSize, | ||
signersSize: this.signersSize, | ||
signers: this.signers, | ||
@@ -194,3 +195,3 @@ validMembersSize: this.validMembersSize, | ||
default: | ||
throw new Error(`Invalid llmq type ${this.llmqtype}`); | ||
throw new Error('Invalid llmq type ' + this.llmqtype); | ||
} | ||
@@ -205,5 +206,5 @@ | ||
.write(Buffer.from(this.quorumHash, 'hex')) | ||
.writeVarintNum(signerSizeLength) | ||
.writeVarintNum(this.signersSize) | ||
.write(Buffer.from(this.signers, 'hex')) | ||
.writeVarintNum(validMemberSizeLength) | ||
.writeVarintNum(this.validMembersSize) | ||
.write(Buffer.from(this.validMembers, 'hex')) | ||
@@ -213,3 +214,3 @@ .write(Buffer.from(this.quorumPublicKey, 'hex')) | ||
.write(Buffer.from(this.quorumSig, 'hex')) | ||
.write(Buffer.from(this.sig, 'hex')) | ||
.write(Buffer.from(this.sig, 'hex')); | ||
@@ -216,0 +217,0 @@ return payloadBufferWriter.toBuffer(); |
@@ -65,3 +65,3 @@ /* eslint-disable */ | ||
this.payloadSig = options.payloadSig; | ||
this.payloadSigSize = this.payloadSig ? constants.BLS_SIGNATURE_SIZE : 0; | ||
this.payloadSigSize = this.payloadSig ? Buffer.from(this.payloadSig, 'hex').length : 0; | ||
} | ||
@@ -68,0 +68,0 @@ } |
{ | ||
"name": "@dashevo/dashcore-lib", | ||
"version": "0.17.6", | ||
"version": "0.17.7", | ||
"description": "A pure and powerful JavaScript Dash library.", | ||
@@ -5,0 +5,0 @@ "author": "Dash Core Group, Inc. <dev@dash.org>", |
@@ -303,2 +303,26 @@ /* eslint-disable */ | ||
it('should create a trigger govObject from a buffer', () => { | ||
var govObject = new GovObject; | ||
var jsonTrigger = { | ||
event_block_height: 110976, | ||
network: 'testnet', | ||
payment_addresses: 'yXGeNPQXYFXhLAN1ZKrAjxzzBnZ2JZNKnh|yXBj864aMJ4bNM3uTWrs6ebXdRBsTbeA9y', | ||
payment_amounts: '10.00000000|12.00000000', | ||
proposal_hashes: '20596d41ac6c9f6bfb9a02e43cd77ef1ed1a0e9d70857e5110e6aa9de0ce12fb|6767927761890eefaa6f80542aad6981fb966eed7c1deaf616464a739d81b8d7', | ||
type: 2, | ||
}; | ||
var govObject = govObject.fromObject(jsonTrigger); | ||
var govFromBuffer = new GovObject; | ||
govFromBuffer.fromBuffer(govObject.toBuffer()).should.deep.equal(govObject); | ||
govFromBuffer.fromBuffer(govObject.toBuffer()).should.not.equal(govObject); | ||
new GovObject(govObject.toBuffer()).should.deep.equal(govObject); | ||
new GovObject(govObject.toBuffer()).should.not.equal(govObject); | ||
var reader = new BufferReader(govObject.toBuffer()); | ||
var fromBuff = govFromBuffer.fromBufferReader(reader); | ||
fromBuff.should.deep.equal(govObject); | ||
fromBuff.should.not.equal(govObject); | ||
}) | ||
}); | ||
@@ -305,0 +329,0 @@ }); |
@@ -9,3 +9,3 @@ /* eslint-disable */ | ||
var Script = DashcoreLib.Script; | ||
var Transaction = DashcoreLib.Transaction; | ||
var CommitmentTxPayload = DashcoreLib.Transaction.Payload.CommitmentTxPayload; | ||
@@ -15,19 +15,24 @@ | ||
version: 1, | ||
height: 279326, | ||
height: 137051, | ||
qfcVersion: 1, | ||
llmqtype: 1, | ||
quorumHash: '4cb9568141dded955ed90345b393fc62634be7d260ca328b89afdd0500000000', | ||
quorumHash: "f015624411254dd5a806e16310e7b9989e8224796f57e42bfb01420200000000", | ||
signersSize: 50, | ||
signers: '00000000000000', | ||
signers: "ffffffffffff03", | ||
validMembersSize: 50, | ||
validMembers: '00000000000000', | ||
quorumPublicKey: '000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', | ||
quorumVvecHash: '0000000000000000000000000000000000000000000000000000000000000000', | ||
quorumSig: '000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', | ||
sig: '000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', | ||
validMembers: "ffffffffffff03", | ||
quorumPublicKey: "0ea4465cc4b2e6890e5bd37987822cabf1b79ec8dece016a3be75802482480af29f7961281405d2cb3d6e38157bda824", | ||
quorumVvecHash: "e3107d64e8d2bec7dff1f6d7fd1a9d31a181c82acaf052f8d27b71507fe2db12", | ||
quorumSig: "0f0a203004f025076c7c0d989464013b31a0104155946968317e6abcfafbe70a53c2b57811f0ebe888cef36eacf649401497c569a9f617c3eeaa7eacbc45969389fa229355097abe277f2452792a5f2e84e804bf2eac0843f01690fb6bd10df1", | ||
sig: "195f7a49aed846bcf475a4a3500b15a626c514c9223b46ce6fef505f19af8f8e1cec554cb63a04125c2d19bf0211ea4c15f289f1413b8618abdf7295e44fb196e326a803d9d7c7c69a12314cf88e463653fde5fecb1f8c3d6791180cdc382392" | ||
}; | ||
var validCommitmentTxPayloadHexString = '01001e430400010001f2a1f356b9e086220d38754b1de1e4dcbd8b080c3fa0a62c2bd0961400000000320000000000000032000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'; | ||
var payload = CommitmentTxPayload.fromBuffer(Buffer.from(validCommitmentTxPayloadHexString, 'hex')); | ||
var testNetPayloadHex = '01005b170200010001f015624411254dd5a806e16310e7b9989e8224796f57e42bfb0142020000000032ffffffffffff0332ffffffffffff030ea4465cc4b2e6890e5bd37987822cabf1b79ec8dece016a3be75802482480af29f7961281405d2cb3d6e38157bda824e3107d64e8d2bec7dff1f6d7fd1a9d31a181c82acaf052f8d27b71507fe2db120f0a203004f025076c7c0d989464013b31a0104155946968317e6abcfafbe70a53c2b57811f0ebe888cef36eacf649401497c569a9f617c3eeaa7eacbc45969389fa229355097abe277f2452792a5f2e84e804bf2eac0843f01690fb6bd10df1195f7a49aed846bcf475a4a3500b15a626c514c9223b46ce6fef505f19af8f8e1cec554cb63a04125c2d19bf0211ea4c15f289f1413b8618abdf7295e44fb196e326a803d9d7c7c69a12314cf88e463653fde5fecb1f8c3d6791180cdc382392'; | ||
var testNetCommitmentTxHex = '03000600000000000000fd490101005b170200010001f015624411254dd5a806e16310e7b9989e8224796f57e42bfb0142020000000032ffffffffffff0332ffffffffffff030ea4465cc4b2e6890e5bd37987822cabf1b79ec8dece016a3be75802482480af29f7961281405d2cb3d6e38157bda824e3107d64e8d2bec7dff1f6d7fd1a9d31a181c82acaf052f8d27b71507fe2db120f0a203004f025076c7c0d989464013b31a0104155946968317e6abcfafbe70a53c2b57811f0ebe888cef36eacf649401497c569a9f617c3eeaa7eacbc45969389fa229355097abe277f2452792a5f2e84e804bf2eac0843f01690fb6bd10df1195f7a49aed846bcf475a4a3500b15a626c514c9223b46ce6fef505f19af8f8e1cec554cb63a04125c2d19bf0211ea4c15f289f1413b8618abdf7295e44fb196e326a803d9d7c7c69a12314cf88e463653fde5fecb1f8c3d6791180cdc382392'; | ||
var testNetCommitmentTxHash = 'cf4b01ce796a4f37e6af6dd62671b608160d4a39acf3bfe95f9a59d1854b63f3'; | ||
function getPayloadBuffer() { | ||
return Buffer.from(testNetPayloadHex, 'hex'); | ||
} | ||
function checkValidJSON(payload) { | ||
@@ -50,5 +55,2 @@ expect(payload.version).to.be.equal(validCommitmentTxPayloadJSON.version); | ||
var payload = null; | ||
var payloadBuffer = null; | ||
describe('.fromJSON', function () { | ||
@@ -65,3 +67,3 @@ | ||
it('Should return instance of CommitmentTxPayload and call #validate on it', function () { | ||
payload = CommitmentTxPayload.fromJSON(validCommitmentTxPayloadJSON); | ||
var payload = CommitmentTxPayload.fromJSON(validCommitmentTxPayloadJSON); | ||
checkValidJSON(payload); | ||
@@ -76,14 +78,14 @@ }); | ||
after(function () { | ||
CommitmentTxPayload.prototype.validate.restore(); | ||
}); | ||
it('Should return payload buffer of specific length', function () { | ||
var payload = CommitmentTxPayload.fromBuffer(getPayloadBuffer()); | ||
//Manually calculated from validCommitmentTxPayloadJSON | ||
var expectedBufferLength = 329; | ||
var expectedBufferLength = getPayloadBuffer().length; | ||
payloadBuffer = payload.toBuffer(); | ||
var payloadBuffer = payload.toBuffer(); | ||
expect(payloadBuffer.length).to.be.equal(expectedBufferLength); | ||
}); | ||
after(function () { | ||
CommitmentTxPayload.prototype.validate.restore(); | ||
}) | ||
}); | ||
@@ -96,10 +98,10 @@ | ||
after(function () { | ||
CommitmentTxPayload.prototype.validate.restore(); | ||
}); | ||
it('Should return payload from buffer', function () { | ||
var payloadFromBuffer = CommitmentTxPayload.fromBuffer(payloadBuffer); | ||
var payloadFromBuffer = CommitmentTxPayload.fromBuffer(getPayloadBuffer()); | ||
checkValidJSON(payloadFromBuffer); | ||
}); | ||
after(function () { | ||
CommitmentTxPayload.prototype.validate.restore(); | ||
}) | ||
}); | ||
@@ -117,2 +119,3 @@ | ||
it('Should be able to serialize payload JSON', function () { | ||
var payload = CommitmentTxPayload.fromBuffer(getPayloadBuffer()); | ||
var payloadJSON = payload.toJSON(); | ||
@@ -122,2 +125,17 @@ checkValidJSON(payloadJSON); | ||
}); | ||
describe('#toString', function () { | ||
it('Should serizlize to the same hex string', function () { | ||
var expectedCommitementHex = '03000600000000000000fd3d01010009020000010064b5fc275d292adda4e5c454e93f4bc47d2c77975fb0d06bb07bd6bada068bdf0c050005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'; | ||
var parsed = new Transaction(expectedCommitementHex); | ||
console.log(parsed.hash); | ||
var actualCommitementHex = parsed.toString(); | ||
expect(actualCommitementHex).to.be.equal(expectedCommitementHex); | ||
var testnetParsedTransaction = new Transaction(testNetCommitmentTxHex); | ||
var ped = testnetParsedTransaction.extraPayload.toJSON(); | ||
expect(testnetParsedTransaction.toString()).to.be.equal(testNetCommitmentTxHex); | ||
expect(testnetParsedTransaction.hash).to.be.equal(testNetCommitmentTxHash); | ||
}); | ||
}); | ||
}); |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
2845677
214
40904