types Did data PgpKey :: curve U8, key Bytes schema DecentralizedIdentity owned Identity :: Did.PgpKey owned IOYIssue :: Zk64 owned IOYTokens :: Zk64 global IOYTicker :: String global IOYName :: String genesis :: Identity, IOYTicker, IOYName op Revocation :: old Identity -> new Identity op Promise :: used IOYIssue -> given [IOYTokens]?, remaining IOYIssue? assert used == sum given + (remaining ?? 0) op Transfer :: spent {IOYTokens} -> received [IOYTokens] assert sum spent == sum received interface FungibleToken: global Ticker -> String global Name -> String owned Inflation :: Zk64 owned Asset :: Zk64 op Issue :: Inflation -> [Asset]?, Inflation? op Transfer :: {Asset} -> [Asset] interface PgpIdentity owned Identity :: PgpKey exec Revocation :: old Identity -> new Identity implement FungibleToken for DecentralizedIdentity global Ticker := IOYTicker global Name := IOYName owned Inflation := IOYIssue owned Asset := IOYTokens op Issue := Promise op Transfer implement PgpIdentity for DecentralizedIdentity contract meSatoshiNakamoto implements DecentralizedIdentity set IOYTicker := "SATN" set IOYName := "Satoshi Promises" assign orig Identity := (0xfac503c4641c3deda72a2d00bc9d6ff1094b15276c386efea403746a91436772, 1) -> PgpKey(0, 0x028730eeeec41802621d177507b086f390ae600ba3ca5e428b13913af4c2cd25b3) transition iLostMyKey executes Revocation via meSatoshiNakamoto.orig assign upd Identity := (~, 2) -> PgpKey(0, 0x0219db0a4e0eb8cb833608c08d76b9b279ec44a851ab82cc6fd68a9b32624bfa8b) « RGB : Quand Bitcoin en voit de toutes les couleurs ! » - Renaud Lifchitz 15