UNPKG

@algonameservice/sdk

Version:

JavaScript SDK to resolve ANS .algo names

399 lines (396 loc) 5.33 kB
export function generateTeal(name: string, escrow?: string, app?: number) { return `#pragma version 4 byte "${name}" len int 3 == bnz main_l22 byte "${name}" len int 4 == bnz main_l13 byte "${name}" len int 5 >= bnz main_l4 err main_l4: gtxn 0 Amount int 5000000 >= assert byte "${name}" len int 64 <= assert int 0 store 0 main_l5: load 0 byte "${name}" len < bnz main_l12 global GroupSize int 2 == global GroupSize int 4 == || assert gtxn 0 Sender gtxn 1 Sender == assert gtxn 0 Receiver addr ${escrow} == assert global GroupSize int 2 == bnz main_l11 global GroupSize int 4 == bnz main_l10 int 0 return main_l9: int 1 assert int 1 b main_l31 main_l10: gtxn 1 Receiver gtxn 2 Sender == gtxn 2 ApplicationID int ${app} == && gtxn 2 OnCompletion int OptIn == && gtxn 3 ApplicationID int ${app} == && gtxn 3 Sender gtxn 0 Sender == && gtxna 3 ApplicationArgs 0 byte "register_name" == && gtxna 3 ApplicationArgs 1 byte "${name}" == && assert b main_l9 main_l11: gtxn 1 ApplicationID int ${app} == gtxna 1 ApplicationArgs 0 byte "register_name" == && gtxna 1 ApplicationArgs 1 byte "${name}" == && assert b main_l9 main_l12: byte "${name}" load 0 getbyte int 97 >= byte "${name}" load 0 getbyte int 122 <= && byte "${name}" load 0 getbyte int 48 >= byte "${name}" load 0 getbyte int 57 <= && || assert load 0 int 1 + store 0 b main_l5 main_l13: gtxn 0 Amount int 50000000 >= assert byte "${name}" len int 64 <= assert int 0 store 0 main_l14: load 0 byte "${name}" len < bnz main_l21 global GroupSize int 2 == global GroupSize int 4 == || assert gtxn 0 Sender gtxn 1 Sender == assert gtxn 0 Receiver addr ${escrow} == assert global GroupSize int 2 == bnz main_l20 global GroupSize int 4 == bnz main_l19 int 0 return main_l18: int 1 assert int 1 b main_l31 main_l19: gtxn 1 Receiver gtxn 2 Sender == gtxn 2 ApplicationID int ${app} == && gtxn 2 OnCompletion int OptIn == && gtxn 3 ApplicationID int ${app} == && gtxn 3 Sender gtxn 0 Sender == && gtxna 3 ApplicationArgs 0 byte "register_name" == && gtxna 3 ApplicationArgs 1 byte "${name}" == && assert b main_l18 main_l20: gtxn 1 ApplicationID int ${app} == gtxna 1 ApplicationArgs 0 byte "register_name" == && gtxna 1 ApplicationArgs 1 byte "${name}" == && assert b main_l18 main_l21: byte "${name}" load 0 getbyte int 97 >= byte "${name}" load 0 getbyte int 122 <= && byte "${name}" load 0 getbyte int 48 >= byte "${name}" load 0 getbyte int 57 <= && || assert load 0 int 1 + store 0 b main_l14 main_l22: gtxn 0 Amount int 150000000 >= assert byte "${name}" len int 64 <= assert int 0 store 0 main_l23: load 0 byte "${name}" len < bnz main_l30 global GroupSize int 2 == global GroupSize int 4 == || assert gtxn 0 Sender gtxn 1 Sender == assert gtxn 0 Receiver addr ${escrow} == assert global GroupSize int 2 == bnz main_l29 global GroupSize int 4 == bnz main_l28 int 0 return main_l27: int 1 assert int 1 b main_l31 main_l28: gtxn 1 Receiver gtxn 2 Sender == gtxn 2 ApplicationID int ${app} == && gtxn 2 OnCompletion int OptIn == && gtxn 3 ApplicationID int ${app} == && gtxn 3 Sender gtxn 0 Sender == && gtxna 3 ApplicationArgs 0 byte "register_name" == && gtxna 3 ApplicationArgs 1 byte "${name}" == && assert b main_l27 main_l29: gtxn 1 ApplicationID int ${app} == gtxna 1 ApplicationArgs 0 byte "register_name" == && gtxna 1 ApplicationArgs 1 byte "${name}" == && assert b main_l27 main_l30: byte "${name}" load 0 getbyte int 97 >= byte "${name}" load 0 getbyte int 122 <= && byte "${name}" load 0 getbyte int 48 >= byte "${name}" load 0 getbyte int 57 <= && || assert load 0 int 1 + store 0 b main_l23 main_l31: return`; } export function b64toString(data: string): string { return Buffer.from(data, "base64").toString(); } export function toIntArray(data: string): Uint8Array { return new Uint8Array(Buffer.from(data)); }