{
    "type": "coin",
    "extends": "map",
    "definitions": {
        "set_cycle_mining": {
            "id": "set_cycle_mining",
            "type": "function",
            "tags": [
                "method"
            ],
            "arguments": [
                {
                    "label": "rateHours",
                    "type": "number",
                    "default": {
                        "type": "number",
                        "value": 3
                    }
                }
            ],
            "returnVariations": [
                "Unknown error: Unable to access to local computer",
                "error: No internet access.",
                "the mining cycle cannot exceed the maximum of 2160 hours",
                "the mining cycle cannot be less than 1 hour",
                1
            ],
            "returns": [
                "string",
                "number",
                "null"
            ]
        },
        "get_cycle_mining": {
            "id": "get_cycle_mining",
            "type": "function",
            "tags": [
                "method"
            ],
            "returnVariations": [
                "Unknown error: Unable to access to local computer",
                "error: No internet access."
            ],
            "returns": [
                "string",
                "number"
            ]
        },
        "get_reward": {
            "id": "get_reward",
            "type": "function",
            "tags": [
                "method"
            ],
            "returnVariations": [
                "Unknown error: Unable to access to local computer",
                "error: No internet access."
            ],
            "returns": [
                "string",
                "number"
            ]
        },
        "set_reward": {
            "id": "set_reward",
            "type": "function",
            "tags": [
                "method"
            ],
            "arguments": [
                {
                    "label": "coinAmount",
                    "type": "number",
                    "default": {
                        "type": "number",
                        "value": 1
                    }
                }
            ],
            "returnVariations": [
                "Unknown error: Unable to access to local computer",
                "error: No internet access.",
                "Error: The reward cannot be less than 1 coin",
                "Error: Coin does not exist",
                1
            ],
            "returns": [
                "number",
                "string",
                "null"
            ]
        },
        "transaction": {
            "id": "transaction",
            "type": "function",
            "tags": [
                "method"
            ],
            "arguments": [
                {
                    "label": "subWalletOrig",
                    "type": "string"
                },
                {
                    "label": "subWalletDest",
                    "type": "string"
                },
                {
                    "label": "valAmount",
                    "type": "number"
                }
            ],
            "returnVariations": [
                "Unknown error: Unable to access to local computer",
                "error: No internet access.",
                "Error: amount value cannot be less than 1",
                "!BlockchainSystem.Transaction",
                1
            ],
            "returns": [
                "string",
                "number",
                "null"
            ]
        },
        "create_subwallet": {
            "id": "create_subwallet",
            "type": "function",
            "tags": [
                "method"
            ],
            "arguments": [
                {
                    "label": "walletID",
                    "type": "string"
                },
                {
                    "label": "pin",
                    "type": "string"
                },
                {
                    "label": "subWalletUser",
                    "type": "string"
                },
                {
                    "label": "subWalletPass",
                    "type": "string"
                }
            ],
            "returnVariations": [
                "Unknown error: Unable to access to local computer",
                "error: No internet access.",
                "!BlockchainSystem.AddSubWallet",
                1
            ],
            "returns": [
                "string",
                "number",
                "null"
            ]
        },
        "get_subwallet": {
            "id": "get_subwallet",
            "type": "function",
            "tags": [
                "method"
            ],
            "arguments": [
                {
                    "label": "subWalletUser",
                    "type": "string"
                }
            ],
            "returnVariations": [
                "Unknown error: Unable to access to local computer",
                "error: No internet access.",
                "get_subwallet: The account does not exist"
            ],
            "returns": [
                "string",
                "subWallet",
                "null"
            ]
        },
        "get_subwallets": {
            "id": "get_subwallets",
            "type": "function",
            "tags": [
                "method"
            ],
            "returnVariations": [
                "Unknown error: Unable to access to local computer",
                "error: No internet access."
            ],
            "returns": [
                "string",
                {
                    "type": "list",
                    "valueType": "subWallet"
                }
            ]
        },
        "set_address": {
            "id": "set_address",
            "type": "function",
            "tags": [
                "method"
            ],
            "arguments": [
                {
                    "label": "address",
                    "type": "string"
                }
            ],
            "returnVariations": [
                "Unknown error: Unable to access to local computer",
                "error: No internet access.",
                "set_address: address ${address}not found",
                "!BlockchainSystem.SetAddress",
                1
            ],
            "returns": [
                "number",
                "string",
                "null"
            ]
        },
        "get_address": {
            "id": "get_address",
            "type": "function",
            "tags": [
                "method"
            ],
            "returnVariations": [
                "Unknown error: Unable to access to local computer",
                "error: No internet access.",
                "!BlockchainSystem.GetAddress"
            ],
            "returns": [
                "string"
            ]
        },
        "get_mined_coins": {
            "id": "get_mined_coins",
            "type": "function",
            "tags": [
                "method"
            ],
            "returnVariations": [
                "Unknown error: Unable to access to local computer",
                "error: No internet access."
            ],
            "returns": [
                "string",
                "number"
            ]
        },
        "reset_password": {
            "id": "reset_password_coin",
            "type": "function",
            "tags": [
                "method"
            ],
            "arguments": [
                {
                    "label": "newPassword",
                    "type": "string"
                }
            ],
            "returnVariations": [
                "Unknown error: Unable to access to local computer",
                "error: No internet access.",
                "reset_password: only alphanumeric characters are allowed as password",
                "reset_password: name and password cannot exceed the 16 character limit.",
                "!BlockchainSystem.ResetCoinPass",
                1
            ],
            "returns": [
                "number",
                "string"
            ]
        }
    }
}
