digiasset-assetid-encoder
Version:
Creates an Asset Id for Issuance transaction
409 lines (364 loc) • 14.1 kB
JavaScript
/* eslint-env mocha */
var path = require('path')
var assetIdEncoder = require(path.join(__dirname, '/../assetIdEncoder'))
var assert = require('assert')
describe('1st input pubkeyhash', function () {
describe('locked asset ID', function () {
var assetId
var digibyteTransaction = {
'dadata': [{
'type': 'issuance',
'lockStatus': true,
'divisibility': 3
}],
'vin': [{
'txid': '0f45f38a8bcd8331877267e0f3f5f8a4b3c716165e40db4eee34d52759ad954f',
'vout': 2
}]
}
it('should return correct locked asset ID', function (done) {
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'La8kMVUzB9RT2GGKpkpuWJgp1oTPVheheTjMi6')
console.log(assetId)
done()
})
it('should return correct locked aggregatable asset ID', function (done) {
digibyteTransaction.dadata[0].aggregationPolicy = 'aggregatable'
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'La8kMVUzB9RT2GGKpkpuWJgp1oTPVheheTjMi6')
console.log(assetId)
done()
})
it('should return correct locked hybrid asset ID', function (done) {
digibyteTransaction.dadata[0].aggregationPolicy = 'hybrid'
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'LhANhrERyCPXq5b4ZC92LtYSdJ8Xbsu18G1pHy')
console.log(assetId)
done()
})
it('should return correct locked dispersed asset ID', function (done) {
digibyteTransaction.dadata[0].aggregationPolicy = 'dispersed'
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'Ld7CtQsq1dSsN54B8i9j1nPtMHCiYKDXDZ6YBq')
console.log(assetId)
done()
})
})
describe('unlocked asset ID', function () {
var assetId
var digibyteTransaction = {
'dadata': [{
'type': 'issuance',
'lockStatus': false,
'divisibility': 3
}],
'vin': [{
'scriptSig': {
'asm': '3045022100daf8f8d65ea908a28d90f700dc932ecb3b68f402b04ba92f987e8abd7080fcad02205ce81b698b8013b86813c9edafc9e79997610626c9dd1bfb49f60abee9daa43801 029b622e5f0f87f2be9f23c4d82f818a73e258a11c26f01f73c8b595042507a574'
}
}]
}
it('should return correct unlocked asset ID', function (done) {
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'Ua3Kt8WJtsx61VC8DUJiRmseQ45NfW2eJXbbE8')
console.log(assetId)
done()
})
it('should return correct unlocked aggregatable asset ID', function (done) {
digibyteTransaction.dadata[0].aggregationPolicy = 'aggregatable'
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'Ua3Kt8WJtsx61VC8DUJiRmseQ45NfW2eJXbbE8')
console.log(assetId)
done()
})
it('should return correct unlocked hybrid asset ID', function (done) {
digibyteTransaction.dadata[0].aggregationPolicy = 'hybrid'
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'Uh4xEVFkgvvApJWrwucqGMjH1YkWmgGwizurnM')
console.log(assetId)
done()
})
it('should return correct unlocked dispersed asset ID', function (done) {
digibyteTransaction.dadata[0].aggregationPolicy = 'dispersed'
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'Ud9d5N9NVkLfNCCc3ExquxPQUbimDEV3ctXUKS')
console.log(assetId)
done()
})
})
})
describe('1st input scripthash', function () {
describe('locked asset ID', function () {
var assetId
var digibyteTransaction = {
dadata: [{
type: 'issuance',
divisibility: 3,
lockStatus: true
}],
vin: [{
txid: '0f45f38a8bcd8331877267e0f3f5f8a4b3c716165e40db4eee34d52759ad954f',
vout: 2
}]
}
it('should return correct locked aggregatable asset ID', function (done) {
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'La8kMVUzB9RT2GGKpkpuWJgp1oTPVheheTjMi6')
console.log(assetId)
done()
})
it('should return correct locked hybrid asset ID', function (done) {
digibyteTransaction.dadata[0].aggregationPolicy = 'hybrid'
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'LhANhrERyCPXq5b4ZC92LtYSdJ8Xbsu18G1pHy')
console.log(assetId)
done()
})
it('should return correct locked dispersed asset ID', function (done) {
digibyteTransaction.dadata[0].aggregationPolicy = 'dispersed'
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'Ld7CtQsq1dSsN54B8i9j1nPtMHCiYKDXDZ6YBq')
console.log(assetId)
done()
})
})
describe('unlocked asset ID', function () {
var assetId
var digibyteTransaction = {
dadata: [{
type: 'issuance',
divisibility: 3,
lockStatus: false
}],
vin: [{
scriptSig: {
asm: 'OP_0 304402207515cf147d201f411092e6be5a64a6006f9308fad7b2a8fdaab22cd86ce764c202200974b8aca7bf51dbf54150d3884e1ae04f675637b926ec33bf75939446f6ca2801 3045022100ef253c1faa39e65115872519e5f0a33bbecf430c0f35cf562beabbad4da24d8d02201742be8ee49812a73adea3007c9641ce6725c32cd44ddb8e3a3af460015d140501 522102359c6e3f04cefbf089cf1d6670dc47c3fb4df68e2bad1fa5a369f9ce4b42bbd1210395a9d84d47d524548f79f435758c01faec5da2b7e551d3b8c995b7e06326ae4a52ae'
}
}]
}
it('should return correct unlocked asset ID', function (done) {
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'Ua3gB6zfKRDzNHoQ9V84V7K2zkYmjKnr77D2rk')
console.log(assetId)
done()
})
it('should return correct unlocked aggregatable asset ID', function (done) {
digibyteTransaction.dadata[0].aggregationPolicy = 'aggregatable'
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'Ua3gB6zfKRDzNHoQ9V84V7K2zkYmjKnr77D2rk')
console.log(assetId)
done()
})
it('should return correct unlocked hybrid asset ID', function (done) {
digibyteTransaction.dadata[0].aggregationPolicy = 'hybrid'
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'Uh5JXTk77UC5B788svSBKhAfcFDuqW39Z36n5Z')
console.log(assetId)
done()
})
it('should return correct unlocked dispersed asset ID', function (done) {
digibyteTransaction.dadata[0].aggregationPolicy = 'dispersed'
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'Ud9yNLdivHcZizosyFnByHpo5JCAH4FFUyFSTo')
console.log(assetId)
done()
})
})
})
describe('1st input multisig, create asset ID from previousOutput.hex', function () {
var digibyteTransaction = {
dadata: [{
type: 'issuance',
divisibility: 3,
lockStatus: false
}],
vin: [{
previousOutput: {
hex: '76a914ee54bdd81113a2a8f02cd0dcdd1fa8b14c523fd988ac'
}
}]
}
var assetId
it('should return correct unlocked aggregatable asset ID', function (done) {
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'Ua9CgfGFKCVRdV4aUj4hYz2XtxCg4Smpu8TVAQ')
console.log(assetId)
done()
})
it('should return correct unlocked hybrid asset ID', function (done) {
digibyteTransaction.dadata[0].aggregationPolicy = 'hybrid'
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'UhAq321h7FTWSJPKDANpPZtAWSspAd28P59scH')
console.log(assetId)
done()
})
it('should return correct unlocked dispersed asset ID', function (done) {
digibyteTransaction.dadata[0].aggregationPolicy = 'dispersed'
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'UdFVstuJv4szzC54JViq3AYHyVr4cBEEEdCFyB')
console.log(assetId)
done()
})
})
describe('create unlocked assetID from address', function () {
var assetId
var digibyteTransaction = {
dadata: [{
type: 'issuance',
divisibility: 3,
lockStatus: false
}],
vin: [{
address: 'DJysG38LMYPpyD9cHYBuD1x1gUQpmbfNWZ'
}]
}
it('should return correct unlocked asset ID', function (done) {
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'Ua7aoEMJRW6VK9sBfssGq3ChUox3NdNpQXoXjS')
console.log(assetId)
done()
})
it('should return correct unlocked aggregatable asset ID', function (done) {
digibyteTransaction.dadata[0].aggregationPolicy = 'aggregatable'
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'Ua7aoEMJRW6VK9sBfssGq3ChUox3NdNpQXoXjS')
console.log(assetId)
done()
})
it('should return correct unlocked hybrid asset ID', function (done) {
digibyteTransaction.dadata[0].aggregationPolicy = 'hybrid'
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'Uh9D9b6kDZ4a7yBvQKBPfd4L6JdBUod7uN8i2L')
console.log(assetId)
done()
})
it('should return correct unlocked dispersed asset ID', function (done) {
digibyteTransaction.dadata[0].aggregationPolicy = 'dispersed'
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'UdDszTzN2NV4frsfVeXQKDiTZMbRvMqDnAfjgo')
console.log(assetId)
done()
})
})
describe('create unlocked assetID from pay-to-scripthash address', function () {
var assetId
var digibyteTransaction = {
dadata: [{
type: 'issuance',
divisibility: 3,
lockStatus: false
}],
vin: [{
address: '3P14159f73E4gFr7JterCCQh9QjiTjiZrG'
}]
}
it('should return correct unlocked asset ID', function (done) {
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'Ua7LQe4WHDZooow4exMVDqGhM47FWnBxbN8j35')
console.log(assetId)
done()
})
it('should return correct unlocked aggregatable asset ID', function (done) {
digibyteTransaction.dadata[0].aggregationPolicy = 'aggregatable'
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'Ua7LQe4WHDZooow4exMVDqGhM47FWnBxbN8j35')
console.log(assetId)
done()
})
it('should return correct unlocked hybrid asset ID', function (done) {
digibyteTransaction.dadata[0].aggregationPolicy = 'hybrid'
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'Uh8xkzox5GXtcdFoPPfc4R8KxYnPcxSFzbdQr1')
console.log(assetId)
done()
})
it('should return correct unlocked dispersed asset ID', function (done) {
digibyteTransaction.dadata[0].aggregationPolicy = 'dispersed'
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'UdDdbshZt5xPAWwYUj1ci1nTRbke4WeMseyejd')
console.log(assetId)
done()
})
})
describe('create unlocked assetID from pay-to-witness address', function () {
var assetId
var digibyteTransaction = {
dadata: [{
type: 'issuance',
divisibility: 3,
lockStatus: false
}],
vin: [{
address: 'dgb1qjlfwa9lz3swdk8ym0l4a7lqzsp3wn8ldru8jyf'
}]
}
it('should return correct unlocked asset ID', function (done) {
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'Ua7aoEMJRW6VK9sBfssGq3ChUox3NdNpQXoXjS')
console.log(assetId)
done()
})
it('should return correct unlocked aggregatable asset ID', function (done) {
digibyteTransaction.dadata[0].aggregationPolicy = 'aggregatable'
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'Ua7aoEMJRW6VK9sBfssGq3ChUox3NdNpQXoXjS')
console.log(assetId)
done()
})
it('should return correct unlocked hybrid asset ID', function (done) {
digibyteTransaction.dadata[0].aggregationPolicy = 'hybrid'
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'Uh9D9b6kDZ4a7yBvQKBPfd4L6JdBUod7uN8i2L')
console.log(assetId)
done()
})
it('should return correct unlocked dispersed asset ID', function (done) {
digibyteTransaction.dadata[0].aggregationPolicy = 'dispersed'
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'UdDszTzN2NV4frsfVeXQKDiTZMbRvMqDnAfjgo')
console.log(assetId)
done()
})
})
describe('create assetID from scriptSig.hex', function () {
var assetId
var digibyteTransaction = {
'dadata': [{
'type': 'issuance',
'lockStatus': false,
'divisibility': 2
}],
'vin': [{
'scriptSig': {
'hex': '483045022100b5aaae72b05c0698ea22e2f4cb3f3a46e5a0a1c1a98772b1c7305476b9ae5e1f02200276a003694eab8d12bc5791624b60b1c68486e4b985f2a672751bb35295202b012102b509613c7e5d9e47347635f872c3aa271d01ac4a9a6445839ce2c5820a0f48a8'
}
}]
}
it('should return correct unlocked asset ID', function (done) {
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'Ua7aoEMJRW6VK9sBfssGq3ChUox3NdNpNuhFey')
console.log(assetId)
done()
})
it('should return correct unlocked aggregatable asset ID', function (done) {
digibyteTransaction.dadata[0].aggregationPolicy = 'aggregatable'
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'Ua7aoEMJRW6VK9sBfssGq3ChUox3NdNpNuhFey')
console.log(assetId)
done()
})
it('should return correct unlocked hybrid asset ID', function (done) {
digibyteTransaction.dadata[0].aggregationPolicy = 'hybrid'
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'Uh9D9b6kDZ4a7yBvQKBPfd4L6JdBUod7isFyfk')
console.log(assetId)
done()
})
it('should return correct unlocked dispersed asset ID', function (done) {
digibyteTransaction.dadata[0].aggregationPolicy = 'dispersed'
assetId = assetIdEncoder(digibyteTransaction)
assert.equal(assetId, 'UdDszTzN2NV4frsfVeXQKDiTZMbRvMqDfK6KF4')
console.log(assetId)
done()
})
})