UNPKG

wowok

Version:

Wowok Blockchain TypeScript API

1 lines 2.99 kB
import{toBase58}from'../../_deps/bcs/index.js';import{expect,it}from'vitest';import{bcs}from'../../bcs/index.js';import{normalizeStructTag,normalizeWowAddress}from'../../utils/wow-types.js';it('can\x20serialize\x20simplified\x20programmable\x20call\x20struct',()=>{const a={'package':'0x2','module':'display','function':'new','typeArguments':[normalizeStructTag('0x6::capy::Capy')],'arguments':[{'$kind':'GasCoin','GasCoin':!![]},{'$kind':'NestedResult','NestedResult':[0x0,0x1]},{'$kind':'Input','Input':0x3},{'$kind':'Result','Result':0x1}]},b=bcs['ProgrammableMoveCall']['serialize'](a)['toBytes'](),c=bcs['ProgrammableMoveCall']['parse'](b);expect(c['arguments'])['toEqual'](a['arguments']),expect(c['function'])['toEqual'](a['function']),expect(c['module'])['toEqual'](a['module']),expect(normalizeWowAddress(c['package']))['toEqual'](normalizeWowAddress(a['package'])),expect(c['typeArguments'][0x0])['toEqual'](a['typeArguments'][0x0]);});function ref(){return{'objectId':normalizeWowAddress((Math['random']()*0x186a0)['toFixed'](0x0)['padEnd'](0x40,'0')),'version':String((Math['random']()*0x2710)['toFixed'](0x0)),'digest':toBase58(new Uint8Array([0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0x1,0x2]))};}it('can\x20serialize\x20transaction\x20data\x20with\x20a\x20programmable\x20transaction',()=>{const a=normalizeWowAddress('0x2'),b={'$kind':'V1','V1':{'sender':normalizeWowAddress('0xBAD'),'expiration':{'$kind':'None','None':!![]},'gasData':{'payment':[ref()],'owner':a,'price':'1','budget':'1000000'},'kind':{'$kind':'ProgrammableTransaction','ProgrammableTransaction':{'inputs':[{'$kind':'Object','Object':{'$kind':'ImmOrOwnedObject','ImmOrOwnedObject':ref()}},{'$kind':'Pure','Pure':{'bytes':bcs['vector'](bcs['String'])['serialize'](['name','description','img_url'])['toBase64']()}},{'$kind':'Pure','Pure':{'bytes':bcs['vector'](bcs['String'])['serialize'](['Capy\x20{name}','A\x20cute\x20little\x20creature','https://api.capy.art/{id}/svg'])['toBase64']()}},{'$kind':'Pure','Pure':{'bytes':bcs['Address']['serialize'](ref()['objectId'])['toBase64']()}}],'commands':[{'$kind':'MoveCall','MoveCall':{'package':a,'module':'display','function':'new','typeArguments':[a+'::capy::Capy'],'arguments':[{'$kind':'Input','Input':0x0}]}},{'$kind':'MoveCall','MoveCall':{'package':a,'module':'display','function':'add_multiple','typeArguments':[a+'::capy::Capy'],'arguments':[{'$kind':'Result','Result':0x0},{'$kind':'Input','Input':0x1},{'$kind':'Input','Input':0x2}]}},{'$kind':'MoveCall','MoveCall':{'package':a,'module':'display','function':'update_version','typeArguments':[a+'::capy::Capy'],'arguments':[{'$kind':'Result','Result':0x0}]}},{'$kind':'TransferObjects','TransferObjects':{'objects':[{'$kind':'Result','Result':0x0}],'address':{'$kind':'Input','Input':0x3}}}]}}}},c=bcs['TransactionData']['serialize'](b)['toBytes'](),d=bcs['TransactionData']['parse'](c);expect(d)['toMatchObject'](b);});