Skip to content

Instantly share code, notes, and snippets.

@stella3d
Created April 12, 2022 19:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stella3d/26999824907280aadc18040ee9a29e68 to your computer and use it in GitHub Desktop.
Save stella3d/26999824907280aadc18040ee9a29e68 to your computer and use it in GitHub Desktop.
{"owner":"SharedImmutable","version":"1","id":"0000000000000000000000000000000000000002","readonly":"true","objType":"Unknown Type","data":{"contents":{"Coin":"// Move bytecode v4\nmodule 2.Coin {\nstruct Coin<phantom Ty0> has store, key {\n\tid: VersionedID,\n\tvalue: u64\n}\nstruct TreasuryCap<phantom Ty0> has store, key {\n\tid: VersionedID,\n\ttotal_supply: u64\n}\n\npublic burn<Ty0>(loc0: Coin<Ty0>, loc1: &mut TreasuryCap<Ty0>) {\nB0:\n\t0: MoveLoc[0](Arg0: Coin<Ty0>)\n\t1: UnpackGeneric[0](Coin<Ty0>)\n\t2: StLoc[3](loc1: u64)\n\t3: StLoc[2](loc0: VersionedID)\n\t4: MoveLoc[2](loc0: VersionedID)\n\t5: Call[14](delete(VersionedID))\n\t6: CopyLoc[1](Arg1: &mut TreasuryCap<Ty0>)\n\t7: ImmBorrowFieldGeneric[0](TreasuryCap.total_supply: u64)\n\t8: ReadRef\n\t9: CopyLoc[3](loc1: u64)\n\t10: Sub\n\t11: MoveLoc[1](Arg1: &mut TreasuryCap<Ty0>)\n\t12: MutBorrowFieldGeneric[0](TreasuryCap.total_supply: u64)\n\t13: WriteRef\n\t14: Ret\n}\npublic create_currency<Ty0: drop>(): TreasuryCap<Ty0> {\nB0:\n\t0: MoveLoc[1](Arg1: &mut TxContext)\n\t1: Call[15](new_id(&mut TxContext): VersionedID)\n\t2: LdU64(0)\n\t3: PackGeneric[1](TreasuryCap<Ty0>)\n\t4: Ret\n}\npublic destroy_zero<Ty0>(loc0: Coin<Ty0>) {\nL0:\tloc1: u64\nB0:\n\t0: MoveLoc[0](Arg0: Coin<Ty0>)\n\t1: UnpackGeneric[0](Coin<Ty0>)\n\t2: StLoc[2](loc1: u64)\n\t3: StLoc[1](loc0: VersionedID)\n\t4: MoveLoc[1](loc0: VersionedID)\n\t5: Call[14](delete(VersionedID))\n\t6: CopyLoc[2](loc1: u64)\n\t7: LdU64(0)\n\t8: Eq\n\t9: BrTrue(13)\nB1:\n\t10: LdAddr[0](U64: [0, 0, 0, 0, 0, 0, 0, 0])\n\t11: Call[16](invalid_argument(u64): u64)\n\t12: Abort\nB2:\n\t13: Ret\n}\npublic join<Ty0>(loc0: &mut Coin<Ty0>, loc1: Coin<Ty0>) {\nB0:\n\t0: MoveLoc[1](Arg1: Coin<Ty0>)\n\t1: UnpackGeneric[0](Coin<Ty0>)\n\t2: StLoc[4](loc1: u64)\n\t3: StLoc[3](loc0: VersionedID)\n\t4: MoveLoc[3](loc0: VersionedID)\n\t5: Call[14](delete(VersionedID))\n\t6: CopyLoc[0](Arg0: &mut Coin<Ty0>)\n\t7: ImmBorrowFieldGeneric[1](Coin.value: u64)\n\t8: ReadRef\n\t9: CopyLoc[4](loc1: u64)\n\t10: Add\n\t11: MoveLoc[0](Arg0: &mut Coin<Ty0>)\n\t12: MutBorrowFieldGeneric[1](Coin.value: u64)\n\t13: WriteRef\n\t14: Ret\n}\npublic join_vec<Ty0>(loc0: &mut Coin<Ty0>, loc1: vector<Coin<Ty0>>, loc2: &mut TxContext) {\nB0:\n\t0: LdU64(0)\n\t1: StLoc[4](loc1: u64)\n\t2: ImmBorrowLoc[1](Arg1: vector<Coin<Ty0>>)\n\t3: Call[0](length<Coin<Ty0>>(&vector<Coin<Ty0>>): u64)\n\t4: StLoc[5](loc2: u64)\nB1:\n\t5: CopyLoc[4](loc1: u64)\n\t6: CopyLoc[5](loc2: u64)\n\t7: Lt\n\t8: BrTrue(10)\nB2:\n\t9: Branch(23)\nB3:\n\t10: MutBorrowLoc[1](Arg1: vector<Coin<Ty0>>)\n\t11: CopyLoc[4](loc1: u64)\n\t12: Call[1](remove<Coin<Ty0>>(&mut vector<Coin<Ty0>>, u64): Coin<Ty0>)\n\t13: StLoc[3](loc0: Coin<Ty0>)\n\t14: CopyLoc[0](Arg0: &mut Coin<Ty0>)\n\t15: MoveLoc[3](loc0: Coin<Ty0>)\n\t16: CopyLoc[2](Arg2: &mut TxContext)\n\t17: Call[2](join<Ty0>(&mut Coin<Ty0>, Coin<Ty0>, &mut TxContext))\n\t18: CopyLoc[4](loc1: u64)\n\t19: LdU64(1)\n\t20: Add\n\t21: StLoc[4](loc1: u64)\n\t22: Branch(5)\nB4:\n\t23: MoveLoc[0](Arg0: &mut Coin<Ty0>)\n\t24: Pop\n\t25: MoveLoc[2](Arg2: &mut TxContext)\n\t26: Pop\n\t27: MoveLoc[1](Arg1: vector<Coin<Ty0>>)\n\t28: Call[3](destroy_empty<Coin<Ty0>>(vector<Coin<Ty0>>))\n\t29: Ret\n}\npublic mint<Ty0>(): Coin<Ty0> {\nB0:\n\t0: CopyLoc[1](Arg1: &mut TreasuryCap<Ty0>)\n\t1: ImmBorrowFieldGeneric[0](TreasuryCap.total_supply: u64)\n\t2: ReadRef\n\t3: CopyLoc[0](Arg0: u64)\n\t4: Add\n\t5: MoveLoc[1](Arg1: &mut TreasuryCap<Ty0>)\n\t6: MutBorrowFieldGeneric[0](TreasuryCap.total_supply: u64)\n\t7: WriteRef\n\t8: MoveLoc[2](Arg2: &mut TxContext)\n\t9: Call[15](new_id(&mut TxContext): VersionedID)\n\t10: CopyLoc[0](Arg0: u64)\n\t11: PackGeneric[0](Coin<Ty0>)\n\t12: Ret\n}\npublic split<Ty0>(loc0: &mut Coin<Ty0>) {\nB0:\n\t0: MoveLoc[0](Arg0: &mut Coin<Ty0>)\n\t1: CopyLoc[1](Arg1: u64)\n\t2: CopyLoc[2](Arg2: &mut TxContext)\n\t3: Call[4](withdraw<Ty0>(&mut Coin<Ty0>, u64, &mut TxContext): Coin<Ty0>)\n\t4: StLoc[3](loc0: Coin<Ty0>)\n\t5: MoveLoc[3](loc0: Coin<Ty0>)\n\t6: MoveLoc[2](Arg2: &mut TxContext)\n\t7: FreezeRef\n\t8: Call[20](sender(&TxContext): address)\n\t9: Call[5](transfer<Coin<Ty0>>(Coin<Ty0>, address))\n\t10: Ret\n}\npublic split_vec<Ty0>(loc0: &mut Coin<Ty0>, loc1: vector<u64>) {\nB0:\n\t0: LdU64(0)\n\t1: StLoc[3](loc0: u64)\n\t2: ImmBorrowLoc[1](Arg1: vector<u64>)\n\t3: Call[6](length<u64>(&vector<u64>): u64)\n\t4: StLoc[4](loc1: u64)\nB1:\n\t5: CopyLoc[3](loc0: u64)\n\t6: CopyLoc[4](loc1: u64)\n\t7: Lt\n\t8: BrTrue(10)\nB2:\n\t9: Branch(22)\nB3:\n\t10: CopyLoc[0](Arg0: &mut Coin<Ty0>)\n\t11: ImmBorrowLoc[1](Arg1: vector<u64>)\n\t12: CopyLoc[3](loc0: u64)\n\t13: Call[7](borrow<u64>(&vector<u64>, u64): &u64)\n\t14: ReadRef\n\t15: CopyLoc[2](Arg2: &mut TxContext)\n\t16: Call[8](split<Ty0>(&mut Coin<Ty0>, u64, &mut TxContext))\n\t17: CopyLoc[3](loc0: u64)\n\t18: LdU64(1)\n\t19: Add\n\t20: StLoc[3](loc0: u64)\n\t21: Branch(5)\nB4:\n\t22: MoveLoc[0](Arg0: &mut Coin<Ty0>)\n\t23: Pop\n\t24: MoveLoc[2](Arg2: &mut TxContext)\n\t25: Pop\n\t26: Ret\n}\npublic total_supply<Ty0>(): u64 {\nB0:\n\t0: MoveLoc[0](Arg0: &TreasuryCap<Ty0>)\n\t1: ImmBorrowFieldGeneric[0](TreasuryCap.total_supply: u64)\n\t2: ReadRef\n\t3: Ret\n}\npublic transfer<Ty0>() {\nB0:\n\t0: MoveLoc[0](Arg0: Coin<Ty0>)\n\t1: CopyLoc[1](Arg1: address)\n\t2: Call[5](transfer<Coin<Ty0>>(Coin<Ty0>, address))\n\t3: Ret\n}\npublic transfer_<Ty0>() {\nB0:\n\t0: MoveLoc[0](Arg0: &mut Coin<Ty0>)\n\t1: CopyLoc[1](Arg1: u64)\n\t2: MoveLoc[3](Arg3: &mut TxContext)\n\t3: Call[4](withdraw<Ty0>(&mut Coin<Ty0>, u64, &mut TxContext): Coin<Ty0>)\n\t4: CopyLoc[2](Arg2: address)\n\t5: Call[5](transfer<Coin<Ty0>>(Coin<Ty0>, address))\n\t6: Ret\n}\npublic transfer_cap<Ty0>() {\nB0:\n\t0: MoveLoc[0](Arg0: TreasuryCap<Ty0>)\n\t1: CopyLoc[1](Arg1: address)\n\t2: Call[9](transfer<TreasuryCap<Ty0>>(TreasuryCap<Ty0>, address))\n\t3: Ret\n}\npublic value<Ty0>(): u64 {\nB0:\n\t0: MoveLoc[0](Arg0: &Coin<Ty0>)\n\t1: ImmBorrowFieldGeneric[1](Coin.value: u64)\n\t2: ReadRef\n\t3: Ret\n}\npublic withdraw<Ty0>(): Coin<Ty0> {\nB0:\n\t0: CopyLoc[0](Arg0: &mut Coin<Ty0>)\n\t1: ImmBorrowFieldGeneric[1](Coin.value: u64)\n\t2: ReadRef\n\t3: CopyLoc[1](Arg1: u64)\n\t4: Ge\n\t5: BrTrue(13)\nB1:\n\t6: MoveLoc[0](Arg0: &mut Coin<Ty0>)\n\t7: Pop\n\t8: MoveLoc[2](Arg2: &mut TxContext)\n\t9: Pop\n\t10: LdAddr[0](U64: [0, 0, 0, 0, 0, 0, 0, 0])\n\t11: Call[23](limit_exceeded(u64): u64)\n\t12: Abort\nB2:\n\t13: CopyLoc[0](Arg0: &mut Coin<Ty0>)\n\t14: ImmBorrowFieldGeneric[1](Coin.value: u64)\n\t15: ReadRef\n\t16: CopyLoc[1](Arg1: u64)\n\t17: Sub\n\t18: MoveLoc[0](Arg0: &mut Coin<Ty0>)\n\t19: MutBorrowFieldGeneric[1](Coin.value: u64)\n\t20: WriteRef\n\t21: MoveLoc[2](Arg2: &mut TxContext)\n\t22: Call[15](new_id(&mut TxContext): VersionedID)\n\t23: CopyLoc[1](Arg1: u64)\n\t24: PackGeneric[0](Coin<Ty0>)\n\t25: Ret\n}\n}","Collection":"// Move bytecode v4\nmodule 2.Collection {\nstruct Collection has key {\n\tid: VersionedID,\n\tobjects: vector<ID>,\n\tmax_capacity: u64\n}\n\npublic add<Ty0: key>(loc0: &mut Collection, loc1: Ty0) {\nL0:\tloc2: &ID\nB0:\n\t0: CopyLoc[0](Arg0: &mut Collection)\n\t1: FreezeRef\n\t2: Call[8](size(&Collection): u64)\n\t3: LdU64(1)\n\t4: Add\n\t5: CopyLoc[0](Arg0: &mut Collection)\n\t6: ImmBorrowField[0](Collection.max_capacity: u64)\n\t7: ReadRef\n\t8: Le\n\t9: BrTrue(15)\nB1:\n\t10: MoveLoc[0](Arg0: &mut Collection)\n\t11: Pop\n\t12: LdAddr[2](U64: [3, 0, 0, 0, 0, 0, 0, 0])\n\t13: Call[11](limit_exceeded(u64): u64)\n\t14: Abort\nB2:\n\t15: ImmBorrowLoc[1](Arg1: Ty0)\n\t16: Call[0](id<Ty0>(&Ty0): &ID)\n\t17: StLoc[4](loc2: &ID)\n\t18: CopyLoc[0](Arg0: &mut Collection)\n\t19: CopyLoc[4](loc2: &ID)\n\t20: StLoc[3](loc1: &ID)\n\t21: StLoc[2](loc0: &mut Collection)\n\t22: MoveLoc[2](loc0: &mut Collection)\n\t23: FreezeRef\n\t24: MoveLoc[3](loc1: &ID)\n\t25: Call[1](contains(&Collection, &ID): bool)\n\t26: BrTrue(28)\nB3:\n\t27: Branch(34)\nB4:\n\t28: MoveLoc[4](loc2: &ID)\n\t29: Pop\n\t30: MoveLoc[0](Arg0: &mut Collection)\n\t31: Pop\n\t32: LdAddr[3](U64: [1, 0, 0, 0, 0, 0, 0, 0])\n\t33: Abort\nB5:\n\t34: CopyLoc[0](Arg0: &mut Collection)\n\t35: MutBorrowField[1](Collection.objects: vector<ID>)\n\t36: MoveLoc[4](loc2: &ID)\n\t37: ReadRef\n\t38: Call[1](push_back<ID>(&mut vector<ID>, ID))\n\t39: MoveLoc[1](Arg1: Ty0)\n\t40: MoveLoc[0](Arg0: &mut Collection)\n\t41: Call[2](transfer_to_object<Ty0, Collection>(Ty0, &mut Collection))\n\t42: Ret\n}\npublic contains(loc0: &Collection): bool {\nB0:\n\t0: MoveLoc[0](Arg0: &Collection)\n\t1: MoveLoc[1](Arg1: &ID)\n\t2: Call[3](find(&Collection, &ID): Option<u64>)\n\t3: StLoc[2](loc0: Option<u64>)\n\t4: ImmBorrowLoc[2](loc0: Option<u64>)\n\t5: Call[3](is_some<u64>(&Option<u64>): bool)\n\t6: Ret\n}\npublic create() {\nB0:\n\t0: CopyLoc[0](Arg0: &mut TxContext)\n\t1: Call[4](new(&mut TxContext): Collection)\n\t2: MoveLoc[0](Arg0: &mut TxContext)\n\t3: FreezeRef\n\t4: Call[16](sender(&TxContext): address)\n\t5: Call[4](transfer<Collection>(Collection, address))\n\t6: Ret\n}\nfind(loc0: &Collection, loc1: &ID): Option<u64> {\nB0:\n\t0: LdU64(0)\n\t1: StLoc[2](loc0: u64)\n\t2: CopyLoc[0](Arg0: &Collection)\n\t3: Call[8](size(&Collection): u64)\n\t4: StLoc[3](loc1: u64)\nB1:\n\t5: CopyLoc[2](loc0: u64)\n\t6: CopyLoc[3](loc1: u64)\n\t7: Lt\n\t8: BrTrue(10)\nB2:\n\t9: Branch(30)\nB3:\n\t10: CopyLoc[0](Arg0: &Collection)\n\t11: ImmBorrowField[1](Collection.objects: vector<ID>)\n\t12: CopyLoc[2](loc0: u64)\n\t13: Call[5](borrow<ID>(&vector<ID>, u64): &ID)\n\t14: CopyLoc[1](Arg1: &ID)\n\t15: Eq\n\t16: BrTrue(18)\nB4:\n\t17: Branch(25)\nB5:\n\t18: MoveLoc[1](Arg1: &ID)\n\t19: Pop\n\t20: MoveLoc[0](Arg0: &Collection)\n\t21: Pop\n\t22: CopyLoc[2](loc0: u64)\n\t23: Call[6](some<u64>(u64): Option<u64>)\n\t24: Ret\nB6:\n\t25: CopyLoc[2](loc0: u64)\n\t26: LdU64(1)\n\t27: Add\n\t28: StLoc[2](loc0: u64)\n\t29: Branch(5)\nB7:\n\t30: MoveLoc[1](Arg1: &ID)\n\t31: Pop\n\t32: MoveLoc[0](Arg0: &Collection)\n\t33: Pop\n\t34: Call[7](none<u64>(): Option<u64>)\n\t35: Ret\n}\npublic new(): Collection {\nB0:\n\t0: MoveLoc[0](Arg0: &mut TxContext)\n\t1: LdAddr[0](U64: [0, 0, 1, 0, 0, 0, 0, 0])\n\t2: Call[5](new_with_max_capacity(&mut TxContext, u64): Collection)\n\t3: Ret\n}\npublic new_with_max_capacity(loc0: &mut TxContext): Collection {\nB0:\n\t0: CopyLoc[1](Arg1: u64)\n\t1: LdAddr[0](U64: [0, 0, 1, 0, 0, 0, 0, 0])\n\t2: Le\n\t3: BrTrue(5)\nB1:\n\t4: Branch(10)\nB2:\n\t5: CopyLoc[1](Arg1: u64)\n\t6: LdU64(0)\n\t7: Gt\n\t8: StLoc[2](loc0: bool)\n\t9: Branch(12)\nB3:\n\t10: LdFalse\n\t11: StLoc[2](loc0: bool)\nB4:\n\t12: MoveLoc[2](loc0: bool)\n\t13: BrTrue(19)\nB5:\n\t14: MoveLoc[0](Arg0: &mut TxContext)\n\t15: Pop\n\t16: LdAddr[1](U64: [2, 0, 0, 0, 0, 0, 0, 0])\n\t17: Call[11](limit_exceeded(u64): u64)\n\t18: Abort\nB6:\n\t19: MoveLoc[0](Arg0: &mut TxContext)\n\t20: Call[21](new_id(&mut TxContext): VersionedID)\n\t21: Call[8](empty<ID>(): vector<ID>)\n\t22: CopyLoc[1](Arg1: u64)\n\t23: Pack[0](Collection)\n\t24: Ret\n}\npublic remove<Ty0: key>(loc0: &mut Collection, loc1: Ty0): Ty0 {\nL0:\tloc2: Option<u64>\nB0:\n\t0: CopyLoc[0](Arg0: &mut Collection)\n\t1: ImmBorrowLoc[1](Arg1: Ty0)\n\t2: Call[0](id<Ty0>(&Ty0): &ID)\n\t3: StLoc[3](loc1: &ID)\n\t4: StLoc[2](loc0: &mut Collection)\n\t5: MoveLoc[2](loc0: &mut Collection)\n\t6: FreezeRef\n\t7: MoveLoc[3](loc1: &ID)\n\t8: Call[3](find(&Collection, &ID): Option<u64>)\n\t9: StLoc[4](loc2: Option<u64>)\n\t10: ImmBorrowLoc[4](loc2: Option<u64>)\n\t11: Call[9](is_none<u64>(&Option<u64>): bool)\n\t12: BrTrue(14)\nB1:\n\t13: Branch(18)\nB2:\n\t14: MoveLoc[0](Arg0: &mut Collection)\n\t15: Pop\n\t16: LdAddr[4](U64: [0, 0, 0, 0, 0, 0, 0, 0])\n\t17: Abort\nB3:\n\t18: MoveLoc[0](Arg0: &mut Collection)\n\t19: MutBorrowField[1](Collection.objects: vector<ID>)\n\t20: ImmBorrowLoc[4](loc2: Option<u64>)\n\t21: Call[10](borrow<u64>(&Option<u64>): &u64)\n\t22: ReadRef\n\t23: Call[11](remove<ID>(&mut vector<ID>, u64): ID)\n\t24: Pop\n\t25: MoveLoc[1](Arg1: Ty0)\n\t26: Ret\n}\npublic remove_and_take<Ty0: key>(loc0: &mut Collection) {\nB0:\n\t0: MoveLoc[0](Arg0: &mut Collection)\n\t1: MoveLoc[1](Arg1: Ty0)\n\t2: Call[12](remove<Ty0>(&mut Collection, Ty0): Ty0)\n\t3: StLoc[3](loc0: Ty0)\n\t4: MoveLoc[3](loc0: Ty0)\n\t5: MoveLoc[2](Arg2: &mut TxContext)\n\t6: FreezeRef\n\t7: Call[16](sender(&TxContext): address)\n\t8: Call[13](transfer<Ty0>(Ty0, address))\n\t9: Ret\n}\npublic size(): u64 {\nB0:\n\t0: MoveLoc[0](Arg0: &Collection)\n\t1: ImmBorrowField[1](Collection.objects: vector<ID>)\n\t2: Call[14](length<ID>(&vector<ID>): u64)\n\t3: Ret\n}\npublic transfer() {\nB0:\n\t0: MoveLoc[0](Arg0: Collection)\n\t1: CopyLoc[1](Arg1: address)\n\t2: Call[4](transfer<Collection>(Collection, address))\n\t3: Ret\n}\npublic transfer_entry() {\nB0:\n\t0: MoveLoc[0](Arg0: Collection)\n\t1: CopyLoc[1](Arg1: address)\n\t2: Call[9](transfer(Collection, address))\n\t3: Ret\n}\n}","Escrow":"// Move bytecode v4\nmodule 2.Escrow {\nstruct EscrowedObj<Ty0: store + key, phantom Ty1: store + key> has store, key {\n\tid: VersionedID,\n\tsender: address,\n\trecipient: address,\n\texchange_for: ID,\n\tescrowed: Ty0\n}\n\npublic create<Ty0: store + key, Ty1: store + key>(loc0: address, loc1: address) {\nB0:\n\t0: CopyLoc[4](Arg4: &mut TxContext)\n\t1: FreezeRef\n\t2: Call[3](sender(&TxContext): address)\n\t3: StLoc[6](loc1: address)\n\t4: MoveLoc[4](Arg4: &mut TxContext)\n\t5: Call[4](new_id(&mut TxContext): VersionedID)\n\t6: StLoc[5](loc0: VersionedID)\n\t7: MoveLoc[5](loc0: VersionedID)\n\t8: CopyLoc[6](loc1: address)\n\t9: CopyLoc[0](Arg0: address)\n\t10: MoveLoc[2](Arg2: ID)\n\t11: MoveLoc[3](Arg3: Ty0)\n\t12: PackGeneric[0](EscrowedObj<Ty0, Ty1>)\n\t13: CopyLoc[1](Arg1: address)\n\t14: Call[0](transfer<EscrowedObj<Ty0, Ty1>>(EscrowedObj<Ty0, Ty1>, address))\n\t15: Ret\n}\npublic return_to_sender<Ty0: store + key, Ty1: store + key>(loc0: EscrowedObj<Ty0, Ty1>) {\nL0:\tloc1: VersionedID\nL1:\tloc2: address\nB0:\n\t0: MoveLoc[0](Arg0: EscrowedObj<Ty0, Ty1>)\n\t1: UnpackGeneric[0](EscrowedObj<Ty0, Ty1>)\n\t2: StLoc[1](loc0: Ty0)\n\t3: Pop\n\t4: Pop\n\t5: StLoc[3](loc2: address)\n\t6: StLoc[2](loc1: VersionedID)\n\t7: MoveLoc[2](loc1: VersionedID)\n\t8: Call[6](delete(VersionedID))\n\t9: MoveLoc[1](loc0: Ty0)\n\t10: CopyLoc[3](loc2: address)\n\t11: Call[1](transfer<Ty0>(Ty0, address))\n\t12: Ret\n}\npublic swap<Ty0: store + key, Ty1: store + key>(loc0: EscrowedObj<Ty0, Ty1>, loc1: EscrowedObj<Ty0, Ty1>) {\nL0:\tloc2: ID\nL1:\tloc3: ID\nL2:\tloc4: VersionedID\nL3:\tloc5: VersionedID\nL4:\tloc6: address\nL5:\tloc7: address\nL6:\tloc8: address\nL7:\tloc9: address\nB0:\n\t0: MoveLoc[0](Arg0: EscrowedObj<Ty0, Ty1>)\n\t1: UnpackGeneric[0](EscrowedObj<Ty0, Ty1>)\n\t2: StLoc[2](loc0: Ty0)\n\t3: StLoc[4](loc2: ID)\n\t4: StLoc[8](loc6: address)\n\t5: StLoc[10](loc8: address)\n\t6: StLoc[6](loc4: VersionedID)\n\t7: MoveLoc[1](Arg1: EscrowedObj<Ty0, Ty1>)\n\t8: UnpackGeneric[0](EscrowedObj<Ty0, Ty1>)\n\t9: StLoc[3](loc1: Ty0)\n\t10: StLoc[5](loc3: ID)\n\t11: StLoc[9](loc7: address)\n\t12: StLoc[11](loc9: address)\n\t13: StLoc[7](loc5: VersionedID)\n\t14: MoveLoc[6](loc4: VersionedID)\n\t15: Call[6](delete(VersionedID))\n\t16: MoveLoc[7](loc5: VersionedID)\n\t17: Call[6](delete(VersionedID))\n\t18: ImmBorrowLoc[10](loc8: address)\n\t19: ImmBorrowLoc[9](loc7: address)\n\t20: Eq\n\t21: BrTrue(24)\nB1:\n\t22: LdAddr[0](U64: [0, 0, 0, 0, 0, 0, 0, 0])\n\t23: Abort\nB2:\n\t24: ImmBorrowLoc[11](loc9: address)\n\t25: ImmBorrowLoc[8](loc6: address)\n\t26: Eq\n\t27: BrTrue(30)\nB3:\n\t28: LdAddr[0](U64: [0, 0, 0, 0, 0, 0, 0, 0])\n\t29: Abort\nB4:\n\t30: ImmBorrowLoc[2](loc0: Ty0)\n\t31: Call[2](id<Ty0>(&Ty0): &ID)\n\t32: ImmBorrowLoc[5](loc3: ID)\n\t33: Eq\n\t34: BrTrue(37)\nB5:\n\t35: LdAddr[0](U64: [0, 0, 0, 0, 0, 0, 0, 0])\n\t36: Abort\nB6:\n\t37: ImmBorrowLoc[3](loc1: Ty0)\n\t38: Call[2](id<Ty0>(&Ty0): &ID)\n\t39: ImmBorrowLoc[4](loc2: ID)\n\t40: Eq\n\t41: BrTrue(44)\nB7:\n\t42: LdAddr[0](U64: [0, 0, 0, 0, 0, 0, 0, 0])\n\t43: Abort\nB8:\n\t44: MoveLoc[2](loc0: Ty0)\n\t45: CopyLoc[11](loc9: address)\n\t46: Call[1](transfer<Ty0>(Ty0, address))\n\t47: MoveLoc[3](loc1: Ty0)\n\t48: CopyLoc[10](loc8: address)\n\t49: Call[1](transfer<Ty0>(Ty0, address))\n\t50: Ret\n}\n}","Event":"// Move bytecode v4\nmodule 2.Event {\n\n\nnative public emit<Ty0: copy + drop>()\n}","GAS":"// Move bytecode v4\nmodule 2.GAS {\nstruct GAS has drop {\n\tdummy_field: bool\n}\n\ninit(loc0: &mut TxContext) {\nB0:\n\t0: LdFalse\n\t1: Pack[0](GAS)\n\t2: CopyLoc[0](Arg0: &mut TxContext)\n\t3: Call[0](create_currency<GAS>(GAS, &mut TxContext): TreasuryCap<GAS>)\n\t4: StLoc[1](loc0: TreasuryCap<GAS>)\n\t5: MoveLoc[1](loc0: TreasuryCap<GAS>)\n\t6: MoveLoc[0](Arg0: &mut TxContext)\n\t7: FreezeRef\n\t8: Call[3](sender(&TxContext): address)\n\t9: Call[1](transfer<TreasuryCap<GAS>>(TreasuryCap<GAS>, address))\n\t10: Ret\n}\npublic transfer() {\nB0:\n\t0: MoveLoc[0](Arg0: Coin<GAS>)\n\t1: CopyLoc[1](Arg1: address)\n\t2: Call[2](transfer<GAS>(Coin<GAS>, address))\n\t3: Ret\n}\n}","Geniteam":"// Move bytecode v4\nmodule 2.Geniteam {\nstruct Farm has store, key {\n\tid: VersionedID,\n\tfarm_name: String,\n\tfarm_img_index: u64,\n\tlevel: u64,\n\tcurrent_xp: u64,\n\ttotal_monster_slots: u64,\n\toccupied_monster_slots: u64,\n\tpet_monsters_id: ID,\n\tapplied_farm_cosmetic_0_id: Option<ID>,\n\tapplied_farm_cosmetic_1_id: Option<ID>\n}\nstruct FarmCosmetic has store, key {\n\tid: VersionedID,\n\tcosmetic_type: u8,\n\tdisplay: String\n}\nstruct Monster has store, key {\n\tid: VersionedID,\n\tmonster_name: String,\n\tmonster_img_index: u64,\n\tbreed: u8,\n\tmonster_affinity: u8,\n\tmonster_description: String,\n\tmonster_level: u64,\n\tmonster_xp: u64,\n\thunger_level: u64,\n\taffection_level: u64,\n\tbuddy_level: u8,\n\tdisplay: String,\n\tapplied_monster_cosmetic_0_id: Option<ID>,\n\tapplied_monster_cosmetic_1_id: Option<ID>\n}\nstruct MonsterCosmetic has store, key {\n\tid: VersionedID,\n\tcosmetic_type: u8,\n\tdisplay: String\n}\nstruct Player has key {\n\tid: VersionedID,\n\tplayer_name: String,\n\twater_runes_count: u64,\n\tfire_runes_count: u64,\n\twind_runes_count: u64,\n\tearth_runes_count: u64,\n\towned_farms_id: Option<ID>,\n\tinventory_id: ID\n}\n\npublic create_farm(loc0: &mut Player) {\nB0:\n\t0: CopyLoc[0](Arg0: &mut Player)\n\t1: ImmBorrowField[0](Player.owned_farms_id: Option<ID>)\n\t2: Call[0](is_none<ID>(&Option<ID>): bool)\n\t3: BrTrue(10)\nB1:\n\t4: MoveLoc[0](Arg0: &mut Player)\n\t5: Pop\n\t6: MoveLoc[4](Arg4: &mut TxContext)\n\t7: Pop\n\t8: LdAddr[6](U64: [2, 0, 0, 0, 0, 0, 0, 0])\n\t9: Abort\nB2:\n\t10: MoveLoc[2](Arg2: vector<u8>)\n\t11: CopyLoc[1](Arg1: u64)\n\t12: CopyLoc[3](Arg3: u64)\n\t13: MoveLoc[4](Arg4: &mut TxContext)\n\t14: Call[1](create_farm_(vector<u8>, u64, u64, &mut TxContext): Farm)\n\t15: StLoc[5](loc0: Farm)\n\t16: ImmBorrowLoc[5](loc0: Farm)\n\t17: Call[1](id<Farm>(&Farm): &ID)\n\t18: ReadRef\n\t19: Call[2](some<ID>(ID): Option<ID>)\n\t20: CopyLoc[0](Arg0: &mut Player)\n\t21: MutBorrowField[0](Player.owned_farms_id: Option<ID>)\n\t22: WriteRef\n\t23: MoveLoc[5](loc0: Farm)\n\t24: MoveLoc[0](Arg0: &mut Player)\n\t25: Call[3](transfer_to_object<Farm, Player>(Farm, &mut Player))\n\t26: Ret\n}\npublic create_farm_(loc0: vector<u8>, loc1: u64): Farm {\nB0:\n\t0: CopyLoc[3](Arg3: &mut TxContext)\n\t1: Call[17](new_id(&mut TxContext): VersionedID)\n\t2: MoveLoc[0](Arg0: vector<u8>)\n\t3: Call[18](string(vector<u8>): String)\n\t4: CopyLoc[1](Arg1: u64)\n\t5: LdU64(0)\n\t6: LdU64(0)\n\t7: CopyLoc[2](Arg2: u64)\n\t8: LdU64(0)\n\t9: LdAddr[8](Address: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n\t10: Call[19](new(address): ID)\n\t11: Call[4](none<ID>(): Option<ID>)\n\t12: Call[4](none<ID>(): Option<ID>)\n\t13: Pack[0](Farm)\n\t14: StLoc[4](loc0: Farm)\n\t15: MoveLoc[3](Arg3: &mut TxContext)\n\t16: Call[21](new(&mut TxContext): Collection)\n\t17: StLoc[5](loc1: Collection)\n\t18: ImmBorrowLoc[5](loc1: Collection)\n\t19: Call[5](id<Collection>(&Collection): &ID)\n\t20: ReadRef\n\t21: MutBorrowLoc[4](loc0: Farm)\n\t22: MutBorrowField[1](Farm.pet_monsters_id: ID)\n\t23: WriteRef\n\t24: MoveLoc[5](loc1: Collection)\n\t25: MutBorrowLoc[4](loc0: Farm)\n\t26: Call[6](transfer_to_object<Collection, Farm>(Collection, &mut Farm))\n\t27: MoveLoc[4](loc0: Farm)\n\t28: Ret\n}\npublic create_farm_cosmetics(loc0: &mut Player) {\nB0:\n\t0: MoveLoc[0](Arg0: &mut Player)\n\t1: ImmBorrowField[2](Player.inventory_id: ID)\n\t2: ReadRef\n\t3: CopyLoc[1](Arg1: &mut Collection)\n\t4: FreezeRef\n\t5: Call[5](id<Collection>(&Collection): &ID)\n\t6: ReadRef\n\t7: Eq\n\t8: BrTrue(15)\nB1:\n\t9: MoveLoc[1](Arg1: &mut Collection)\n\t10: Pop\n\t11: MoveLoc[4](Arg4: &mut TxContext)\n\t12: Pop\n\t13: LdAddr[2](U64: [6, 0, 0, 0, 0, 0, 0, 0])\n\t14: Abort\nB2:\n\t15: MoveLoc[4](Arg4: &mut TxContext)\n\t16: Call[17](new_id(&mut TxContext): VersionedID)\n\t17: CopyLoc[2](Arg2: u8)\n\t18: MoveLoc[3](Arg3: vector<u8>)\n\t19: Call[18](string(vector<u8>): String)\n\t20: Pack[1](FarmCosmetic)\n\t21: StLoc[5](loc0: FarmCosmetic)\n\t22: MoveLoc[1](Arg1: &mut Collection)\n\t23: MoveLoc[5](loc0: FarmCosmetic)\n\t24: Call[7](add<FarmCosmetic>(&mut Collection, FarmCosmetic))\n\t25: Ret\n}\npublic create_monster(loc0: &mut Player) {\nB0:\n\t0: MoveLoc[3](Arg3: vector<u8>)\n\t1: CopyLoc[4](Arg4: u64)\n\t2: CopyLoc[5](Arg5: u8)\n\t3: CopyLoc[6](Arg6: u8)\n\t4: MoveLoc[7](Arg7: vector<u8>)\n\t5: MoveLoc[8](Arg8: vector<u8>)\n\t6: MoveLoc[9](Arg9: &mut TxContext)\n\t7: Call[4](create_monster_(vector<u8>, u64, u8, u8, vector<u8>, vector<u8>, &mut TxContext): Monster)\n\t8: StLoc[10](loc0: Monster)\n\t9: MoveLoc[1](Arg1: &mut Farm)\n\t10: ImmBorrowField[1](Farm.pet_monsters_id: ID)\n\t11: ReadRef\n\t12: CopyLoc[2](Arg2: &mut Collection)\n\t13: FreezeRef\n\t14: Call[5](id<Collection>(&Collection): &ID)\n\t15: ReadRef\n\t16: Eq\n\t17: BrTrue(22)\nB1:\n\t18: MoveLoc[2](Arg2: &mut Collection)\n\t19: Pop\n\t20: LdAddr[3](U64: [5, 0, 0, 0, 0, 0, 0, 0])\n\t21: Abort\nB2:\n\t22: MoveLoc[2](Arg2: &mut Collection)\n\t23: MoveLoc[10](loc0: Monster)\n\t24: Call[8](add<Monster>(&mut Collection, Monster))\n\t25: Ret\n}\npublic create_monster_(): Monster {\nB0:\n\t0: MoveLoc[6](Arg6: &mut TxContext)\n\t1: Call[17](new_id(&mut TxContext): VersionedID)\n\t2: MoveLoc[0](Arg0: vector<u8>)\n\t3: Call[18](string(vector<u8>): String)\n\t4: CopyLoc[1](Arg1: u64)\n\t5: CopyLoc[2](Arg2: u8)\n\t6: CopyLoc[3](Arg3: u8)\n\t7: MoveLoc[4](Arg4: vector<u8>)\n\t8: Call[18](string(vector<u8>): String)\n\t9: LdU64(0)\n\t10: LdU64(0)\n\t11: LdU64(0)\n\t12: LdU64(0)\n\t13: LdU8(0)\n\t14: MoveLoc[5](Arg5: vector<u8>)\n\t15: Call[18](string(vector<u8>): String)\n\t16: Call[4](none<ID>(): Option<ID>)\n\t17: Call[4](none<ID>(): Option<ID>)\n\t18: Pack[2](Monster)\n\t19: Ret\n}\npublic create_monster_cosmetics(loc0: &mut Player) {\nB0:\n\t0: MoveLoc[0](Arg0: &mut Player)\n\t1: ImmBorrowField[2](Player.inventory_id: ID)\n\t2: ReadRef\n\t3: CopyLoc[1](Arg1: &mut Collection)\n\t4: FreezeRef\n\t5: Call[5](id<Collection>(&Collection): &ID)\n\t6: ReadRef\n\t7: Eq\n\t8: BrTrue(15)\nB1:\n\t9: MoveLoc[1](Arg1: &mut Collection)\n\t10: Pop\n\t11: MoveLoc[4](Arg4: &mut TxContext)\n\t12: Pop\n\t13: LdAddr[2](U64: [6, 0, 0, 0, 0, 0, 0, 0])\n\t14: Abort\nB2:\n\t15: MoveLoc[4](Arg4: &mut TxContext)\n\t16: Call[17](new_id(&mut TxContext): VersionedID)\n\t17: CopyLoc[2](Arg2: u8)\n\t18: MoveLoc[3](Arg3: vector<u8>)\n\t19: Call[18](string(vector<u8>): String)\n\t20: Pack[3](MonsterCosmetic)\n\t21: StLoc[5](loc0: MonsterCosmetic)\n\t22: MoveLoc[1](Arg1: &mut Collection)\n\t23: MoveLoc[5](loc0: MonsterCosmetic)\n\t24: Call[9](add<MonsterCosmetic>(&mut Collection, MonsterCosmetic))\n\t25: Ret\n}\npublic create_player(loc0: vector<u8>) {\nB0:\n\t0: MoveLoc[0](Arg0: vector<u8>)\n\t1: CopyLoc[1](Arg1: &mut TxContext)\n\t2: Call[7](create_player_(vector<u8>, &mut TxContext): Player)\n\t3: StLoc[2](loc0: Player)\n\t4: MoveLoc[2](loc0: Player)\n\t5: MoveLoc[1](Arg1: &mut TxContext)\n\t6: FreezeRef\n\t7: Call[23](sender(&TxContext): address)\n\t8: Call[10](transfer<Player>(Player, address))\n\t9: Ret\n}\npublic create_player_(loc0: vector<u8>, loc1: &mut TxContext): Player {\nB0:\n\t0: CopyLoc[1](Arg1: &mut TxContext)\n\t1: Call[17](new_id(&mut TxContext): VersionedID)\n\t2: MoveLoc[0](Arg0: vector<u8>)\n\t3: Call[18](string(vector<u8>): String)\n\t4: LdU64(0)\n\t5: LdU64(0)\n\t6: LdU64(0)\n\t7: LdU64(0)\n\t8: Call[4](none<ID>(): Option<ID>)\n\t9: LdAddr[8](Address: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n\t10: Call[19](new(address): ID)\n\t11: Pack[4](Player)\n\t12: StLoc[3](loc1: Player)\n\t13: MoveLoc[1](Arg1: &mut TxContext)\n\t14: Call[21](new(&mut TxContext): Collection)\n\t15: StLoc[2](loc0: Collection)\n\t16: ImmBorrowLoc[2](loc0: Collection)\n\t17: Call[5](id<Collection>(&Collection): &ID)\n\t18: ReadRef\n\t19: MutBorrowLoc[3](loc1: Player)\n\t20: MutBorrowField[2](Player.inventory_id: ID)\n\t21: WriteRef\n\t22: MoveLoc[2](loc0: Collection)\n\t23: MutBorrowLoc[3](loc1: Player)\n\t24: Call[11](transfer_to_object<Collection, Player>(Collection, &mut Player))\n\t25: MoveLoc[3](loc1: Player)\n\t26: Ret\n}\npublic update_farm_cosmetics() {\nB0:\n\t0: CopyLoc[4](Arg4: u64)\n\t1: LdU64(1)\n\t2: Le\n\t3: BrTrue(8)\nB1:\n\t4: MoveLoc[1](Arg1: &mut Farm)\n\t5: Pop\n\t6: LdAddr[1](U64: [7, 0, 0, 0, 0, 0, 0, 0])\n\t7: Abort\nB2:\n\t8: CopyLoc[4](Arg4: u64)\n\t9: LdU64(0)\n\t10: Eq\n\t11: BrTrue(13)\nB3:\n\t12: Branch(21)\nB4:\n\t13: ImmBorrowLoc[3](Arg3: FarmCosmetic)\n\t14: Call[12](id<FarmCosmetic>(&FarmCosmetic): &ID)\n\t15: ReadRef\n\t16: Call[2](some<ID>(ID): Option<ID>)\n\t17: CopyLoc[1](Arg1: &mut Farm)\n\t18: MutBorrowField[3](Farm.applied_farm_cosmetic_0_id: Option<ID>)\n\t19: WriteRef\n\t20: Branch(28)\nB5:\n\t21: ImmBorrowLoc[3](Arg3: FarmCosmetic)\n\t22: Call[12](id<FarmCosmetic>(&FarmCosmetic): &ID)\n\t23: ReadRef\n\t24: Call[2](some<ID>(ID): Option<ID>)\n\t25: CopyLoc[1](Arg1: &mut Farm)\n\t26: MutBorrowField[4](Farm.applied_farm_cosmetic_1_id: Option<ID>)\n\t27: WriteRef\nB6:\n\t28: MoveLoc[3](Arg3: FarmCosmetic)\n\t29: MoveLoc[1](Arg1: &mut Farm)\n\t30: Call[13](transfer_to_object<FarmCosmetic, Farm>(FarmCosmetic, &mut Farm))\n\t31: Ret\n}\npublic update_farm_stats() {\nB0:\n\t0: CopyLoc[3](Arg3: u64)\n\t1: CopyLoc[1](Arg1: &mut Farm)\n\t2: MutBorrowField[5](Farm.current_xp: u64)\n\t3: WriteRef\n\t4: CopyLoc[2](Arg2: u64)\n\t5: MoveLoc[1](Arg1: &mut Farm)\n\t6: MutBorrowField[6](Farm.level: u64)\n\t7: WriteRef\n\t8: Ret\n}\npublic update_monster_cosmetics() {\nB0:\n\t0: CopyLoc[6](Arg6: u64)\n\t1: LdU64(1)\n\t2: Le\n\t3: BrTrue(8)\nB1:\n\t4: MoveLoc[2](Arg2: &mut Monster)\n\t5: Pop\n\t6: LdAddr[1](U64: [7, 0, 0, 0, 0, 0, 0, 0])\n\t7: Abort\nB2:\n\t8: CopyLoc[6](Arg6: u64)\n\t9: LdU64(0)\n\t10: Eq\n\t11: BrTrue(13)\nB3:\n\t12: Branch(21)\nB4:\n\t13: ImmBorrowLoc[4](Arg4: MonsterCosmetic)\n\t14: Call[14](id<MonsterCosmetic>(&MonsterCosmetic): &ID)\n\t15: ReadRef\n\t16: Call[2](some<ID>(ID): Option<ID>)\n\t17: CopyLoc[2](Arg2: &mut Monster)\n\t18: MutBorrowField[7](Monster.applied_monster_cosmetic_0_id: Option<ID>)\n\t19: WriteRef\n\t20: Branch(28)\nB5:\n\t21: ImmBorrowLoc[4](Arg4: MonsterCosmetic)\n\t22: Call[14](id<MonsterCosmetic>(&MonsterCosmetic): &ID)\n\t23: ReadRef\n\t24: Call[2](some<ID>(ID): Option<ID>)\n\t25: CopyLoc[2](Arg2: &mut Monster)\n\t26: MutBorrowField[8](Monster.applied_monster_cosmetic_1_id: Option<ID>)\n\t27: WriteRef\nB6:\n\t28: MoveLoc[4](Arg4: MonsterCosmetic)\n\t29: MoveLoc[2](Arg2: &mut Monster)\n\t30: Call[15](transfer_to_object<MonsterCosmetic, Monster>(MonsterCosmetic, &mut Monster))\n\t31: Ret\n}\npublic update_monster_stats() {\nB0:\n\t0: CopyLoc[4](Arg4: u8)\n\t1: CopyLoc[3](Arg3: &mut Monster)\n\t2: MutBorrowField[9](Monster.monster_affinity: u8)\n\t3: WriteRef\n\t4: CopyLoc[5](Arg5: u64)\n\t5: CopyLoc[3](Arg3: &mut Monster)\n\t6: MutBorrowField[10](Monster.monster_level: u64)\n\t7: WriteRef\n\t8: CopyLoc[6](Arg6: u64)\n\t9: CopyLoc[3](Arg3: &mut Monster)\n\t10: MutBorrowField[11](Monster.hunger_level: u64)\n\t11: WriteRef\n\t12: CopyLoc[7](Arg7: u64)\n\t13: CopyLoc[3](Arg3: &mut Monster)\n\t14: MutBorrowField[12](Monster.affection_level: u64)\n\t15: WriteRef\n\t16: CopyLoc[8](Arg8: u8)\n\t17: CopyLoc[3](Arg3: &mut Monster)\n\t18: MutBorrowField[13](Monster.buddy_level: u8)\n\t19: WriteRef\n\t20: ImmBorrowLoc[9](Arg9: vector<u8>)\n\t21: Call[16](length<u8>(&vector<u8>): u64)\n\t22: LdU64(0)\n\t23: Neq\n\t24: BrTrue(26)\nB1:\n\t25: Branch(32)\nB2:\n\t26: MoveLoc[9](Arg9: vector<u8>)\n\t27: Call[18](string(vector<u8>): String)\n\t28: MoveLoc[3](Arg3: &mut Monster)\n\t29: MutBorrowField[14](Monster.display: String)\n\t30: WriteRef\n\t31: Branch(34)\nB3:\n\t32: MoveLoc[3](Arg3: &mut Monster)\n\t33: Pop\nB4:\n\t34: Ret\n}\npublic update_player() {\nB0:\n\t0: CopyLoc[1](Arg1: u64)\n\t1: CopyLoc[0](Arg0: &mut Player)\n\t2: MutBorrowField[15](Player.water_runes_count: u64)\n\t3: WriteRef\n\t4: CopyLoc[2](Arg2: u64)\n\t5: CopyLoc[0](Arg0: &mut Player)\n\t6: MutBorrowField[16](Player.fire_runes_count: u64)\n\t7: WriteRef\n\t8: CopyLoc[3](Arg3: u64)\n\t9: CopyLoc[0](Arg0: &mut Player)\n\t10: MutBorrowField[17](Player.wind_runes_count: u64)\n\t11: WriteRef\n\t12: CopyLoc[4](Arg4: u64)\n\t13: MoveLoc[0](Arg0: &mut Player)\n\t14: MutBorrowField[18](Player.earth_runes_count: u64)\n\t15: WriteRef\n\t16: Ret\n}\n}","Geniteam2":"// Move bytecode v4\nmodule 2.Geniteam2 {\nstruct Farm has store, key {\n\tid: VersionedID,\n\tfarm_name: String,\n\tfarm_img_id: u64,\n\tlevel: u64,\n\tcurrent_xp: u64,\n\ttotal_monster_slots: u64,\n\toccupied_monster_slots: u64,\n\tfarm_cosmetic_slot1: Option<FarmCosmetic>,\n\tfarm_cosmetic_slot2: Option<FarmCosmetic>,\n\tpet_monsters: vector<Monster>\n}\nstruct FarmCosmetic has drop, store {\n\tcosmetic_type: u8,\n\tcosmetic_id: u64\n}\nstruct Monster has store, key {\n\tid: VersionedID,\n\tmonster_name: String,\n\tmonster_img_id: u64,\n\tbreed: u8,\n\tmonster_affinity: u8,\n\tmonster_description: String,\n\tmonster_level: u64,\n\tmonster_xp: u64,\n\thunger_level: u64,\n\taffection_level: u64,\n\tbuddy_level: u8,\n\tmonster_cosmetic_slot1: Option<MonsterCosmetic>,\n\tmonster_cosmetic_slot2: Option<MonsterCosmetic>\n}\nstruct MonsterCosmetic has drop, store {\n\tcosmetic_type: u8,\n\tcosmetic_id: u64\n}\nstruct Player has key {\n\tid: VersionedID,\n\tplayer_name: String,\n\tfarm: Farm,\n\twater_runes_count: u64,\n\tfire_runes_count: u64,\n\twind_runes_count: u64,\n\tearth_runes_count: u64,\n\towned_farm_cosmetics: vector<FarmCosmetic>,\n\towned_monster_cosmetics: vector<MonsterCosmetic>\n}\n\npublic add_monster() {\nB0:\n\t0: CopyLoc[0](Arg0: &mut Player)\n\t1: MutBorrowField[0](Player.farm: Farm)\n\t2: MutBorrowField[1](Farm.pet_monsters: vector<Monster>)\n\t3: MoveLoc[1](Arg1: Monster)\n\t4: Call[0](push_back<Monster>(&mut vector<Monster>, Monster))\n\t5: CopyLoc[0](Arg0: &mut Player)\n\t6: ImmBorrowField[0](Player.farm: Farm)\n\t7: ImmBorrowField[2](Farm.occupied_monster_slots: u64)\n\t8: ReadRef\n\t9: LdU64(1)\n\t10: Add\n\t11: CopyLoc[0](Arg0: &mut Player)\n\t12: MutBorrowField[0](Player.farm: Farm)\n\t13: MutBorrowField[2](Farm.occupied_monster_slots: u64)\n\t14: WriteRef\n\t15: CopyLoc[0](Arg0: &mut Player)\n\t16: ImmBorrowField[0](Player.farm: Farm)\n\t17: ImmBorrowField[2](Farm.occupied_monster_slots: u64)\n\t18: ReadRef\n\t19: MoveLoc[0](Arg0: &mut Player)\n\t20: ImmBorrowField[0](Player.farm: Farm)\n\t21: ImmBorrowField[3](Farm.total_monster_slots: u64)\n\t22: ReadRef\n\t23: Le\n\t24: BrTrue(27)\nB1:\n\t25: LdAddr[1](U64: [0, 0, 0, 0, 0, 0, 0, 0])\n\t26: Abort\nB2:\n\t27: Ret\n}\npublic create_farm_(): Farm {\nB0:\n\t0: MoveLoc[3](Arg3: &mut TxContext)\n\t1: Call[16](new_id(&mut TxContext): VersionedID)\n\t2: MoveLoc[0](Arg0: vector<u8>)\n\t3: Call[17](string(vector<u8>): String)\n\t4: CopyLoc[1](Arg1: u64)\n\t5: LdU64(0)\n\t6: LdU64(0)\n\t7: CopyLoc[2](Arg2: u64)\n\t8: LdU64(0)\n\t9: Call[1](none<FarmCosmetic>(): Option<FarmCosmetic>)\n\t10: Call[1](none<FarmCosmetic>(): Option<FarmCosmetic>)\n\t11: Call[2](empty<Monster>(): vector<Monster>)\n\t12: Pack[0](Farm)\n\t13: Ret\n}\npublic create_monster(loc0: vector<u8>) {\nB0:\n\t0: MoveLoc[0](Arg0: vector<u8>)\n\t1: CopyLoc[1](Arg1: u64)\n\t2: CopyLoc[2](Arg2: u8)\n\t3: CopyLoc[3](Arg3: u8)\n\t4: MoveLoc[4](Arg4: vector<u8>)\n\t5: CopyLoc[5](Arg5: &mut TxContext)\n\t6: Call[3](create_monster_(vector<u8>, u64, u8, u8, vector<u8>, &mut TxContext): Monster)\n\t7: StLoc[6](loc0: Monster)\n\t8: MoveLoc[6](loc0: Monster)\n\t9: MoveLoc[5](Arg5: &mut TxContext)\n\t10: FreezeRef\n\t11: Call[20](sender(&TxContext): address)\n\t12: Call[3](transfer<Monster>(Monster, address))\n\t13: Ret\n}\npublic create_monster_(): Monster {\nB0:\n\t0: MoveLoc[5](Arg5: &mut TxContext)\n\t1: Call[16](new_id(&mut TxContext): VersionedID)\n\t2: MoveLoc[0](Arg0: vector<u8>)\n\t3: Call[17](string(vector<u8>): String)\n\t4: CopyLoc[1](Arg1: u64)\n\t5: CopyLoc[2](Arg2: u8)\n\t6: CopyLoc[3](Arg3: u8)\n\t7: MoveLoc[4](Arg4: vector<u8>)\n\t8: Call[17](string(vector<u8>): String)\n\t9: LdU64(0)\n\t10: LdU64(0)\n\t11: LdU64(0)\n\t12: LdU64(0)\n\t13: LdU8(0)\n\t14: Call[4](none<MonsterCosmetic>(): Option<MonsterCosmetic>)\n\t15: Call[4](none<MonsterCosmetic>(): Option<MonsterCosmetic>)\n\t16: Pack[2](Monster)\n\t17: Ret\n}\npublic create_player(loc0: vector<u8>, loc1: vector<u8>) {\nB0:\n\t0: MoveLoc[1](Arg1: vector<u8>)\n\t1: CopyLoc[2](Arg2: u64)\n\t2: CopyLoc[3](Arg3: u64)\n\t3: CopyLoc[4](Arg4: &mut TxContext)\n\t4: Call[1](create_farm_(vector<u8>, u64, u64, &mut TxContext): Farm)\n\t5: StLoc[5](loc0: Farm)\n\t6: MoveLoc[0](Arg0: vector<u8>)\n\t7: MoveLoc[5](loc0: Farm)\n\t8: CopyLoc[4](Arg4: &mut TxContext)\n\t9: Call[5](create_player_(vector<u8>, Farm, &mut TxContext): Player)\n\t10: StLoc[6](loc1: Player)\n\t11: MoveLoc[6](loc1: Player)\n\t12: MoveLoc[4](Arg4: &mut TxContext)\n\t13: FreezeRef\n\t14: Call[20](sender(&TxContext): address)\n\t15: Call[5](transfer<Player>(Player, address))\n\t16: Ret\n}\npublic create_player_(): Player {\nB0:\n\t0: MoveLoc[2](Arg2: &mut TxContext)\n\t1: Call[16](new_id(&mut TxContext): VersionedID)\n\t2: MoveLoc[0](Arg0: vector<u8>)\n\t3: Call[17](string(vector<u8>): String)\n\t4: MoveLoc[1](Arg1: Farm)\n\t5: LdU64(0)\n\t6: LdU64(0)\n\t7: LdU64(0)\n\t8: LdU64(0)\n\t9: Call[6](empty<FarmCosmetic>(): vector<FarmCosmetic>)\n\t10: Call[7](empty<MonsterCosmetic>(): vector<MonsterCosmetic>)\n\t11: Pack[4](Player)\n\t12: Ret\n}\npublic remove_monster(loc0: &mut Player, loc1: vector<u8>, loc2: &mut TxContext) {\nB0:\n\t0: MoveLoc[0](Arg0: &mut Player)\n\t1: StLoc[4](loc1: &mut Player)\n\t2: MoveLoc[1](Arg1: vector<u8>)\n\t3: Call[22](new_from_bytes(vector<u8>): ID)\n\t4: StLoc[3](loc0: ID)\n\t5: MoveLoc[4](loc1: &mut Player)\n\t6: ImmBorrowLoc[3](loc0: ID)\n\t7: Call[7](remove_monster_(&mut Player, &ID): Monster)\n\t8: StLoc[5](loc2: Monster)\n\t9: MoveLoc[5](loc2: Monster)\n\t10: MoveLoc[2](Arg2: &mut TxContext)\n\t11: FreezeRef\n\t12: Call[20](sender(&TxContext): address)\n\t13: Call[3](transfer<Monster>(Monster, address))\n\t14: Ret\n}\npublic remove_monster_(loc0: &mut Player, loc1: &ID): Monster {\nL0:\tloc2: &mut Farm\nL1:\tloc3: u64\nL2:\tloc4: &Monster\nL3:\tloc5: &mut vector<Monster>\nL4:\tloc6: u64\nB0:\n\t0: MoveLoc[0](Arg0: &mut Player)\n\t1: MutBorrowField[0](Player.farm: Farm)\n\t2: StLoc[4](loc2: &mut Farm)\n\t3: CopyLoc[4](loc2: &mut Farm)\n\t4: MutBorrowField[1](Farm.pet_monsters: vector<Monster>)\n\t5: StLoc[7](loc5: &mut vector<Monster>)\n\t6: CopyLoc[7](loc5: &mut vector<Monster>)\n\t7: FreezeRef\n\t8: Call[8](length<Monster>(&vector<Monster>): u64)\n\t9: StLoc[8](loc6: u64)\n\t10: LdU64(0)\n\t11: StLoc[5](loc3: u64)\nB1:\n\t12: CopyLoc[5](loc3: u64)\n\t13: CopyLoc[8](loc6: u64)\n\t14: Lt\n\t15: BrTrue(17)\nB2:\n\t16: Branch(40)\nB3:\n\t17: CopyLoc[7](loc5: &mut vector<Monster>)\n\t18: CopyLoc[5](loc3: u64)\n\t19: StLoc[3](loc1: u64)\n\t20: StLoc[2](loc0: &mut vector<Monster>)\n\t21: MoveLoc[2](loc0: &mut vector<Monster>)\n\t22: FreezeRef\n\t23: MoveLoc[3](loc1: u64)\n\t24: Call[9](borrow<Monster>(&vector<Monster>, u64): &Monster)\n\t25: StLoc[6](loc4: &Monster)\n\t26: MoveLoc[6](loc4: &Monster)\n\t27: Call[10](id<Monster>(&Monster): &ID)\n\t28: CopyLoc[1](Arg1: &ID)\n\t29: Eq\n\t30: BrTrue(32)\nB4:\n\t31: Branch(35)\nB5:\n\t32: MoveLoc[1](Arg1: &ID)\n\t33: Pop\n\t34: Branch(40)\nB6:\n\t35: CopyLoc[5](loc3: u64)\n\t36: LdU64(1)\n\t37: Add\n\t38: StLoc[5](loc3: u64)\n\t39: Branch(12)\nB7:\n\t40: CopyLoc[5](loc3: u64)\n\t41: CopyLoc[8](loc6: u64)\n\t42: Neq\n\t43: BrTrue(50)\nB8:\n\t44: MoveLoc[7](loc5: &mut vector<Monster>)\n\t45: Pop\n\t46: MoveLoc[4](loc2: &mut Farm)\n\t47: Pop\n\t48: LdAddr[0](U64: [1, 0, 0, 0, 0, 0, 0, 0])\n\t49: Abort\nB9:\n\t50: CopyLoc[4](loc2: &mut Farm)\n\t51: ImmBorrowField[2](Farm.occupied_monster_slots: u64)\n\t52: ReadRef\n\t53: LdU64(1)\n\t54: Sub\n\t55: MoveLoc[4](loc2: &mut Farm)\n\t56: MutBorrowField[2](Farm.occupied_monster_slots: u64)\n\t57: WriteRef\n\t58: MoveLoc[7](loc5: &mut vector<Monster>)\n\t59: CopyLoc[5](loc3: u64)\n\t60: Call[11](remove<Monster>(&mut vector<Monster>, u64): Monster)\n\t61: Ret\n}\npublic update_farm() {\nB0:\n\t0: CopyLoc[1](Arg1: u64)\n\t1: MoveLoc[0](Arg0: &mut Player)\n\t2: MutBorrowField[0](Player.farm: Farm)\n\t3: MutBorrowField[4](Farm.level: u64)\n\t4: WriteRef\n\t5: Ret\n}\npublic update_farm_cosmetic_slot1() {\nB0:\n\t0: CopyLoc[1](Arg1: u8)\n\t1: CopyLoc[2](Arg2: u64)\n\t2: Pack[1](FarmCosmetic)\n\t3: Call[12](some<FarmCosmetic>(FarmCosmetic): Option<FarmCosmetic>)\n\t4: MoveLoc[0](Arg0: &mut Player)\n\t5: MutBorrowField[0](Player.farm: Farm)\n\t6: MutBorrowField[5](Farm.farm_cosmetic_slot1: Option<FarmCosmetic>)\n\t7: WriteRef\n\t8: Ret\n}\npublic update_farm_cosmetic_slot2() {\nB0:\n\t0: CopyLoc[1](Arg1: u8)\n\t1: CopyLoc[2](Arg2: u64)\n\t2: Pack[1](FarmCosmetic)\n\t3: Call[12](some<FarmCosmetic>(FarmCosmetic): Option<FarmCosmetic>)\n\t4: MoveLoc[0](Arg0: &mut Player)\n\t5: MutBorrowField[0](Player.farm: Farm)\n\t6: MutBorrowField[6](Farm.farm_cosmetic_slot2: Option<FarmCosmetic>)\n\t7: WriteRef\n\t8: Ret\n}\npublic update_monster() {\nB0:\n\t0: CopyLoc[1](Arg1: u64)\n\t1: CopyLoc[0](Arg0: &mut Monster)\n\t2: MutBorrowField[7](Monster.monster_level: u64)\n\t3: WriteRef\n\t4: CopyLoc[2](Arg2: u64)\n\t5: CopyLoc[0](Arg0: &mut Monster)\n\t6: MutBorrowField[8](Monster.hunger_level: u64)\n\t7: WriteRef\n\t8: CopyLoc[3](Arg3: u64)\n\t9: CopyLoc[0](Arg0: &mut Monster)\n\t10: MutBorrowField[9](Monster.affection_level: u64)\n\t11: WriteRef\n\t12: CopyLoc[4](Arg4: u8)\n\t13: MoveLoc[0](Arg0: &mut Monster)\n\t14: MutBorrowField[10](Monster.buddy_level: u8)\n\t15: WriteRef\n\t16: Ret\n}\npublic update_monster_cosmetic_slot1() {\nB0:\n\t0: CopyLoc[1](Arg1: u8)\n\t1: CopyLoc[2](Arg2: u64)\n\t2: Pack[3](MonsterCosmetic)\n\t3: Call[13](some<MonsterCosmetic>(MonsterCosmetic): Option<MonsterCosmetic>)\n\t4: MoveLoc[0](Arg0: &mut Monster)\n\t5: MutBorrowField[11](Monster.monster_cosmetic_slot1: Option<MonsterCosmetic>)\n\t6: WriteRef\n\t7: Ret\n}\npublic update_monster_cosmetic_slot2() {\nB0:\n\t0: CopyLoc[1](Arg1: u8)\n\t1: CopyLoc[2](Arg2: u64)\n\t2: Pack[3](MonsterCosmetic)\n\t3: Call[13](some<MonsterCosmetic>(MonsterCosmetic): Option<MonsterCosmetic>)\n\t4: MoveLoc[0](Arg0: &mut Monster)\n\t5: MutBorrowField[12](Monster.monster_cosmetic_slot2: Option<MonsterCosmetic>)\n\t6: WriteRef\n\t7: Ret\n}\npublic update_player() {\nB0:\n\t0: CopyLoc[1](Arg1: u64)\n\t1: CopyLoc[0](Arg0: &mut Player)\n\t2: MutBorrowField[13](Player.water_runes_count: u64)\n\t3: WriteRef\n\t4: CopyLoc[2](Arg2: u64)\n\t5: CopyLoc[0](Arg0: &mut Player)\n\t6: MutBorrowField[14](Player.fire_runes_count: u64)\n\t7: WriteRef\n\t8: CopyLoc[3](Arg3: u64)\n\t9: CopyLoc[0](Arg0: &mut Player)\n\t10: MutBorrowField[15](Player.wind_runes_count: u64)\n\t11: WriteRef\n\t12: CopyLoc[4](Arg4: u64)\n\t13: MoveLoc[0](Arg0: &mut Player)\n\t14: MutBorrowField[16](Player.earth_runes_count: u64)\n\t15: WriteRef\n\t16: Ret\n}\n}","ID":"// Move bytecode v4\nmodule 2.ID {\nstruct ID has copy, drop, store {\n\tbytes: address\n}\nstruct UniqueID has store {\n\tid: ID\n}\nstruct VersionedID has store {\n\tid: UniqueID,\n\tversion: u64\n}\n\npublic bytes(): vector<u8> {\nB0:\n\t0: MoveLoc[0](Arg0: &ID)\n\t1: ImmBorrowField[0](ID.bytes: address)\n\t2: Call[0](to_bytes<address>(&address): vector<u8>)\n\t3: Ret\n}\nnative bytes_to_address(): address\ncreated_by_current_tx<Ty0: key>(): bool {\nB0:\n\t0: MoveLoc[0](Arg0: &Ty0)\n\t1: Call[1](version<Ty0>(&Ty0): u64)\n\t2: LdAddr[0](U64: [0, 0, 0, 0, 0, 0, 0, 0])\n\t3: Eq\n\t4: Ret\n}\npublic delete(loc0: VersionedID) {\nB0:\n\t0: MoveLoc[0](Arg0: VersionedID)\n\t1: Unpack[2](VersionedID)\n\t2: Pop\n\t3: StLoc[1](loc0: UniqueID)\n\t4: MoveLoc[1](loc0: UniqueID)\n\t5: Call[4](delete_id(UniqueID))\n\t6: Ret\n}\nnative delete_id()\nnative get_versioned_id<Ty0: key>(): &VersionedID\npublic id<Ty0: key>(loc0: &Ty0): &ID {\nB0:\n\t0: MoveLoc[0](Arg0: &Ty0)\n\t1: Call[2](get_versioned_id<Ty0>(&Ty0): &VersionedID)\n\t2: StLoc[1](loc0: &VersionedID)\n\t3: MoveLoc[1](loc0: &VersionedID)\n\t4: Call[9](inner(&VersionedID): &ID)\n\t5: Ret\n}\npublic(friend) id_address<Ty0: key>(loc0: &Ty0): address {\nB0:\n\t0: MoveLoc[0](Arg0: &Ty0)\n\t1: Call[3](id<Ty0>(&Ty0): &ID)\n\t2: StLoc[1](loc0: &ID)\n\t3: MoveLoc[1](loc0: &ID)\n\t4: ImmBorrowField[0](ID.bytes: address)\n\t5: ReadRef\n\t6: Ret\n}\npublic id_bytes<Ty0: key>(loc0: &Ty0): vector<u8> {\nB0:\n\t0: MoveLoc[0](Arg0: &Ty0)\n\t1: Call[2](get_versioned_id<Ty0>(&Ty0): &VersionedID)\n\t2: StLoc[1](loc0: &VersionedID)\n\t3: MoveLoc[1](loc0: &VersionedID)\n\t4: Call[10](inner_bytes(&VersionedID): vector<u8>)\n\t5: Ret\n}\npublic inner(): &ID {\nB0:\n\t0: MoveLoc[0](Arg0: &VersionedID)\n\t1: ImmBorrowField[1](VersionedID.id: UniqueID)\n\t2: ImmBorrowField[2](UniqueID.id: ID)\n\t3: Ret\n}\npublic inner_bytes(): vector<u8> {\nB0:\n\t0: MoveLoc[0](Arg0: &VersionedID)\n\t1: Call[9](inner(&VersionedID): &ID)\n\t2: Call[0](bytes(&ID): vector<u8>)\n\t3: Ret\n}\npublic new(): ID {\nB0:\n\t0: CopyLoc[0](Arg0: address)\n\t1: Pack[0](ID)\n\t2: Ret\n}\npublic new_from_bytes(): ID {\nB0:\n\t0: ImmBorrowLoc[0](Arg0: vector<u8>)\n\t1: Call[4](length<u8>(&vector<u8>): u64)\n\t2: LdAddr[1](U64: [20, 0, 0, 0, 0, 0, 0, 0])\n\t3: Neq\n\t4: BrTrue(6)\nB1:\n\t5: Branch(8)\nB2:\n\t6: LdAddr[0](U64: [0, 0, 0, 0, 0, 0, 0, 0])\n\t7: Abort\nB3:\n\t8: MoveLoc[0](Arg0: vector<u8>)\n\t9: Call[1](bytes_to_address(vector<u8>): address)\n\t10: Pack[0](ID)\n\t11: Ret\n}\npublic(friend) new_versioned_id(): VersionedID {\nB0:\n\t0: CopyLoc[0](Arg0: address)\n\t1: Pack[0](ID)\n\t2: Pack[1](UniqueID)\n\t3: LdAddr[0](U64: [0, 0, 0, 0, 0, 0, 0, 0])\n\t4: Pack[2](VersionedID)\n\t5: Ret\n}\nversion<Ty0: key>(loc0: &Ty0): u64 {\nB0:\n\t0: MoveLoc[0](Arg0: &Ty0)\n\t1: Call[2](get_versioned_id<Ty0>(&Ty0): &VersionedID)\n\t2: StLoc[1](loc0: &VersionedID)\n\t3: MoveLoc[1](loc0: &VersionedID)\n\t4: ImmBorrowField[3](VersionedID.version: u64)\n\t5: ReadRef\n\t6: Ret\n}\n}","Math":"// Move bytecode v4\nmodule 2.Math {\n\n\npublic max(loc0: u64): u64 {\nB0:\n\t0: CopyLoc[0](Arg0: u64)\n\t1: CopyLoc[1](Arg1: u64)\n\t2: Gt\n\t3: BrTrue(5)\nB1:\n\t4: Branch(8)\nB2:\n\t5: CopyLoc[0](Arg0: u64)\n\t6: StLoc[2](loc0: u64)\n\t7: Branch(10)\nB3:\n\t8: CopyLoc[1](Arg1: u64)\n\t9: StLoc[2](loc0: u64)\nB4:\n\t10: MoveLoc[2](loc0: u64)\n\t11: Ret\n}\npublic min(loc0: u64): u64 {\nB0:\n\t0: CopyLoc[0](Arg0: u64)\n\t1: CopyLoc[1](Arg1: u64)\n\t2: Lt\n\t3: BrTrue(5)\nB1:\n\t4: Branch(8)\nB2:\n\t5: CopyLoc[0](Arg0: u64)\n\t6: StLoc[2](loc0: u64)\n\t7: Branch(10)\nB3:\n\t8: CopyLoc[1](Arg1: u64)\n\t9: StLoc[2](loc0: u64)\nB4:\n\t10: MoveLoc[2](loc0: u64)\n\t11: Ret\n}\n}","ObjectBasics":"// Move bytecode v4\nmodule 2.ObjectBasics {\nstruct NewValueEvent has copy, drop {\n\tnew_value: u64\n}\nstruct Object has store, key {\n\tid: VersionedID,\n\tvalue: u64\n}\nstruct Wrapper has key {\n\tid: VersionedID,\n\to: Object\n}\n\npublic create() {\nB0:\n\t0: MoveLoc[2](Arg2: &mut TxContext)\n\t1: Call[9](new_id(&mut TxContext): VersionedID)\n\t2: CopyLoc[0](Arg0: u64)\n\t3: Pack[1](Object)\n\t4: CopyLoc[1](Arg1: address)\n\t5: Call[0](transfer<Object>(Object, address))\n\t6: Ret\n}\npublic delete(loc0: Object) {\nB0:\n\t0: MoveLoc[0](Arg0: Object)\n\t1: Unpack[1](Object)\n\t2: Pop\n\t3: StLoc[2](loc0: VersionedID)\n\t4: MoveLoc[2](loc0: VersionedID)\n\t5: Call[11](delete(VersionedID))\n\t6: Ret\n}\npublic set_value() {\nB0:\n\t0: CopyLoc[1](Arg1: u64)\n\t1: MoveLoc[0](Arg0: &mut Object)\n\t2: MutBorrowField[0](Object.value: u64)\n\t3: WriteRef\n\t4: Ret\n}\npublic transfer() {\nB0:\n\t0: MoveLoc[0](Arg0: Object)\n\t1: CopyLoc[1](Arg1: address)\n\t2: Call[0](transfer<Object>(Object, address))\n\t3: Ret\n}\npublic transfer_and_freeze() {\nB0:\n\t0: MoveLoc[0](Arg0: Object)\n\t1: CopyLoc[1](Arg1: address)\n\t2: Call[1](transfer_and_freeze<Object>(Object, address))\n\t3: Ret\n}\npublic transfer_to_object() {\nB0:\n\t0: MoveLoc[0](Arg0: Object)\n\t1: MoveLoc[1](Arg1: &mut Object)\n\t2: Call[2](transfer_to_object<Object, Object>(Object, &mut Object))\n\t3: Ret\n}\npublic unwrap(loc0: Wrapper, loc1: &mut TxContext) {\nB0:\n\t0: MoveLoc[0](Arg0: Wrapper)\n\t1: Unpack[2](Wrapper)\n\t2: StLoc[3](loc1: Object)\n\t3: StLoc[2](loc0: VersionedID)\n\t4: MoveLoc[2](loc0: VersionedID)\n\t5: Call[11](delete(VersionedID))\n\t6: MoveLoc[3](loc1: Object)\n\t7: MoveLoc[1](Arg1: &mut TxContext)\n\t8: FreezeRef\n\t9: Call[14](sender(&TxContext): address)\n\t10: Call[0](transfer<Object>(Object, address))\n\t11: Ret\n}\npublic update() {\nB0:\n\t0: CopyLoc[1](Arg1: &Object)\n\t1: ImmBorrowField[0](Object.value: u64)\n\t2: ReadRef\n\t3: MoveLoc[0](Arg0: &mut Object)\n\t4: MutBorrowField[0](Object.value: u64)\n\t5: WriteRef\n\t6: MoveLoc[1](Arg1: &Object)\n\t7: ImmBorrowField[0](Object.value: u64)\n\t8: ReadRef\n\t9: Pack[0](NewValueEvent)\n\t10: Call[3](emit<NewValueEvent>(NewValueEvent))\n\t11: Ret\n}\npublic wrap() {\nB0:\n\t0: CopyLoc[1](Arg1: &mut TxContext)\n\t1: Call[9](new_id(&mut TxContext): VersionedID)\n\t2: MoveLoc[0](Arg0: Object)\n\t3: Pack[2](Wrapper)\n\t4: MoveLoc[1](Arg1: &mut TxContext)\n\t5: FreezeRef\n\t6: Call[14](sender(&TxContext): address)\n\t7: Call[4](transfer<Wrapper>(Wrapper, address))\n\t8: Ret\n}\n}","Transfer":"// Move bytecode v4\nmodule 2.Transfer {\nstruct TransferEvent<Ty0: key> {\n\tobj: Ty0,\n\trecipient: address\n}\n\npublic transfer<Ty0: key>() {\nB0:\n\t0: MoveLoc[0](Arg0: Ty0)\n\t1: CopyLoc[1](Arg1: address)\n\t2: LdFalse\n\t3: Call[0](transfer_internal<Ty0>(Ty0, address, bool))\n\t4: Ret\n}\npublic transfer_and_freeze<Ty0: key>() {\nB0:\n\t0: MoveLoc[0](Arg0: Ty0)\n\t1: CopyLoc[1](Arg1: address)\n\t2: LdTrue\n\t3: Call[0](transfer_internal<Ty0>(Ty0, address, bool))\n\t4: Ret\n}\nnative transfer_internal<Ty0: key>()\npublic transfer_to_object<Ty0: key, Ty1: key>(loc0: Ty0) {\nB0:\n\t0: MoveLoc[1](Arg1: &mut Ty1)\n\t1: FreezeRef\n\t2: Call[1](id_address<Ty1>(&Ty1): address)\n\t3: StLoc[2](loc0: address)\n\t4: MoveLoc[0](Arg0: Ty0)\n\t5: CopyLoc[2](loc0: address)\n\t6: Call[2](transfer_to_object_id<Ty0>(Ty0, address))\n\t7: Ret\n}\nnative transfer_to_object_id<Ty0: key>()\n}","TxContext":"// Move bytecode v4\nmodule 2.TxContext {\nstruct TxContext has drop {\n\tsigner: signer,\n\ttx_hash: vector<u8>,\n\tids_created: u64\n}\n\nnative fresh_id(): address\nids_created(): u64 {\nB0:\n\t0: MoveLoc[0](Arg0: &TxContext)\n\t1: ImmBorrowField[0](TxContext.ids_created: u64)\n\t2: ReadRef\n\t3: Ret\n}\npublic new_id(loc0: &mut TxContext): VersionedID {\nL0:\tloc1: u64\nB0:\n\t0: CopyLoc[0](Arg0: &mut TxContext)\n\t1: ImmBorrowField[0](TxContext.ids_created: u64)\n\t2: ReadRef\n\t3: StLoc[2](loc1: u64)\n\t4: CopyLoc[0](Arg0: &mut TxContext)\n\t5: ImmBorrowField[1](TxContext.tx_hash: vector<u8>)\n\t6: ReadRef\n\t7: CopyLoc[2](loc1: u64)\n\t8: Call[0](fresh_id(vector<u8>, u64): address)\n\t9: Call[5](new_versioned_id(address): VersionedID)\n\t10: StLoc[1](loc0: VersionedID)\n\t11: CopyLoc[2](loc1: u64)\n\t12: LdU64(1)\n\t13: Add\n\t14: MoveLoc[0](Arg0: &mut TxContext)\n\t15: MutBorrowField[0](TxContext.ids_created: u64)\n\t16: WriteRef\n\t17: MoveLoc[1](loc0: VersionedID)\n\t18: Ret\n}\npublic sender(): address {\nB0:\n\t0: MoveLoc[0](Arg0: &TxContext)\n\t1: ImmBorrowField[2](TxContext.signer: signer)\n\t2: Call[6](address_of(&signer): address)\n\t3: Ret\n}\npublic signer_(): &signer {\nB0:\n\t0: MoveLoc[0](Arg0: &TxContext)\n\t1: ImmBorrowField[2](TxContext.signer: signer)\n\t2: Ret\n}\n}"},"owner":"SharedImmutable","tx_digest":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment