{ "name": "DataFiduciaryRegistry", "structs": { "Fiduciary": [ { "name": "name", "type": "string" }, { "name": "license_id", "type": "string" }, { "name": "approved", "type": "bool" }, { "name": "suspended", "type": "bool" }, { "name": "revoked", "type": "bool" } ] }, "methods": [ { "name": "register_fiduciary", "args": [ { "type": "string", "name": "name" }, { "type": "string", "name": "license_id" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "desc": "Any caller can register themselves as a fiduciary (pending approval).", "events": [ { "name": "FiduciaryRegistered", "args": [ { "type": "address", "name": "field1" } ] } ], "recommendations": {} }, { "name": "approve_fiduciary", "args": [ { "type": "address", "name": "fiduciary" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "desc": "Only admin can approve a fiduciary.", "events": [ { "name": "FiduciaryApproved", "args": [ { "type": "address", "name": "field1" } ] } ], "recommendations": {} }, { "name": "suspend_fiduciary", "args": [ { "type": "address", "name": "fiduciary" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "desc": "Only admin can suspend a fiduciary.", "events": [ { "name": "FiduciarySuspended", "args": [ { "type": "address", "name": "field1" } ] } ], "recommendations": {} }, { "name": "revoke_fiduciary", "args": [ { "type": "address", "name": "fiduciary" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "desc": "Only admin can permanently revoke a fiduciary.", "events": [ { "name": "FiduciaryRevoked", "args": [ { "type": "address", "name": "field1" } ] } ], "recommendations": {} }, { "name": "is_approved", "args": [ { "type": "address", "name": "fiduciary" } ], "returns": { "type": "bool" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": true, "desc": "Returns True if fiduciary is approved, not suspended, and not revoked.", "events": [], "recommendations": {} }, { "name": "get_fiduciary", "args": [ { "type": "address", "name": "fiduciary" } ], "returns": { "type": "(string,string,bool,bool,bool)", "struct": "Fiduciary" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": true, "desc": "Returns the Fiduciary struct for a given address.", "events": [], "recommendations": {} } ], "arcs": [ 22, 28 ], "networks": {}, "state": { "schema": { "global": { "ints": 0, "bytes": 1 }, "local": { "ints": 0, "bytes": 0 } }, "keys": { "global": { "admin": { "keyType": "AVMString", "valueType": "address", "key": "YWRtaW4=" } }, "local": {}, "box": {} }, "maps": { "global": {}, "local": {}, "box": { "fiduciaries": { "keyType": "address", "valueType": "Fiduciary", "prefix": "ZmlkXw==" } } } }, "bareActions": { "create": [ "NoOp" ], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [ { "pc": [ 218 ], "errorMessage": "Cannot approve revoked fiduciary" }, { "pc": [ 272 ], "errorMessage": "Cannot suspend revoked fiduciary" }, { "pc": [ 197, 251, 305 ], "errorMessage": "Only admin" }, { "pc": [ 195, 249, 303 ], "errorMessage": "check self.admin exists" }, { "pc": [ 312, 439 ], "errorMessage": "check self.fiduciaries entry exists" }, { "pc": [ 111, 128 ], "errorMessage": "invalid array length header" }, { "pc": [ 122, 136 ], "errorMessage": "invalid number of bytes for arc4.dynamic_array" }, { "pc": [ 189, 243, 297, 347, 434 ], "errorMessage": "invalid number of bytes for arc4.static_array" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuYXBwcm92YWxfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIGludGNibG9jayAwIDEgNCAzMgogICAgYnl0ZWNibG9jayAweDAwIDB4NjY2OTY0NWYgImFkbWluIiAweDE1MWY3Yzc1CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYm56IG1haW5fYWZ0ZXJfaWZfZWxzZUAyCiAgICAvLyBzbWFydF9jb250cmFjdHMvRGF0YUZpZHVjaWFyeVJlZ2lzdHJ5L2NvbnRyYWN0LnB5OjI2CiAgICAvLyBzZWxmLmFkbWluLnZhbHVlID0gYXJjNC5BZGRyZXNzKFR4bi5zZW5kZXIpCiAgICBieXRlY18yIC8vICJhZG1pbiIKICAgIHR4biBTZW5kZXIKICAgIGFwcF9nbG9iYWxfcHV0CgptYWluX2FmdGVyX2lmX2Vsc2VAMjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9EYXRhRmlkdWNpYXJ5UmVnaXN0cnkvY29udHJhY3QucHk6MjEKICAgIC8vIGNsYXNzIERhdGFGaWR1Y2lhcnlSZWdpc3RyeShBUkM0Q29udHJhY3QpOgogICAgdHhuIE51bUFwcEFyZ3MKICAgIGJ6IG1haW5fX19hbGdvcHlfZGVmYXVsdF9jcmVhdGVAMTUKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydAogICAgcHVzaGJ5dGVzcyAweDVjNjg2YjEzIDB4ZDU1Njc1ODIgMHhjOTM0YzljNyAweDVkOGU0MDZmIDB4MWI4ZWZjNTkgMHg4YzJhMTEzNCAvLyBtZXRob2QgInJlZ2lzdGVyX2ZpZHVjaWFyeShzdHJpbmcsc3RyaW5nKXZvaWQiLCBtZXRob2QgImFwcHJvdmVfZmlkdWNpYXJ5KGFkZHJlc3Mpdm9pZCIsIG1ldGhvZCAic3VzcGVuZF9maWR1Y2lhcnkoYWRkcmVzcyl2b2lkIiwgbWV0aG9kICJyZXZva2VfZmlkdWNpYXJ5KGFkZHJlc3Mpdm9pZCIsIG1ldGhvZCAiaXNfYXBwcm92ZWQoYWRkcmVzcylib29sIiwgbWV0aG9kICJnZXRfZmlkdWNpYXJ5KGFkZHJlc3MpKHN0cmluZyxzdHJpbmcsYm9vbCxib29sLGJvb2wpIgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgbWF0Y2ggcmVnaXN0ZXJfZmlkdWNpYXJ5IGFwcHJvdmVfZmlkdWNpYXJ5IHN1c3BlbmRfZmlkdWNpYXJ5IHJldm9rZV9maWR1Y2lhcnkgaXNfYXBwcm92ZWQgZ2V0X2ZpZHVjaWFyeQogICAgZXJyCgptYWluX19fYWxnb3B5X2RlZmF1bHRfY3JlYXRlQDE1OgogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgICEKICAgICYmCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMuRGF0YUZpZHVjaWFyeVJlZ2lzdHJ5LmNvbnRyYWN0LkRhdGFGaWR1Y2lhcnlSZWdpc3RyeS5yZWdpc3Rlcl9maWR1Y2lhcnlbcm91dGluZ10oKSAtPiB2b2lkOgpyZWdpc3Rlcl9maWR1Y2lhcnk6CiAgICAvLyBzbWFydF9jb250cmFjdHMvRGF0YUZpZHVjaWFyeVJlZ2lzdHJ5L2NvbnRyYWN0LnB5OjMxCiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIHB1c2hpbnQgMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgZHVwCiAgICB1bmNvdmVyIDIKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhcmM0LnVpbnQ4PgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgcHVzaGludCAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9EYXRhRmlkdWNpYXJ5UmVnaXN0cnkvY29udHJhY3QucHk6MzgKICAgIC8vIHNlbmRlcl9hZGRyID0gYXJjNC5BZGRyZXNzKFR4bi5zZW5kZXIpCiAgICB0eG4gU2VuZGVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvRGF0YUZpZHVjaWFyeVJlZ2lzdHJ5L2NvbnRyYWN0LnB5OjM5LTQ1CiAgICAvLyBzZWxmLmZpZHVjaWFyaWVzW3NlbmRlcl9hZGRyXSA9IEZpZHVjaWFyeSgKICAgIC8vICAgICBuYW1lPW5hbWUsCiAgICAvLyAgICAgbGljZW5zZV9pZD1saWNlbnNlX2lkLAogICAgLy8gICAgIGFwcHJvdmVkPWFyYzQuQm9vbChGYWxzZSksCiAgICAvLyAgICAgc3VzcGVuZGVkPWFyYzQuQm9vbChGYWxzZSksCiAgICAvLyAgICAgcmV2b2tlZD1hcmM0LkJvb2woRmFsc2UpLAogICAgLy8gKS5jb3B5KCkKICAgIHB1c2hpbnQgNQogICAgdW5jb3ZlciAzCiAgICArCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgcHVzaGJ5dGVzIDB4MDAwNQogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MDAKICAgIGNvbmNhdAogICAgdW5jb3ZlciAzCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvRGF0YUZpZHVjaWFyeVJlZ2lzdHJ5L2NvbnRyYWN0LnB5OjM5CiAgICAvLyBzZWxmLmZpZHVjaWFyaWVzW3NlbmRlcl9hZGRyXSA9IEZpZHVjaWFyeSgKICAgIGJ5dGVjXzEgLy8gMHg2NjY5NjQ1ZgogICAgZGlnIDIKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL0RhdGFGaWR1Y2lhcnlSZWdpc3RyeS9jb250cmFjdC5weTozOS00NQogICAgLy8gc2VsZi5maWR1Y2lhcmllc1tzZW5kZXJfYWRkcl0gPSBGaWR1Y2lhcnkoCiAgICAvLyAgICAgbmFtZT1uYW1lLAogICAgLy8gICAgIGxpY2Vuc2VfaWQ9bGljZW5zZV9pZCwKICAgIC8vICAgICBhcHByb3ZlZD1hcmM0LkJvb2woRmFsc2UpLAogICAgLy8gICAgIHN1c3BlbmRlZD1hcmM0LkJvb2woRmFsc2UpLAogICAgLy8gICAgIHJldm9rZWQ9YXJjNC5Cb29sKEZhbHNlKSwKICAgIC8vICkuY29weSgpCiAgICBkdXAKICAgIGJveF9kZWwKICAgIHBvcAogICAgc3dhcAogICAgYm94X3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL0RhdGFGaWR1Y2lhcnlSZWdpc3RyeS9jb250cmFjdC5weTo0Ny00OAogICAgLy8gIyBFbWl0IEFSQy0yOCBldmVudAogICAgLy8gYXJjNC5lbWl0KCJGaWR1Y2lhcnlSZWdpc3RlcmVkIiwgc2VuZGVyX2FkZHIpCiAgICBwdXNoYnl0ZXMgMHgzZGFkY2ExZCAvLyBtZXRob2QgIkZpZHVjaWFyeVJlZ2lzdGVyZWQoYWRkcmVzcykiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgLy8gc21hcnRfY29udHJhY3RzL0RhdGFGaWR1Y2lhcnlSZWdpc3RyeS9jb250cmFjdC5weTozMQogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzLkRhdGFGaWR1Y2lhcnlSZWdpc3RyeS5jb250cmFjdC5EYXRhRmlkdWNpYXJ5UmVnaXN0cnkuYXBwcm92ZV9maWR1Y2lhcnlbcm91dGluZ10oKSAtPiB2b2lkOgphcHByb3ZlX2ZpZHVjaWFyeToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9EYXRhRmlkdWNpYXJ5UmVnaXN0cnkvY29udHJhY3QucHk6NTAKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyAzMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5zdGF0aWNfYXJyYXk8YXJjNC51aW50OCwgMzI+CiAgICAvLyBzbWFydF9jb250cmFjdHMvRGF0YUZpZHVjaWFyeVJlZ2lzdHJ5L2NvbnRyYWN0LnB5OjUzCiAgICAvLyBhc3NlcnQgYXJjNC5BZGRyZXNzKFR4bi5zZW5kZXIpID09IHNlbGYuYWRtaW4udmFsdWUsICJPbmx5IGFkbWluIgogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzIgLy8gImFkbWluIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLmFkbWluIGV4aXN0cwogICAgPT0KICAgIGFzc2VydCAvLyBPbmx5IGFkbWluCiAgICAvLyBzbWFydF9jb250cmFjdHMvRGF0YUZpZHVjaWFyeVJlZ2lzdHJ5L2NvbnRyYWN0LnB5OjU1CiAgICAvLyBlbnRyeSA9IHNlbGYuZmlkdWNpYXJpZXNbZmlkdWNpYXJ5XS5jb3B5KCkKICAgIGJ5dGVjXzEgLy8gMHg2NjY5NjQ1ZgogICAgZGlnIDEKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL0RhdGFGaWR1Y2lhcnlSZWdpc3RyeS9jb250cmFjdC5weTo1NS01NgogICAgLy8gZW50cnkgPSBzZWxmLmZpZHVjaWFyaWVzW2ZpZHVjaWFyeV0uY29weSgpCiAgICAvLyBhc3NlcnQgbm90IGVudHJ5LnJldm9rZWQubmF0aXZlLCAiQ2Fubm90IGFwcHJvdmUgcmV2b2tlZCBmaWR1Y2lhcnkiCiAgICBkdXAKICAgIGludGNfMiAvLyA0CiAgICBpbnRjXzEgLy8gMQogICAgYm94X2V4dHJhY3QKICAgIGR1cAogICAgcHVzaGludCAyCiAgICBnZXRiaXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9EYXRhRmlkdWNpYXJ5UmVnaXN0cnkvY29udHJhY3QucHk6NTYKICAgIC8vIGFzc2VydCBub3QgZW50cnkucmV2b2tlZC5uYXRpdmUsICJDYW5ub3QgYXBwcm92ZSByZXZva2VkIGZpZHVjaWFyeSIKICAgIGJ5dGVjXzAgLy8gMHgwMAogICAgaW50Y18wIC8vIDAKICAgIHVuY292ZXIgMgogICAgc2V0Yml0CiAgICBpbnRjXzAgLy8gMAogICAgZ2V0Yml0CiAgICAhCiAgICBhc3NlcnQgLy8gQ2Fubm90IGFwcHJvdmUgcmV2b2tlZCBmaWR1Y2lhcnkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9EYXRhRmlkdWNpYXJ5UmVnaXN0cnkvY29udHJhY3QucHk6NTctNTgKICAgIC8vIGVudHJ5LmFwcHJvdmVkID0gYXJjNC5Cb29sKFRydWUpCiAgICAvLyBzZWxmLmZpZHVjaWFyaWVzW2ZpZHVjaWFyeV0gPSBlbnRyeS5jb3B5KCkKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvRGF0YUZpZHVjaWFyeVJlZ2lzdHJ5L2NvbnRyYWN0LnB5OjU3CiAgICAvLyBlbnRyeS5hcHByb3ZlZCA9IGFyYzQuQm9vbChUcnVlKQogICAgaW50Y18xIC8vIDEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9EYXRhRmlkdWNpYXJ5UmVnaXN0cnkvY29udHJhY3QucHk6NTctNTgKICAgIC8vIGVudHJ5LmFwcHJvdmVkID0gYXJjNC5Cb29sKFRydWUpCiAgICAvLyBzZWxmLmZpZHVjaWFyaWVzW2ZpZHVjaWFyeV0gPSBlbnRyeS5jb3B5KCkKICAgIHNldGJpdAogICAgaW50Y18yIC8vIDQKICAgIHN3YXAKICAgIGJveF9yZXBsYWNlCiAgICAvLyBzbWFydF9jb250cmFjdHMvRGF0YUZpZHVjaWFyeVJlZ2lzdHJ5L2NvbnRyYWN0LnB5OjYwCiAgICAvLyBhcmM0LmVtaXQoIkZpZHVjaWFyeUFwcHJvdmVkIiwgZmlkdWNpYXJ5KQogICAgcHVzaGJ5dGVzIDB4ZmY0Mzc2ODUgLy8gbWV0aG9kICJGaWR1Y2lhcnlBcHByb3ZlZChhZGRyZXNzKSIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICAvLyBzbWFydF9jb250cmFjdHMvRGF0YUZpZHVjaWFyeVJlZ2lzdHJ5L2NvbnRyYWN0LnB5OjUwCiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMuRGF0YUZpZHVjaWFyeVJlZ2lzdHJ5LmNvbnRyYWN0LkRhdGFGaWR1Y2lhcnlSZWdpc3RyeS5zdXNwZW5kX2ZpZHVjaWFyeVtyb3V0aW5nXSgpIC0+IHZvaWQ6CnN1c3BlbmRfZmlkdWNpYXJ5OgogICAgLy8gc21hcnRfY29udHJhY3RzL0RhdGFGaWR1Y2lhcnlSZWdpc3RyeS9jb250cmFjdC5weTo2MgogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDMyCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnN0YXRpY19hcnJheTxhcmM0LnVpbnQ4LCAzMj4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9EYXRhRmlkdWNpYXJ5UmVnaXN0cnkvY29udHJhY3QucHk6NjUKICAgIC8vIGFzc2VydCBhcmM0LkFkZHJlc3MoVHhuLnNlbmRlcikgPT0gc2VsZi5hZG1pbi52YWx1ZSwgIk9ubHkgYWRtaW4iCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMiAvLyAiYWRtaW4iCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuYWRtaW4gZXhpc3RzCiAgICA9PQogICAgYXNzZXJ0IC8vIE9ubHkgYWRtaW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9EYXRhRmlkdWNpYXJ5UmVnaXN0cnkvY29udHJhY3QucHk6NjcKICAgIC8vIGVudHJ5ID0gc2VsZi5maWR1Y2lhcmllc1tmaWR1Y2lhcnldLmNvcHkoKQogICAgYnl0ZWNfMSAvLyAweDY2Njk2NDVmCiAgICBkaWcgMQogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvRGF0YUZpZHVjaWFyeVJlZ2lzdHJ5L2NvbnRyYWN0LnB5OjY3LTY4CiAgICAvLyBlbnRyeSA9IHNlbGYuZmlkdWNpYXJpZXNbZmlkdWNpYXJ5XS5jb3B5KCkKICAgIC8vIGFzc2VydCBub3QgZW50cnkucmV2b2tlZC5uYXRpdmUsICJDYW5ub3Qgc3VzcGVuZCByZXZva2VkIGZpZHVjaWFyeSIKICAgIGR1cAogICAgaW50Y18yIC8vIDQKICAgIGludGNfMSAvLyAxCiAgICBib3hfZXh0cmFjdAogICAgZHVwCiAgICBwdXNoaW50IDIKICAgIGdldGJpdAogICAgLy8gc21hcnRfY29udHJhY3RzL0RhdGFGaWR1Y2lhcnlSZWdpc3RyeS9jb250cmFjdC5weTo2OAogICAgLy8gYXNzZXJ0IG5vdCBlbnRyeS5yZXZva2VkLm5hdGl2ZSwgIkNhbm5vdCBzdXNwZW5kIHJldm9rZWQgZmlkdWNpYXJ5IgogICAgYnl0ZWNfMCAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBzZXRiaXQKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgICEKICAgIGFzc2VydCAvLyBDYW5ub3Qgc3VzcGVuZCByZXZva2VkIGZpZHVjaWFyeQogICAgLy8gc21hcnRfY29udHJhY3RzL0RhdGFGaWR1Y2lhcnlSZWdpc3RyeS9jb250cmFjdC5weTo2OS03MAogICAgLy8gZW50cnkuc3VzcGVuZGVkID0gYXJjNC5Cb29sKFRydWUpCiAgICAvLyBzZWxmLmZpZHVjaWFyaWVzW2ZpZHVjaWFyeV0gPSBlbnRyeS5jb3B5KCkKICAgIGludGNfMSAvLyAxCiAgICAvLyBzbWFydF9jb250cmFjdHMvRGF0YUZpZHVjaWFyeVJlZ2lzdHJ5L2NvbnRyYWN0LnB5OjY5CiAgICAvLyBlbnRyeS5zdXNwZW5kZWQgPSBhcmM0LkJvb2woVHJ1ZSkKICAgIGR1cAogICAgLy8gc21hcnRfY29udHJhY3RzL0RhdGFGaWR1Y2lhcnlSZWdpc3RyeS9jb250cmFjdC5weTo2OS03MAogICAgLy8gZW50cnkuc3VzcGVuZGVkID0gYXJjNC5Cb29sKFRydWUpCiAgICAvLyBzZWxmLmZpZHVjaWFyaWVzW2ZpZHVjaWFyeV0gPSBlbnRyeS5jb3B5KCkKICAgIHNldGJpdAogICAgaW50Y18yIC8vIDQKICAgIHN3YXAKICAgIGJveF9yZXBsYWNlCiAgICAvLyBzbWFydF9jb250cmFjdHMvRGF0YUZpZHVjaWFyeVJlZ2lzdHJ5L2NvbnRyYWN0LnB5OjcyCiAgICAvLyBhcmM0LmVtaXQoIkZpZHVjaWFyeVN1c3BlbmRlZCIsIGZpZHVjaWFyeSkKICAgIHB1c2hieXRlcyAweGYxODAwYmMyIC8vIG1ldGhvZCAiRmlkdWNpYXJ5U3VzcGVuZGVkKGFkZHJlc3MpIgogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9EYXRhRmlkdWNpYXJ5UmVnaXN0cnkvY29udHJhY3QucHk6NjIKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy5EYXRhRmlkdWNpYXJ5UmVnaXN0cnkuY29udHJhY3QuRGF0YUZpZHVjaWFyeVJlZ2lzdHJ5LnJldm9rZV9maWR1Y2lhcnlbcm91dGluZ10oKSAtPiB2b2lkOgpyZXZva2VfZmlkdWNpYXJ5OgogICAgLy8gc21hcnRfY29udHJhY3RzL0RhdGFGaWR1Y2lhcnlSZWdpc3RyeS9jb250cmFjdC5weTo3NAogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDMyCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnN0YXRpY19hcnJheTxhcmM0LnVpbnQ4LCAzMj4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9EYXRhRmlkdWNpYXJ5UmVnaXN0cnkvY29udHJhY3QucHk6NzcKICAgIC8vIGFzc2VydCBhcmM0LkFkZHJlc3MoVHhuLnNlbmRlcikgPT0gc2VsZi5hZG1pbi52YWx1ZSwgIk9ubHkgYWRtaW4iCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMiAvLyAiYWRtaW4iCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuYWRtaW4gZXhpc3RzCiAgICA9PQogICAgYXNzZXJ0IC8vIE9ubHkgYWRtaW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9EYXRhRmlkdWNpYXJ5UmVnaXN0cnkvY29udHJhY3QucHk6NzkKICAgIC8vIGVudHJ5ID0gc2VsZi5maWR1Y2lhcmllc1tmaWR1Y2lhcnldLmNvcHkoKQogICAgYnl0ZWNfMSAvLyAweDY2Njk2NDVmCiAgICBkaWcgMQogICAgY29uY2F0CiAgICBkdXAKICAgIGJveF9nZXQKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLmZpZHVjaWFyaWVzIGVudHJ5IGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL0RhdGFGaWR1Y2lhcnlSZWdpc3RyeS9jb250cmFjdC5weTo4MAogICAgLy8gZW50cnkucmV2b2tlZCA9IGFyYzQuQm9vbChUcnVlKQogICAgcHVzaGludCAzNAogICAgaW50Y18xIC8vIDEKICAgIHNldGJpdAogICAgLy8gc21hcnRfY29udHJhY3RzL0RhdGFGaWR1Y2lhcnlSZWdpc3RyeS9jb250cmFjdC5weTo4MQogICAgLy8gZW50cnkuYXBwcm92ZWQgPSBhcmM0LkJvb2woRmFsc2UpCiAgICBpbnRjXzMgLy8gMzIKICAgIGludGNfMCAvLyAwCiAgICBzZXRiaXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9EYXRhRmlkdWNpYXJ5UmVnaXN0cnkvY29udHJhY3QucHk6ODIKICAgIC8vIGVudHJ5LnN1c3BlbmRlZCA9IGFyYzQuQm9vbChUcnVlKQogICAgcHVzaGludCAzMwogICAgLy8gc21hcnRfY29udHJhY3RzL0RhdGFGaWR1Y2lhcnlSZWdpc3RyeS9jb250cmFjdC5weTo4MAogICAgLy8gZW50cnkucmV2b2tlZCA9IGFyYzQuQm9vbChUcnVlKQogICAgaW50Y18xIC8vIDEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9EYXRhRmlkdWNpYXJ5UmVnaXN0cnkvY29udHJhY3QucHk6ODIKICAgIC8vIGVudHJ5LnN1c3BlbmRlZCA9IGFyYzQuQm9vbChUcnVlKQogICAgc2V0Yml0CiAgICAvLyBzbWFydF9jb250cmFjdHMvRGF0YUZpZHVjaWFyeVJlZ2lzdHJ5L2NvbnRyYWN0LnB5OjgzCiAgICAvLyBzZWxmLmZpZHVjaWFyaWVzW2ZpZHVjaWFyeV0gPSBlbnRyeS5jb3B5KCkKICAgIGRpZyAxCiAgICBib3hfZGVsCiAgICBwb3AKICAgIGJveF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9EYXRhRmlkdWNpYXJ5UmVnaXN0cnkvY29udHJhY3QucHk6ODUKICAgIC8vIGFyYzQuZW1pdCgiRmlkdWNpYXJ5UmV2b2tlZCIsIGZpZHVjaWFyeSkKICAgIHB1c2hieXRlcyAweDBkZmE4MGZmIC8vIG1ldGhvZCAiRmlkdWNpYXJ5UmV2b2tlZChhZGRyZXNzKSIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICAvLyBzbWFydF9jb250cmFjdHMvRGF0YUZpZHVjaWFyeVJlZ2lzdHJ5L2NvbnRyYWN0LnB5Ojc0CiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMuRGF0YUZpZHVjaWFyeVJlZ2lzdHJ5LmNvbnRyYWN0LkRhdGFGaWR1Y2lhcnlSZWdpc3RyeS5pc19hcHByb3ZlZFtyb3V0aW5nXSgpIC0+IHZvaWQ6CmlzX2FwcHJvdmVkOgogICAgLy8gc21hcnRfY29udHJhY3RzL0RhdGFGaWR1Y2lhcnlSZWdpc3RyeS9jb250cmFjdC5weTo4OAogICAgLy8gQGFyYzQuYWJpbWV0aG9kKHJlYWRvbmx5PVRydWUpCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDMyCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnN0YXRpY19hcnJheTxhcmM0LnVpbnQ4LCAzMj4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9EYXRhRmlkdWNpYXJ5UmVnaXN0cnkvY29udHJhY3QucHk6OTEKICAgIC8vIGlmIGZpZHVjaWFyeSBpbiBzZWxmLmZpZHVjaWFyaWVzOgogICAgYnl0ZWNfMSAvLyAweDY2Njk2NDVmCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGR1cAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBieiBpc19hcHByb3ZlZF9hZnRlcl9pZl9lbHNlQDgKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9EYXRhRmlkdWNpYXJ5UmVnaXN0cnkvY29udHJhY3QucHk6OTItOTMKICAgIC8vIGVudHJ5ID0gc2VsZi5maWR1Y2lhcmllc1tmaWR1Y2lhcnldLmNvcHkoKQogICAgLy8gcmV0dXJuIGFyYzQuQm9vbChlbnRyeS5hcHByb3ZlZC5uYXRpdmUgYW5kIG5vdCBlbnRyeS5zdXNwZW5kZWQubmF0aXZlIGFuZCBub3QgZW50cnkucmV2b2tlZC5uYXRpdmUpCiAgICBkdXAKICAgIGludGNfMiAvLyA0CiAgICBpbnRjXzEgLy8gMQogICAgYm94X2V4dHJhY3QKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9EYXRhRmlkdWNpYXJ5UmVnaXN0cnkvY29udHJhY3QucHk6OTMKICAgIC8vIHJldHVybiBhcmM0LkJvb2woZW50cnkuYXBwcm92ZWQubmF0aXZlIGFuZCBub3QgZW50cnkuc3VzcGVuZGVkLm5hdGl2ZSBhbmQgbm90IGVudHJ5LnJldm9rZWQubmF0aXZlKQogICAgYnl0ZWNfMCAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBzZXRiaXQKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIGJ6IGlzX2FwcHJvdmVkX2Jvb2xfZmFsc2VANgogICAgLy8gc21hcnRfY29udHJhY3RzL0RhdGFGaWR1Y2lhcnlSZWdpc3RyeS9jb250cmFjdC5weTo5Mi05MwogICAgLy8gZW50cnkgPSBzZWxmLmZpZHVjaWFyaWVzW2ZpZHVjaWFyeV0uY29weSgpCiAgICAvLyByZXR1cm4gYXJjNC5Cb29sKGVudHJ5LmFwcHJvdmVkLm5hdGl2ZSBhbmQgbm90IGVudHJ5LnN1c3BlbmRlZC5uYXRpdmUgYW5kIG5vdCBlbnRyeS5yZXZva2VkLm5hdGl2ZSkKICAgIGR1cAogICAgaW50Y18yIC8vIDQKICAgIGludGNfMSAvLyAxCiAgICBib3hfZXh0cmFjdAogICAgaW50Y18xIC8vIDEKICAgIGdldGJpdAogICAgLy8gc21hcnRfY29udHJhY3RzL0RhdGFGaWR1Y2lhcnlSZWdpc3RyeS9jb250cmFjdC5weTo5MwogICAgLy8gcmV0dXJuIGFyYzQuQm9vbChlbnRyeS5hcHByb3ZlZC5uYXRpdmUgYW5kIG5vdCBlbnRyeS5zdXNwZW5kZWQubmF0aXZlIGFuZCBub3QgZW50cnkucmV2b2tlZC5uYXRpdmUpCiAgICBieXRlY18wIC8vIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgYm56IGlzX2FwcHJvdmVkX2Jvb2xfZmFsc2VANgogICAgLy8gc21hcnRfY29udHJhY3RzL0RhdGFGaWR1Y2lhcnlSZWdpc3RyeS9jb250cmFjdC5weTo5Mi05MwogICAgLy8gZW50cnkgPSBzZWxmLmZpZHVjaWFyaWVzW2ZpZHVjaWFyeV0uY29weSgpCiAgICAvLyByZXR1cm4gYXJjNC5Cb29sKGVudHJ5LmFwcHJvdmVkLm5hdGl2ZSBhbmQgbm90IGVudHJ5LnN1c3BlbmRlZC5uYXRpdmUgYW5kIG5vdCBlbnRyeS5yZXZva2VkLm5hdGl2ZSkKICAgIGR1cAogICAgaW50Y18yIC8vIDQKICAgIGludGNfMSAvLyAxCiAgICBib3hfZXh0cmFjdAogICAgcHVzaGludCAyCiAgICBnZXRiaXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9EYXRhRmlkdWNpYXJ5UmVnaXN0cnkvY29udHJhY3QucHk6OTMKICAgIC8vIHJldHVybiBhcmM0LkJvb2woZW50cnkuYXBwcm92ZWQubmF0aXZlIGFuZCBub3QgZW50cnkuc3VzcGVuZGVkLm5hdGl2ZSBhbmQgbm90IGVudHJ5LnJldm9rZWQubmF0aXZlKQogICAgYnl0ZWNfMCAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBzZXRiaXQKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIGJueiBpc19hcHByb3ZlZF9ib29sX2ZhbHNlQDYKICAgIGludGNfMSAvLyAxCgppc19hcHByb3ZlZF9ib29sX21lcmdlQDc6CiAgICAvLyBzbWFydF9jb250cmFjdHMvRGF0YUZpZHVjaWFyeVJlZ2lzdHJ5L2NvbnRyYWN0LnB5OjkzCiAgICAvLyByZXR1cm4gYXJjNC5Cb29sKGVudHJ5LmFwcHJvdmVkLm5hdGl2ZSBhbmQgbm90IGVudHJ5LnN1c3BlbmRlZC5uYXRpdmUgYW5kIG5vdCBlbnRyeS5yZXZva2VkLm5hdGl2ZSkKICAgIGJ5dGVjXzAgLy8gMHgwMAogICAgaW50Y18wIC8vIDAKICAgIHVuY292ZXIgMgogICAgc2V0Yml0Cgppc19hcHByb3ZlZF9hZnRlcl9pbmxpbmVkX3NtYXJ0X2NvbnRyYWN0cy5EYXRhRmlkdWNpYXJ5UmVnaXN0cnkuY29udHJhY3QuRGF0YUZpZHVjaWFyeVJlZ2lzdHJ5LmlzX2FwcHJvdmVkQDk6CiAgICAvLyBzbWFydF9jb250cmFjdHMvRGF0YUZpZHVjaWFyeVJlZ2lzdHJ5L2NvbnRyYWN0LnB5Ojg4CiAgICAvLyBAYXJjNC5hYmltZXRob2QocmVhZG9ubHk9VHJ1ZSkKICAgIGJ5dGVjXzMgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCmlzX2FwcHJvdmVkX2Jvb2xfZmFsc2VANjoKICAgIGludGNfMCAvLyAwCiAgICBiIGlzX2FwcHJvdmVkX2Jvb2xfbWVyZ2VANwoKaXNfYXBwcm92ZWRfYWZ0ZXJfaWZfZWxzZUA4OgogICAgLy8gc21hcnRfY29udHJhY3RzL0RhdGFGaWR1Y2lhcnlSZWdpc3RyeS9jb250cmFjdC5weTo5NAogICAgLy8gcmV0dXJuIGFyYzQuQm9vbChGYWxzZSkKICAgIGJ5dGVjXzAgLy8gMHgwMAogICAgLy8gc21hcnRfY29udHJhY3RzL0RhdGFGaWR1Y2lhcnlSZWdpc3RyeS9jb250cmFjdC5weTo4OAogICAgLy8gQGFyYzQuYWJpbWV0aG9kKHJlYWRvbmx5PVRydWUpCiAgICBiIGlzX2FwcHJvdmVkX2FmdGVyX2lubGluZWRfc21hcnRfY29udHJhY3RzLkRhdGFGaWR1Y2lhcnlSZWdpc3RyeS5jb250cmFjdC5EYXRhRmlkdWNpYXJ5UmVnaXN0cnkuaXNfYXBwcm92ZWRAOQoKCi8vIHNtYXJ0X2NvbnRyYWN0cy5EYXRhRmlkdWNpYXJ5UmVnaXN0cnkuY29udHJhY3QuRGF0YUZpZHVjaWFyeVJlZ2lzdHJ5LmdldF9maWR1Y2lhcnlbcm91dGluZ10oKSAtPiB2b2lkOgpnZXRfZmlkdWNpYXJ5OgogICAgLy8gc21hcnRfY29udHJhY3RzL0RhdGFGaWR1Y2lhcnlSZWdpc3RyeS9jb250cmFjdC5weTo5NgogICAgLy8gQGFyYzQuYWJpbWV0aG9kKHJlYWRvbmx5PVRydWUpCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDMyCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnN0YXRpY19hcnJheTxhcmM0LnVpbnQ4LCAzMj4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9EYXRhRmlkdWNpYXJ5UmVnaXN0cnkvY29udHJhY3QucHk6OTkKICAgIC8vIHJldHVybiBzZWxmLmZpZHVjaWFyaWVzW2ZpZHVjaWFyeV0uY29weSgpCiAgICBieXRlY18xIC8vIDB4NjY2OTY0NWYKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYm94X2dldAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuZmlkdWNpYXJpZXMgZW50cnkgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvRGF0YUZpZHVjaWFyeVJlZ2lzdHJ5L2NvbnRyYWN0LnB5Ojk2CiAgICAvLyBAYXJjNC5hYmltZXRob2QocmVhZG9ubHk9VHJ1ZSkKICAgIGJ5dGVjXzMgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4K", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuY2xlYXJfc3RhdGVfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIHB1c2hpbnQgMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CyAEAAEEICYEAQAEZmlkXwVhZG1pbgQVH3x1MRhAAAQqMQBnMRtBADkxGRREMRhEggYEXGhrEwTVVnWCBMk0yccEXY5AbwQbjvxZBIwqETQ2GgCOBgAJAFUAiwDBAPMBSgAxGRQxGBQQQzYaAUkiWYECCEsBFUlPAhJENhoCSSJZgQIISwEVEkQxAIEFTwMIFlcGAoACAAVMUChQTwNQTwJQKUsCUEm8SEy/gAQ9rcodTFCwI0M2GgFJFSUSRDEAIiplRBJEKUsBUEkkI7pJgQJTKCJPAlQiUxREIiNUJEy7gAT/Q3aFTFCwI0M2GgFJFSUSRDEAIiplRBJEKUsBUEkkI7pJgQJTKCJPAlQiUxREI0lUJEy7gATxgAvCTFCwI0M2GgFJFSUSRDEAIiplRBJEKUsBUEm+RIEiI1QlIlSBISNUSwG8SL+ABA36gP9MULAjQzYaAUkVJRJEKUxQSb1FAUEAQUkkI7oiUygiTwJUIlNBAC1JJCO6I1MoIk8CVCJTQAAdSSQjuoECUygiTwJUIlNAAAwjKCJPAlQrTFCwI0MiQv/xKEL/8jYaAUkVJRJEKUxQvkQrTFCwI0M=", "clear": "C4EBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 5, "minor": 7, "patch": 1 } }, "events": [ { "name": "FiduciaryRegistered", "args": [ { "type": "address", "name": "field1" } ] }, { "name": "FiduciaryApproved", "args": [ { "type": "address", "name": "field1" } ] }, { "name": "FiduciarySuspended", "args": [ { "type": "address", "name": "field1" } ] }, { "name": "FiduciaryRevoked", "args": [ { "type": "address", "name": "field1" } ] } ], "templateVariables": {} }