# Sophia types in JS SDK | Type | Sophia | JS | |------|--------|----| | int | ` add_two(one: int, two: int)` | `sum(1 , 2)` | | address | ` set_owner(owner: address)` | `set_owner("ak_1337...")` | | bool | `is_it_true(answer : bool)` | `is_it_true(true)` | | bits | `give_me_bits(input : bits)` | `give_me_bits([1,0,0,1,1,0])` | | bytes | `get_bytes(test : bytes(3))` | `get_bytes(["0x01","0x1f", "0x10"])` | | string | `hello_world(say_hello : string)` | `hello_world("Hello!")` | | list | `have_a_few(candy : list(string))` | `have_a_few(["Skittles", "M&Ms", "JellyBelly"])` | | functions | (Higher order) functions are not allowed in`entrypoint` params | | | tuple | `a_few_things(things : (string * int * map(address, bool)))` | `a_few_things(["hola", 3, {"ak_1337...": true}])` | | record | `record user = {`<br /> &nbsp; &nbsp; &nbsp; &nbsp; `name: string,` <br /> &nbsp; &nbsp; &nbsp; &nbsp; `surname: string` <br /> &nbsp; &nbsp; `}` <br /> <br /> `entrypoint golden_record(input: user) : string =` <br /> &nbsp; &nbsp; &nbsp; &nbsp; `input.surname` | `golden_record({"name": "Alfred", "surname": "Mustermann"})` | | map | `balances(values : map(address, int))` | `balances({"ak_1337...": 123, "ak_FCKGW...": 321, "ak_Rm5U...": 999})` | | option() | `entrypoint number_defined(value : option(int)) : bool = ` <br /> &nbsp; &nbsp; &nbsp; &nbsp; `switch(value)` <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; `Some(int) => true` <br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; `None => false` | `number_defined(1337)` | | hash | `a_gram(of : hash)` | `//32 bytes, eg. a1 == 1 byte` <br /> `a_gram(af01...490f)` | | signature | | | | Chain.ttl | `entrypoint time_remaining(value : Chain.ttl) ` | ? | | oracle('a, 'b) | ? | ? | | oracle_query('a, 'b) | ? | ? | | contract | | |