include "Option.aes" include "String.aes" include "AENSCompat.aes" contract interface OldAENSContract = entrypoint set : (string, string, AENS.pointee) => unit entrypoint lookup : (string, string) => AENS.pointee main contract AENSUpdate = stateful entrypoint update_name(owner : address, name : string, b : bytes(2)) = let p1 : AENSv2.pointee = AENSv2.AccountPt(Call.caller) let p2 : AENSv2.pointee = AENSv2.OraclePt(Call.caller) let p3 : AENSv2.pointee = AENSv2.ContractPt(Call.caller) let p4 : AENSv2.pointee = AENSv2.ChannelPt(Call.caller) let p5 : AENSv2.pointee = AENSv2.DataPt(String.to_bytes("any something will do")) let p6 : AENSv2.pointee = AENSv2.DataPt(Int.to_bytes(1345, 4)) AENSv2.update(owner, name, None, None, Some({ ["account_pubkey"] = p1, ["oracle_pubkey"] = p2, ["contract_pubkey"] = p3, ["misc"] = p4, ["data"] = p5, ["data2"] = p6 })) stateful entrypoint old_interaction(c : OldAENSContract, owner : address, name : string) = let p : AENS.pointee = c.lookup(name, "key1") AENSv2.update(owner, name, None, None, Some({ ["key1"] = AENSCompat.pointee_to_V2(p) })) switch(AENSv2.lookup(name)) Some(AENSv2.Name(_, _, pt_map)) => c.set(name, "key2", Option.force(AENSCompat.pointee_from_V2(pt_map["key1"]))) entrypoint get_ttl(name : string) = switch(AENSv2.lookup(name)) Some(AENSv2.Name(_, FixedTTL(ttl), _)) => ttl entrypoint expiry(o : oracle(int, int)) : int = Oracle.expiry(o)