Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | 21x 21x 21x 21x 5x 3x 3x 3x 4x 4x 1x 1x 1x 1x 2x 2x 2x 16x 1x 1x | import { ClarityType } from '../common/constants'; import { bytesToAscii, bytesToHex } from 'micro-stacks/common'; import { principalToString } from '../types/principalCV'; import { ClarityValue } from './types'; export function cvToString( val: ClarityValue, encoding: 'tryAscii' | 'hex' = 'hex' ): string | bigint { switch (val.type) { case ClarityType.BoolTrue: return 'true'; case ClarityType.BoolFalse: return 'false'; case ClarityType.Int: return val.value.toString(); case ClarityType.UInt: return `u${val.value.toString()}`; case ClarityType.Buffer: Iif (encoding === 'tryAscii') { const str = bytesToAscii(val.buffer); Iif (/[ -~]/.test(str)) { return JSON.stringify(str); } } return `0x${bytesToHex(val.buffer)}`; case ClarityType.OptionalNone: return 'none'; case ClarityType.OptionalSome: return `(some ${cvToString(val.value, encoding)})`; case ClarityType.ResponseErr: return `(err ${cvToString(val.value, encoding)})`; case ClarityType.ResponseOk: return `(ok ${cvToString(val.value, encoding)})`; case ClarityType.PrincipalStandard: case ClarityType.PrincipalContract: return principalToString(val); case ClarityType.List: return `(list ${val.list.map(v => cvToString(v, encoding)).join(' ')})`; case ClarityType.Tuple: return `(tuple ${Object.keys(val.data) .map(key => `(${key} ${cvToString(val.data[key], encoding)})`) .join(' ')})`; case ClarityType.StringASCII: return `"${val.data}"`; case ClarityType.StringUTF8: return `u"${val.data}"`; } } |