package archetype

  1. Overview
  2. Docs
type 'a with_annot = {
  1. node : 'a;
  2. annotation : Ident.ident option;
}
type type_node =
  1. | Taddress
  2. | Tbig_map of type_ * type_
  3. | Tbool
  4. | Tbytes
  5. | Tchain_id
  6. | Tcontract of type_
  7. | Tint
  8. | Tkey
  9. | Tkey_hash
  10. | Tlambda of type_ * type_
  11. | Tlist of type_
  12. | Tmap of type_ * type_
  13. | Tmutez
  14. | Tnat
  15. | Toperation
  16. | Toption of type_
  17. | Tor of type_ * type_
  18. | Tpair of type_ * type_
  19. | Tset of type_
  20. | Tsignature
  21. | Tstring
  22. | Ttimestamp
  23. | Tunit
  24. | Tticket of type_
  25. | Tsapling_state of int
  26. | Tsapling_transaction of int
  27. | Tbls12_381_fr
  28. | Tbls12_381_g1
  29. | Tbls12_381_g2
  30. | Tnever
  31. | Tchest
  32. | Tchest_key
and type_ = type_node with_annot
val show_type_node : type_node -> Ppx_deriving_runtime.string
type data =
  1. | Dint of Core.big_int
  2. | Dstring of string
  3. | Dbytes of string
  4. | Dunit
  5. | Dtrue
  6. | Dfalse
  7. | Dpair of data * data
  8. | Dleft of data
  9. | Dright of data
  10. | Dsome of data
  11. | Dnone
  12. | Dlist of data list
  13. | Delt of data * data
  14. | Dvar of Ident.ident * type_
  15. | DIrCode of Ident.ident * instruction
  16. | Dcode of code
and code_node =
  1. | SEQ of code list
  2. | APPLY
  3. | EXEC
  4. | FAILWITH
  5. | IF of code list * code list
  6. | IF_CONS of code list * code list
  7. | IF_LEFT of code list * code list
  8. | IF_NONE of code list * code list
  9. | ITER of code list
  10. | LAMBDA of type_ * type_ * code list
  11. | LOOP of code list
  12. | LOOP_LEFT of code list
  13. | DIG of int
  14. | DIP of int * code list
  15. | DROP of int
  16. | DUG of int
  17. | DUP
  18. | DUP_N of int
  19. | PUSH of type_ * data
  20. | SWAP
  21. | ABS
  22. | ADD
  23. | COMPARE
  24. | EDIV
  25. | EQ
  26. | GE
  27. | GT
  28. | INT
  29. | ISNAT
  30. | LE
  31. | LSL
  32. | LSR
  33. | LT
  34. | MUL
  35. | NEG
  36. | NEQ
  37. | SUB
  38. | SUB_MUTEZ
  39. | AND
  40. | NOT
  41. | OR
  42. | XOR
  43. | BLAKE2B
  44. | CHECK_SIGNATURE
  45. | HASH_KEY
  46. | KECCAK
  47. | PAIRING_CHECK
  48. | SAPLING_EMPTY_STATE of int
  49. | SAPLING_VERIFY_UPDATE
  50. | SHA256
  51. | SHA512
  52. | SHA3
  53. | ADDRESS
  54. | AMOUNT
  55. | BALANCE
  56. | CHAIN_ID
  57. | CONTRACT of type_ * Ident.ident option
  58. | CREATE_CONTRACT of type_ * type_ * code
  59. | IMPLICIT_ACCOUNT
  60. | LEVEL
  61. | NOW
  62. | SELF of Ident.ident option
  63. | SELF_ADDRESS
  64. | SENDER
  65. | SET_DELEGATE
  66. | SOURCE
  67. | TOTAL_VOTING_POWER
  68. | TRANSFER_TOKENS
  69. | VOTING_POWER
  70. | CAR
  71. | CDR
  72. | CONCAT
  73. | CONS
  74. | EMPTY_BIG_MAP of type_ * type_
  75. | EMPTY_MAP of type_ * type_
  76. | EMPTY_SET of type_
  77. | GET
  78. | GET_N of int
  79. | GET_AND_UPDATE
  80. | LEFT of type_
  81. | MAP of code list
  82. | MEM
  83. | NEVER
  84. | NIL of type_
  85. | NONE of type_
  86. | PACK
  87. | PAIR
  88. | PAIR_N of int
  89. | RIGHT of type_
  90. | SIZE
  91. | SLICE
  92. | SOME
  93. | UNIT
  94. | UNPACK of type_
  95. | UNPAIR
  96. | UNPAIR_N of int
  97. | UPDATE
  98. | UPDATE_N of int
  99. | JOIN_TICKETS
  100. | READ_TICKET
  101. | SPLIT_TICKET
  102. | TICKET
  103. | CAST of type_
  104. | RENAME
  105. | VIEW of Ident.ident * type_
  106. | OPEN_CHEST
  107. | CAR_N of int
  108. | CDR_N of int
and code = {
  1. node : code_node;
  2. type_ : type_ list option ref;
}
and z_operator =
  1. | Znow
  2. | Zamount
  3. | Zbalance
  4. | Zsource
  5. | Zsender
  6. | Zaddress
  7. | Zchain_id
  8. | Zself of Ident.ident option
  9. | Zself_address
  10. | Znone of type_
  11. | Zunit
  12. | Znil of type_
  13. | Zemptyset of type_
  14. | Zemptymap of type_ * type_
  15. | Zemptybigmap of type_ * type_
  16. | Ztotalvotingpower
  17. | Zlevel
  18. | Zsapling_empty_state of int
and un_operator =
  1. | Ucar
  2. | Ucdr
  3. | Uleft of type_
  4. | Uright of type_
  5. | Uneg
  6. | Uint
  7. | Unot
  8. | Uabs
  9. | Uisnat
  10. | Usome
  11. | Usize
  12. | Upack
  13. | Uunpack of type_
  14. | Ublake2b
  15. | Usha256
  16. | Usha512
  17. | Usha3
  18. | Ukeccak
  19. | Uhash_key
  20. | Ufail
  21. | Ucontract of type_ * Ident.ident option
  22. | Usetdelegate
  23. | Uimplicitaccount
  24. | Ueq
  25. | Une
  26. | Ugt
  27. | Uge
  28. | Ult
  29. | Ule
  30. | Uvotingpower
  31. | Ureadticket
  32. | Ujointickets
  33. | Upairing_check
  34. | Uconcat
  35. | Uaddress
  36. | UcarN of int
  37. | UcdrN of int
and bin_operator =
  1. | Badd
  2. | Bsub
  3. | Bmul
  4. | Bediv
  5. | Blsl
  6. | Blsr
  7. | Bor
  8. | Band
  9. | Bxor
  10. | Bcompare
  11. | Bget
  12. | Bmem
  13. | Bconcat
  14. | Bcons
  15. | Bpair
  16. | Bexec
  17. | Bapply
  18. | Bcreateticket
  19. | Bsplitticket
  20. | Bsapling_verify_update
  21. | Bview of Ident.ident * type_
  22. | Bsubmutez
and ter_operator =
  1. | Tcheck_signature
  2. | Tslice
  3. | Tupdate
  4. | Ttransfer_tokens
  5. | Topen_chest
and g_operator = [
  1. | `Zop of z_operator
  2. | `Uop of un_operator
  3. | `Bop of bin_operator
  4. | `Top of ter_operator
]
and cmp_operator =
  1. | Ceq
  2. | Cne
  3. | Cgt
  4. | Cge
  5. | Clt
  6. | Cle
and builtin =
  1. | Bmin of type_
  2. | Bmax of type_
  3. | Bfloor
  4. | Bceil
  5. | BlistContains of type_
  6. | BlistNth of type_
  7. | Btostring of type_
  8. | Bratcmp
  9. | Bratnorm
  10. | Brataddsub
  11. | Bratdiv
  12. | Bratmul
  13. | Bratuminus
  14. | Bratabs
  15. | Brattez
  16. | Bratdur
  17. | Bsubnat
  18. | Bmuteztonat
and instruction =
  1. | Iseq of instruction list
  2. | IletIn of Ident.ident * instruction * instruction * bool
  3. | Ivar of Ident.ident
  4. | Icall of Ident.ident * instruction list * bool
  5. | Iassign of Ident.ident * instruction
  6. | Iif of instruction * instruction * instruction * type_
  7. | Iifnone of instruction * instruction * Ident.ident * instruction * type_
  8. | Iifleft of instruction * Ident.ident * instruction * Ident.ident * instruction * type_
  9. | Iifcons of instruction * Ident.ident * Ident.ident * instruction * instruction * type_
  10. | Iloop of instruction * instruction
  11. | Iiter of Ident.ident list * instruction * instruction
  12. | Iloopleft of instruction * Ident.ident * instruction
  13. | Ilambda of type_ * Ident.ident * type_ * instruction
  14. | Izop of z_operator
  15. | Iunop of un_operator * instruction
  16. | Ibinop of bin_operator * instruction * instruction
  17. | Iterop of ter_operator * instruction * instruction * instruction
  18. | Iupdate of ukind * aoperator
  19. | Iconst of type_ * data
  20. | Icompare of cmp_operator * instruction * instruction
  21. | Iset of type_ * instruction list
  22. | Ilist of type_ * instruction list
  23. | Imap of bool * type_ * type_ * (instruction * instruction) list
  24. | Irecord of ritem
  25. | Irecupdate of instruction * ruitem
  26. | Imap_ of instruction * Ident.ident * instruction
  27. | Ifold of Ident.ident * Ident.ident option * Ident.ident * instruction * instruction * instruction
  28. | Ireverse of type_ * instruction
  29. | Imichelson of instruction list * code * Ident.ident list
and ritem =
  1. | Rtuple of instruction list
  2. | Rnodes of ritem list
and ruitem =
  1. | RUnodes of int * (int * ruitem) list
  2. | RUassign of int * (int * instruction) list
and aoperator =
  1. | Aunop of un_operator
  2. | Abinop of bin_operator * instruction
  3. | Aterop of ter_operator * instruction * instruction
and ukind =
  1. | Uvar of Ident.ident
  2. | Urec of Ident.ident * (int * int) list
val show_code_node : code_node -> Ppx_deriving_runtime.string
val show_z_operator : z_operator -> Ppx_deriving_runtime.string
val show_un_operator : un_operator -> Ppx_deriving_runtime.string
val show_bin_operator : bin_operator -> Ppx_deriving_runtime.string
val show_ter_operator : ter_operator -> Ppx_deriving_runtime.string
val show_g_operator : g_operator -> Ppx_deriving_runtime.string
val show_cmp_operator : cmp_operator -> Ppx_deriving_runtime.string
val show_builtin : builtin -> Ppx_deriving_runtime.string
val show_instruction : instruction -> Ppx_deriving_runtime.string
val show_ruitem : ruitem -> Ppx_deriving_runtime.string
val show_aoperator : aoperator -> Ppx_deriving_runtime.string
type implem =
  1. | Concrete of (Ident.ident * type_) list * instruction
  2. | Abstract of builtin
val show_implem : implem -> Ppx_deriving_runtime.string
type ctx_func = {
  1. args : (Ident.ident * type_) list;
  2. stovars : Ident.ident list;
}
val show_ctx_func : ctx_func -> Ppx_deriving_runtime.string
type func = {
  1. name : Ident.ident;
  2. targ : type_;
  3. tret : type_;
  4. ctx : ctx_func;
  5. body : implem;
}
type entry = {
  1. name : Ident.ident;
  2. args : (Ident.ident * type_) list;
  3. eargs : (Ident.ident * type_) list;
  4. body : instruction;
}
type ir = {
  1. name : Ident.ident;
  2. storage_type : type_;
  3. storage_data : data;
  4. storage_list : (Ident.ident * type_ * data) list;
  5. with_operations : bool;
  6. parameter : type_;
  7. funs : func list;
  8. views : func list;
  9. entries : entry list;
  10. parameters : Ident.ident list;
}
type view_struct = {
  1. id : Ident.ident;
  2. param : type_;
  3. ret : type_;
  4. body : code;
}
val show_view_struct : view_struct -> Ppx_deriving_runtime.string
type michelson = {
  1. storage : type_;
  2. parameter : type_;
  3. code : code;
  4. views : view_struct list;
  5. parameters : Ident.ident list;
}
val show_michelson : michelson -> Ppx_deriving_runtime.string
type prim = {
  1. prim : Ident.ident;
  2. args : obj_micheline list;
  3. annots : Ident.ident list;
}
and obj_micheline =
  1. | Oprim of prim
  2. | Ostring of string
  3. | Obytes of string
  4. | Oint of string
  5. | Oarray of obj_micheline list
  6. | Ovar of obj_micheline_var
and obj_micheline_var =
  1. | OMVfree of Ident.ident
  2. | OMVint of Ident.ident
  3. | OMVstring of Ident.ident
  4. | OMVbytes of Ident.ident
  5. | OMVif of Ident.ident * obj_micheline * obj_micheline
val show_obj_micheline : obj_micheline -> Ppx_deriving_runtime.string
val show_obj_micheline_var : obj_micheline_var -> Ppx_deriving_runtime.string
type micheline = {
  1. code : obj_micheline list;
  2. storage : obj_micheline;
  3. parameters : Ident.ident list;
  4. views : obj_micheline list;
}
val show_micheline : micheline -> Ppx_deriving_runtime.string
type dvar = [
  1. | `VLocal of int
  2. | `VGlobal of Ident.ident
]
and dexpr =
  1. | Dvar of dvar
  2. | Depair of dexpr * dexpr
  3. | Ddata of type_ * data
  4. | Dfun of g_operator * dexpr list
type dinstr =
  1. | DIAssign of dvar * dexpr
  2. | DIIf of dexpr * dcode * dcode
  3. | DIMatch of dexpr * (Ident.ident * dpattern list * dcode) list
  4. | DIFailwith of dexpr
  5. | DIWhile of dexpr * dcode
  6. | DIIter of dtyvar * dexpr * dcode
  7. | DILoop of dtyvar * dcode
and dtyvar = dvar
and dpattern =
  1. | DVar of int
  2. | DPair of dpattern * dpattern
and dcode = dinstr list
val show_dinstr : dinstr -> Ppx_deriving_runtime.string
val show_dtyvar : dtyvar -> Ppx_deriving_runtime.string
val show_dpattern : dpattern -> Ppx_deriving_runtime.string
type dprogram = {
  1. name : Ident.ident;
  2. storage : type_;
  3. parameter : type_;
  4. storage_data : data;
  5. code : dcode;
  6. procs : (string * (string * type_) list * dcode) list;
}
val show_dprogram : dprogram -> Ppx_deriving_runtime.string
type rstack1 = [
  1. | dvar
  2. | `Paired of rstack1 * rstack1
]
val show_rstack1 : rstack1 -> Ppx_deriving_runtime.string
type rstack = rstack1 list
val show_rstack : rstack -> Ppx_deriving_runtime.string
val mk_type : ?annotation:Ident.ident -> type_node -> type_
val mk_ctx_func : ?args:(Ident.ident * type_) list -> ?stovars:Ident.ident list -> 'a -> ctx_func
val mk_code : ?type_:type_ list -> code_node -> code
val mk_func : Ident.ident -> type_ -> type_ -> ctx_func -> implem -> func
val mk_entry : Ident.ident -> (Ident.ident * type_) list -> (Ident.ident * type_) list -> instruction -> entry
val mk_ir : ?parameters:Ident.ident list -> Ident.ident -> type_ -> data -> (Ident.ident * type_ * data) list -> ?with_operations:bool -> type_ -> func list -> func list -> entry list -> ir
val mk_view_struct : Ident.ident -> type_ -> type_ -> code -> view_struct
val mk_michelson : ?parameters:Ident.ident list -> type_ -> type_ -> ?views:view_struct list -> code -> michelson
val mk_prim : ?args:obj_micheline list -> ?annots:Ident.ident list -> Ident.ident -> prim
val mk_micheline : ?parameters:Ident.ident list -> ?views:obj_micheline list -> obj_micheline list -> obj_micheline -> micheline
val mk_dprogram : ?procs:(string * (string * type_) list * dcode) list -> type_ -> type_ -> data -> Ident.ident -> dcode -> dprogram
val toperation : type_
val tunit : type_
val tstring : type_
val tnat : type_
val tint : type_
val tbool : type_
val tmutez : type_
val taddress : type_
val ttimestamp : type_
val tchain_id : type_
val tbytes : type_
val tpair : type_ -> type_ -> type_
val tor : type_ -> type_ -> type_
val trat : type_
val tlist : type_ -> type_
val tset : type_ -> type_
val tmap : type_ -> type_ -> type_
val tlambda : type_ -> type_ -> type_
val toption : type_ -> type_
val tcontract : type_ -> type_
val tkey_hash : type_
val tticket : type_ -> type_
val itrue : instruction
val ifalse : instruction
val istring : string -> instruction
val imutez : Core.big_int -> instruction
val isome : instruction -> instruction
val inone : type_ -> instruction
val iunit : instruction
val inil : type_ -> instruction
val iemptyset : type_ -> instruction
val iemptymap : type_ -> type_ -> instruction
val iemptybigmap : type_ -> type_ -> instruction
val icar : instruction -> instruction
val icdr : instruction -> instruction
val ifail : string -> instruction
val ifaild : instruction -> instruction
val iskip : instruction
val ileft : type_ -> instruction -> instruction
val iright : type_ -> instruction -> instruction
val isub_mutez : instruction -> instruction -> instruction
val irecord : ritem -> instruction
val isrecord : instruction list -> instruction
val icarn : int -> instruction -> instruction
val icdrn : int -> instruction -> instruction
val ctrue : code
val cfalse : code
val cnat : Core.big_int -> code
val cstring : string -> code
val cfail : string -> code
val cskip : code
val cseq : code list -> code
val capply : code
val cexec : code
val cfailwith : code
val cif : (code list * code list) -> code
val cifcons : (code list * code list) -> code
val cifleft : (code list * code list) -> code
val cifnone : (code list * code list) -> code
val citer : code list -> code
val clambda : (type_ * type_ * code list) -> code
val cloop : code list -> code
val cloop_left : code list -> code
val cdig : int -> code
val cdip : (int * code list) -> code
val cdrop : int -> code
val cdug : int -> code
val cdup : code
val cdup_n : int -> code
val cpush : (type_ * data) -> code
val cswap : code
val cabs : code
val cadd : code
val ccompare : code
val cediv : code
val ceq : code
val cge : code
val cgt : code
val cint : code
val cisnat : code
val cle : code
val clsl : code
val clsr : code
val clt : code
val cmul : code
val cneg : code
val cneq : code
val csub : code
val csub_mutez : code
val cand : code
val cnot : code
val cor : code
val cxor : code
val cblake2b : code
val ccheck_signature : code
val chash_key : code
val ckeccak : code
val cpairing_check : code
val csapling_empty_state : int -> code
val csapling_verify_update : code
val csha256 : code
val csha512 : code
val csha3 : code
val caddress : code
val camount : code
val cbalance : code
val cchain_id : code
val ccontract : (type_ * Ident.ident option) -> code
val ccreate_contract : (type_ * type_ * code) -> code
val cimplicit_account : code
val clevel : code
val cnow : code
val cself : Ident.ident option -> code
val cself_address : code
val csender : code
val cset_delegate : code
val csource : code
val ctotal_voting_power : code
val ctransfer_tokens : code
val cvoting_power : code
val ccar : code
val ccdr : code
val cconcat : code
val ccons : code
val cempty_big_map : (type_ * type_) -> code
val cempty_map : (type_ * type_) -> code
val cempty_set : type_ -> code
val cget : code
val cget_n : int -> code
val cget_and_update : code
val cleft : type_ -> code
val cmap : code list -> code
val cmem : code
val cnever : code
val cnil : type_ -> code
val cnone : type_ -> code
val cpack : code
val cpair : code
val cpair_n : int -> code
val cright : type_ -> code
val csize : code
val cslice : code
val csome : code
val cunit : code
val cunpair : code
val cunpair_n : int -> code
val cunpack : type_ -> code
val cupdate : code
val cupdate_n : int -> code
val cjoin_tickets : code
val cread_ticket : code
val csplit_ticket : code
val cticket : code
val ccast : type_ -> code
val crename : code
val cview : (Ident.ident * type_) -> code
val copen_chest : code
val ccarn : int -> code
val ccdrn : int -> code
val cmp_ident : Tools.String.t -> Tools.String.t -> bool
val cmp_type : type_ -> type_ -> bool
val cmp_data : data -> data -> bool
val cmp_z_operator : z_operator -> z_operator -> bool
val cmp_un_operator : un_operator -> un_operator -> bool
val cmp_bin_operator : bin_operator -> bin_operator -> bool
val cmp_ter_operator : ter_operator -> ter_operator -> bool
val cmp_code : code -> code -> bool
val cmp_builtin : builtin -> builtin -> bool
val map_type : (type_ -> type_) -> type_ -> type_
val cmp_dvar : dvar -> dvar -> bool
val cmp_dlocal : dexpr option ref -> dexpr option ref -> bool
val cmp_dexpr : dexpr -> dexpr -> bool
val map_data : (data -> data) -> data -> data
val map_code_gen : (code -> code) -> (data -> data) -> (type_ -> type_) -> code -> code
val map_code : (code -> code) -> code -> code
val map_seq : (code list -> code list) -> code -> code
module Utils : sig ... end
val to_type : obj_micheline -> type_
val to_data : obj_micheline -> data
type micheline_ = Micheline_printer.node
val to_micheline_ : micheline -> micheline_
OCaml

Innovation. Community. Security.