Vaulta

goldchipdice

Contract

{
  "version": "eosio::abi/1.1",
  "types": [],
  "structs": [
    {
      "name": "Bet",
      "base": "",
      "fields": [
        {
          "name": "id",
          "type": "uint64"
        },
        {
          "name": "player",
          "type": "name"
        },
        {
          "name": "roll_type",
          "type": "uint8"
        },
        {
          "name": "roll_border",
          "type": "uint64"
        },
        {
          "name": "roll_value",
          "type": "uint64"
        },
        {
          "name": "bet",
          "type": "asset"
        },
        {
          "name": "payout",
          "type": "asset"
        },
        {
          "name": "seed",
          "type": "string"
        },
        {
          "name": "time",
          "type": "time_point_sec"
        }
      ]
    },
    {
      "name": "Config",
      "base": "",
      "fields": [
        {
          "name": "ante_contract",
          "type": "name"
        },
        {
          "name": "referrals_contract",
          "type": "name"
        },
        {
          "name": "servers",
          "type": "name[]"
        },
        {
          "name": "enabled_betting",
          "type": "bool"
        },
        {
          "name": "enabled_minting",
          "type": "bool"
        },
        {
          "name": "enabled_payout",
          "type": "bool"
        },
        {
          "name": "rare_bet_bound",
          "type": "uint16"
        },
        {
          "name": "jackpot_percent",
          "type": "float64"
        },
        {
          "name": "jackpot_balance",
          "type": "asset"
        },
        {
          "name": "dividends_period_current",
          "type": "time_point"
        },
        {
          "name": "dividends_period",
          "type": "uint64"
        },
        {
          "name": "dividends_percent",
          "type": "float64"
        },
        {
          "name": "min_value",
          "type": "uint16"
        },
        {
          "name": "max_value",
          "type": "uint16"
        },
        {
          "name": "max_bet_percent",
          "type": "float64"
        },
        {
          "name": "max_bet_num",
          "type": "uint16"
        },
        {
          "name": "platform_fee",
          "type": "float64"
        },
        {
          "name": "lottery_contract",
          "type": "name"
        },
        {
          "name": "lottery_period",
          "type": "uint64"
        },
        {
          "name": "lottery_period_current",
          "type": "time_point"
        },
        {
          "name": "lottery_percent",
          "type": "float64"
        },
        {
          "name": "bets_id",
          "type": "TableId"
        },
        {
          "name": "high_bets_id",
          "type": "TableId"
        },
        {
          "name": "rare_bets_id",
          "type": "TableId"
        },
        {
          "name": "bet_id",
          "type": "uint64"
        },
        {
          "name": "day_leader_board",
          "type": "LeaderBoardConfig"
        },
        {
          "name": "month_leader_board",
          "type": "LeaderBoardConfig"
        },
        {
          "name": "base_deferred_id",
          "type": "uint64"
        }
      ]
    },
    {
      "name": "Currency",
      "base": "",
      "fields": [
        {
          "name": "symbol",
          "type": "symbol"
        },
        {
          "name": "owner",
          "type": "name"
        },
        {
          "name": "balance",
          "type": "asset"
        },
        {
          "name": "lottery_balance",
          "type": "asset"
        },
        {
          "name": "balance_protect",
          "type": "asset"
        },
        {
          "name": "min_bet",
          "type": "asset"
        },
        {
          "name": "high_bet_bound",
          "type": "asset"
        },
        {
          "name": "day",
          "type": "CurrencyStat"
        },
        {
          "name": "month",
          "type": "CurrencyStat"
        },
        {
          "name": "total",
          "type": "CurrencyStat"
        }
      ]
    },
    {
      "name": "CurrencyStat",
      "base": "",
      "fields": [
        {
          "name": "update_time",
          "type": "time_point"
        },
        {
          "name": "period",
          "type": "uint64"
        },
        {
          "name": "bet",
          "type": "asset"
        },
        {
          "name": "payout",
          "type": "asset"
        }
      ]
    },
    {
      "name": "Jackpot",
      "base": "",
      "fields": [
        {
          "name": "id",
          "type": "uint64"
        },
        {
          "name": "player",
          "type": "name"
        },
        {
          "name": "time",
          "type": "time_point"
        },
        {
          "name": "amount",
          "type": "asset"
        }
      ]
    },
    {
      "name": "LeaderBoardConfig",
      "base": "",
      "fields": [
        {
          "name": "size",
          "type": "uint8"
        },
        {
          "name": "bonus_percent",
          "type": "float64"
        },
        {
          "name": "distribution_id",
          "type": "uint128"
        },
        {
          "name": "distribution_start",
          "type": "time_point"
        },
        {
          "name": "period_start",
          "type": "time_point"
        },
        {
          "name": "period_length",
          "type": "uint32"
        }
      ]
    },
    {
      "name": "Player",
      "base": "",
      "fields": [
        {
          "name": "account",
          "type": "name"
        },
        {
          "name": "last_bet_time",
          "type": "time_point"
        },
        {
          "name": "last_bet",
          "type": "asset"
        },
        {
          "name": "last_payout",
          "type": "asset"
        },
        {
          "name": "jackpot_sequence",
          "type": "int32"
        },
        {
          "name": "jackpot_sequence_values",
          "type": "string"
        },
        {
          "name": "statistics",
          "type": "PlayerBetsStatistics[]"
        }
      ]
    },
    {
      "name": "PlayerBetsStatistics",
      "base": "",
      "fields": [
        {
          "name": "symbol",
          "type": "symbol"
        },
        {
          "name": "total",
          "type": "PlayerBetsStatisticsItem"
        },
        {
          "name": "day",
          "type": "PlayerBetsStatisticsItem"
        },
        {
          "name": "week",
          "type": "PlayerBetsStatisticsItem"
        },
        {
          "name": "month",
          "type": "PlayerBetsStatisticsItem"
        }
      ]
    },
    {
      "name": "PlayerBetsStatisticsItem",
      "base": "",
      "fields": [
        {
          "name": "total_bet_amount",
          "type": "uint64"
        },
        {
          "name": "total_payout",
          "type": "uint64"
        },
        {
          "name": "bets",
          "type": "uint64"
        },
        {
          "name": "wons",
          "type": "uint64"
        }
      ]
    },
    {
      "name": "Random",
      "base": "",
      "fields": [
        {
          "name": "id",
          "type": "uint64"
        },
        {
          "name": "player",
          "type": "name"
        },
        {
          "name": "inviter",
          "type": "name"
        },
        {
          "name": "quantity",
          "type": "asset"
        },
        {
          "name": "roll_type",
          "type": "uint8"
        },
        {
          "name": "roll_border",
          "type": "uint16"
        },
        {
          "name": "time",
          "type": "time_point"
        }
      ]
    },
    {
      "name": "TableId",
      "base": "",
      "fields": [
        {
          "name": "first",
          "type": "uint64"
        },
        {
          "name": "last",
          "type": "uint64"
        },
        {
          "name": "max",
          "type": "uint64"
        }
      ]
    },
    {
      "name": "Top",
      "base": "",
      "fields": [
        {
          "name": "account",
          "type": "name"
        },
        {
          "name": "stats",
          "type": "PlayerBetsStatisticsItem"
        }
      ]
    },
    {
      "name": "addCurrency",
      "base": "",
      "fields": [
        {
          "name": "symbol",
          "type": "symbol"
        },
        {
          "name": "owner",
          "type": "name"
        }
      ]
    },
    {
      "name": "approve",
      "base": "",
      "fields": [
        {
          "name": "caller",
          "type": "name"
        },
        {
          "name": "id",
          "type": "uint64"
        },
        {
          "name": "seed",
          "type": "string"
        }
      ]
    },
    {
      "name": "distributeLeadersBonuses",
      "base": "",
      "fields": [
        {
          "name": "type",
          "type": "uint8"
        },
        {
          "name": "leaders",
          "type": "name[]"
        },
        {
          "name": "bonus",
          "type": "asset"
        }
      ]
    },
    {
      "name": "makeBet",
      "base": "",
      "fields": [
        {
          "name": "player",
          "type": "name"
        },
        {
          "name": "inviter",
          "type": "name"
        },
        {
          "name": "quantity",
          "type": "asset"
        },
        {
          "name": "roll_type",
          "type": "uint8"
        },
        {
          "name": "roll_border",
          "type": "uint16"
        }
      ]
    },
    {
      "name": "notify",
      "base": "",
      "fields": [
        {
          "name": "",
          "type": "string"
        }
      ]
    },
    {
      "name": "payToReferral",
      "base": "",
      "fields": [
        {
          "name": "player",
          "type": "name"
        },
        {
          "name": "amount",
          "type": "asset"
        }
      ]
    },
    {
      "name": "setAnteTokenAccount",
      "base": "",
      "fields": [
        {
          "name": "name",
          "type": "name"
        }
      ]
    },
    {
      "name": "setBalance",
      "base": "",
      "fields": [
        {
          "name": "balance",
          "type": "asset"
        }
      ]
    },
    {
      "name": "setBalanceProtect",
      "base": "",
      "fields": [
        {
          "name": "protect",
          "type": "asset"
        }
      ]
    },
    {
      "name": "setBetsHistoryLength",
      "base": "",
      "fields": [
        {
          "name": "size",
          "type": "uint64"
        }
      ]
    },
    {
      "name": "setBettingEnabled",
      "base": "",
      "fields": [
        {
          "name": "enabled",
          "type": "bool"
        }
      ]
    },
    {
      "name": "setDayLeaderPercent",
      "base": "",
      "fields": [
        {
          "name": "percent",
          "type": "float64"
        }
      ]
    },
    {
      "name": "setDividendsPercent",
      "base": "",
      "fields": [
        {
          "name": "percent",
          "type": "float64"
        },
        {
          "name": "period",
          "type": "uint64"
        }
      ]
    },
    {
      "name": "setGameParams",
      "base": "",
      "fields": [
        {
          "name": "min",
          "type": "uint16"
        },
        {
          "name": "max",
          "type": "uint16"
        },
        {
          "name": "max_bet_num",
          "type": "uint16"
        }
      ]
    },
    {
      "name": "setHighBetBound",
      "base": "",
      "fields": [
        {
          "name": "value",
          "type": "asset"
        }
      ]
    },
    {
      "name": "setHighBetsHistoryLength",
      "base": "",
      "fields": [
        {
          "name": "size",
          "type": "uint64"
        }
      ]
    },
    {
      "name": "setJackpotPercent",
      "base": "",
      "fields": [
        {
          "name": "percent",
          "type": "float64"
        }
      ]
    },
    {
      "name": "setLotteryContract",
      "base": "",
      "fields": [
        {
          "name": "name",
          "type": "name"
        }
      ]
    },
    {
      "name": "setLotteryPercent",
      "base": "",
      "fields": [
        {
          "name": "percent",
          "type": "float64"
        }
      ]
    },
    {
      "name": "setLotteryPeriod",
      "base": "",
      "fields": [
        {
          "name": "period",
          "type": "uint64"
        }
      ]
    },
    {
      "name": "setMaxBetPercent",
      "base": "",
      "fields": [
        {
          "name": "max_bet_percent",
          "type": "float64"
        }
      ]
    },
    {
      "name": "setMinBet",
      "base": "",
      "fields": [
        {
          "name": "value",
          "type": "asset"
        }
      ]
    },
    {
      "name": "setMintingEnabled",
      "base": "",
      "fields": [
        {
          "name": "enabled",
          "type": "bool"
        }
      ]
    },
    {
      "name": "setMonthLeaderPercent",
      "base": "",
      "fields": [
        {
          "name": "percent",
          "type": "float64"
        }
      ]
    },
    {
      "name": "setPayoutEnabled",
      "base": "",
      "fields": [
        {
          "name": "enabled",
          "type": "bool"
        }
      ]
    },
    {
      "name": "setPlatformFee",
      "base": "",
      "fields": [
        {
          "name": "platform_fee",
          "type": "float64"
        }
      ]
    },
    {
      "name": "setRareBetBound",
      "base": "",
      "fields": [
        {
          "name": "rare_bet_bound",
          "type": "uint16"
        }
      ]
    },
    {
      "name": "setRareBetsHistoryLength",
      "base": "",
      "fields": [
        {
          "name": "size",
          "type": "uint64"
        }
      ]
    },
    {
      "name": "setReferrals",
      "base": "",
      "fields": [
        {
          "name": "contract",
          "type": "name"
        }
      ]
    },
    {
      "name": "setServerAccount",
      "base": "",
      "fields": [
        {
          "name": "name",
          "type": "name"
        }
      ]
    }
  ],
  "actions": [
    {
      "name": "ante.set",
      "type": "setAnteTokenAccount",
      "ricardian_contract": "## ```ante.set(eosio::name caller, eosio::name name)```\n* `caller` - User who want to call this action\n* `name` - Name of eos.ante owner account\n\nExpected permissions: `owner` or `admin`\n\n```\nExample:\ncleos push action <owner> ante.set '[\"<owner_or_admin>\", \"ante_contract_owner\"]' -p <owner_or_admin>@active\n```"
    },
    {
      "name": "approve",
      "type": "approve",
      "ricardian_contract": ""
    },
    {
      "name": "balance.set",
      "type": "setBalance",
      "ricardian_contract": "## ```balance.set(eosio::name caller, eosio::asset balance)```\n* `caller` - User who want to call this action\n* `balance` - Set current eos balance of contract (It is necessary to add existing EOS after contract deploy)\n \nExpected permissions: `owner` or `admin`\n\n```\nExample:\ncleos push action <owner> balance.set '[\"<owner_or_admin>\", \"1000.0000 EOS\"]' -p <owner_or_admin>@active\n```"
    },
    {
      "name": "bet",
      "type": "makeBet",
      "ricardian_contract": "## ```bet(eosio::name player, eosio::name inviter, eosio::asset quantity, uint8_t roll_type, uint16_t roll_border)```\n* `player` - User who made bet\n* `inviter` - User who invited this player to play the game\n* `quantity` - Bet amount (\"1.0000 EOS\")\n* `roll_type` - Bet type (1 | 2)\n* `roll_border` - Border parameter for betting.  \n\nExpected permissions: `owner` or `admin`\n\n```\nExample:\ncleos push action <owner> bet'[\"<player_who_bets>\", \"<player_who_invited>\", \"1.0001 EOS\", 1, 42]' -p <owner_or_admin>@active\ncleos push action <owner> bet'[\"<player_who_bets>\", \"<player_who_invited>\", \"1.0001 EOS\", 2, 21]' -p <owner_or_admin>@active\n```"
    },
    {
      "name": "bets.setl",
      "type": "setBetsHistoryLength",
      "ricardian_contract": "Change size of `bets.all` table\n\n## ```bets.setl(eosio::name caller, uint64_t size)```\n* `caller` - User who want to call this action\n* `size` - Length of bets history\n\n```\nExample:\ncleos push action <owner> bets.setl '[\"<owner_or_admin>\", 10]' -p <owner_or_admin>@active\n```"
    },
    {
      "name": "betting.set",
      "type": "setBettingEnabled",
      "ricardian_contract": "## ```betting.set(eosio::name caller, bool enabled)```\n* `caller` - User who want to call this action\n* `enabled` - True | False\n\nExpected permissions: `owner` or `admin`\n\n```\nExample:\ncleos push action <owner> betting.set '[\"<owner_or_admin>\", 0]' -p <owner_or_admin>@active\ncleos push action <owner> betting.set '[\"<owner_or_admin>\", 1]' -p <owner_or_admin>@active\n```"
    },
    {
      "name": "currency.add",
      "type": "addCurrency",
      "ricardian_contract": ""
    },
    {
      "name": "distribute",
      "type": "distributeLeadersBonuses",
      "ricardian_contract": "## ```distribute(eosio::name caller, uint8_t type, const std::vector\\<eosio::name\\>& leaders, eosio::asset bonus)```\n* `caller` - Account who call this action\n* `type` - Type of distribution, day or month (1 | 2)\n* `leaders` - List of leaders from 1st to last\n* `bonus` - Balance in eos to distribute \n\nExpected permissions: `owner` or `admin`"
    },
    {
      "name": "dividend.set",
      "type": "setDividendsPercent",
      "ricardian_contract": ""
    },
    {
      "name": "dlp.set",
      "type": "setDayLeaderPercent",
      "ricardian_contract": "Change day_leader_board.bonus_percent\n\n## ```dlp.set(eosio::name caller, double percent)```\n* `caller` - User who want to call this action\n* `percent` - percent from current eos_balance to distribute \n\nExpected permissions: `owner` or `admin`\n\n```\nExample:\ncleos push action <owner> dlp.set '[\"<owner_or_admin>\", 0.11]' -p <owner_or_admin>@active\n```"
    },
    {
      "name": "fee.set",
      "type": "setPlatformFee",
      "ricardian_contract": "## ```fee.set(eosio::name caller, double platform_fee)```\n* `caller` - User who want to call this action\n* `platform_fee` - multiplier as percent i.e.: 0.01 == 1% \n\nExpected permissions: `owner` or `admin`\n\n```\nExample:\ncleos push action <owner> fee.set '[\"<owner_or_admin>\", 0.01]' -p <owner_or_admin>@active\n```"
    },
    {
      "name": "high.bet.set",
      "type": "setHighBetBound",
      "ricardian_contract": "## ```high.bet.set(eosio::name caller, eosio::asset high_bet_bound))```\n* `caller` - User who want to call this action\n* `high_bet_bound` - Minimum value for `bets.high`\n\n```\nExample:\ncleos push action <owner> high.bet.set '[\"<owner_or_admin>\", \"1.0000 EOS\"]' -p <owner_or_admin>@active\n```"
    },
    {
      "name": "high.setl",
      "type": "setHighBetsHistoryLength",
      "ricardian_contract": "Change size of `bets.high` table\n\n## ```high.setl(eosio::name caller, uint64_t size)```\n* `caller` - User who want to call this action\n* `size` - Length of bets history\n\n```\nExample:\ncleos push action <owner> high.setl '[\"<owner_or_admin>\", 10]' -p <owner_or_admin>@active\n```"
    },
    {
      "name": "jackpot.set",
      "type": "setJackpotPercent",
      "ricardian_contract": "Set jackpot percent for the contract\n\n## ```jackpot.set(eosio::name caller, double percent)```\n\nExpected permissions: `owner` or `admin`"
    },
    {
      "name": "l.contr.set",
      "type": "setLotteryContract",
      "ricardian_contract": ""
    },
    {
      "name": "l.perc.set",
      "type": "setLotteryPercent",
      "ricardian_contract": ""
    },
    {
      "name": "l.period.set",
      "type": "setLotteryPeriod",
      "ricardian_contract": ""
    },
    {
      "name": "mbp.set",
      "type": "setMaxBetPercent",
      "ricardian_contract": "## ```mbp.set(eosio::name caller, double max_bet_percent)```\n* `caller` - User who want to call this action\n* `max_bet_percent` - It's a percent from eos balance. Can be used as limit for maximum bet and maximum reward. \n\nExpected permissions: `owner` or `admin`\n\n```\nExample:\ncleos push action <owner> mbp.set '[\"<owner_or_admin>\", 0.10]' -p <owner_or_admin>@active\n```"
    },
    {
      "name": "min.bet.set",
      "type": "setMinBet",
      "ricardian_contract": ""
    },
    {
      "name": "minting.set",
      "type": "setMintingEnabled",
      "ricardian_contract": "## ```minting.set(eosio::name caller, bool enabled)```\n* `caller` - User who want to call this action\n* `enabled` - True | False\n\nExpected permissions: `owner` or `admin`\n\n```\nExample:\ncleos push action <owner> minting.set '[\"<owner_or_admin>\", 0]' -p <owner_or_admin>@active\ncleos push action <owner> minting.set '[\"<owner_or_admin>\", 1]' -p <owner_or_admin>@active\n```"
    },
    {
      "name": "mlp.set",
      "type": "setMonthLeaderPercent",
      "ricardian_contract": "Change month_leader_board.bonus_percent\n\n## ```mlp.set(eosio::name caller, double percent)```\n* `caller` - User who want to call this action\n* `percent` - percent from current eos_balance to distribute \n\nExpected permissions: `owner` or `admin`\n\n```\nExample:\ncleos push action <owner> mlp.set '[\"<owner_or_admin>\", 0.11]' -p <owner_or_admin>@active\n```"
    },
    {
      "name": "notify",
      "type": "notify",
      "ricardian_contract": "Fake action with string parameter to notify admin\\owner about something. For internal usage only.\n\n## ```notify(std::string msg)```"
    },
    {
      "name": "params.set",
      "type": "setGameParams",
      "ricardian_contract": "## ```params.set(eosio::name caller, uint16_t min, uint16_t max, uint16_t max_bet_num)```\n* `caller` - User who want to call this action\n* `min` - lower bound for dice game\n* `max` - upper bound for dice game\n* `max_bet_num` - additional parameter for reward calculation\n\nExpected permissions: `owner` or `admin`\n\n```\nExample:\ncleos push action <owner> params.set '[\"<owner_or_admin>\", 1, 100, 100]' -p <owner_or_admin>@active\n```"
    },
    {
      "name": "payout.set",
      "type": "setPayoutEnabled",
      "ricardian_contract": "## ```payout.set(eosio::name caller, bool enabled)```\n* `caller` - User who want to call this action\n* `enabled` - True | False\n\nExpected permissions: `owner` or `admin`\n\n```\nExample:\ncleos push action <owner> payout.set '[\"<owner_or_admin>\", 0]' -p <owner_or_admin>@active\ncleos push action <owner> payout.set '[\"<owner_or_admin>\", 1]' -p <owner_or_admin>@active\n```"
    },
    {
      "name": "protect.set",
      "type": "setBalanceProtect",
      "ricardian_contract": "## ```protect.set(eosio::name caller, eosio::asset balance_protect)```\n* `caller` - User who want to call this action\n* `balance_protect` - Minimum value of eos balance to allow betting for players \n\nExpected permissions: `owner` or `admin`\n\n```\nExample:\ncleos push action <owner> protect.set '[\"<owner_or_admin>\", \"1000.0000 EOS\"]' -p <owner_or_admin>@active\n```"
    },
    {
      "name": "rare.bet.set",
      "type": "setRareBetBound",
      "ricardian_contract": "## ```rare.bet.set(eosio::name caller, uint16_t rare_bet_bound)```\n* `caller` - User who want to call this action\n* `rare_bet_bound` - Minimum probability in percent to add record to `bets.rare`  \n\n```\nExample:\ncleos push action <owner> rare.bet.set '[\"<owner_or_admin>\", \"1.0000 EOS\"]' -p <owner_or_admin>@active\n```"
    },
    {
      "name": "rare.setl",
      "type": "setRareBetsHistoryLength",
      "ricardian_contract": "Change size of `bets.rare` table\n\n## ```rare.setl(eosio::name caller, uint64_t size)```\n* `caller` - User who want to call this action\n* `size` - Length of bets history\n\n```\nExample:\ncleos push action <owner> rare.setl '[\"<owner_or_admin>\", 10]' -p <owner_or_admin>@active\n```"
    },
    {
      "name": "referral.pay",
      "type": "payToReferral",
      "ricardian_contract": ""
    },
    {
      "name": "referral.set",
      "type": "setReferrals",
      "ricardian_contract": "Set referral multiplier\n\n## ```referral.set(eosio::name caller, double multiplier)```\n\nExpected permissions: `owner` or `admin`"
    },
    {
      "name": "server.set",
      "type": "setServerAccount",
      "ricardian_contract": ""
    }
  ],
  "tables": [
    {
      "name": "bets.all.v1",
      "index_type": "i64",
      "key_names": [],
      "key_types": [],
      "type": "Bet"
    },
    {
      "name": "bets.high.v1",
      "index_type": "i64",
      "key_names": [],
      "key_types": [],
      "type": "Bet"
    },
    {
      "name": "bets.rare.v1",
      "index_type": "i64",
      "key_names": [],
      "key_types": [],
      "type": "Bet"
    },
    {
      "name": "config.v1",
      "index_type": "i64",
      "key_names": [],
      "key_types": [],
      "type": "Config"
    },
    {
      "name": "jackpots.v1",
      "index_type": "i64",
      "key_names": [],
      "key_types": [],
      "type": "Jackpot"
    },
    {
      "name": "players.v1",
      "index_type": "i64",
      "key_names": [],
      "key_types": [],
      "type": "Player"
    },
    {
      "name": "randoms.v1",
      "index_type": "i64",
      "key_names": [],
      "key_types": [],
      "type": "Random"
    },
    {
      "name": "tokens.v1",
      "index_type": "i64",
      "key_names": [],
      "key_types": [],
      "type": "Currency"
    },
    {
      "name": "top.day.v1",
      "index_type": "i64",
      "key_names": [],
      "key_types": [],
      "type": "Top"
    },
    {
      "name": "top.month.v1",
      "index_type": "i64",
      "key_names": [],
      "key_types": [],
      "type": "Top"
    }
  ],
  "ricardian_clauses": [],
  "error_messages": [],
  "abi_extensions": [],
  "variants": [],
  "action_results": []
}