{
  "schema_version": "0.4.0",
  "metadata": {
    "name": "contract",
    "version": "1.3.2",
    "build": {
      "compiler": "rustc 1.86.0",
      "builder": "cargo-near cargo-near-build 0.11.0"
    },
    "wasm_hash": "J38ur8Bg2ksovdCtsmP9vPz1V33bs1WRw6EFJ7DY85gJ"
  },
  "body": {
    "functions": [
      {
        "name": "acl_add_admin",
        "kind": "call",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "role",
              "type_schema": {
                "type": "string"
              }
            },
            {
              "name": "account_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": [
              "boolean",
              "null"
            ]
          }
        }
      },
      {
        "name": "acl_add_super_admin",
        "kind": "call",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "account_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": [
              "boolean",
              "null"
            ]
          }
        }
      },
      {
        "name": "acl_get_admins",
        "kind": "view",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "role",
              "type_schema": {
                "type": "string"
              }
            },
            {
              "name": "skip",
              "type_schema": {
                "type": "integer",
                "format": "uint64",
                "minimum": 0.0
              }
            },
            {
              "name": "limit",
              "type_schema": {
                "type": "integer",
                "format": "uint64",
                "minimum": 0.0
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": "array",
            "items": {
              "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
              "type": "string"
            }
          }
        }
      },
      {
        "name": "acl_get_grantees",
        "kind": "view",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "role",
              "type_schema": {
                "type": "string"
              }
            },
            {
              "name": "skip",
              "type_schema": {
                "type": "integer",
                "format": "uint64",
                "minimum": 0.0
              }
            },
            {
              "name": "limit",
              "type_schema": {
                "type": "integer",
                "format": "uint64",
                "minimum": 0.0
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": "array",
            "items": {
              "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
              "type": "string"
            }
          }
        }
      },
      {
        "name": "acl_get_permissioned_accounts",
        "kind": "view",
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "$ref": "#/definitions/PermissionedAccounts"
          }
        }
      },
      {
        "name": "acl_get_super_admins",
        "kind": "view",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "skip",
              "type_schema": {
                "type": "integer",
                "format": "uint64",
                "minimum": 0.0
              }
            },
            {
              "name": "limit",
              "type_schema": {
                "type": "integer",
                "format": "uint64",
                "minimum": 0.0
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": "array",
            "items": {
              "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
              "type": "string"
            }
          }
        }
      },
      {
        "name": "acl_grant_role",
        "kind": "call",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "role",
              "type_schema": {
                "type": "string"
              }
            },
            {
              "name": "account_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": [
              "boolean",
              "null"
            ]
          }
        }
      },
      {
        "name": "acl_has_any_role",
        "kind": "view",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "roles",
              "type_schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            {
              "name": "account_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": "boolean"
          }
        }
      },
      {
        "name": "acl_has_role",
        "kind": "view",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "role",
              "type_schema": {
                "type": "string"
              }
            },
            {
              "name": "account_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": "boolean"
          }
        }
      },
      {
        "name": "acl_init_super_admin",
        "kind": "call",
        "modifiers": [
          "private"
        ],
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "account_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": "boolean"
          }
        }
      },
      {
        "name": "acl_is_admin",
        "kind": "view",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "role",
              "type_schema": {
                "type": "string"
              }
            },
            {
              "name": "account_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": "boolean"
          }
        }
      },
      {
        "name": "acl_is_super_admin",
        "kind": "view",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "account_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": "boolean"
          }
        }
      },
      {
        "name": "acl_renounce_admin",
        "kind": "call",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "role",
              "type_schema": {
                "type": "string"
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": "boolean"
          }
        }
      },
      {
        "name": "acl_renounce_role",
        "kind": "call",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "role",
              "type_schema": {
                "type": "string"
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": "boolean"
          }
        }
      },
      {
        "name": "acl_revoke_admin",
        "kind": "call",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "role",
              "type_schema": {
                "type": "string"
              }
            },
            {
              "name": "account_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": [
              "boolean",
              "null"
            ]
          }
        }
      },
      {
        "name": "acl_revoke_role",
        "kind": "call",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "role",
              "type_schema": {
                "type": "string"
              }
            },
            {
              "name": "account_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": [
              "boolean",
              "null"
            ]
          }
        }
      },
      {
        "name": "acl_revoke_super_admin",
        "kind": "call",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "account_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": [
              "boolean",
              "null"
            ]
          }
        }
      },
      {
        "name": "acl_role_variants",
        "kind": "view",
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      {
        "name": "acl_storage_prefix",
        "kind": "view",
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "uint8",
              "minimum": 0.0
            }
          }
        }
      },
      {
        "name": "acl_transfer_super_admin",
        "kind": "call",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "account_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": [
              "boolean",
              "null"
            ]
          }
        }
      },
      {
        "name": "burn",
        "kind": "call",
        "modifiers": [
          "payable"
        ],
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "amount",
              "type_schema": {
                "type": "string"
              }
            }
          ]
        }
      },
      {
        "name": "contract_source_metadata",
        "kind": "view"
      },
      {
        "name": "defer_batch",
        "kind": "call",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "steps_batch",
              "type_schema": {
                "type": "array",
                "items": {
                  "type": "array",
                  "items": [
                    {
                      "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                      "type": "string"
                    },
                    {
                      "type": "integer",
                      "format": "uint32",
                      "minimum": 0.0
                    }
                  ],
                  "maxItems": 2,
                  "minItems": 2
                }
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "$ref": "#/definitions/PromiseOrValueNull"
          }
        }
      },
      {
        "name": "formula",
        "kind": "view",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "steps_since_tge",
              "type_schema": {
                "type": "string"
              }
            },
            {
              "name": "steps",
              "type_schema": {
                "type": "integer",
                "format": "uint32",
                "minimum": 0.0
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": "string"
          }
        }
      },
      {
        "name": "ft_balance_of",
        "kind": "view",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "account_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": "string"
          }
        }
      },
      {
        "name": "ft_metadata",
        "kind": "view",
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "$ref": "#/definitions/FungibleTokenMetadata"
          }
        }
      },
      {
        "name": "ft_resolve_transfer",
        "kind": "call",
        "modifiers": [
          "private"
        ],
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "sender_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            },
            {
              "name": "receiver_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            },
            {
              "name": "amount",
              "type_schema": {
                "type": "string"
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": "string"
          }
        }
      },
      {
        "name": "ft_total_supply",
        "kind": "view",
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": "string"
          }
        }
      },
      {
        "name": "ft_transfer",
        "kind": "call",
        "modifiers": [
          "payable"
        ],
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "receiver_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            },
            {
              "name": "amount",
              "type_schema": {
                "type": "string"
              }
            },
            {
              "name": "memo",
              "type_schema": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          ]
        }
      },
      {
        "name": "ft_transfer_call",
        "kind": "call",
        "modifiers": [
          "payable"
        ],
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "receiver_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            },
            {
              "name": "amount",
              "type_schema": {
                "type": "string"
              }
            },
            {
              "name": "memo",
              "type_schema": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            {
              "name": "msg",
              "type_schema": {
                "type": "string"
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "$ref": "#/definitions/PromiseOrValueString"
          }
        }
      },
      {
        "name": "get_holding_account_id",
        "kind": "view",
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
            "type": "string"
          }
        }
      },
      {
        "name": "get_paused_features",
        "kind": "view",
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": "array",
            "items": {
              "$ref": "#/definitions/Feature"
            }
          }
        }
      },
      {
        "name": "get_steps_since_tge",
        "kind": "view",
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": "string"
          }
        }
      },
      {
        "name": "is_feature_paused",
        "kind": "view",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "feature",
              "type_schema": {
                "$ref": "#/definitions/Feature"
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": "boolean"
          }
        }
      },
      {
        "name": "is_restricted",
        "kind": "view",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "account_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": "boolean"
          }
        }
      },
      {
        "name": "migrate",
        "doc": " Migrates the contract state from the previous layout to the current one.\n\n # Panics\n\n Panics if the existing on-chain state cannot be read as [`OldContract`].",
        "kind": "call",
        "modifiers": [
          "init",
          "private"
        ],
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "holding_account_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            },
            {
              "name": "super_admin_account_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            },
            {
              "name": "denylist_manager_account_ids",
              "type_schema": {
                "type": "array",
                "items": {
                  "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                  "type": "string"
                }
              }
            },
            {
              "name": "pause_manager_account_ids",
              "type_schema": {
                "type": "array",
                "items": {
                  "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                  "type": "string"
                }
              }
            },
            {
              "name": "unpause_manager_account_ids",
              "type_schema": {
                "type": "array",
                "items": {
                  "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                  "type": "string"
                }
              }
            }
          ]
        }
      },
      {
        "name": "new",
        "kind": "call",
        "modifiers": [
          "init"
        ],
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "holding_account_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            },
            {
              "name": "super_admin_account_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            },
            {
              "name": "oracle_account_ids",
              "type_schema": {
                "type": "array",
                "items": {
                  "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                  "type": "string"
                }
              }
            },
            {
              "name": "denylist_manager_account_ids",
              "type_schema": {
                "type": "array",
                "items": {
                  "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                  "type": "string"
                }
              }
            },
            {
              "name": "pause_manager_account_ids",
              "type_schema": {
                "type": "array",
                "items": {
                  "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                  "type": "string"
                }
              }
            },
            {
              "name": "unpause_manager_account_ids",
              "type_schema": {
                "type": "array",
                "items": {
                  "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                  "type": "string"
                }
              }
            }
          ]
        }
      },
      {
        "name": "on_record",
        "kind": "call",
        "modifiers": [
          "private"
        ],
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "receiver_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            },
            {
              "name": "amount",
              "type_schema": {
                "type": "string"
              }
            },
            {
              "name": "fee_account_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            },
            {
              "name": "fee",
              "type_schema": {
                "type": "string"
              }
            },
            {
              "name": "steps_increment",
              "type_schema": {
                "type": "integer",
                "format": "uint64",
                "minimum": 0.0
              }
            }
          ]
        }
      },
      {
        "name": "pause_features",
        "kind": "call",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "features",
              "type_schema": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/Feature"
                }
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": "boolean"
          }
        }
      },
      {
        "name": "set_holding_account_id",
        "kind": "call",
        "modifiers": [
          "private"
        ],
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "account_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            }
          ]
        }
      },
      {
        "name": "set_restricted",
        "kind": "call",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "account_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            },
            {
              "name": "is_restricted",
              "type_schema": {
                "type": "boolean"
              }
            }
          ]
        }
      },
      {
        "name": "storage_balance_bounds",
        "kind": "view",
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "$ref": "#/definitions/StorageBalanceBounds"
          }
        }
      },
      {
        "name": "storage_balance_of",
        "kind": "view",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "account_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "anyOf": [
              {
                "$ref": "#/definitions/StorageBalance"
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      {
        "name": "storage_deposit",
        "kind": "call",
        "modifiers": [
          "payable"
        ],
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "account_id",
              "type_schema": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            {
              "name": "registration_only",
              "type_schema": {
                "type": [
                  "boolean",
                  "null"
                ]
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "$ref": "#/definitions/StorageBalance"
          }
        }
      },
      {
        "name": "storage_unregister",
        "kind": "call",
        "modifiers": [
          "payable"
        ],
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "force",
              "type_schema": {
                "type": [
                  "boolean",
                  "null"
                ]
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": "boolean"
          }
        }
      },
      {
        "name": "storage_withdraw",
        "kind": "call",
        "modifiers": [
          "payable"
        ],
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "amount",
              "type_schema": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "$ref": "#/definitions/StorageBalance"
          }
        }
      },
      {
        "name": "unpause_features",
        "kind": "call",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "features",
              "type_schema": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/Feature"
                }
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": "boolean"
          }
        }
      },
      {
        "name": "up_apply_update_staging_duration",
        "kind": "call"
      },
      {
        "name": "up_deploy_code",
        "kind": "call",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "hash",
              "type_schema": {
                "type": "string"
              }
            },
            {
              "name": "function_call_args",
              "type_schema": {
                "anyOf": [
                  {
                    "$ref": "#/definitions/FunctionCallArgs"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            }
          ]
        },
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "$ref": "#/definitions/Promise"
          }
        }
      },
      {
        "name": "up_get_delay_status",
        "kind": "view",
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "$ref": "#/definitions/UpgradableDurationStatus"
          }
        }
      },
      {
        "name": "up_init_staging_duration",
        "kind": "call",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "staging_duration",
              "type_schema": {
                "type": "integer",
                "format": "uint64",
                "minimum": 0.0
              }
            }
          ]
        }
      },
      {
        "name": "up_stage_code",
        "kind": "call"
      },
      {
        "name": "up_stage_update_staging_duration",
        "kind": "call",
        "params": {
          "serialization_type": "json",
          "args": [
            {
              "name": "staging_duration",
              "type_schema": {
                "type": "integer",
                "format": "uint64",
                "minimum": 0.0
              }
            }
          ]
        }
      },
      {
        "name": "up_staged_code",
        "kind": "view",
        "result": {
          "serialization_type": "borsh",
          "type_schema": {
            "declaration": "Option<Vec<u8>>",
            "definitions": {
              "()": {
                "Primitive": 0
              },
              "Option<Vec<u8>>": {
                "Enum": {
                  "tag_width": 1,
                  "variants": [
                    [
                      0,
                      "None",
                      "()"
                    ],
                    [
                      1,
                      "Some",
                      "Vec<u8>"
                    ]
                  ]
                }
              },
              "Vec<u8>": {
                "Sequence": {
                  "length_width": 4,
                  "length_range": {
                    "start": 0,
                    "end": 4294967295
                  },
                  "elements": "u8"
                }
              },
              "u8": {
                "Primitive": 1
              }
            }
          }
        }
      },
      {
        "name": "up_staged_code_hash",
        "kind": "view",
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      {
        "name": "up_storage_prefix",
        "kind": "view",
        "result": {
          "serialization_type": "json",
          "type_schema": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "uint8",
              "minimum": 0.0
            }
          }
        }
      },
      {
        "name": "up_verify_state",
        "kind": "view"
      }
    ],
    "root_schema": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "title": "String",
      "type": "string",
      "definitions": {
        "Base64VecU8": {
          "description": "Helper class to serialize/deserialize `Vec<u8>` to base64 string.\n\n# Example ```rust use near_sdk::{json_types::Base64VecU8, near};\n\n#[near(serializers=[json])] struct NewStruct { field: Base64VecU8, } ```",
          "type": "array",
          "items": {
            "type": "integer",
            "format": "uint8",
            "minimum": 0.0
          }
        },
        "Feature": {
          "description": "A contract feature that can be independently paused.\n\nSerialized in snake_case so call args read e.g. `{\"features\": [\"token\", \"minting\"]}`.",
          "oneOf": [
            {
              "description": "Token movement: `ft_transfer`, `ft_transfer_call`, `burn`.",
              "type": "string",
              "enum": [
                "token"
              ]
            },
            {
              "description": "Reward minting: `defer_batch`.",
              "type": "string",
              "enum": [
                "minting"
              ]
            }
          ]
        },
        "FunctionCallArgs": {
          "description": "Specifies a function call to be appended to the actions of a promise via [`near_sdk::Promise::function_call`]).",
          "type": "object",
          "required": [
            "amount",
            "arguments",
            "function_name",
            "gas"
          ],
          "properties": {
            "amount": {
              "description": "The amount of tokens to transfer to the receiver.",
              "type": "string"
            },
            "arguments": {
              "description": "The arguments to pass to the function.",
              "type": "array",
              "items": {
                "type": "integer",
                "format": "uint8",
                "minimum": 0.0
              }
            },
            "function_name": {
              "description": "The name of the function to call.",
              "type": "string"
            },
            "gas": {
              "description": "The gas limit for the function call.",
              "type": "string"
            }
          }
        },
        "FungibleTokenMetadata": {
          "type": "object",
          "required": [
            "decimals",
            "name",
            "spec",
            "symbol"
          ],
          "properties": {
            "decimals": {
              "type": "integer",
              "format": "uint8",
              "minimum": 0.0
            },
            "icon": {
              "type": [
                "string",
                "null"
              ]
            },
            "name": {
              "type": "string"
            },
            "reference": {
              "type": [
                "string",
                "null"
              ]
            },
            "reference_hash": {
              "anyOf": [
                {
                  "$ref": "#/definitions/Base64VecU8"
                },
                {
                  "type": "null"
                }
              ]
            },
            "spec": {
              "type": "string"
            },
            "symbol": {
              "type": "string"
            }
          }
        },
        "PermissionedAccounts": {
          "description": "Collects super admin accounts and accounts that have been granted permissions defined by `AccessControlRole`.\n\n# Data structure\n\nAssume `AccessControlRole` is derived for the following enum, which is then passed as `role` attribute to `AccessControllable`.\n\n```rust pub enum Role { PauseManager, UnpauseManager, } ```\n\nThen the returned data has the following structure:\n\n```ignore PermissionedAccounts { super_admins: vec![\"acc1.near\", \"acc2.near\"], roles: HashMap::from([ (\"PauseManager\", PermissionedAccountsPerRole { admins: vec![\"acc3.near\", \"acc4.near\"], grantees: vec![\"acc5.near\", \"acc6.near\"], }), (\"UnpauseManager\", PermissionedAccountsPerRole { admins: vec![\"acc7.near\", \"acc8.near\"], grantees: vec![\"acc9.near\", \"acc10.near\"], }), ]) } ```\n\n# Uniqueness and ordering\n\nAccount ids returned in vectors are unique but not ordered.",
          "type": "object",
          "required": [
            "roles",
            "super_admins"
          ],
          "properties": {
            "roles": {
              "description": "The admins and grantees of all roles.",
              "type": "object",
              "additionalProperties": {
                "$ref": "#/definitions/PermissionedAccountsPerRole"
              }
            },
            "super_admins": {
              "description": "The accounts that have super admin permissions.",
              "type": "array",
              "items": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            }
          }
        },
        "PermissionedAccountsPerRole": {
          "description": "Collects all admins and grantees of a role.\n\n# Uniqueness and ordering\n\nAccount ids returned in vectors are unique but not ordered.",
          "type": "object",
          "required": [
            "admins",
            "grantees"
          ],
          "properties": {
            "admins": {
              "description": "The accounts that have admin permissions for the role.",
              "type": "array",
              "items": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            },
            "grantees": {
              "description": "The accounts that have been granted the role.",
              "type": "array",
              "items": {
                "description": "NEAR Account Identifier.\n\nThis is a unique, syntactically valid, human-readable account identifier on the NEAR network.\n\n[See the crate-level docs for information about validation.](index.html#account-id-rules)\n\nAlso see [Error kind precedence](AccountId#error-kind-precedence).\n\n## Examples\n\n``` use near_account_id::AccountId;\n\nlet alice: AccountId = \"alice.near\".parse().unwrap();\n\nassert!(\"ƒelicia.near\".parse::<AccountId>().is_err()); // (ƒ is not f) ```",
                "type": "string"
              }
            }
          }
        },
        "Promise": true,
        "PromiseOrValueNull": {
          "type": "null"
        },
        "PromiseOrValueString": {
          "type": "string"
        },
        "StorageBalance": {
          "type": "object",
          "required": [
            "available",
            "total"
          ],
          "properties": {
            "available": {
              "type": "string"
            },
            "total": {
              "type": "string"
            }
          }
        },
        "StorageBalanceBounds": {
          "type": "object",
          "required": [
            "min"
          ],
          "properties": {
            "max": {
              "type": [
                "string",
                "null"
              ]
            },
            "min": {
              "type": "string"
            }
          }
        },
        "UpgradableDurationStatus": {
          "type": "object",
          "properties": {
            "new_staging_duration": {
              "type": [
                "integer",
                "null"
              ],
              "format": "uint64",
              "minimum": 0.0
            },
            "new_staging_duration_timestamp": {
              "type": [
                "integer",
                "null"
              ],
              "format": "uint64",
              "minimum": 0.0
            },
            "staging_duration": {
              "type": [
                "integer",
                "null"
              ],
              "format": "uint64",
              "minimum": 0.0
            },
            "staging_timestamp": {
              "type": [
                "integer",
                "null"
              ],
              "format": "uint64",
              "minimum": 0.0
            }
          }
        }
      }
    }
  }
}