Skip to content

weavery/clarity.js

Repository files navigation

Clarity Runtime for JavaScript

Project license Discord

Acknowledgments

We thank Arweave and Blockstack for sponsoring the development of this project as part of the development of Sworn.

Status

Mapping of Clarity types

Clarity TypeScript JavaScript Notes
bool boolean boolean
(buff N) Uint8Array Uint8Array
err Err<T> Err
int number or bigint number or BigInt
(list N T) Array<T> Array
(optional T) T or null T or null
principal String String
(response T E) T or Err<E> T or Err
(string-ascii N) String String
(string-utf8 N) String String
(tuple ...) Map<String, any> Map
uint number or bigint number or BigInt

Supported Clarity features

Clarity Type TypeScript Status Notes
* function mul()
+ function add()
- function sub()
/ function div()
< function lt<T>()
<= function le<T>()
> function gt<T>()
>= function ge<T>()
append function append()
as-contract syntax asContract<A>()
as-max-len? syntax asMaxLen<T>()
at-block syntax atBlock<A>() Not supported by SmartWeave.
block-height keyword blockHeight()
concat function concat()
contract-call? function contractCall<A, B>() Not supported by SmartWeave.
contract-caller keyword contractCaller()
contract-of function contractOf() Not supported by SmartWeave.
default-to function defaultTo<T>()
err function err<T()
filter function filter<A>()
fold function fold<A, B>()
ft-get-balance function ftGetBalance() 🚧
ft-mint? function ftMint() 🚧
ft-transfer? function ftTransfer() 🚧
get function get<T>()
get-block-info? function getBlockInfo() Not supported by SmartWeave.
hash160 function hash160()
is-eq function isEq()
is-err function isErr()
is-none function isNone()
is-ok function isOk()
is-some function isSome()
keccak256 function keccak256()
len function len<T>()
list function list<T>()
map function map<A, B>()
map-delete function mapDelete()
map-get? function mapGet()
map-insert function mapInsert()
map-set function mapSet()
match syntax match<T, E>()
mod function mod()
nft-get-owner? function nftGetOwner() 🚧
nft-mint? function nftMint() 🚧
nft-transfer? function nftTransfer() 🚧
none constant none
not function not()
ok function ok<T, E>()
pow function pow()
print function print<T>()
sha256 function sha256()
sha512 function sha512()
sha512/256 function sha512_256()
some function some()
to-int function toInt() 🚧
to-uint function toUint() 🚧
try! syntax tryUnwrap<A, B>()
tuple function tuple()
tx-sender keyword txSender()
unwrap! syntax unwrap<A, B>()
unwrap-err! syntax unwrapErr<A, B>()
unwrap-err-panic function unwrapErrPanic<A, B>()
unwrap-panic function unwrapPanic<A, B>()
xor function xor()

Legend: ❌ = not supported. 🚧 = work in progress. ✅ = supported. ⓐ = supported on SmartWeave (Arweave).