(last updated 10/12/2022, next update approximately ~11/14/2022 following a monthly cadence)
To keep Sui builders up to date with the latest happenings, we are maintaining the following list of developer-facing changes coming in the next ~30 days. While we strive to be accurate, the timing of the landing/release of these features is subject to change. More thorough documentation and references will be available as each feature is released to Devnet. Please continue to monitor Devnet release notes for the source of truth on what is currently deployed--this list is about what's next!
- The gateway component will be deprecated soon and we'll give community sufficient heads up once the dates are finalized. With this deprecation, clients will now communicate directly with full nodes, and full nodes will act as quorum driver (i.e., accept transactions, form a certificate + certificate effects, return the effects to the client).
- Dynamic child object support is still WIP. The features eliminates the need to explicitly pass child objects as transaction inputs, and enables rich new collection types (e.g., large hash maps with dynamic lookup).
- We are adding new pay transaction types for generic payments [NFT standard proposal]. See below for more details.
- Working on a Typescript migration guide to enable smooth transition from using Gateway to Full nodes [Breaking Change].
getObject
andgetRawObject
will be merged, andDataEncoding
arg will be used to choose between parsedJSON and BCS encoding types.- Adding
getCoin
andgetBalance
methods - Adding
pay
, which will take multiple coins, splits & merges them within the same transaction when needed, and transfers the resulting coins to multiple recipients. DeprecatingsplitCoin
,splitCoinEqual
andmergeCoin
in that process, as they can all be done via thepay
endpoint [Breaking Change]. - Adding
PaySui
transaction type, which takes multiple coins and transfer them to a single recipient, while paying gas with the input coins. DeprecatingTransferSui
asPaySui
is a generalized version of it [Breaking Change]. - Adding
estimateTransactionComputationCost
for transaction cost estimation. - Adding
selectCoins
to select coins for gas payments, pay etc. - Standardizing the return type of u64 to string.
- Intent signing support which will include an intent struct to be serialized and signed in addition to the transaction data [Issues].
- [Rust SDK] Removing reliance on String and Json Values in Rust Transaction Builder, making it more Rust friendly
- Adding denomination conversion functionality, which converts SUI to MIST.
- [TypeScript] Adding support for deserializing transactions.
- Crypto.move will be split into its individual modules organized by crypto primitives [PR].
- Supporting dynamic child access requires additional time due to newer complexities discovered and we are actively working on enabling it on Devnet ASAP.
- Support for passing mutable coins instead of owned.
- New autogenerated docs for the Sui Framework [link].
- Enable shared coins via Safe module [PR].
- Support for type reflection [PR].
- Support for
_
's in integer literals (e.g.,let one_million = 1_000_000
).
- Intent signing support: Same as in SDK. Also, making the Sui keystore ChainID aware as well as password protected.
- Source verification for dependent packages enforced at publish time.
- As a precursor to integrating Faucet into Sui CLI/SDKs/Wallet, rate-limiting will be enforced on the faucet server to no more than 20 requests in 24 hours, originating from the same ip address.
- Adding support for requesting Gas coins from the faucet.