cw4-stake 0.10.2

CW4 implementation of group based on staked tokens
Documentation
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "ExecuteMsg",
  "anyOf": [
    {
      "description": "Bond will bond all staking tokens sent with the message and update membership weight",
      "type": "object",
      "required": [
        "bond"
      ],
      "properties": {
        "bond": {
          "type": "object"
        }
      },
      "additionalProperties": false
    },
    {
      "description": "Unbond will start the unbonding process for the given number of tokens. The sender immediately loses weight from these tokens, and can claim them back to his wallet after `unbonding_period`",
      "type": "object",
      "required": [
        "unbond"
      ],
      "properties": {
        "unbond": {
          "type": "object",
          "required": [
            "tokens"
          ],
          "properties": {
            "tokens": {
              "$ref": "#/definitions/Uint128"
            }
          }
        }
      },
      "additionalProperties": false
    },
    {
      "description": "Claim is used to claim your native tokens that you previously \"unbonded\" after the contract-defined waiting period (eg. 1 week)",
      "type": "object",
      "required": [
        "claim"
      ],
      "properties": {
        "claim": {
          "type": "object"
        }
      },
      "additionalProperties": false
    },
    {
      "description": "Change the admin",
      "type": "object",
      "required": [
        "update_admin"
      ],
      "properties": {
        "update_admin": {
          "type": "object",
          "properties": {
            "admin": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        }
      },
      "additionalProperties": false
    },
    {
      "description": "Add a new hook to be informed of all membership changes. Must be called by Admin",
      "type": "object",
      "required": [
        "add_hook"
      ],
      "properties": {
        "add_hook": {
          "type": "object",
          "required": [
            "addr"
          ],
          "properties": {
            "addr": {
              "type": "string"
            }
          }
        }
      },
      "additionalProperties": false
    },
    {
      "description": "Remove a hook. Must be called by Admin",
      "type": "object",
      "required": [
        "remove_hook"
      ],
      "properties": {
        "remove_hook": {
          "type": "object",
          "required": [
            "addr"
          ],
          "properties": {
            "addr": {
              "type": "string"
            }
          }
        }
      },
      "additionalProperties": false
    },
    {
      "description": "This accepts a properly-encoded ReceiveMsg from a cw20 contract",
      "type": "object",
      "required": [
        "receive"
      ],
      "properties": {
        "receive": {
          "$ref": "#/definitions/Cw20ReceiveMsg"
        }
      },
      "additionalProperties": false
    }
  ],
  "definitions": {
    "Binary": {
      "description": "Binary is a wrapper around Vec<u8> to add base64 de/serialization with serde. It also adds some helper methods to help encode inline.\n\nThis is only needed as serde-json-{core,wasm} has a horrible encoding for Vec<u8>",
      "type": "string"
    },
    "Cw20ReceiveMsg": {
      "description": "Cw20ReceiveMsg should be de/serialized under `Receive()` variant in a ExecuteMsg",
      "type": "object",
      "required": [
        "amount",
        "msg",
        "sender"
      ],
      "properties": {
        "amount": {
          "$ref": "#/definitions/Uint128"
        },
        "msg": {
          "$ref": "#/definitions/Binary"
        },
        "sender": {
          "type": "string"
        }
      }
    },
    "Uint128": {
      "description": "A thin wrapper around u128 that is using strings for JSON encoding/decoding, such that the full u128 range can be used for clients that convert JSON numbers to floats, like JavaScript and jq.\n\n# Examples\n\nUse `from` to create instances of this and `u128` to get the value out:\n\n``` # use cosmwasm_std::Uint128; let a = Uint128::from(123u128); assert_eq!(a.u128(), 123);\n\nlet b = Uint128::from(42u64); assert_eq!(b.u128(), 42);\n\nlet c = Uint128::from(70u32); assert_eq!(c.u128(), 70); ```",
      "type": "string"
    }
  }
}