123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275 |
- <template>
- <main>
- <div class="form-group">
- <label>Transaction Id</label>
- <input
- type="text"
- class="form-control"
- placeholder="Enter a transaction id"
- v-model="txId"
- >
- </div>
- <dl class="row">
- <pre>
- <code>
- {{txDetails}}
- </code>
- </pre>
- <!-- <dt v-if="txVersion" class="col-sm-4">Version</dt>
- <dd v-if="txVersion" class="col-sm-8">{{txVersion}}</dd>
- <dd v-if="txVersion" class="col-sm-8 offset-sm-4">
- <small class="text-muted">
- Version numbers can be ...
- </small>
- </dd> -->
- <!-- <dt v-if="txInputCount" class="col-sm-4">Input Count</dt>
- <dd v-if="txInputCount" class="col-sm-8">{{txInputCount}}</dd> -->
- <!-- <dt v-if="txId" class="col-sm-4">Transaction Id</dt>
- <dd v-if="txId" class="col-sm-8"><a :href="'https://explorer.bitcoin.com/bch/tx/' + txId" target="_blank">{{txId}}</a></dd>
- <dd v-if="txVersion" class="col-sm-8 offset-sm-4">
- <small class="text-muted">
- NOTE: Endianness has been reversed.
- </small>
- </dd> -->
- <!-- <dt v-if="txOutpointIndex" class="col-sm-4">Outpoint Index</dt>
- <dd v-if="txOutpointIndex" class="col-sm-8">{{txOutpointIndex}}</dd> -->
- <!-- <dt v-if="txInputScriptBytes" class="col-sm-4">Script Bytes</dt>
- <dd v-if="txInputScriptBytes" class="col-sm-8">{{txInputScriptBytes}}</dd> -->
- <!-- <dt v-if="txSignature" class="col-sm-4">Signature</dt>
- <dd v-if="txSignature" class="col-sm-8">{{txSignature}}</dd> -->
- <!-- <dt v-if="txSequence" class="col-sm-4">Sequence</dt>
- <dd v-if="txSequence" class="col-sm-8">{{txSequence}}</dd> -->
- <!-- <dt v-if="txOutputCount" class="col-sm-4">Output Count</dt>
- <dd v-if="txOutputCount" class="col-sm-8">{{txOutputCount}}</dd> -->
- <!-- <dt v-if="txValue" class="col-sm-4">Value</dt>
- <dd v-if="txValue" class="col-sm-8">{{txValue}}</dd>
- <dd v-if="txVersion" class="col-sm-8 offset-sm-4">
- <small class="text-muted">
- NOTE: Endianness has been reversed.
- </small>
- </dd> -->
- <!-- <dt v-if="txOutputScriptBytes" class="col-sm-4">Script Bytes</dt>
- <dd v-if="txOutputScriptBytes" class="col-sm-8">{{txOutputScriptBytes}}</dd> -->
- <!-- <dt v-if="txPubKeyScript" class="col-sm-4">PubKey Script</dt>
- <dd v-if="txPubKeyScript" class="col-sm-8">{{txPubKeyScript}}</dd> -->
- <!-- <dt v-if="txLockTime" class="col-sm-4">Lock Time</dt>
- <dd v-if="txLockTime" class="col-sm-8">{{txLockTime}}</dd> -->
- </dl>
- </main>
- </template>
- <script>
- export default {
- components: {
- //
- },
- data: () => {
- return {
- usd: 0,
- txId: 'ec062a26ef5577fb35458bb8055a785676c8ce23f360c38de150e203c29f7abc',
- txDetails: null,
- }
- },
- computed: {
- // txInputCount() {
- // if (this.txId !== '') {
- // /* Parse tx input count. */
- // const txInputCount = this.txId.slice(8, 10)
- //
- // /* Return tx input count. */
- // return txInputCount
- // } else {
- // /* Return null. */
- // return null
- // }
- // },
- // txOutpointIndex() {
- // if (this.txId !== '') {
- // /* Parse tx outpoint index. */
- // const txOutpointIndex = this.txId.slice(74, 82)
- //
- // /* Return tx input count. */
- // return txOutpointIndex
- // } else {
- // /* Return null. */
- // return null
- // }
- // },
- // txInputScriptBytes() {
- // if (this.txId !== '') {
- // /* Parse tx outpoint index. */
- // const txInputScriptBytes = this.txId.slice(82, 84)
- //
- // /* Return tx input count. */
- // return txInputScriptBytes
- // } else {
- // /* Return null. */
- // return null
- // }
- // },
- // txSignature() {
- // if (this.txId !== '') {
- // /* Parse tx outpoint index. */
- // // FIXME: Calculate the txInputScriptBytes (length).
- // const txSignature = this.txId.slice(84, 284)
- //
- // /* Return tx input count. */
- // return txSignature
- // } else {
- // /* Return null. */
- // return null
- // }
- // },
- // txSequence() {
- // if (this.txId !== '') {
- // /* Parse tx outpoint index. */
- // const txSequence = this.txId.slice(284, 292)
- //
- // /* Return tx input count. */
- // return txSequence
- // } else {
- // /* Return null. */
- // return null
- // }
- // },
- // txOutputCount() {
- // if (this.txId !== '') {
- // /* Parse tx outpoint index. */
- // const txOutputCount = this.txId.slice(292, 294)
- //
- // /* Return tx input count. */
- // return txOutputCount
- // } else {
- // /* Return null. */
- // return null
- // }
- // },
- // txValue() {
- // if (this.txId !== '') {
- // /* Parse tx outpoint index. */
- // const txValue = this.txId.slice(294, 310)
- //
- // /* Reverse endianness. */
- // const reversed = this.reverseBytes(txValue)
- //
- // /* Return tx input count. */
- // return reversed
- // } else {
- // /* Return null. */
- // return null
- // }
- // },
- // txOutputScriptBytes() {
- // if (this.txId !== '') {
- // /* Parse tx outpoint index. */
- // const txOutputScriptBytes = this.txId.slice(310, 312)
- //
- // /* Return tx input count. */
- // return txOutputScriptBytes
- // } else {
- // /* Return null. */
- // return null
- // }
- // },
- // txPubKeyScript() {
- // if (this.txId !== '') {
- // /* Parse tx outpoint index. */
- // const txPubKeyScript = this.txId.slice(312, 362)
- //
- // /* Return tx input count. */
- // return txPubKeyScript
- // } else {
- // /* Return null. */
- // return null
- // }
- // },
- // txLockTime() {
- // if (this.txId !== '') {
- // /* Parse tx outpoint index. */
- // const txLockTime = this.txId.slice(362, 370)
- //
- // /* Return tx input count. */
- // return txLockTime
- // } else {
- // /* Return null. */
- // return null
- // }
- // },
- },
- methods: {
- /**
- * Update Price
- */
- // async updatePrice() {
- // try {
- // const current = await this.bitbox.Price.current('usd')
- // console.log('CURRENT PRICE', current)
- // this.usd = current
- // } catch (err) {
- // console.error(err)
- // }
- // },
- /**
- * Update Transaction Details
- */
- // async updateTxDetails() {
- // if (this.txId !== '') {
- // /* Retrieve transaction details. */
- // const details = await this.bitbox.Transaction
- // .details(this.txId)
- // /* Update (transaction) details. */
- // this.txDetails = details
- // } else {
- // /* Return null. */
- // return null
- // }
- // },
- // reverseBytes(_bytes) {
- // /* Reverse bytes. */
- // // source: https://stackoverflow.com/a/29017642/514914
- // return _bytes.match(/[a-fA-F0-9]{2}/g).reverse().join('')
- // },
- },
- created: async function () {
- /* Update USD. */
- // this.updatePrice()
- /* Update (transaction) details. */
- // this.updateTxDetails()
- },
- mounted: function () {
- //
- },
- }
- </script>
|