{
  "queries": [
    {
      "method": "getBalance",
      "details": {
        "name": "Account",
        "modifier": "Default",
        "type": {
          "DoubleMap": {
            "hasher": "Blake2_128Concat",
            "key1": "AccountId",
            "key2": "Currency",
            "value": "SignedBalance",
            "key2Hasher": "Blake2_128Concat"
          }
        },
        "fallback": "0x000000000000000000",
        "documentation": []
      }
    },
    {
      "method": "getVested",
      "details": {
        "name": "Vested",
        "modifier": "Optional",
        "type": {
          "Map": {
            "hasher": "Blake2_128Concat",
            "key": "AccountId",
            "value": "BalanceOf",
            "linked": false
          }
        },
        "fallback": "0x00",
        "documentation": [
          " Pallet storage: information about already vested balances for given account"
        ]
      }
    },
    {
      "method": "getVesting",
      "details": {
        "name": "Vesting",
        "modifier": "Optional",
        "type": {
          "Map": {
            "hasher": "Blake2_128Concat",
            "key": "AccountId",
            "value": "VestingInfo",
            "linked": false
          }
        },
        "fallback": "0x00",
        "documentation": [
          " Pallet storage: information regarding the vesting of a given account"
        ]
      }
    },
    {
      "method": "getClaim",
      "details": {
        "name": "Claims",
        "modifier": "Optional",
        "type": {
          "Map": {
            "hasher": "Identity",
            "key": "EthereumAddress",
            "value": "BalanceOf",
            "linked": false
          }
        },
        "fallback": "0x00",
        "documentation": [
          " Pallet storage - stores amount to be claimed by each `EthereumAddress`"
        ]
      }
    },
    {
      "method": "getClaimSigning",
      "details": {
        "name": "Signing",
        "modifier": "Default",
        "type": {
          "Map": {
            "hasher": "Identity",
            "key": "EthereumAddress",
            "value": "bool",
            "linked": false
          }
        },
        "fallback": "0x00",
        "documentation": [
          " Pallet storage - the statement kind that must be signed, if any"
        ]
      }
    },
    {
      "method": "getClaimVesting",
      "details": {
        "name": "Vesting",
        "modifier": "Optional",
        "type": {
          "Map": {
            "hasher": "Identity",
            "key": "EthereumAddress",
            "value": "(BalanceOf,BalanceOf,BlockNumber)",
            "linked": false
          }
        },
        "fallback": "0x00",
        "documentation": [
          " Pallet storage - vesting schedule for a claim.",
          " First balance is the total amount that should be held for vesting.",
          " Second balance is how much should be unlocked per block.",
          " The block number is when the vesting should start."
        ]
      }
    },
    {
      "method": "getTotalClaim",
      "details": {
        "name": "Total",
        "modifier": "Default",
        "type": { "Plain": "BalanceOf" },
        "fallback": "0x0000000000000000",
        "documentation": [" Pallet storage - total `Claims` amount"]
      }
    },
    {
      "method": "hasGroup",
      "details": {
        "name": "AccountUserGroups",
        "modifier": "Default",
        "type": {
          "DoubleMap": {
            "hasher": "Blake2_128Concat",
            "key1": "UserGroup",
            "key2": "AccountId",
            "value": "bool",
            "key2Hasher": "Blake2_128Concat"
          }
        },
        "fallback": "0x00",
        "documentation": [" Pallet storage - stores user groups"]
      }
    },
    {
      "method": "aggregatesByGroup",
      "details": {
        "name": "TotalUserGroups",
        "modifier": "Default",
        "type": {
          "DoubleMap": {
            "hasher": "Blake2_128Concat",
            "key1": "UserGroup",
            "key2": "Currency",
            "value": "TotalAggregates",
            "key2Hasher": "Blake2_128Concat"
          }
        },
        "fallback": "0x00000000000000000000000000000000",
        "documentation": [
          " Pallet storage - stores aggregates for each user group"
        ]
      }
    }
  ],
  "txs": [
    {
      "method": "transfer",
      "details": {
        "name": "transfer",
        "args": [
          { "name": "currency", "type": "Currency" },
          { "name": "to", "type": "AccountId" },
          { "name": "value", "type": "Balance" }
        ],
        "documentation": [
          " Transfers `value` amount of `currency` from trx sender to account id `to`"
        ]
      }
    },
    {
      "method": "sudo",
      "details": {
        "name": "sudo",
        "args": [{ "name": "call", "type": "Call" }],
        "documentation": [
          " Authenticates the sudo key and dispatches a function call with `Root` origin.",
          "",
          " The dispatch origin for this call must be _Signed_.",
          "",
          " # <weight>",
          " - O(1).",
          " - Limited storage reads.",
          " - One DB write (event).",
          " - Weight of derivative `call` execution + 10,000.",
          " # </weight>"
        ]
      }
    },
    {
      "method": "vest",
      "details": {
        "name": "vest",
        "args": [],
        "documentation": [
          " Unlock any vested funds of the sender account.",
          "",
          " The dispatch origin for this call must be _Signed_ and the sender must have funds still",
          " locked under this module.",
          "",
          " Emits either `VestingCompleted` or `VestingUpdated`."
        ]
      }
    },
    {
      "method": "vestTo",
      "details": {
        "name": "vest_other",
        "args": [{ "name": "target", "type": "LookupSource" }],
        "documentation": [
          " Unlock any vested funds of a `target` account.",
          "",
          " The dispatch origin for this call must be _Signed_.",
          "",
          " - `target`: The account whose vested funds should be unlocked. Must have funds still",
          " locked under this module.",
          "",
          " Emits either `VestingCompleted` or `VestingUpdated`."
        ]
      }
    },
    {
      "method": "claim",
      "details": {
        "name": "claim",
        "args": [
          { "name": "dest", "type": "AccountId" },
          { "name": "ethereum_signature", "type": "EcdsaSignature" }
        ],
        "documentation": [
          " Make a claim to collect your currency.",
          "",
          " The dispatch origin for this call must be _None_.",
          "",
          " Unsigned Validation:",
          " A call to claim is deemed valid if the signature provided matches",
          " the expected signed message of:",
          "",
          " > Ethereum Signed Message:",
          " > (configured prefix string)(address)",
          "",
          " and `address` matches the `dest` account.",
          "",
          " Parameters:",
          " - `dest`: The destination account to payout the claim.",
          " - `ethereum_signature`: The signature of an ethereum signed message",
          "    matching the format described above."
        ]
      }
    },
    {
      "method": "claimAttest",
      "details": {
        "name": "claim_attest",
        "args": [
          { "name": "dest", "type": "AccountId" },
          { "name": "ethereum_signature", "type": "EcdsaSignature" },
          { "name": "statement", "type": "Bytes" }
        ],
        "documentation": [
          " Make a claim to collect your currency by signing a statement.",
          "",
          " The dispatch origin for this call must be _None_.",
          "",
          " Unsigned Validation:",
          " A call to `claim_attest` is deemed valid if the signature provided matches",
          " the expected signed message of:",
          "",
          " > Ethereum Signed Message:",
          " > (configured prefix string)(address)(statement)",
          "",
          " and `address` matches the `dest` account; the `statement` must match that which is",
          " expected according to your purchase arrangement.",
          "",
          " Parameters:",
          " - `dest`: The destination account to payout the claim.",
          " - `ethereum_signature`: The signature of an ethereum signed message",
          "    matching the format described above.",
          " - `statement`: The identity of the statement which is being attested to in the signature."
        ]
      }
    }
  ]
}
