{
  "methods": {
    "get_nonce": {
      "argument": "",
      "return": "common.uint32",
      "description": "",
      "entry_point": 2386974981,
      "read_only": true,
      "entry-point": "0x8e465905",
      "read-only": true
    },
    "get_authorities": {
      "argument": "",
      "return": "manuscriptwallet.authorities",
      "description": "",
      "entry_point": 3644479979,
      "read_only": true,
      "entry-point": "0xd93a59eb",
      "read-only": true
    },
    "set_authorities": {
      "argument": "manuscriptwallet.authorities",
      "return": "",
      "description": "",
      "entry_point": 1200494705,
      "read_only": false,
      "entry-point": "0x478e1871",
      "read-only": false
    },
    "set_allowance": {
      "argument": "smartwalletallowance.allowance",
      "return": "",
      "description": "Set an allowance in user's contract",
      "entry_point": 2975241745,
      "read_only": false,
      "entry-point": "0xb1569611",
      "read-only": false
    },
    "execute_transaction": {
      "argument": "manuscriptwallet.execute_transaction_args",
      "return": "",
      "description": "Execute a text plain transaction",
      "entry_point": 100281903,
      "read_only": false,
      "entry-point": "0x05fa2e2f",
      "read-only": false
    },
    "authorize": {
      "argument": "authority.authorize_arguments",
      "return": "authority.authorize_result",
      "description": "Authorize function",
      "entry_point": 1244511632,
      "read_only": false,
      "entry-point": "0x4a2dbd90",
      "read-only": false
    }
  },
  "types": "CoQDCidrb2lub3Nib3gtcHJvdG8vbWFuYXNoYXJlci9jb21tb24ucHJvdG8SBmNvbW1vbhoUa29pbm9zL29wdGlvbnMucHJvdG8iGwoDc3RyEhQKBXZhbHVlGAEgASgJUgV2YWx1ZSIeCgZ1aW50MzISFAoFdmFsdWUYASABKA1SBXZhbHVlIiIKBnVpbnQ2NBIYCgV2YWx1ZRgBIAEoBEICMAFSBXZhbHVlIh0KBWJvb2xlEhQKBXZhbHVlGAEgASgIUgV2YWx1ZSIlCgdhZGRyZXNzEhoKBXZhbHVlGAEgASgMQgSAtRgGUgV2YWx1ZSJdCglsaXN0X2FyZ3MSGgoFc3RhcnQYASABKAxCBIC1GAZSBXN0YXJ0EhQKBWxpbWl0GAIgASgFUgVsaW1pdBIeCgpkZXNjZW5kaW5nGAMgASgIUgpkZXNjZW5kaW5nIi0KCWFkZHJlc3NlcxIgCghhY2NvdW50cxgBIAMoDEIEgLUYBlIIYWNjb3VudHNiBnByb3RvMwqlBAo/a29pbm9zYm94LXByb3RvL3NtYXJ0d2FsbGV0YWxsb3dhbmNlL3NtYXJ0d2FsbGV0YWxsb3dhbmNlLnByb3RvEhRzbWFydHdhbGxldGFsbG93YW5jZRoUa29pbm9zL29wdGlvbnMucHJvdG8ivwEKCWFsbG93YW5jZRI4CgR0eXBlGAEgASgOMiQuc21hcnR3YWxsZXRhbGxvd2FuY2UuYWxsb3dhbmNlX3R5cGVSBHR5cGUSJQoLY29udHJhY3RfaWQYAiABKAxCBIC1GAZSCmNvbnRyYWN0SWQSHwoLZW50cnlfcG9pbnQYAyABKA1SCmVudHJ5UG9pbnQSHAoGY2FsbGVyGAQgASgMQgSAtRgGUgZjYWxsZXISEgoEZGF0YRgFIAEoDFIEZGF0YSJ6CgphbGxvd2FuY2VzEisKDnRyYW5zYWN0aW9uX2lkGAEgASgMQgSAtRgCUg10cmFuc2FjdGlvbklkEj8KCmFsbG93YW5jZXMYAiADKAsyHy5zbWFydHdhbGxldGFsbG93YW5jZS5hbGxvd2FuY2VSCmFsbG93YW5jZXMqcAoOYWxsb3dhbmNlX3R5cGUSDQoJdW5kZWZpbmVkEAASEgoOdHJhbnNmZXJfdG9rZW4QARIQCgx0cmFuc2Zlcl9uZnQQAhIOCgptaW50X3Rva2VuEAMSDgoKYnVybl90b2tlbhAEEgkKBW90aGVyEGRiBnByb3RvMwqwBQoWbWFudXNjcmlwdHdhbGxldC5wcm90bxIQbWFudXNjcmlwdHdhbGxldBoUa29pbm9zL29wdGlvbnMucHJvdG8ingEKC2F1dGhvcml0aWVzEjQKFmtvaW5fYWRkcmVzc19hdXRob3JpdHkYASABKAhSFGtvaW5BZGRyZXNzQXV0aG9yaXR5EjIKFWV0aF9hZGRyZXNzX2F1dGhvcml0eRgCIAEoCFITZXRoQWRkcmVzc0F1dGhvcml0eRIlCgtldGhfYWRkcmVzcxgDIAEoDEIEgLUYAlIKZXRoQWRkcmVzcyJSChhleGVjdXRlX3RyYW5zYWN0aW9uX2FyZ3MSIAoLdHJhbnNhY3Rpb24YASABKAlSC3RyYW5zYWN0aW9uEhQKBWRlYnVnGAIgASgIUgVkZWJ1ZyJpChVhbGxvd190b2tlbl9vcGVyYXRpb24SGgoFdG9rZW4YASABKAxCBIC1GAZSBXRva2VuEhQKBWxpbWl0GAIgASgEUgVsaW1pdBIeCgdzcGVuZGVyGAMgASgMQgSAtRgGUgdzcGVuZGVyInwKE2FsbG93X25mdF9vcGVyYXRpb24SJAoKY29sbGVjdGlvbhgBIAEoDEIEgLUYBlIKY29sbGVjdGlvbhIfCgh0b2tlbl9pZBgCIAEoDEIEgLUYAlIHdG9rZW5JZBIeCgdzcGVuZGVyGAMgASgMQgSAtRgGUgdzcGVuZGVyIocBCgthbGxvd19vdGhlchIlCgtjb250cmFjdF9pZBgBIAEoDEIEgLUYBlIKY29udHJhY3RJZBIfCgtlbnRyeV9wb2ludBgCIAEoDVIKZW50cnlQb2ludBIcCgZjYWxsZXIYAyABKAxCBIC1GAZSBmNhbGxlchISCgRkYXRhGAQgASgMUgRkYXRhYgZwcm90bzMKjwQKHGtvaW5vcy9jaGFpbi9hdXRob3JpdHkucHJvdG8SDGtvaW5vcy5jaGFpbhoUa29pbm9zL29wdGlvbnMucHJvdG8ifwoJY2FsbF9kYXRhEiUKC2NvbnRyYWN0X2lkGAEgASgMQgSAtRgGUgpjb250cmFjdElkEh8KC2VudHJ5X3BvaW50GAIgASgNUgplbnRyeVBvaW50EhYKBmNhbGxlchgDIAEoDFIGY2FsbGVyEhIKBGRhdGEYBCABKAxSBGRhdGEihgEKE2F1dGhvcml6ZV9hcmd1bWVudHMSNAoEdHlwZRgBIAEoDjIgLmtvaW5vcy5jaGFpbi5hdXRob3JpemF0aW9uX3R5cGVSBHR5cGUSMAoEY2FsbBgCIAEoCzIXLmtvaW5vcy5jaGFpbi5jYWxsX2RhdGFIAFIEY2FsbIgBAUIHCgVfY2FsbCIoChBhdXRob3JpemVfcmVzdWx0EhQKBXZhbHVlGAEgASgIUgV2YWx1ZSpZChJhdXRob3JpemF0aW9uX3R5cGUSEQoNY29udHJhY3RfY2FsbBAAEhsKF3RyYW5zYWN0aW9uX2FwcGxpY2F0aW9uEAESEwoPY29udHJhY3RfdXBsb2FkEAJCNFoyZ2l0aHViLmNvbS9rb2lub3Mva29pbm9zLXByb3RvLWdvbGFuZy9rb2lub3MvY2hhaW5iBnByb3RvMw==",
  "koilib_types": {
    "nested": {
      "common": {
        "nested": {
          "str": {
            "fields": {
              "value": {
                "type": "string",
                "id": 1
              }
            }
          },
          "uint32": {
            "fields": {
              "value": {
                "type": "uint32",
                "id": 1
              }
            }
          },
          "uint64": {
            "fields": {
              "value": {
                "type": "uint64",
                "id": 1,
                "options": {
                  "jstype": "JS_STRING"
                }
              }
            }
          },
          "boole": {
            "fields": {
              "value": {
                "type": "bool",
                "id": 1
              }
            }
          },
          "address": {
            "fields": {
              "value": {
                "type": "bytes",
                "id": 1,
                "options": {
                  "(koinos.btype)": "ADDRESS"
                }
              }
            }
          },
          "list_args": {
            "fields": {
              "start": {
                "type": "bytes",
                "id": 1,
                "options": {
                  "(koinos.btype)": "ADDRESS"
                }
              },
              "limit": {
                "type": "int32",
                "id": 2
              },
              "descending": {
                "type": "bool",
                "id": 3
              }
            }
          },
          "addresses": {
            "fields": {
              "accounts": {
                "rule": "repeated",
                "type": "bytes",
                "id": 1,
                "options": {
                  "(koinos.btype)": "ADDRESS"
                }
              }
            }
          }
        }
      },
      "koinos": {
        "options": {
          "go_package": "github.com/koinos/koinos-proto-golang/koinos"
        },
        "nested": {
          "bytes_type": {
            "values": {
              "BASE64": 0,
              "BASE58": 1,
              "HEX": 2,
              "BLOCK_ID": 3,
              "TRANSACTION_ID": 4,
              "CONTRACT_ID": 5,
              "ADDRESS": 6
            }
          },
          "_btype": {
            "oneof": [
              "btype"
            ]
          },
          "btype": {
            "type": "bytes_type",
            "id": 50000,
            "extend": "google.protobuf.FieldOptions",
            "options": {
              "proto3_optional": true
            }
          },
          "chain": {
            "options": {
              "go_package": "github.com/koinos/koinos-proto-golang/koinos/chain"
            },
            "nested": {
              "authorization_type": {
                "values": {
                  "contract_call": 0,
                  "transaction_application": 1,
                  "contract_upload": 2
                }
              },
              "call_data": {
                "fields": {
                  "contract_id": {
                    "type": "bytes",
                    "id": 1,
                    "options": {
                      "(btype)": "ADDRESS"
                    }
                  },
                  "entry_point": {
                    "type": "uint32",
                    "id": 2
                  },
                  "caller": {
                    "type": "bytes",
                    "id": 3
                  },
                  "data": {
                    "type": "bytes",
                    "id": 4
                  }
                }
              },
              "authorize_arguments": {
                "oneofs": {
                  "_call": {
                    "oneof": [
                      "call"
                    ]
                  }
                },
                "fields": {
                  "type": {
                    "type": "authorization_type",
                    "id": 1
                  },
                  "call": {
                    "type": "call_data",
                    "id": 2,
                    "options": {
                      "proto3_optional": true
                    }
                  }
                }
              },
              "authorize_result": {
                "fields": {
                  "value": {
                    "type": "bool",
                    "id": 1
                  }
                }
              }
            }
          }
        }
      },
      "smartwalletallowance": {
        "nested": {
          "allowance_type": {
            "values": {
              "undefined": 0,
              "transfer_token": 1,
              "transfer_nft": 2,
              "mint_token": 3,
              "burn_token": 4,
              "other": 100
            }
          },
          "allowance": {
            "fields": {
              "type": {
                "type": "allowance_type",
                "id": 1
              },
              "contract_id": {
                "type": "bytes",
                "id": 2,
                "options": {
                  "(koinos.btype)": "ADDRESS"
                }
              },
              "entry_point": {
                "type": "uint32",
                "id": 3
              },
              "caller": {
                "type": "bytes",
                "id": 4,
                "options": {
                  "(koinos.btype)": "ADDRESS"
                }
              },
              "data": {
                "type": "bytes",
                "id": 5
              }
            }
          },
          "allowances": {
            "fields": {
              "transaction_id": {
                "type": "bytes",
                "id": 1,
                "options": {
                  "(koinos.btype)": "HEX"
                }
              },
              "allowances": {
                "rule": "repeated",
                "type": "allowance",
                "id": 2
              }
            }
          }
        }
      },
      "manuscriptwallet": {
        "nested": {
          "authorities": {
            "fields": {
              "koin_address_authority": {
                "type": "bool",
                "id": 1
              },
              "eth_address_authority": {
                "type": "bool",
                "id": 2
              },
              "eth_address": {
                "type": "bytes",
                "id": 3,
                "options": {
                  "(koinos.btype)": "HEX"
                }
              }
            }
          },
          "execute_transaction_args": {
            "fields": {
              "transaction": {
                "type": "string",
                "id": 1
              },
              "debug": {
                "type": "bool",
                "id": 2
              }
            }
          },
          "allow_token_operation": {
            "fields": {
              "token": {
                "type": "bytes",
                "id": 1,
                "options": {
                  "(koinos.btype)": "ADDRESS"
                }
              },
              "limit": {
                "type": "uint64",
                "id": 2
              },
              "spender": {
                "type": "bytes",
                "id": 3,
                "options": {
                  "(koinos.btype)": "ADDRESS"
                }
              }
            }
          },
          "allow_nft_operation": {
            "fields": {
              "collection": {
                "type": "bytes",
                "id": 1,
                "options": {
                  "(koinos.btype)": "ADDRESS"
                }
              },
              "token_id": {
                "type": "bytes",
                "id": 2,
                "options": {
                  "(koinos.btype)": "HEX"
                }
              },
              "spender": {
                "type": "bytes",
                "id": 3,
                "options": {
                  "(koinos.btype)": "ADDRESS"
                }
              }
            }
          },
          "allow_other": {
            "fields": {
              "contract_id": {
                "type": "bytes",
                "id": 1,
                "options": {
                  "(koinos.btype)": "ADDRESS"
                }
              },
              "entry_point": {
                "type": "uint32",
                "id": 2
              },
              "caller": {
                "type": "bytes",
                "id": 3,
                "options": {
                  "(koinos.btype)": "ADDRESS"
                }
              },
              "data": {
                "type": "bytes",
                "id": 4
              }
            }
          }
        }
      }
    }
  },
  "events": {
    "manuscriptwallet.authorities": {
      "type": "manuscriptwallet.authorities",
      "argument": "manuscriptwallet.authorities"
    }
  }
}