PageSourceSearch

https://nimiq-wallet-demo.je-cf9.workers.dev/js/btc-transaction-modal.8ab2f6a4.js

js nimiq-wallet-demo.je-cf9.workers.dev collected 2026-10-03 08:11:47 UTC 17,651 bytes, 2 lines download raw bytes

1"use strict";(self["webpackChunk_nimiq_wallet"]=self["webpackChunk_nimiq_wallet"]||[]).push([[3303],{6819:function(a,t,s){s.a(a,(async function(a,e){try{s.r(t);var n=s(94674),r=s(6682),o=(s(2467),s(81656)),i=a([r]);r=(i.then?(await i)():i)[0];var l=(0,o.A)(r.A,n.X,n.Y,!1,null,"2503b68d",null);t["default"]=l.exports,e()}catch(c){e(c)}}))},2467:function(){},6682:function(a,t,s){s.a(a,(async function(a,e){try{var n=s(97892),r=a([n]);n=(r.then?(await r)():r)[0],t.A=n.A,e()}catch(o){e(o)}}))},94674:function(a,t,s){s.d(t,{X:function(){return e},Y:function(){return n}});var e=function(){var a=this,t=a.$createElement,s=a._self._c||t;return s("Modal",{staticClass:"transaction-modal"},[s("PageHeader",{class:{"inline-header":!a.peerLabel&&!(a.usesNimSwapProxy&&!a.swapTransaction.relatedTransactionHash)}},[a.isCancelledSwap?[a._v(a._s(a.$t("125")))]:a.usesNimSwapProxy&&!a.swapTransaction.relatedTransactionHash?[a._v(a._s(a.$t("559")))]:a.swapData&&a.isIncoming?s("i18n",{attrs:{path:"564",tag:!1},scopedSlots:a._u([a.swapData.asset===a.SwapAsset.NIM||a.swapData.asset===a.SwapAsset.USDC||a.swapData.asset===a.SwapAsset.USDC_MATIC||a.swapData.asset===a.SwapAsset.USDT_MATIC?{key:"address",fn:function(){return[s("label",[a._v(a._s(a.peerLabel||a.peerAddresses[0].substring(0,9)))])]},proxy:!0}:a.swapData.asset===a.SwapAsset.EUR?{key:"address",fn:function(){return[s("label",[a._v(a._s(a.$t("236")))])]},proxy:!0}:{key:"address",fn:function(){return[a._v(a._s(a.swapData.asset.toUpperCase()))]},proxy:!0}],null,!0)}):a.swapData?s("i18n",{attrs:{path:"572",tag:!1},scopedSlots:a._u([a.swapData.asset===a.SwapAsset.NIM||a.swapData.asset===a.SwapAsset.USDC||a.swapData.asset===a.SwapAsset.USDC_MATIC||a.swapData.asset===a.SwapAsset.USDT_MATIC?{key:"address",fn:function(){return[s("label",[a._v(a._s(a.peerLabel||a.peerAddresses[0].substring(0,9)))])]},proxy:!0}:a.swapData.asset===a.SwapAsset.EUR?{key:"address",fn:function(){return[s("label",[a._v(a._s(a.$t("236")))])]},proxy:!0}:{key:"address",fn:function(){return[a._v(a._s(a.swapData.asset.toUpperCase()))]},proxy:!0}],null,!0)}):a.isIncoming?s("i18n",{attrs:{path:"644",tag:!1},scopedSlots:a._u([{key:"address",fn:function(){return[s("label",[a._v(a._s(a.peerLabel||a.peerAddresses[0].substring(0,6)))])]},proxy:!0}])}):s("i18n",{attrs:{path:"645",tag:!1},scopedSlots:a._u([{key:"address",fn:function(){return[s("label",[a._v(a._s(a.peerLabel||a.peerAddresses[0].substring(0,6)))])]},proxy:!0}])}),a.swapData&&a.swapData.asset===a.SwapAsset.EUR&&a.swapData.htlc&&a.swapData.htlc.settlement&&a.swapData.htlc.settlement.status!==a.SettlementStatus.CONFIRMED?s("TransactionDetailOasisPayoutStatus",{attrs:{data:a.swapData}}):a.state===a.TransactionState.NEW||a.state===a.TransactionState.PENDING?s("span",{staticClass:"nq-light-blue flex-row",attrs:{slot:"more"},slot:"more"},[s("CircleSpinner"),a._v(" "+a._s(a.$t("404"))+" ")],1):a.state===a.TransactionState.EXPIRED||a.state===a.TransactionState.INVALIDATED?s("span",{staticClass:"nq-red failed flex-row",attrs:{slot:"more"},slot:"more"},[s("CrossIcon"),a._v(" "+a._s(a.state===a.TransactionState.EXPIRED?a.$t("240"):a.$t("246"))+" ")],1):s("span",{staticClass:"date",class:a.isIncoming?"nq-green":"opacity-60",attrs:{slot:"more"},slot:"more"},[a.isIncoming?s("i18n",{attrs:{path:"441",tag:!1},scopedSlots:a._u([{key:"dateAndTime",fn:function(){return[a._v(" "+a._s(a.datum)+" "),s("strong",[a._v("·")]),a._v(" "+a._s(a.time)+" ")]},proxy:!0}],null,!1,723411224)}):s("i18n",{attrs:{path:"511",tag:!1},scopedSlots:a._u([{key:"dateAndTime",fn:function(){return[a._v(" "+a._s(a.datum)+" "),s("strong",[a._v("·")]),a._v(" "+a._s(a.time)+" ")]},proxy:!0}])})],1)],2),s("PageBody",{staticClass:"flex-column",class:a.state},[a.isIncoming?s("div",{staticClass:"flex-row sender-recipient"},[s("div",{staticClass:"address-info flex-column"},[a.swapInfo?s("div",{staticClass:"identicon-container"},[a.swapData&&a.swapData.asset===a.SwapAsset.NIM&&a.swapTransaction?s("Identicon",{attrs:{address:a.peerAddresses[0]}}):!a.swapData||a.swapData.asset!==a.SwapAsset.USDC&&a.swapData.asset!==a.SwapAsset.USDC_MATIC?a.swapData&&a.swapData.asset===a.SwapAsset.USDT_MATIC?s("UsdtIcon"):a.swapData&&a.swapData.asset===a.SwapAsset.EUR?s("BankIcon"):s("Avatar",{attrs:{label:a.isCancelledSwap?"":a.peerLabel||""}}):s("UsdcIcon"),s("SwapMediumIcon")],1):s("Avatar",{attrs:{label:a.peerLabel||""}}),a.senderLabelAddress||!a.peerLabel?s("input",{staticClass:"nq-input-s vanishing",attrs:{type:"text",placeholder:a.$t("659")},domProps:{value:a.peerLabel||""},on:{input:function(t){return a.setSenderLabel(a.senderLabelAddress||a.ownAddresses[0],t.target.value)}}}):s("span",{staticClass:"label",class:{unlabelled:!a.peerLabel}},[a._v(" "+a._s(a.peerLabel||a.$t("659"))+" ")]),a.peerAddresses[0]?a._l(a.peerAddresses.slice(0,3),(function(a){return s("InteractiveShortAddress",{key:a,attrs:{address:a,copyable:"",tooltipPosition:"bottom right"}})})):a._e(),a.peerAddresses.length>3?s("a",{staticClass:"nq-link",attrs:{href:a.blockExplorerLink,target:"_blank",rel:"noopener"}},[a._v(a._s(a.$t("26",{n:a.peerAddresses.length-3})))]):a._e()],2),s("ArrowRightIcon",{staticClass:"arrow"}),s("div",{staticClass:"address-info flex-column"},[s("BitcoinIcon"),s("span",{staticClass:"label"},[a._v(a._s(a.$t("97")))]),a._l(a.ownAddresses.slice(0,3),(function(a){return s("InteractiveShortAddress",{key:a,attrs:{address:a,copyable:"",tooltipPosition:"bottom left"}})}
1)),a.ownAddresses.length>3?s("a",{staticClass:"nq-link",attrs:{href:a.blockExplorerLink,target:"_blank",rel:"noopener"}},[a._v(a._s(a.$t("26",{n:a.ownAddresses.length-3})))]):a._e()],2)],1):s("div",{staticClass:"flex-row sender-recipient"},[s("div",{staticClass:"address-info flex-column"},[s("BitcoinIcon"),s("span",{staticClass:"label"},[a._v(a._s(a.$t("97")))]),a._l(a.ownAddresses.slice(0,3),(function(a){return s("InteractiveShortAddress",{key:a,attrs:{address:a,copyable:"",tooltipPosition:"bottom right"}})})),a.ownAddresses.length>3?s("a",{staticClass:"nq-link",attrs:{href:a.blockExplorerLink,target:"_blank",rel:"noopener"}},[a._v(a._s(a.$t("26",{n:a.ownAddresses.length-3})))]):a._e()],2),s("ArrowRightIcon",{staticClass:"arrow"}),s("div",{staticClass:"address-info flex-column"},[a.swapInfo?s("div",{staticClass:"identicon-container"},[a.swapData&&a.swapData.asset===a.SwapAsset.NIM&&a.swapTransaction?s("Identicon",{attrs:{address:a.peerAddresses[0]}}):!a.swapData||a.swapData.asset!==a.SwapAsset.USDC&&a.swapData.asset!==a.SwapAsset.USDC_MATIC?a.swapData&&a.swapData.asset===a.SwapAsset.USDT_MATIC?s("UsdtIcon"):a.swapData&&a.swapData.asset===a.SwapAsset.EUR?s("BankIcon"):s("Avatar",{attrs:{label:a.isCancelledSwap?"":a.peerLabel||""}}):s("UsdcIcon"),s("SwapMediumIcon")],1):s("Avatar",{attrs:{label:a.peerLabel||""}}),!a.peerAddresses[0]||!a.recipientLabelAddress&&a.peerLabel?s("span",{staticClass:"label",class:{unlabelled:!a.peerLabel}},[a._v(" "+a._s(a.peerLabel||a.$t("659"))+" ")]):s("input",{staticClass:"nq-input-s vanishing",attrs:{type:"text",placeholder:a.$t("659")},domProps:{value:a.peerLabel||""},on:{input:function(t){return a.setRecipientLabel(a.recipientLabelAddress||a.peerAddresses[0],t.target.value)}}}),a.peerAddresses[0]?a._l(a.peerAddresses.slice(0,3),(function(a){return s("InteractiveShortAddress",{key:a,attrs:{address:a,copyable:"",tooltipPosition:"bottom left"}})})):a._e(),a.peerAddresses.length>3?s("a",{staticClass:"nq-link",attrs:{href:a.blockExplorerLink,target:"_blank",rel:"noopener"}},[a._v(a._s(a.$t("26",{n:a.peerAddresses.length-3})))]):a._e()],2)],1),s("div",{staticClass:"amount-block flex-column"},[s("Amount",{staticClass:"transaction-value",class:{isIncoming:a.isIncoming,"nq-light-blue":a.state===a.TransactionState.NEW||a.state===a.TransactionState.PENDING,"nq-green":(a.state===a.TransactionState.MINED||a.state===a.TransactionState.CONFIRMED)&&a.isIncoming},attrs:{amount:a.isIncoming?a.amountReceived:a.amountSent,currency:"btc","value-mask":""}}),s("div",{staticClass:"flex-row"},[a.swapData&&a.swapData.asset===a.SwapAsset.EUR&&a.swapInfo&&a.swapInfo.fees&&a.swapInfo.fees.totalFee?s("div",{staticClass:"fiat-amount"},[s("Tooltip",[s("template",{slot:"trigger"},[s("FiatAmount",{attrs:{amount:a.swapData.amount/100-(a.swapInfo&&a.swapInfo.fees&&a.swapInfo.fees.totalFee||0)*(a.isIncoming?1:-1),currency:a.assetToCurrency(a.swapData.asset)}})],1),s("span",[a._v(a._s(a.$t("288")))]),s("p",{staticClass:"explainer"},[a._v(" "+a._s(a.$t("612"))+" ")])],2)],1):a.swapData&&a.swapData.asset===a.SwapAsset.EUR?a._e():s("transition",{attrs:{name:"fade"}},[a.state===a.TransactionState.PENDING?s("FiatConvertedAmount",{attrs:{amount:a.isIncoming?a.amountReceived:a.amountSent,currency:"btc","value-mask":""}}):void 0===a.fiat.value?s("div",{staticClass:"fiat-amount"},[a._v(" ")]):a.fiat.value===a.constants.FIAT_PRICE_UNAVAILABLE?s("div",{staticClass:"fiat-amount"},[a._v(" Fiat value unavailable ")]):s("div",{staticClass:"fiat-amount"},[s("Tooltip",[s("template",{slot:"trigger"},[s("FiatAmount",{attrs:{amount:a.fiat.value,currency:a.fiat.currency,"value-mask":""}})],1),s("span",[a._v(a._s(a.$t("288")))]),s("p",{staticClass:"explainer"},[a._v(" "+a._s(a.$t("612"))+" ")])],2)],1)],1),a.swapData&&(a.swapTransaction||a.swapData.asset===a.SwapAsset.EUR)?[a.swapData.asset!==a.SwapAsset.EUR||a.swapInfo&&a.swapInfo.fees&&a.swapInfo.fees.totalFee?s("svg",{staticClass:"dot",attrs:{viewBox:"0 0 3 3",width:"3",height:"3",xmlns:"http://www.w3.org/2000/svg"}},[s("circle",{attrs:{cx:"1.5",cy:"1.5",r:"1.5",fill:"currentColor"}})]):a._e(),a.swapData.asset!==a.SwapAsset.NIM||!a.swapTransaction||a.usesNimSwapProxy&&!a.swapTransaction.relatedTransactionHash?a._e():s("button",{staticClass:"swap-other-side reset flex-row",class:{incoming:!a.isIncoming},on:{click:function(t){return a.$router.replace({name:a.RouteName.Transaction,params:{hash:a.swapTransaction.transactionHash}})}}},[s("div",{staticClass:"icon"},[a.isIncoming?s("GroundedArrowUpIcon"):s("GroundedArrowDownIcon")],1),s("Amount",{staticClass:"swapped-amount",attrs:{amount:a.swapTransaction.value,currency:a.assetToCurrency(a.swapData.asset),"value-mask":""}})],1),a.swapData.asset!==a.SwapAsset.USDC&&a.swapData.asset!==a.SwapAsset.USDC_MATIC||!a.swapTransaction?a._e():s("button",{staticClass:"swap-other-side reset flex-row",class:{incoming:!a.isIncoming},on:{click:function(t){return a.$router.replace({name:a.RouteName.UsdcTransaction,params:{hash:a.swapTransaction.transactionHash}})}}},[s("div",{staticClass:"icon"},[a.isIncoming?s("GroundedArrowUpIcon"):s("GroundedArrowDownIcon")],1),s("Amount",{staticClass:"swapped-amount",attrs:{amount:a.swapTransaction.value,currency:a.assetToCurrency(a.swapData.asset),"value-mask":""}})],1),a.swapData.asset===a.SwapAsset.USDT_MATIC&&a.swapTransaction?s("button",{staticClass:"swap-other-side reset flex-row",class:{incoming:!a.isIncoming},on:{click:function(t){return a.$router.replace({name:a.RouteName.UsdtTransaction,params:{hash:a.swapTransaction.transactionHash}})}}},[s("div",{staticClass:"icon"},[a.isIncoming?s("GroundedArrowUpIcon"):s("GroundedArrowDownIcon")],1),s("Amount",{staticClass:"swapped-amount",attrs:{amount:a.swapTransaction.value,currency:a.assetToCurrency(a.swapData.asset),"value-mask":""}})],1):a.swapData.asset===a.SwapAsset.EUR?s("div",{staticClass:"swap-other-side flex-row",class:{incoming:!a.isIncoming}},[s("div",{staticClass:"icon"},[a.isIncoming?s("GroundedArrowUpIcon"):s("GroundedArrowDownIcon")],1),s("FiatAmount",{staticClass:"swapped-amount",attrs:{amount:a.swapData.amount/100,currency:a.assetToCurrency(a.swapData.asset),"value-mask":""}})],1):a._e()]:a._e()],2),a.data?s("div",{staticClass:"message"},[a._v(a._s(a.data))]):a._e()],1),a.showRefundButton?s("button",{staticClass:"nq-button-s",on:{click:a.refundHtlc,mousedown:function(a){a.preventDefault()}}},[a._v(" "+a._s(a.$t("451"))+" ")]):s("div",{staticClass:"flex-spacer"}),s("Tooltip",{staticClass:"info-tooltip",attrs:{preferredPosition:"bottom right"}},[s("InfoCircleSmallIcon",{attrs:{slot:"trigger"},slot:"trigger"}),a.transaction.blockHeight?s("span",{staticClass:"block"},[a._v(" "+a._s(a.$t("100",{height:a.transaction.blockHeight}))+" ")]):a._e(),a.confirmations>-1?s("span",{staticClass:"confirmations"},[a._v(" "+a._s(a.$tc("9",a.confirmations))+" ")]):s("div",{staticClass:"confirmations-skeleton"}),s("BlueLink",{attrs:{href:a.blockExplorerLink,target:"_blank",rel:"noopener"}}
1,[a._v(a._s(a.$t("101")))])],1)],1)],1)},n=[]},97892:function(a,t,s){s.a(a,(async function(a,e){try{var n=s(41936),r=s(88468),o=s(54669),i=s(1504),l=s(9298),c=s(78859),u=s(4739),p=s(35038),d=s(5546),v=s(76728),w=s(95426),m=s(88552),A=s(50326),f=s(94795),I=s(32093),_=s(97102),C=s(63870),S=s(76642),D=s(59607),h=s(23073),b=s(10538),g=s(62227),T=s(17740),y=s(12460),k=s(472),E=s(56453),U=s(99517),x=s(39734),L=s(57467),R=s(81763),M=s(72671),N=s(94035),$=s(41632),P=s(65103),H=s(42645),B=s(1747),W=s(48118),q=s(28683),F=s(71079),G=s(35075),O=a([c,d,v,w,h,b,T,k,U,x,L,M,N,B,W,q]);[c,d,v,w,h,b,T,k,U,x,L,M,N,B,W,q]=O.then?(await O)():O,t.A=(0,n.pM)({name:"btc-transaction-modal",props:{hash:{type:String,required:!0}},setup(a){const t=(0,c.rd)(),{$t:s}=(0,u.s)(),e={FIAT_PRICE_UNAVAILABLE:E.W1},r=(0,n.EW)((()=>(0,h.p)().state.transactions[a.hash])),{setRecipientLabel:d,getRecipientLabel:v,setSenderLabel:w,getSenderLabel:m}=(0,g.T)(),A=(0,n.EW)((()=>r.value.state)),{amountReceived:f,amountSent:I,isIncoming:_,isCancelledSwap:C,inputsSent:S,peerLabel:D,outputsReceived:H,outputsSent:F,swapData:G,swapInfo:O,fiat:Y}=(0,q.D)(r),X=(0,n.EW)((()=>(_.value?H.value.map((a=>a.address||a.script)):S.value.map((a=>a.address||a.script))).filter(((a,t,s)=>s.indexOf(a)===t)))),V=(0,n.EW)((()=>{if(!G.value)return null;if(G.value.asset===i.i5.NIM){var a;let t=(0,x.Gt)().state.transactions[G.value.transactionHash];return null!==(a=t)&&void 0!==a&&a.relatedTransactionHash&&(t=(0,x.Gt)().state.transactions[t.relatedTransactionHash]),t||null}return G.value.asset===i.i5.USDC||G.value.asset===i.i5.USDC_MATIC?(0,B.D)().state.transactions[G.value.transactionHash]||null:G.value.asset===i.i5.USDT_MATIC&&(0,W.o)().state.transactions[G.value.transactionHash]||null})),Q=(0,n.EW)((()=>{if(!V.value||!("validityStartHeight"in V.value))return!1;const a=_.value?V.value.sender:V.value.recipient;return(0,U.LU)(V.value.data.raw,U.vo.HTLC_PROXY)||V.value.relatedTransactionHash||!(0,L.L)().state.addressInfos[a]})),Z=(0,n.EW)((()=>C.value?_.value?s("290"):s("289"):"")),j=(0,n.EW)((()=>{if(G.value){if(G.value.asset===i.i5.NIM&&V.value)return Q.value&&!V.value.relatedTransactionHash?[""]:_.value?[V.value.sender]:[V.value.recipient];if((G.value.asset===i.i5.USDC||G.value.asset===i.i5.USDC_MATIC)&&V.value){const a=V.value;return _.value?[a.sender]:[a.recipient]}if(G.value.asset===i.i5.USDT_MATIC&&V.value){const a=V.value;return _.value?[a.sender]:[a.recipient]}if(G.value.asset===i.i5.EUR)return[G.value.iban||""]}return(_.value?r.value.inputs.map((a=>a.address||a.script)):F.value.map((a=>a.address||a.script))).filter(((a,t,s)=>s.indexOf(a)===t))})),z=(0,n.EW)((()=>_.value&&(X.value.find((a=>!!m.value(a)))||!1))),J=(0,n.EW)((()=>!_.value&&(j.value.find((a=>!!v.value(a)))||!1))),K=(0,n.EW)((()=>r.value.timestamp&&new Date(1e3*r.value.timestamp))),aa=(0,n.EW)((()=>K.value&&K.value.toLocaleDateString())),ta=(0,n.EW)((()=>K.value&&`${(0,k.aT)(K.value.getHours())}:${(0,k.aT)(K.value.getMinutes())}`)),{height:sa,timestamp:ea}=(0,y.q)(),na=(0,n.EW)((()=>r.value.blockHeight?sa.value-r.value.blockHeight+1:0)),ra=(0,n.EW)((()=>{var a,t,s,e;return!_.value&&(null===(a=O.value)||void 0===a||null===(t=a.in)||void 0===t?void 0:t.asset)===i.i5.BTC&&((null===(s=O.value.in.htlc)||void 0===s?void 0:s.timeoutTimestamp)||Number.POSITIVE_INFINITY)<=ea.value&&!O.value.out&&(null===(e=(0,T.useAccountStore)().activeAccountInfo.value)||void 0===e?void 0:e.type)===T.AccountType.LEDGER})),oa=(0,n.EW)((()=>(0,$.A)(E.dv.BTC,r.value.transactionHash)));async function ia(){const a=O.value.in,s=a.htlc,e=F.value[0],n=new Promise((async a=>{const t=await(0,i.Y)(),{feePerUnit:n}=t[i.i5.BTC],o=(0,R.U0)(1,1,n,102),l={accountId:(0,T.useAccountStore)().activeAccountId.value,refund:{type:i.i5.BTC,input:{transactionHash:r.value.transactionHash,outputIndex:e.index,outputScript:e.script,value:e.value,witnessScript:s.script},output:{address:(0,b.i)().availableExternalAddresses.value[0],value:e.value-o},refundAddress:s.refundAddress}};a(l)})),o=await(0,M.mY)(n);if(!o)return;const l=await(0,N.vD)(o);await(0,p.d)(),t.replace({name:c.xW.BtcTransaction,params:{hash:l.transactionHash}})}return{transaction:r,constants:e,state:A,TransactionState:o.iM,datum:aa,time:ta,data:Z,outputsReceived:H,amountReceived:f,inputsSent:S,amountSent:I,fiat:Y,isIncoming:_,peerAddresses:j,peerLabel:D,ownAddresses:X,confirmations:na,blockExplorerLink:oa,senderLabelAddress:z,recipientLabelAddress:J,setSenderLabel:w,setRecipientLabel:d,swapInfo:O,swapData:G,swapTransaction:V,SwapAsset:i.i5,usesNimSwapProxy:Q,isCancelledSwap:C,showRefundButton:ra,refundHtlc:ia,SettlementStatus:l.QZ,assetToCurrency:P.b,RouteName:c.xW}},components:{Amount:d.A,FiatConvertedAmount:v.A,ArrowRightIcon:r.ArrowRightIcon,Avatar:A.A,BitcoinIcon:f.A,PageBody:r.PageBody,PageHeader:r.PageHeader,Modal:w.Ay,InteractiveShortAddress:I.A,FiatAmount:r.FiatAmount,Tooltip:r.Tooltip,InfoCircleSmallIcon:r.InfoCircleSmallIcon,CircleSpinner:r.CircleSpinner,CrossIcon:r.CrossIcon,BlueLink:m.A,GroundedArrowUpIcon:_.A,GroundedArrowDownIcon:C.A,BankIcon:D.A,Identicon:r.Identicon,SwapMediumIcon:S.A,TransactionDetailOasisPayoutStatus:H.A,UsdcIcon:F.A,UsdtIcon:G.A}}),e()}catch(Y){e(Y)}}))}}]);
2//# sourceMappingURL=btc-transaction-modal.8ab2f6a4.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.