import { u128 } from "as-bignum" ; import { Bool , Byte , BytesReader , CompactInt , Hash , Int16 , Int32 , Int64 , Int8 , ScaleMap , ScaleString , UInt128 , UInt128Array , UInt16 , UInt32 , UInt64 , UInt8 , } from "as-scale-codec" ; export function demonstrate ( ) { trace ( `Encoding examples:` ) ; const scaleBool = new Bool ( true ) ; trace ( "bool(true) -> " + scaleBool . toU8a ( ) . toString ( ) ) ; const scaleByte = new Byte ( 0x01 ) ; trace ( "Byte(0x01) -> " + scaleByte . toU8a ( ) . toString ( ) ) ; const scaleString = new ScaleString ( "a" ) ; trace ( "String(a) -> " + scaleString . toU8a ( ) . toString ( ) ) ; const scaleMap = new ScaleMap < Int32 , Bool > ( ) ; scaleMap . set ( new Int32 ( 1 ) , new Bool ( false ) ) ; trace ( "ScaleMap(new Map([[1, false]])" + scaleMap . toU8a ( ) . toString ( ) ) ; const scaleHash = new Hash ( [ 0xff , 0x00 , 0xab ] ) ; trace ( "Hash([0xff, 0x00, 0xab]) -> " + scaleHash . toU8a ( ) . toString ( ) ) ; const scaleCompactInt = new CompactInt ( 1 ) ; trace ( "CompactInt(1) ->  " + scaleCompactInt . toU8a ( ) . toString ( ) ) ; const scaleInt8 = new Int8 ( - 1 ) ; trace ( "Int8(-1) -> " + scaleInt8 . toU8a ( ) . toString ( ) ) ; const scaleInt16 = new Int16 ( - 1 ) ; trace ( "Int16(-1) -> " + scaleInt16 . toU8a ( ) . toString ( ) ) ; const scaleInt32 = new Int32 ( - 1 ) ; trace ( "Int32(-1) -> " + scaleInt32 . toU8a ( ) . toString ( ) ) ; const scaleInt64 = new Int64 ( - 1 ) ; trace ( "Int64(-1)  -> " + scaleInt64 . toU8a ( ) . toString ( ) ) ; const scaleUInt8 = new UInt8 ( 1 ) ; trace ( "UInt8(1)  -> " + scaleUInt8 . toU8a ( ) . toString ( ) ) ; const scaleUInt16 = new UInt16 ( 1 ) ; trace ( "Uint16(1) -> " + scaleUInt16 . toU8a ( ) . toString ( ) ) ; const scaleUInt32 = new UInt32 ( 1 ) ; trace ( "Uint32(1) -> " + scaleUInt32 . toU8a ( ) . toString ( ) ) ; const scaleUInt64 = new UInt64 ( 1 ) ; trace ( "Uint64(1) -> " + scaleUInt64 . toU8a ( ) . toString ( ) ) ; const scaleUInt128 = new UInt128 ( u128 . fromU64 ( 18446744073709551615 ) ) ; trace ( "Uint128(18446744073709551615) -> " + scaleUInt128 . toU8a ( ) . toString ( ) ) ; trace ( "Bool [0x01] -> " + Bool . fromU8a ( [ 0x01 ] ) . value . toString ( ) ) ; trace ( "Byte [0x01] -> " + Byte . fromU8a ( [ 0x01 ] ) . value . toString ( ) ) ; const decodeStr = ScaleString . fromU8a ( [ 0x04 , 0x61 ] ) ; trace ( "String [0x04, 0x61] -> " + decodeStr . valueStr . toString ( ) ) ; const decodeHash = Hash . fromU8a ( [ 0xff , 0x00 , 0xab ] ) ; trace ( "Hash [0xff, 0x00, 0xab] -> " + decodeHash . toString ( ) ) ; trace ( "CompactInt [0x04] -> " + CompactInt . fromU8a ( [ 0x04 ] ) . value . toString ( ) ) ; trace ( "Int8 [0xff] -> " + Int8 . fromU8a ( [ 0xff ] ) . value . toString ( ) ) ; trace ( "Int16 [0xff, 0xff] -> " + Int16 . fromU8a ( [ 0xff , 0xff ] ) . value . toString ( ) ) ; trace ( "Int32 [0xff, 0xff, 0xff, 0xff] -> " + Int32 . fromU8a ( [ 0xff , 0xff , 0xff , 0xff ] ) . toString ( ) ) ; trace ( "Int64 [0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff] -> " + Int64 . fromU8a ( [ 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , ] ) . value . toString ( ) ) ; trace ( "UInt8 [0x01] -> " + UInt8 . fromU8a ( [ 0x01 ] ) . value . toString ( ) ) ; trace ( "UInt16 [0x01, 0x00] -> " + UInt16 . fromU8a ( [ 0x01 , 0x00 ] ) . value . toString ( ) ) ; trace ( "UInt32 [0x01, 0x00, 0x00, 0x00] -> " + UInt32 . fromU8a ( [ 0x01 , 0x00 , 0x00 , 0x00 ] ) . toString ( ) ) ; trace ( "UInt64 [0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00] -> " + UInt64 . fromU8a ( [ 0x01 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , ] ) . value . toString ( ) ) ; trace ( "UInt128 [0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff] -> " + UInt128 . fromU8a ( [ 0x33 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , ] ) . toString ( ) ) ; trace ( "Decoding using popualateFromBytes Codec method" ) ; const hash = new Hash ( ) ; hash . populateFromBytes ( [ 12 , 123 , 123 , 12 , 12 , 12 , 3 , 31 , 12 , 12 , 123 , 3 , 5 , 1 , 2 , 34 , 6 , 8 , 9 , 12 , 12 , 32 , 21 , 53 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , ] ) ; trace ( "Hash [12, 123, 123, 12, 12, 12, 3, 31, 12, 12, 123, 3, 5, 1, 2, 34, 6, 8, 9, 12, 12, 32, 21, 53, 0, 0, 0, 0, 0, 0, 0, 0] -> " + hash . toString ( ) ) ; const int64 = new Int64 ( ) ; int64 . populateFromBytes ( [ 255 , 255 , 255 , 1 ] ) ; trace ( "Int64 [21, 21, 2, 1] -> " + int64 . value . toString ( ) ) ; const cmpInt = new CompactInt ( ) ; cmpInt . populateFromBytes ( [ 145 , 2 ] ) ; trace ( "CompactInt [145, 2] -> " + cmpInt . value . toString ( ) ) ; const uInt64 = new UInt64 ( ) ; uInt64 . populateFromBytes ( [ 1 , 1 , 1 , 1 ] ) ; trace ( "UInt64 [1, 1, 1, 1] -> " + uInt64 . value . toString ( ) ) ; const scaleString1 = new ScaleString ( ) ; scaleString1 . populateFromBytes ( [ 20 , 99 , 99 , 100 , 112 , 103 ] ) ; trace ( "ScaleString [97, 99, 99, 100, 112, 103] -> " + scaleString1 . valueStr ) ; const byte = new Byte ( ) ; byte . populateFromBytes ( [ 8 ] ) ; trace ( "Byte [8] -> " + byte . toU8a ( ) . toString ( ) ) ; const int32 = new Int32 ( ) ; int32 . populateFromBytes ( [ 255 , 0 , 0 , 0 ] ) ; trace ( "Int32 [255, 0, 0, 0] -> " + int32 . value . toString ( ) ) ; trace ( "Decoding using BytesReader" ) ; const bytes = [ 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 69 , 0 , 0 , 0 , 110 , 125 , 239 , 2 , 56 , 97 , 115 , 45 , 115 , 99 , 97 , 108 , 101 , 45 , 99 , 111 , 100 , 101 , 99 , 128 , 1 , 10 , 0 , 0 , 0 , 2 , 2 , 1 , 123 , 33 , 3 , 1 , 35 , 34 , 5 , 8 , 22 , 52 , 1 , 0 , 0 , 0 , 1 , 1 , 1 , 56 , 21 , 142 , 13 , 13 , 1 , 0 , ] ; const bytesReader = new BytesReader ( bytes ) ; trace ( "Int64 [0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff] -> " + bytesReader . readInto < Int64 > ( ) . value . toString ( ) ) ; trace ( "UInt32 [69, 0, 0, 0] -> " + bytesReader . readInto < UInt32 > ( ) . value . toString ( ) ) ; trace ( "CompactInt [110, 125, 239, 2] -> " + bytesReader . readInto < CompactInt > ( ) . value . toString ( ) ) ; trace ( "ScaleString [56, 97, 115, 45, 115, 99, 97, 108, 101, 45, 99, 111, 100, 101, 99] -> " + bytesReader . readInto < ScaleString > ( ) . valueStr ) ; trace ( "Hash [128, 1, 10, 0, 0, 0, 2, 2, 1, 123, 33, 3, 1, 35, 34, 5, 8, 22, 52, 1, 0, 0, 0, 1, 1, 1, 56, 21, 142, 13, 13, 1] -> " + bytesReader . readInto < Hash > ( ) . toString ( ) ) ; trace ( "Bool [0] -> " + bytesReader . readInto < Bool > ( ) . toString ( ) ) ; trace ( "CompactInt [169, 2] -> " + BytesReader . decodeInto < CompactInt > ( [ 169 , 2 ] ) . toString ( ) ) ; trace ( "Int8 [0xff] -> " + BytesReader . decodeInto < Int8 > ( [ 0xff ] ) . toString ( ) ) ; trace ( "UInt8 [123] -> " + BytesReader . decodeInto < UInt8 > ( [ 123 ] ) . toString ( ) ) ; trace ( "UInt128Array [0x10, 0x04, 0x0c, 0x0c, 0x10] -> " + BytesReader . decodeInto < UInt128Array > ( [ 0x10 , 0x04 , 0x0c , 0x0c , 0x10 , ] ) . values . toString ( ) ) ; trace ( "ScaleMap(new Map([[1, false]] -> " + BytesReader . decodeInto < ScaleMap < Int32 , Bool > > ( [ 4 , 1 , 0 , 0 , 0 , 0 ] ) . toU8a ( ) . toString ( ) ) ; }