Race Protocol: A multi-chain infrastructure for asymmetric competitive games
- Facade: Argument format updated. Now it receives
-g
for game, and-b
for bundle.
- Now we use
id: u64
instead ofaddr: string
in games. The value ofid
is taken from theaccess_version
which is incremental and unique in game. This update helps us to improve the performance and reduce the sizes of checkpoints and states. - API:
Effect::count_players
andEffect::count_servers
has been removed, useEffect::count_nodes
to count how many nodes are involved in the randomization. - SDK:
AppClient.getProfiles
now receives bothaddr: string
andid: bigint
. - TestKit: Add
TestClient::join
.
- SDK: Remove dependency
crypto
to support NodeJS runtime. - CLI: Print
checkpoint
in hex format in commandgame-info
. - TestKit: Add
handle_dispatch_until_no_events
to TestHandler.
- CLI: Update
publish
command. Now it receives the path to the WASM bundle instead of the Arweave URL to solana metadata. - Add optional
createProfileIfNeeded
to join options. - SDK: Add
recipientClaim
and its solana implementation.
- Transactor: Improve the retry mechanism for settle.
- SDK: Load the legacy solana token list from arweave.
- SDK: Clean the timer after exit. Simplify the usage of timer in connection.
- Transactor: Log serialized effect and event when a wasm runtime error occurs.
- SDK: Fix broken on consecutive
SecretsReady
events.
- SDK: Add fake NFT data to facade transport.
- Remove duplicated definitions for
SecretIdent
andSecretShare
, which causes the compliation error.
- SDK: Add
npx borsh-serialize
to js/borsh.
- Transactor & Contract: Squash transactions for better performance.
- CLI: Display token address in
game-info
.
- Transactor: Fix sending duplicated settlements.
- SDK: Fix double reconnecting.
- CLI: Recover fees in
unreg-game
. - CLI: Display slot's balance in
recipient-info
command.
- Solana: Fix NFT caching
- Now games must implement
into_checkpoint
.
- SDK & Transactor & Contract: Add checkpoint to on-chain game account so that we can reproduce correct game state without querying transactor.
- SDK: Add meaningful return value for transport API.
- Solana: Fix compute budget limit.
- CLI: Add
claim
command to claim tokens from a recipient account.
- SDK: Add caching for token/NFT fetching.
- SDK: Add caching for game bundle fetching. (Caching for wasm module is TBD)
- SDK: Add
data
anddataLen
toAppHelper.info
. - SDK: Add original metadata to NFT structure.
- CONTRACT: Remove
claim_amount_cap
.
- A minimal crate
api
is separated fromcore
. This crate will replace the oldcore
and be used in game bundle.
- SDK: Add new parameter
onConnectionState
toAppClientInitOpts
. A function is expeceted to receive one string argument which represents the network status to transactor. - SDK: Add reconnecting.
- Transactor: Add local blacklist for malformed game address. Add
disable_blacklist = true
to[transactor]
section in config file to disable. - Transactor: Add task queue in transactor submitter.
- CLI: Add
recipient-info
command for querying the recipient structure by address. - SDK: Add
bundleAddr
andtokenAddr
to game info. - SDK: Fix
listTokens
andgetToken
in facade transport. - SDK: Close the websocket connection when exit game.
It basically works with a Holdem game