{
"version": "eosio::abi/1.2",
"types": [],
"structs": [
{
"name": "advance",
"base": "",
"fields": [
{
"name": "reveal",
"type": "string"
},
{
"name": "commit",
"type": "checksum256"
}
]
},
{
"name": "arrive",
"base": "",
"fields": [
{
"name": "id",
"type": "uint64"
}
]
},
{
"name": "buygoods",
"base": "",
"fields": [
{
"name": "ship_id",
"type": "uint64"
},
{
"name": "good_id",
"type": "uint64"
},
{
"name": "quantity",
"type": "uint64"
}
]
},
{
"name": "buyship",
"base": "",
"fields": [
{
"name": "account",
"type": "name"
},
{
"name": "name",
"type": "string"
}
]
},
{
"name": "cargo_row",
"base": "",
"fields": [
{
"name": "id",
"type": "uint64"
},
{
"name": "ship_id",
"type": "uint64"
},
{
"name": "good_id",
"type": "uint64"
},
{
"name": "paid",
"type": "uint64"
},
{
"name": "owned",
"type": "uint32"
},
{
"name": "loaded",
"type": "uint32"
}
]
},
{
"name": "cleartable",
"base": "",
"fields": [
{
"name": "table_name",
"type": "name"
},
{
"name": "scope",
"type": "name?"
},
{
"name": "max_rows",
"type": "uint64?"
}
]
},
{
"name": "commit",
"base": "",
"fields": [
{
"name": "commit",
"type": "checksum256"
}
]
},
{
"name": "coordinates",
"base": "",
"fields": [
{
"name": "x",
"type": "int64"
},
{
"name": "y",
"type": "int64"
}
]
},
{
"name": "enable",
"base": "",
"fields": [
{
"name": "enabled",
"type": "bool"
}
]
},
{
"name": "good_price",
"base": "",
"fields": [
{
"name": "id",
"type": "uint16"
},
{
"name": "price",
"type": "uint64"
},
{
"name": "supply",
"type": "uint64"
}
]
},
{
"name": "hash",
"base": "",
"fields": [
{
"name": "value",
"type": "string"
}
]
},
{
"name": "hash512",
"base": "",
"fields": [
{
"name": "value",
"type": "string"
}
]
},
{
"name": "init",
"base": "",
"fields": [
{
"name": "seed",
"type": "checksum256"
}
]
},
{
"name": "jettison",
"base": "",
"fields": [
{
"name": "ship_id",
"type": "uint64"
},
{
"name": "good_id",
"type": "uint16"
},
{
"name": "quantity",
"type": "uint64"
}
]
},
{
"name": "join",
"base": "",
"fields": [
{
"name": "account",
"type": "name"
}
]
},
{
"name": "loader_stats",
"base": "",
"fields": [
{
"name": "mass",
"type": "uint32"
},
{
"name": "quantity",
"type": "uint16"
},
{
"name": "thrust",
"type": "uint32"
}
]
},
{
"name": "location_row",
"base": "",
"fields": [
{
"name": "id",
"type": "uint64"
},
{
"name": "coordinates",
"type": "coordinates"
},
{
"name": "epoch",
"type": "uint64"
},
{
"name": "good_id",
"type": "uint16"
},
{
"name": "supply",
"type": "uint16"
}
]
},
{
"name": "marketprice",
"base": "",
"fields": [
{
"name": "location",
"type": "coordinates"
},
{
"name": "good_id",
"type": "uint16"
}
]
},
{
"name": "marketprices",
"base": "",
"fields": [
{
"name": "location",
"type": "coordinates"
}
]
},
{
"name": "payloan",
"base": "",
"fields": [
{
"name": "account",
"type": "name"
},
{
"name": "amount",
"type": "uint64"
}
]
},
{
"name": "player_row",
"base": "",
"fields": [
{
"name": "owner",
"type": "name"
},
{
"name": "balance",
"type": "uint64"
},
{
"name": "debt",
"type": "uint64"
},
{
"name": "networth",
"type": "int64"
}
]
},
{
"name": "purgesupply",
"base": "",
"fields": [
{
"name": "max_rows",
"type": "uint64?"
}
]
},
{
"name": "salt",
"base": "",
"fields": [
{
"name": "salt",
"type": "uint64"
}
]
},
{
"name": "sellgoods",
"base": "",
"fields": [
{
"name": "ship_id",
"type": "uint64"
},
{
"name": "good_id",
"type": "uint64"
},
{
"name": "quantity",
"type": "uint64"
}
]
},
{
"name": "sequence_row",
"base": "",
"fields": [
{
"name": "key",
"type": "name"
},
{
"name": "value",
"type": "uint64"
}
]
},
{
"name": "ship_row",
"base": "",
"fields": [
{
"name": "id",
"type": "uint64"
},
{
"name": "owner",
"type": "name"
},
{
"name": "name",
"type": "string"
},
{
"name": "location",
"type": "coordinates"
},
{
"name": "skin",
"type": "uint8"
},
{
"name": "tier",
"type": "uint8"
},
{
"name": "state",
"type": "ship_state"
},
{
"name": "stats",
"type": "ship_stats"
},
{
"name": "loaders",
"type": "loader_stats"
},
{
"name": "travelplan",
"type": "travel_plan?"
}
]
},
{
"name": "ship_state",
"base": "",
"fields": [
{
"name": "energy",
"type": "uint32"
}
]
},
{
"name": "ship_stats",
"base": "",
"fields": [
{
"name": "capacity",
"type": "uint32"
},
{
"name": "drain",
"type": "uint32"
},
{
"name": "mass",
"type": "uint64"
},
{
"name": "maxmass",
"type": "uint64"
},
{
"name": "orbit",
"type": "uint16"
},
{
"name": "recharge",
"type": "uint32"
},
{
"name": "thrust",
"type": "uint64"
}
]
},
{
"name": "state_row",
"base": "",
"fields": [
{
"name": "enabled",
"type": "bool"
},
{
"name": "epoch",
"type": "uint64"
},
{
"name": "salt",
"type": "uint64"
},
{
"name": "ships",
"type": "uint32"
},
{
"name": "seed",
"type": "checksum256"
},
{
"name": "commit",
"type": "checksum256"
}
]
},
{
"name": "takeloan",
"base": "",
"fields": [
{
"name": "account",
"type": "name"
},
{
"name": "amount",
"type": "uint64"
}
]
},
{
"name": "travel",
"base": "",
"fields": [
{
"name": "id",
"type": "uint64"
},
{
"name": "destination",
"type": "coordinates"
},
{
"name": "recharge",
"type": "bool"
}
]
},
{
"name": "travel_plan",
"base": "",
"fields": [
{
"name": "departure",
"type": "time_point"
},
{
"name": "destination",
"type": "coordinates"
},
{
"name": "distance",
"type": "uint64"
},
{
"name": "flighttime",
"type": "uint32"
},
{
"name": "loadtime",
"type": "uint32"
},
{
"name": "rechargetime",
"type": "uint32"
},
{
"name": "masspenalty",
"type": "uint32"
},
{
"name": "mass",
"type": "uint64"
},
{
"name": "energyusage",
"type": "uint32"
}
]
},
{
"name": "travel_summary",
"base": "",
"fields": [
{
"name": "stats",
"type": "ship_stats"
},
{
"name": "loaders",
"type": "loader_stats"
},
{
"name": "origin",
"type": "coordinates"
},
{
"name": "destination",
"type": "coordinates"
},
{
"name": "distance",
"type": "uint64"
},
{
"name": "totalmass",
"type": "uint64"
},
{
"name": "acceleration",
"type": "float64"
},
{
"name": "flighttime",
"type": "uint32"
},
{
"name": "energyusage",
"type": "uint32"
},
{
"name": "rechargetime",
"type": "uint32"
},
{
"name": "masspenalty",
"type": "uint32"
},
{
"name": "loadtime",
"type": "uint64"
},
{
"name": "time",
"type": "uint64"
}
]
},
{
"name": "travelplan",
"base": "",
"fields": [
{
"name": "id",
"type": "uint64"
},
{
"name": "origin",
"type": "coordinates"
},
{
"name": "destination",
"type": "coordinates"
},
{
"name": "recharge",
"type": "bool"
}
]
},
{
"name": "traveltime",
"base": "",
"fields": [
{
"name": "id",
"type": "uint64"
},
{
"name": "destination",
"type": "coordinates"
}
]
},
{
"name": "updatecredit",
"base": "",
"fields": [
{
"name": "account",
"type": "name"
},
{
"name": "amount",
"type": "int64"
}
]
},
{
"name": "updatedebt",
"base": "",
"fields": [
{
"name": "account",
"type": "name"
},
{
"name": "amount",
"type": "int64"
}
]
},
{
"name": "upgradeship",
"base": "",
"fields": [
{
"name": "account",
"type": "name"
},
{
"name": "id",
"type": "uint64"
}
]
},
{
"name": "wipe",
"base": "",
"fields": []
},
{
"name": "wipesequence",
"base": "",
"fields": []
}
],
"actions": [
{
"name": "advance",
"type": "advance",
"ricardian_contract": "---\n\nspec_version: \"0.2.0\"\ntitle: advance\nsummary: 'Advance turn'\nicon: https://avatars.githubusercontent.com/u/147292861?s=400&u=3b1af66e90dd851f4d7c096ed6a2fbb4b9e190da\n\n---\n\nAdvance the game to the next turn."
},
{
"name": "arrive",
"type": "arrive",
"ricardian_contract": "---\n\nspec_version: \"0.2.0\"\ntitle: arrive\nsummary: 'Complete travel'\nicon: https://avatars.githubusercontent.com/u/147292861?s=400&u=3b1af66e90dd851f4d7c096ed6a2fbb4b9e190da\n\n---\n\nComplete the travel of a ship by updating its location to the destination coordinates after the travel duration has passed.\n\n---"
},
{
"name": "buygoods",
"type": "buygoods",
"ricardian_contract": "---\n\nspec_version: \"0.2.0\"\ntitle: buygoods\nsummary: 'Buy goods'\nicon: https://avatars.githubusercontent.com/u/147292861?s=400&u=3b1af66e90dd851f4d7c096ed6a2fbb4b9e190da\n\n---\n\nPurchase goods and add them to a ship's cargo."
},
{
"name": "buyship",
"type": "buyship",
"ricardian_contract": "---\n\nspec_version: \"0.2.0\"\ntitle: buyship\nsummary: 'Buy a new ship'\nicon: https://avatars.githubusercontent.com/u/147292861?s=400&u=3b1af66e90dd851f4d7c096ed6a2fbb4b9e190da\n\n---\n\nPurchase a new ship"
},
{
"name": "cleartable",
"type": "cleartable",
"ricardian_contract": "---\n\nspec_version: \"0.2.0\"\ntitle: cleartable\nsummary: 'DEBUG: cleartable action'\nicon: https://avatars.githubusercontent.com/u/147292861?s=400&u=3b1af66e90dd851f4d7c096ed6a2fbb4b9e190da\n\n---"
},
{
"name": "commit",
"type": "commit",
"ricardian_contract": "---\n\nspec_version: \"0.2.0\"\ntitle: commit\nsummary: 'Set commit value'\nicon: https://avatars.githubusercontent.com/u/147292861?s=400&u=3b1af66e90dd851f4d7c096ed6a2fbb4b9e190da\n\n---\n\nSet the initial commit value during game initialization.\n\n---"
},
{
"name": "enable",
"type": "enable",
"ricardian_contract": "---\n\nspec_version: \"0.2.0\"\ntitle: enable\nsummary: 'Set enabled state'\nicon: https://avatars.githubusercontent.com/u/147292861?s=400&u=3b1af66e90dd851f4d7c096ed6a2fbb4b9e190da\n\n---\n\nEnable or disable this game of Shipload.\n\n---"
},
{
"name": "hash",
"type": "hash",
"ricardian_contract": "---\n\nspec_version: \"0.2.0\"\ntitle: hash\nsummary: 'Calculate sha256 hash'\nicon: https://avatars.githubusercontent.com/u/147292861?s=400&u=3b1af66e90dd851f4d7c096ed6a2fbb4b9e190da\n\n---\n\nCalculates the sha256 hash of a string based using the game seed.\n\n---"
},
{
"name": "hash512",
"type": "hash512",
"ricardian_contract": "---\n\nspec_version: \"0.2.0\"\ntitle: hash512\nsummary: 'Calculate sha512 hash'\nicon: https://avatars.githubusercontent.com/u/147292861?s=400&u=3b1af66e90dd851f4d7c096ed6a2fbb4b9e190da\n\n---\n\nCalculates the sha512 hash of a string based using the game seed."
},
{
"name": "init",
"type": "init",
"ricardian_contract": "---\n\nspec_version: \"0.2.0\"\ntitle: init\nsummary: 'Initialize game seed'\nicon: https://avatars.githubusercontent.com/u/147292861?s=400&u=3b1af66e90dd851f4d7c096ed6a2fbb4b9e190da\n\n---\n\nInitialize a the games seed and seed values to bootstrap game state."
},
{
"name": "jettison",
"type": "jettison",
"ricardian_contract": "---\n\nspec_version: \"0.2.0\"\ntitle: jettison\nsummary: 'Jettison Cargo from Ship'\nicon: https://avatars.githubusercontent.com/u/147292861?s=400&u=3b1af66e90dd851f4d7c096ed6a2fbb4b9e190da\n\n---\n\nJettison cargo from the a ship and recalculate travel time."
},
{
"name": "join",
"type": "join",
"ricardian_contract": "---\n\nspec_version: \"0.2.0\"\ntitle: join\nsummary: 'Join a game'\nicon: https://avatars.githubusercontent.com/u/147292861?s=400&u=3b1af66e90dd851f4d7c096ed6a2fbb4b9e190da\n\n---\n\nJoin a game of Shipload\n\n---"
},
{
"name": "marketprice",
"type": "marketprice",
"ricardian_contract": "---\n\nspec_version: \"0.2.0\"\ntitle: marketprice\nsummary: 'Get price of good at location'\nicon: https://avatars.githubusercontent.com/u/147292861?s=400&u=3b1af66e90dd851f4d7c096ed6a2fbb4b9e190da\n\n---\n\nThis action determines the market price of a specified good at a given location.\n\n---"
},
{
"name": "marketprices",
"type": "marketprices",
"ricardian_contract": "---\n\nspec_version: \"0.2.0\"\ntitle: marketprices\nsummary: 'Get price of all goods at location'\nicon: https://avatars.githubusercontent.com/u/147292861?s=400&u=3b1af66e90dd851f4d7c096ed6a2fbb4b9e190da\n\n---\n\nThis action determines the market price of all goods at a given location."
},
{
"name": "payloan",
"type": "payloan",
"ricardian_contract": "---\n\nspec_version: \"0.2.0\"\ntitle: payloan\nsummary: 'Loan Payment'\nicon: https://avatars.githubusercontent.com/u/147292861?s=400&u=3b1af66e90dd851f4d7c096ed6a2fbb4b9e190da\n\n---\n\nMake a payment on an outstanding credit loan."
},
{
"name": "purgesupply",
"type": "purgesupply",
"ricardian_contract": ""
},
{
"name": "salt",
"type": "salt",
"ricardian_contract": "---\n\nspec_version: \"0.2.0\"\ntitle: salt\nsummary: 'Append Salt'\nicon: https://avatars.githubusercontent.com/u/147292861?s=400&u=3b1af66e90dd851f4d7c096ed6a2fbb4b9e190da\n\n---\n\nAdd additional salt to the next epoch seed.\n\n---"
},
{
"name": "sellgoods",
"type": "sellgoods",
"ricardian_contract": "---\n\nspec_version: \"0.2.0\"\ntitle: sellgoods\nsummary: 'Sell goods'\nicon: https://avatars.githubusercontent.com/u/147292861?s=400&u=3b1af66e90dd851f4d7c096ed6a2fbb4b9e190da\n\n---\n\nSell goods from a ship's cargo.\n\n---"
},
{
"name": "takeloan",
"type": "takeloan",
"ricardian_contract": "---\n\nspec_version: \"0.2.0\"\ntitle: takeloan\nsummary: 'Credit Loan'\nicon: https://avatars.githubusercontent.com/u/147292861?s=400&u=3b1af66e90dd851f4d7c096ed6a2fbb4b9e190da\n\n---\n\nBorrow credits from the bank that will need to be repaid."
},
{
"name": "travel",
"type": "travel",
"ricardian_contract": "---\n\nspec_version: \"0.2.0\"\ntitle: travel\nsummary: 'Move a ship'\nicon: https://avatars.githubusercontent.com/u/147292861?s=400&u=3b1af66e90dd851f4d7c096ed6a2fbb4b9e190da\n\n---\n\nInitiate travel of a ship from its current location to a new destination.\n\n---\n\nThis action determines the market price of all goods at a given location."
},
{
"name": "travelplan",
"type": "travelplan",
"ricardian_contract": "---\n\nspec_version: \"0.2.0\"\ntitle: travelplan\nsummary: 'Estimate a travel plan'\nicon: https://avatars.githubusercontent.com/u/147292861?s=400&u=3b1af66e90dd851f4d7c096ed6a2fbb4b9e190da\n\n---\n\nCalculate what the travel plan is for a ship traveling to a given location.\n\n---"
},
{
"name": "traveltime",
"type": "traveltime",
"ricardian_contract": "---\n\nspec_version: \"0.2.0\"\ntitle: traveltime\nsummary: 'Estimate Travel Time'\nicon: https://avatars.githubusercontent.com/u/147292861?s=400&u=3b1af66e90dd851f4d7c096ed6a2fbb4b9e190da\n\n---\n\nEstimate the duration of a ship traveling without committing to the action.\n\n---"
},
{
"name": "updatecredit",
"type": "updatecredit",
"ricardian_contract": "---\n\nspec_version: \"0.2.0\"\ntitle: updatecredit\nsummary: 'DEBUG: updatecredit action'\nicon: https://avatars.githubusercontent.com/u/147292861?s=400&u=3b1af66e90dd851f4d7c096ed6a2fbb4b9e190da\n\n---"
},
{
"name": "updatedebt",
"type": "updatedebt",
"ricardian_contract": "---\n\nspec_version: \"0.2.0\"\ntitle: updatedebt\nsummary: 'DEBUG: updatedebt action'\nicon: https://avatars.githubusercontent.com/u/147292861?s=400&u=3b1af66e90dd851f4d7c096ed6a2fbb4b9e190da\n\n---"
},
{
"name": "upgradeship",
"type": "upgradeship",
"ricardian_contract": "---\n\nspec_version: \"0.2.0\"\ntitle: upgradeship\nsummary: 'Upgrade a Ship'\nicon: https://avatars.githubusercontent.com/u/147292861?s=400&u=3b1af66e90dd851f4d7c096ed6a2fbb4b9e190da\n\n---\n\nUpgrade a ship to the next tier."
},
{
"name": "wipe",
"type": "wipe",
"ricardian_contract": "---\n\nspec_version: \"0.2.0\"\ntitle: wipe\nsummary: 'DEBUG: wipe action'\nicon: https://avatars.githubusercontent.com/u/147292861?s=400&u=3b1af66e90dd851f4d7c096ed6a2fbb4b9e190da\n\n---"
},
{
"name": "wipesequence",
"type": "wipesequence",
"ricardian_contract": "---\n\nspec_version: \"0.2.0\"\ntitle: wipesequence\nsummary: 'DEBUG: wipesequence action'\nicon: https://avatars.githubusercontent.com/u/147292861?s=400&u=3b1af66e90dd851f4d7c096ed6a2fbb4b9e190da\n\n---"
}
],
"tables": [
{
"name": "cargo",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "cargo_row"
},
{
"name": "location",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "location_row"
},
{
"name": "player",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "player_row"
},
{
"name": "sequence",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "sequence_row"
},
{
"name": "ship",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "ship_row"
},
{
"name": "state",
"index_type": "i64",
"key_names": [],
"key_types": [],
"type": "state_row"
}
],
"ricardian_clauses": [
{
"id": "Shipload (Server)",
"body": "Shipload (Server)"
}
],
"error_messages": [],
"abi_extensions": [],
"variants": [],
"action_results": [
{
"name": "hash",
"result_type": "checksum256"
},
{
"name": "hash512",
"result_type": "checksum512"
},
{
"name": "marketprice",
"result_type": "good_price"
},
{
"name": "marketprices",
"result_type": "good_price[]"
},
{
"name": "travelplan",
"result_type": "travel_plan"
},
{
"name": "traveltime",
"result_type": "travel_summary"
}
]
}