All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
wait_for_transaction
added to AsyncSuiGQLClient
- enhancement Validator paging
- GraphQL: Transaction execution adds BCS in result (Base64 encoded bcs serialization of the on-chain transaction effects.)
- GraphQL: bcs_txne.py BCS Definition for V1 and V2 TransactionEffects
- change
- JSON RPC: Sync and Async transactions accept Argument as recipient in
transfer_objects
- GraphQL: Sync and Async transactions accept Argument as recipient in
transfer_objects
- JSON RPC: Sync and Async transactions accept Argument as recipient in
- enhancement
- Signing personal message with intent added to SuiKeyPair as
sign_personal_message
- Verifying personal message with signature added to SuiKeyPair as
verify_personal_message
- Signing personal message with intent added to SuiKeyPair as
- EventGQL type
sender
declaration - bug to fixup after including this release:
- Delete the previous configuration
rm -rf ~/.pysui
or where you may have initially located it - Restart the app/script that was previously failing
- Delete the previous configuration
- bug GraphQL argument validator was not handling bool
- GetEvents inline docs
- GraphQL schema removed event type from event enumeration in StandardEvent fragment
- Deprecated
sign_message
on sui_crypto SuiKeyPair - Deprecated
verify_message
on sui_crypto SuiKeyPair
- enhancement Asynch PTB
gen_doc_qnode
added to refresh QueryNode documentation (link table)sgqls
script to persist Sui GraphQL schemas. Seesgqls -h
orpython samples/sgqls.py -h
- Bump version 0.69.0
- GraphQL Schema updates for fields in
serviceConfig
- Validate with 1.35.0 JSON RPC Schema
- Validate with 1.34.0 GraphQL Schema
BREAKING CHANGES to GraphQL multi-schema support and Mysten URL availability BREAKING CHANGES Removed pysui legacy sample apps: wallet, async-gas, async-sub, async-sub-txn BREAKING CHANGES Renamed pysui GraphQL sample apps: walletg to wallet, async-gasg to async-gas
- Docs for native types used in transaction builder arguments
- GraphQL DryRun gas price expects int (Uint53)
- Bump version 0.68.0
- On PysuiConfiguration, renamed
active_env
property toactive_profile
- Mysten GraphQL removed
devnet-beta
url and only supports:
- Support for Sui GraphQL multi-schema removed from providers and Sui GraphQL clients.
- signatures on transactions to:
- QueryNodes: GetMultipleTx and GetFilteredTx
- Fragments: StandardTransaction
- Result Types: TransactionResultGQL and TransactionSummaryGQL
- bug Encoding of bytes argument (GraphQL)
- bug When previous txn digest not present (GraphQL)
- Handling exception for unsupported schema version query at initiatlization of client (GraphQL)
- Bump version 0.67.0
sui_move
package. Obsoleted move binarie readers/parsers
- On PysuiConfiguration:
new_group
- creates a new PysuiConfiguration groupadd_keys
adds a collection of keys and optional aliases to a groupnew_profile
creates equivalant of Sui CLI new-envupdate_profile
updates profile values
- Coin deserialization failed when previousTransactionBlock has been pruned
- Validate GraphQL schema existence before adding to available list
- bug Fixed publish that broke with enums
- Set version 0.66.0
- Update PysuiConfiguration docs
- Reorganized initiatlization of PysuiConfiguration and run time rebuilding from
client.yaml
BREAKING CHANGES to GraphQL support
- BREAKING SuiConfig is no longer used to instantiate a GraphQL client, instead use PysuiConfiguration
- Updated GraphQL client to use PysuiConfiguration
- Updated GraphQL transaction builder to use PysuiConfiguration
- Updated GraphQL samples to use PysuiConfiguration
- Updated
walletg
andasync_gasg
to use PysuiConfiguration - PysuiConfiguration, SyncGqlClient and AsyncGqlClient as aliases in
pysui.__init__
- change GraphQL remove SuiTransaction legacy dependency
- Deprecated Event and Transaction subscriptions and subscription Client
- Deprecate all Builders
BREAKING CHANGES
- GraphQL default and override schema usage (testnet and mainnet only, devnet does not support)
- Sui introduced support for multiple concurrent GraphQL schemas
- pysui suports setting the default schema at client init
- pysui supports overriding the default schema at execution requests
- pysui QueryNodes can define schema specific versions
- bug walletg gas command
- BREAKING pysui GraphQL clients replaced properties with functions taking optional versions
- BREAKING GraphQL SuiTransaction
txer.build_and_sign()
returns a dict now - Updated
pgql_s_example.py
- Updated
pgql_s_ptb.py
- Updated
pgql_a_example.py
- Serialization of pysui GraphQL SuiTransaction to Sui Wallet JSON standard (schema version 2)
pgql_wallet_ser.serialize_to_wallet_standard
- Deserialization of Sui Wallet JSON standard (schema version 2) to dataclasses
pgql_wallet_deser.deserialize_from_wallet_standard
- Deserialization of Sui Wallet JSON standard (schema version 2) to pysui GraphQL SuiTransaction
pgql_wallet2txn_deser.deserialize_to_transaction
- PR Fix typos
- GetLoadedChildObjects as Sui 1.28.0 removed RPC "sui_getLoadedChildObjects"
availableVersions
list andmutationTimeoutMs
to ServiceConfigGQL
- bug GraphQL GetPackage and GetFunction fail converting to dataclass
- bug Passing str doesn't convert to vector (GraphQL SuiTransaction)
- Fixed handling case of unresolvable UpgradeCap fetch in GraphQL SuiTransaction `publish_upgrade``
- Regression in arg processor for GraphQL Transaction building
- PR Return address instead of failing when address already exists
GetTxKind
query node for fetching transaction type details- Only ProgrammableTransactionBlock, ConsensusCommitPrologueTransaction, and GenesisTransaction kinds supported
- Added
do_tx_kind
function to synch and asynch graphql samples
- `GetFilteredTx`` query node that fetches all transactions with TransactionBlockFilter set
- Added
do_filter_txs
function to synch and asynch graphql samples
- Added
- Passing optional global HTTP client headers in SuiGQLClient constructor.
- Accepts a dict (e.g.
{"headers":{"...":...}}
) - If not provided, defaults to
{"headers":None}
(see next)
- Accepts a dict (e.g.
client_headers
property to GraphQL clients (read only, produces copy)with_headers
argument to clientexecute...
methods.- During execution, merges provided with global headers:
hdr = self.client_headers hdr = hdr if not with_headers else hdr.update(with_headers)
- Single permanent reconnecting async session for
AsyncSuiGQLClient
- Document updates (added graphql transaction builder samples)
- Bumped dataclasses-json to 0.6.6
- Sui binary support range 1.20.x -> 1.27.x
query_node_to_string
to pysui GraphQL clients- Package object_type discriminator in ObjectReadGQL
do_stake
anddo_unstake
in GraphQL samples- Support for
0x1::string::String
move call parms:&String
(e.g.args=["foo"]
)Option<String>
(e.g.args=["foo"]
orargs=[None]
)vector<String>
(e.g.args=[["foo","bar"]]
)
- Cursor on MovePackageGQL for modules enabled in query node GetPackage
- Cursor through all modules for
do_package
in sample - Cursor on MoveFunctionsGQL enabled in query node GetFunctions
- Cursor on MoveStructuresGQL enabled in query node GetStructures
- Enabled cursor in query node GetValidatorsApy
- GetTx querynode includes richer effects for object changes content.
split_coin_and_return
from GraphQL SuiTransaction. Less costly to just split and transfer
- build_and_sign() to GraphQL SuiTransaction
merge_some
andsplit_1_half
examples transactions in pgql_s_example.py
- Bump support to Sui 1.24.0
- SuiCoinObjectGQL now supports various owner types (AddressOwner, Immutable, Shared, Parent)
- Support for using bech32 encoded private keys in
SuiConfig.user_config
- Support using Sui GraphQL in devnet
- Add
gql_url
argument to support setting GraphQL RPC host URL toSuiConfig.user_config(...)
- Overlap on Validator and ValidatorSet data class
- PR - Fix typo
- PR - Remove useless sleep in subscription management
- Bumped pysui-fastcrypto to 0.5.0 supporting bech32 private key encoding/decoding
- Persisted schema filename changed to
ENVIRONMENT_schema-YYYY.MAJOR.MINOR-PATCH.graphql
fromENVIRONMENT_schema-YYYY_MAJOR_MINOR-PATCH.graphql
walletg
in samples providing CLI using Sui GraphQL RPC- Includes dry run for either TransactionData or TransactionKind
- Includes executing signed transactions
- SPDX-License-Identifiers
- GraphQL support custom URL
- GraphQL clients now have explicit execute for string, DocumentNode or QueryNode
- Deprecating synch and asynch GraphQL client
execute_query
- DryRun (GraphQL) result now contains return values (if any) of transaction block
- ObjectReadDeletedGQL for objects that have been wrapped into other object or deleted
- Removed ValueError exception if the dry run transaction block status not equal to 'SUCCESS'. This dry run is the one invokved to obtain a budget value when none provided.
- Fixed GraphQL Protocol Configuration fetch by explictly requesting the latest known version in production.
- Beta Transaction building version using GraphQL ->
from pysui.sui.sui_pgql.pgql_sync_txn import SuiTransaction
- Simplified interface using basic python types for all commands (split_coin, move_call, etc.)
- Argument inferencing will encode arguments from basic python types to expected parameters
- BCS
Optional
factory for GraphQL transaction builder - Dataclass for GraphQL Staked coins
- ObjectRef (ImmOrOwnedObject, SharedObject) added ingestion for ObjectReadGQL and SuiCoinObjectGQL
- Simple GraphQL PTB demo
pgql_s_ptb.py
- Bump Sui version support to include 1.18.x - 1.21.0
- DryRunTransactionKind GraphQL QueryNode
- change Devnet Faucet V1
- change Support Sui SharedObject delete
- Deprecating chain data queries on Sync JSON-RPC SuiClient and Async JSON-RPC SuiClient
- Bumped support to Sui 1.20.0
- Support for GraphQL on mainnet
- Continue porting of Builders to QueryNodes for GraphQL. Note not all Builders may be ported and the data fields and format results, while similar, are not guarenteed to be identical. See pgql_query.py for details.
- Continue porting of Builders to QueryNodes for GraphQL
- Bumped support to Sui 1.18.0, back compatible from 1.17.x
** BREAKING CHANGES **
- bug Fixed type arguments BCS with nested type array
- bug sui_devInspectTransactionBlock now takes addtional args
- BREAKING Sui GraphQL RPC new update, only testnet support. Most pre-defined QueryNode's changed.
- DEFAULT_SUI_CONFIG_PATH and DEFAULT_SUI_CLIENT_CONFIG constants
- SuiConfig.pysui_config(path_to_folder) - Unique client.yaml, sui.aliases and sui.keystore with persist support.
- test_emphemeral_creates
- test_txb_publish
- Alias and GraphQL Docs
- Bumped httpx to 0.26.x
- Changed Sui support to include >= 1.12.0 through >=0.17.0
- Allow '.' in address alias names, regex =
^[a-zA-Z][a-zA-Z0-9._-]*$
- bug Address generation from private keys included in SuiConfig.user_config() regression.
** BREAKING CHANGES **
- GraphQL (queries, fragments, client) for testnet or mainnet snapshot queries.
- Breaking: SuiTransaction publish, publish_upgrade and custom_upgrade args_list
- Wallet added alias listing and change alias
- Wallet commands that took Sui Address can now take an alias
- Wallet
new-address
command now takes optional alias name argument [-a,--alias] - Breaking:
- SuiConfig.create_new_keypair_and_address now requires keyword arguments
- Wallet
gas
command added alias option [-a,--alias] and renamed the address option to [-o,--owner] - Wallet
objects
command added alias option [-a,--alias] and renamed the address option to [-o,--owner] - Wallet
faucet
command added alias option [-a,--alias] and renamed the address option to [-o,--owner] - Wallet
transfer-object
- Added alias option [-a,--alias] and renamed the signer [-s,--signer] option to [-o,--owner]
- See
wallet transfer-object -h
for additional command changes
- Wallet
transfer-sui
- Added alias option [-a,--alias] and renamed the signer [-s,--signer] option to [-o,--owner]
- See
wallet transfer-sui -h
for additional command changes
- Wallet
pay
- Added alias option [-a,--alias] and renamed the signer [-s,--signer] option to [-o,--owner]
- See
wallet pay -h
for additional command changes
- Wallet
paysui
- Added alias option [-a,--alias] and renamed the signer [-s,--signer] option to [-o,--owner]
- See
wallet paysui -h
for additional command changes
- Wallet
payallsui
- Added alias option [-a,--alias] and renamed the signer [-s,--signer] option to [-o,--owner]
- See
wallet payallsui -h
for additional command changes
- Wallet
split-coin
- Added alias option [-a,--alias] and renamed the signer [-s,--signer] option to [-o,--owner]
- See
wallet split-coin -h
for additional command changes
- Wallet
merge-coin
- Added alias option [-a,--alias] and renamed the signer [-s,--signer] option to [-o,--owner]
- See
wallet merge-coin -h
for additional command changes
- Wallet
split-coin-equally
- Added alias option [-a,--alias] and renamed the signer [-s,--signer] option to [-o,--owner]
- See
wallet split-coin-equally -h
for additional command changes
- Wallet
publish
- Added alias option [-a,--alias] and renamed the signer [-s,--signer] option to [-o,--owner]
- See
wallet publish -h
for additional command changes
- Wallet
call
- Added alias option [-a,--alias] and renamed the signer [-s,--signer] option to [-o,--owner]
- See
wallet call -h
for additional command changes
- bug Publish was breaking due to change in
sui move build
output generation.
- enhancement Support for address/kp aliases
- enhancement:
- Added 'aliases' topic in documentation with more details and examples
- Added optional 'make_active' flag to:
- SuiConfig.create_new_keypair_and_address
- SuiConfig.recover_keypair_and_address
- ConsensusCommitPrologueV2 type transaction added to TxResult.
- Bumped libraries: dataclasses-json, httpx, websockets
- Bumped dev libraries: mypy, pytest, pylint, sphinx_rtd_theme
- change Default 'compress_inputs' on SuiTransaction to True
- Deprecating 'round' from RandomnessStateUpdate transaction type as of Sui 1.16.0
- change Removed constraint on SuiTransaction.make_move_vector that failed if arguments were pure.
- TransactionData added 3 new transaction kinds: AuthenticatorStateUpdate, RandomnessStateUpdate and EndOfEpochTransaction.
- Low end Sui support version set to 1.10.0
- Restructure README
- enhancement The added compress_inputs option, if set, compresses same input types with same values.
-
BREAKING change SuiTransaction (sync and async) now require key value arguments in constructors.
-
BREAKING change Added type "Receiving" to object_registry for ser/de support.
- Bumped supported pysui-fastcrypto from 0.2.0 to 0.3.0
- Move to VSC bundled formatter
ms-python.black-formatter
- Url for testnet faucet
- Bumped supported Sui RPC to 1.13.0
- bug Fix for checking for Receiving. Manifested in
make_move_vector
- Updated doc theme dependency
- enhancement Receiving object call argument
- enhancement Start using protocol config for feature constraints. First application is for Receiving
- Bumped httpx and h2 lib versions
- Sui RPC 1.11.0 support
- Sui RPC 1.6.0 support
legacy_digest
option fromsui_utils.publish_build
- Sui RPC 1.11.0 support
- bug uleb128 encoding of pure vectors (i.e. vector, etc.)
- Bumped dataclasses-json to 0.6.0
gas_budget
now optional onSuiTransaction.get_transaction_data
- Sui RPC 1.6.0 support
legacy_digest
option fromsui_utils.publish_build
- enhcancement SuiTransaction supports offline signing.
SuiTransaction.deferred_execution
takes same arguments asSuiTransaction.execute
but returns a base64 string that can be signed and then used in theExecuteTransaction
builder. BaseMultiSig
, base class forMultiSig
, that supports constructing with just publickeys. When signatures are gathered then useBaseMultiSig.signature_from
for generating the MultiSig signature. Attemptinig toSuiTransaction.execute
when using BaseMultiSig will failSuiConfig.keypair_for_publickey
method
- bug Constraint on vector limits constant was replaced but validation routine not updated
- bug MultiSig constraints changed to address.
- KeyPair: signing (
sign_message
) arbitrary base64 strings and verifying (verify_signature
) signatures.
- bug Failure evaluating Command in
verify_transaction(...)
- Fails gracefully if calling
get_gas_from_faucet
on SuiClient's with non-supported config.
- change Changes in align with new suibase proxy configuration
- change Bump pysui-fastcrypto version requirement see
- deprecating sui_utils
publish_build
option. Will remove in 0.36.0 - bumped pysui-fastcrypto depedency to >= 0.2.0
- pkg_resources dependency in sui_clients.common.py
- Bumped pysui version
- Bumped RPC API versions
BREAKING CHANGE
With this release, the bip-utils
library has been removed in favor of pysui-fastcrypto
. This is a
Python wrapper around the MystenLabs fastcrypto
Rust crate.
Because of this change, installing pysui now requires Rust and Cargo to be installed, see Rust Install. This will allow the Rust crate and wrapper to be built specific to your platform.
- enhancement SuiTransaction serialize/deseralize
- enhancement Ability to add a new key to the
SuiConfig. The argument can either be a Sui keystring or a dict for importing keys exported from Wallet. The
dict must take the form of:
{ 'wallet_key':'0x.....', # Wallet exported key hex string (66 chars with 0x prefix) 'key_scheme': SignatureScheme.XYZ # Where XYZ is one of {ED25519, SECP256k1, SECP256r1} }
- The concert with the above enhancement, if initiating
pysui
withSuiConfig.user_config(...)
theprv_keys
parameter can be a list of Sui keystrings, the dict as described above, or both.
- bug Attempt to write to non-existant keystore
- [change]((#144)
pysui
now requires pysui-fastcrypto - [change]((#145) Per change above, removed all but generic SuiKeyPair, SuiPublicKey and SuiPrivateKey classes
- change Allowing transaction command Result in split_coin amounts list
create_new_keypair_and_address
on SuiConfig now takes word_counts (int) instead of mnemonic phrase- Simplified MultiSig BCS construct
- Documentation
pyroaring
andbip-utils
libraries. You should rebuild your virtual environment using new requirements.txt- bcs MultiSigLegacy that used
pyroaring
bitmap construct
BREAKING CHANGE
- OP_STRATEGIES.md explaining deprecation, release and publishing strategies
- BREAKING bug See 'Changed' below this line...
- The SuiTransaction execute method's
gas_budget
argument now strictly sets the gas budget for the transaction. Prior, an inspection would be run and pysui used the greater of the two. Now,gas_budget
's default is an emptry string ("") and by leaving it that way a dryRun will be run prior to execution to set the budget.
- OP_STRATEGIES.md explaining deprecation, release and publishing strategies
- Typos
- RPC API version range check in
pysui/sui/sui_clients/sui_common.py
covering 1.5.x to 1.7.x - Documentation
- Deprecating in
sui_crypto
all specific keytype classes (i.e. suffixed ED25519, SECP256K1 and SECP256R1) .
- SuiTransaction verifies against ProtocolConfig transaction constraints.
txn.verify_transaction()
can be run prior to transaction execution - SuiTransaction run_verification flag to
txn.execute(...)
. - TransactionKindInQuery QueryTransaction filter, supported in indexer nodes
- FromOrToAddressQuery QueryTransaction filter, supported in indexer nodes
- Deprecating legacy MultiSig support in favor of Sui 1.4.0 MultiSig changes, will be removed in pysui 0.33.0.
- TxResponse
checkpoint
field to Optional[str] type, was previously Optional[int] - change - Protocol constraints
- change - Dependencies update in requirements.txt
- Documentation (removed legacy add/change/deprecated footnotes)
- bug Reuse of identical 'pure' values breaks on move contract
- bug Invalid assertion in merge_coins removed
MAJOR BREAKING CHANGES
non_refundable_storage_fee
to GasCostSummary as part of TxResult effects- CODE_OF_CONDUCT.md
- Extend debug logging in low level transaction builder
- BREAKING change Transaction package (sui_txn)
- change samples updated to accomodate breaking #132
- change changes to gas payment strategy
- Generalized raising Value error(s) during transaction execution prep whereas previously it would exit the application
- Document typo tweaks
-
BREAKING change Builders removed use SuiTransaction:
- BatchTransaction
- Publish
- MoveCall
- RequestAddStake
- RequestWithdrawStake
- SplitCoinEqually
- SplitCoin
- MergeCoin
- PaySui
- Pay
- TransferSui
- TransferObject
-
BREAKING change Client methods removed (both sync and async SuiClient) use SuiTransaction:
- publish_package_txn
- move_call_txn
- split_coin_equally_txn
- split_coin_txn
- merge_coin_txn
- transfer_object_txn
- transfer_sui_txn
- pay_allsui_txn
- pay_sui_txn
- pay_txn
- bug - SuiClient
get_events
- change - improve SuiTransaction constructor performance
continue_on_close
argument to subscriptionnew_event_subscription()
andnew_transaction_subscription()
client.get_gas()
,client.get_coin()
andclient.get_objects()
now include afetch_all
option.client.get_objects_for()
now handles large lists- Common convenient imports in pysui.init.py
samples/async_gas.py
now returns all gas objectssamples/wallet.py
"gas" command now returns all gas objects- SuiConfig now respects non-standard aliases in
client.yaml
- Cleaned up modules still logging to root
- Refactored subscription connection handling
- Preliminary logging docs
- enhancement
- enhancement
- enhancement
- synch and asynch SuiClient methods marked for deprecation, use
equivalent SuiTransaction/SuiTransactionAsync methods instead.
Will be removed from code in
pysui
v0.30.0:- publish_package_txn
- move_call_txn
- split_coin_equally_txn
- split_coin_txn
- merge_coin_txn
- transfer_object_txn
- transfer_sui_txn
- pay_allsui_txn
- pay_sui_txn
- pay_txn
- Fell back to minimum RPC version support from 1.4.0 to 1.3.0
- Added additional Exception handler in subscription._subscription_drive
- Renabled 'ping' on subscription
- Any exception in subscription._subscription_drive now returns any accumulated handler data returns
- SSL context on sync and async SuiClients
- subscriptions now support both sync/async handlers
- async_sub.py -> Include a dump of data collected during handling subscription events
- Bug in secp256k1 signing, indirectly also impacted MultiSig
- Support for new MultiSig format (1.4.x+) and maintaining backlevel support (1.3.x) change
- Atomic Builders marked for deprecation, use
equivalent SuiTransaction/SuiTransactionAsync methods instead.
Will be removed from code in
pysui
v0.30.0:- BatchTransaction
- Publish
- MoveCall
- RequestAddStake
- RequestWithdrawStake
- SplitCoinEqually
- SplitCoin
- MergeCoin
- PaySui
- Pay
- TransferSui
- TransferObject
- SuiTransactionAsync enhancement
- Subscription switch from list to dict bug
- README.md
- Relaxed user configuration initialization, initial private keystring no longer required
- New 'binary-free' SuiConfig load option
SuiConfig.user_config
. See documentation
- Publish utiilty now throws a ValueError if attempting while using
SuiConfig.user_config
- SuiTransaction
execute
argumentgas_budget
is now optional, defaults to 1M Mists - Extended SuiTransaction
execute
to include options to provide tosui_executeTransactionBlock
- GetStakesById builder supporting Sui RPC API
suix_getStakesByIds
- MultiSig and Sponsor SuiTransaction test
- Publish SuiTransaction test
- README.md
- Improved SuiTransaction
execute
performance - Bump Deprecated library version
- SuiConfig method to recover key from mnemonics and derivation path enhancement
- Object mutabilty in SuiTransaction bug
- RPC parameter changed to map from array change
- Refresh docs for Builder references
- Object options test individual flags
- Object fetch options bug
- GetChainID builder supporting Sui RPC API
sui_getChainIdentifier
in 1.2.0
- Upgraded library dependencies websockets, httpx
- Upgraded dev library dependencies pylint, pydocstyle, pytest, black, build, twine, sphinx_rtd_theme
- SigningMultiSig example documentation in Programmable Transaction section
- PyPi packaging repository link
- Removed dependency on
secp256k1
library and converted key handling to usebip-utils
- Publish documentation emphasizing that UpgradeCap must be transferred as part of SuiTransaction
- Minor documentation changes
- Added MoveEventModuleQuery filter for queryEvents
- Renamed from MoveEventField to MoveEventFieldQuery for queryEvents
split_coin_and_return
on SuiTransaction. Like split_coin_equally but splits and doesn't transfer back to self, instead returns list where each element and list can be sent/transferred/used in subsequent transactions.public_transfer_object
on SuiTransaction, exposes 0x2::transfer::public_transfer
- MultiSig signing regression in SuiTransaction
- Refactored sui_crypto.create_new_keypair
- Pure python multisig signing, reducing dependencies on Sui binaries enhancement
pyroaring
added to requirements.txt and package build
- Use of multisigs in SuiTransaction bug
- SuiTransaction now takes an optional
item_type
argument that is a string triple of the type of objects you are making a vector of
- GetProtocolConfig builder and response supporting Sui RPC API
sui_getProtocolConfig
in 1.1.0
- SuiTransaction now has convenient
gas
property:tx.split_coin(coin=tx.gas,amounts=[1000000000])
enhancment
- SharedObject mutablity resolution in SuiTransaction bug
- mainnet in SuiConfig regression bug
Breaking Changes
- GetValidatorsApy builder and response supporting Sui RPC API
suix_getValidatorsApy
in 1.0.0 - SubscribeTransaction builder supporting Sui RPC API
suix_subscribeTransaction
in 1.0.0 asynch_sub_txn
demo for SubscribeTransactioncustom_upgrade
method to SuiTransaction
- Fixed argument error in low level builder for transfer using split which expected a list of amounts.
- Duplicate inputs generated from SuiTransaction building bug
- Bump version to 0.20.0
- Breaking Change SuiTransaction
publish
command now returns an UpgradeCap result. Up to author to transfer publish_build
utility that builds a move project for publishing now uses updated digest creation unless flag to use legacy set- Updated documentation
- Breaking Change
locked_in_epoch
field remmoved in SuiCoinObject result. - Deprecated methods marked in 0.16.1
- enhancement SuiTransaction builder supports Optional in move_call arguments for Sui unsigned integer types
libtool
in README dependencies list
- Mutable flag on ObjectRead of ownertype Shared bug
- Pure string encoding bug
- Exclude simple types from SuiTransaction
make_move_vec
bug - Simple empty list as
arguments
was failing bug - bcs.Address conversion of strings of varying lengths bug
sui-base
tosuibase
in documentation
Breaking Changes
- Handling move call argument nested lists/vectors
- More documentation on SuiTransaction (programmable transactions)
- GetLoadedChildObjects builder and reponse supporting Sui RPC API
sui_getLoadedChildObjects
in 0.33.0
- On testnet code has changes in
rpc.discover
making required field optional on method parameters. - Nested types bug
- Breaking Change
additional_signature
, other than sender and sponsor, are not supported by the tx processor in Sui. Removed the property inSignerBlock
Breaking Changes
- Breaking Change Assertion on SuiTransaction that will fail operations on it if it's been executed already
- Implemented NameServiceAddress and NameServiceNames builders and results for supporing
suix_resolveNameServiceAddress
andsuix_resolveNameServiceNames
respectivly. merge_gas_budget
to SuiTransaction constructor. When attempting to find available gas coin for transaction, this flag if true, allows a merge of coins to meet budget demand. Defaults to False
- Field declaration in Effects result.
- Bug in SuiTransaction builder argument resolution method.
- Extended CompiledPackage to hold blake2b digest to match chain digest calculation. Used in package upgrades in SuiTransaction.
- Introspection on SuiTransaction
move_call
target function to better return reusuable command results - Breaking Change SuiTransaction constructor and execute methods simplified while making signing more powerful
- Breaking Change SuiTransaction
split_coin
now takes list of amounts and returns list of results. - Breaking Change SuiTransaction
move_call
now takes target string in form:"package_id::module_name::function_name"
- Breaking Change
build_for_execute
method made private on SuiTransaction
- Breaking Change
gasses
property from SuiTransaction
We've started to 'deprecate' various functions, classes and methods to provide early warnings where
your usage of pysui
should consider changing.
split_coin_equal
to SuiTransaction (a.k.a. Transaction Builder)- Support for signing with MultiSig in SuiTransaction
- Support for running locally using sui-base. The advantages are the availabbility of highly configurable local nodes, management of different versions of Sui and consistent wallet addresses across configuration.
- New pytests leveraging
sui-base
- Changed methods for loading a configuration. Choices are now:
SuiClient.default_config()
(default configuration loading)SuiClient.sui_base_config()
(if running sui-base locally)
- Added missing options for querying transactions
- Implemented QueryTransactions enhancement builder and results supporing
suix_queryTransactions
- MultiSig added enhancement
- Implemented pysui.sui.sui_clients.Transaction/Transaction builder supporting Programmable Transactions enhancement
- Documentation for Programmable Transaction in read-the-docs
- GetTotalTxCount underlying RPC API method fixed
- GetMultipleTx was calling obsolete RPC API method.
- Result type from calling faucet
- Added default dependency IDs for 0x1 and 0x2 in sui_utils.py for publishing
- Most, if not all, integer values as arguments to RPC methods have been changes in Sui 0.31.0 to strings
to support bigger integers for platforms without arbitrarily large numbers (ALN). This has resulted in
changes to many
pysui
Builder and result types. - Gas requirements for transactions have increased 1000x on devnet. Use
GetReferenceGasPrice
andDryRunTransaction
often until you get used to the changes. - Increased default RPC timeout from 30 to 120 seconds on synch and asynch SuiClients.
- GetTxs aligning to dropped methods in RPC API 0.29.1
- GetTransactionsInRange aligning to dropped methods in RPC API 0.29.1
- Added
get_objects
to synchronous and asynchronous SuiClients - Address SignatureType in constant pool (base_deserailizers.py - deserialize_constants)
- GetCheckpoint builder and Checkpoint result for
sui_getCheckpoint
as per Sui 0.28.0 - GetCheckpoints builder and Checkpoint paginated results for
sui_getCheckpoints
as per Sui 0.28.1 - GetLatestSuiSystemState builder and results for
sui_getLatestSuiSystemState
as per Sui 0.28.0 - GetMultipleTx builder and TxResponseArray result for
sui_multiGetTransactions
as per Sui 0.28.0 - GetMultipleObjects builder for
sui_multiGetObjects
as per Sui 0.28.0 - QueryEvents builder for
sui_queryEvents
as per Sui 0.28.0
- Breaking Change Addresses are now 32 bytes (as apposed to 20) and are generated from keys using
blake2b
instead ofsha3_256
- Breaking Change Prior 'module build' functions in
sui_utils.py
to support publishing have been replaced withpublish_build
. At the moment this will only prepare the core package modules. We will follow up with publishing unpublished dependencies in a later release. If you need that capabilit, usesui client publish ...
from command line. - Breaking Change event filters for QueryEvents and SubscribeEvents moved to
sui_types/event_filter.py
. Note that per Sui 0.28.0 the filters have changed. - Breaking Change TxEffectResult renamed to TxResponse and restructured as per Sui 0.28.0
- Breaking Change Sui has moved from 20 byte address to 32 byte addresses. This changes all SuiAddress and ObjectID constructs.
- Breaking Change ValidatorMetaData changes as per Sui 0.28.0
- Breaking Change DelegatedStake changes as per Sui 0.28.0
- Breaking Change Added DryRunTxResult for new result definition as per Sui 0.28.0
- Breaking Change GetDynamicFieldObject now takes a mapping for name as per Sui 0.28.0
- Breaking Change GetTx result changes as per Sui 0.28.0
- Breaking Change GetObject options and result changes as per Sui 0.28.0
- Breaking Change ExecuteTransaction now takes a list of signatures as per Sui 0.28.0
- Breaking Change Result types (TxResult, TxInspectionResult and DryRunTxResult) changes as per Sui 0.28.0
- Breaking Change Pay and PaySui now takes a list of SuiStrings for amounts as per Sui 0.28.0
- Breaking Change GetEvents now take a transaction digest as parameter as per Sui 0.28.0. See Added above for QueryEvent for old behavior.
- Subscribing to events now only gets events emitted by a module as per Sui 0.28.0
- Renamed GetDelegatedStakes builder to GetStakes aligning with
sui_getStakes
as per Sui 0.28.1 - Renamed RequestAddDelegation builder to RequestAddStake aligning with
sui_requestAddStake
as per Sui 0.28.0 - Renamed RequestWithdrawDelegation builder to RequestWithdrawStake, aligning with
sui_requestWithdrawStake
as per Sui 0.28.0 - All transaction RPC API calls (Batch,Publish,MoveCall,PayXX,SplitXX,MergeXX,StakeXX) now invoke
unsafe_<NAME>
as per Sui 0.28.0 in light of the new ProgrammableTransaction. - async_client and sync_client now take optional
additional_signers
towards support Sui multi-sign - async_client and sync_client "execute_no_sign" now returns a PreExecutionResult data object in SuiRpcResult
- GetObject now takes flag options on what to include or not in result
- Removed
protocol_version
field from CommitteeInfo results as per Sui 0.28.0 - InspectTransaction results now include eveents as per Sui 0.28.0
- Renamed
bcs_from_rpcresult
tobcs_struct_from_rpcresult
in
- Breaking Change GetTxAuthSignatures removed for
sui_getTransactionAuthSigners
removed as per Sui 0.28.0 - Breaking Change RequestSwitchDelegation removed for
sui_requestSwitchDelegation
removed as per Sui 0.28.0 - Breaking Change GetRawObject removed for
sui_getRawObject
removed as per Sui 0.28.0. Raw information is now part of GetObject - Breaking Change GetSuiSystemState removed for
sui_getSuiSystemState
as per Sui 0.28.0. Use GetLatestSuiSystemState instead. - Breaking Change ExecuteSerializedTransaction removed for
sui_executeTransactionSerializedSig
as per Sui 0.28.0 - Breaking Change GetCheckpointContentsByDigest, GetCheckpointSummary,GetCheckpointSummaryByDigest as per Sui 0.28.0
- Breaking Change Removed
get_address_object_descriptors
from synchronous and asynchronous SuiClients
- Docs:
- Updated subscription primer
- Updated builders x-ref listing
BREAKING Changes
- samples/async_sub.py updated to remove transaction subscriptions (see 'Removed' below)
name
,description
andimage_url
changed from int list to strings in ValidatorMetadata as per Sui 0.27.0 updates- Added
unwrappedThenDeleted
to Effects as per Sui 0.27.0 updates - Added
gas_data
to transaction execution results as per Sui 0.27.0 updates - Added
checkpoint
field to results of GetTx (sui_getTransaction), None otherwise, as per Sui 0.27.0 updates - Added
executedEpoch
to Effects as per Sui 0.27.0 updates - CheckpointContents
user_signatures
change to support multi-sig as per Sui 0.27.0 updates - Remove redundant code for
sui_config.create_new_keypair_and_address
- Refactor
sui_bcs.py
- Rename
sui_bcs.tkind_from_result
tosui_bcw.bcs_txkind_from_result
- BREAKING:
sui_subscribeTransaction
removed from Sui RPC API as per Sui 0.27.0 updates as a result:- new_txn_subscription removed from
sui_client.subscribe
- SubscribeTransaction removed from sui_builders and respective results from sui_txresults
- new_txn_subscription removed from
BREAKING Changes
-
Experimental
sui_bcs.py
- work in progress to enablesui_devInspectTransaction
-
Sui 0.25.0 only supports inspection on:
- sui_transferObject
- sui_transferSui
- sui_pay
- sui_moveCall
- sui_batchTransaction
-
There are a few ways to get the BCS serialized TransactionKind argument for InspectTransaction builder
-
sui_bcs.bcs_txkind_from_result
- Takes result from aclient.execute_no_sign
. However; because calling SUI RPC requires providing agas
object andgas_budget
value that may not be feasible for your use case.try: batch_params = SuiArray( [ TransferObjectParams( receiver=SuiAddress("0x7c7a86b564d5db0c5837191bd17980b2fb9934db"), transfer_object=ObjectID("0x1A0535C87DE089F4417CA874A646A04914C073D6"), ), MoveCallRequestParams( package_object=ObjectID("0x2"), module_str=SuiString("pay"), function_str=SuiString("join"), type_arguments=SuiArray([SuiString("0x2::sui::SUI")]), arguments=SuiArray( [ SuiString("0x0b5b6f3f2e407d1a3f6c82d716ede72b394b7ca9"), SuiString("0x30082e169ba9f2c92b1be1763870ea9a9a7b6180"), ] ), ), ] ) builder = BatchTransaction( cfg.active_address, batch_params, ObjectID("0x0b5b6f3f2e407d1a3f6c82d716ede72b394b7ca9"), SuiInteger(2000), ) # Call execution but do not sign and submit rpc_result = client.execute_no_sign(builder) iresult = sync_client.execute( InspectTransaction( sender_address=cfg.active_address, tx_bytes=bcs_txkind_from_result(rpc_result), ) ) if iresult.is_ok(): print(iresult.result_data.to_json(indent=2)) else: print(iresult.result_string) # And so on... except ..:
-
sui_bcs.bcs_base64_from_builder
- Takes a Builder and returns BCS encoded base64 string. Here thegas
object andgas_budget
use a stock substitue value (FAKE_ADDRESS_OR_OBJECT) that are ignored.transfer_params = SuiArray( [ MoveCallRequestParams( package_object=ObjectID("0x2"), module_str=SuiString("pay"), function_str=SuiString("join"), type_arguments=SuiArray([SuiString("0x2::sui::SUI")]), arguments=SuiArray( [ SuiString("0x0b5b6f3f2e407d1a3f6c82d716ede72b394b7ca9"), SuiString("0x30082e169ba9f2c92b1be1763870ea9a9a7b6180"), ] ), ), TransferObjectParams( receiver=SuiAddress("0x7c7a86b564d5db0c5837191bd17980b2fb9934db"), transfer_object=ObjectID("0xd999644f6da53cc516ca6c6da76d463053fc3dc4"), ), ] ) bt_builder = BatchTransaction( SuiAddress(FAKE_ADDRESS_OR_OBJECT), transfer_params, ObjectID(FAKE_ADDRESS_OR_OBJECT), SuiInteger(1) ) bcs_bt = bcs_from_builder(sync_client, bt_builder) iresult = sync_client.execute( InspectTransaction( sender_address=sync_client.config.active_address, tx_bytes=base64.b64encode(bcs_bt.serialize()).decode()) ) if iresult.is_ok(): print(iresult.result_data.to_json(indent=2)) else: print(iresult.result_string)
-
We are working on the 3rd option (low level) where you can directly code the BCS constructs and serialize directly into the InspectTransaction
tx_bytes
field.
-
-
secp256r1 signingworkaround- InspectTransaction alignment to TransactionKind bug
- BREAKING Bumped minimal supported sui binaries from 0.19.0 to 0.25.0
- BREAKING TransferObjectParams (for Batch) builder now expects ObjectID as
transfer_object
parameter - Updated CheckpointSummary as per updated result in SUI 0.26.0
- Updated CommitteeInfo as per updated result in SUI 0.26.0
- Updated SuiSystemState as per updated result in SUI 0.26.0
- Made
sui_token_lock
onStakedSui
optional result
- BREAKING GetObjectsOwnedByObject (i.e. sui_getObjectsOwnedByObject) has been removed in SUI 0.26.0
Breaking change.
- A new package,
sui_move
for deserialization of move compiled modules. This is primarily used in Publish supporting--with-unpublished-dependencies
- Results from
sui_executeTransaction
andsui_executeTransactionSerializedSig
changes aligning to SUI 0.25.0 - secp256k1 transaction signing changes as per sui
- Added optional mnemonic phrase and derivation path arguments to
create_new_keypair_and_address
SuiConfig methods. - Move build distro to pyproject.toml from setup.cfg build
- setup.cfg
Breaking changes
- Reintroduce GetRawObject builder and results
- Added new required field for DevInspectTransaction
sender_address
as per SUI 0.24.0 package
on MoveCall transaction result type is now just a object ID string as per SUI 0.24.0
- DevInspectMoveCall as per SUI 0.24.0
Breaking changes
previous_transaction
field on SuiCoinObject result as per SUI 0.23.0voting_power
field on Validator result (part of SuiSystemState) as per SUI 0.23.0- More documentation
- Support for
secp256r1
feature- Caveat: Key recovery not supported yet
- Caveat: Due to the requirement of generating a recovery ID a brute force hack was added to signing with secp256r1 keys. However; this requirement for recovery ID is going to be lifted at some point in SUI feature
pending_delegations
field structure change from TableVec to LinkedTableForObjectID- GetCheckpointContents now takes
sequence_number
(SuiInteger) vsdigest
(SuiString) as per SUI 0.23.0 - GetCheckpointContentsBySequence renamed to GetCheckpointContentsByDigest with argument
digest
as per SUI 0.23.0 - Updated SuiSystemState result definition to include
safe_mode
field as per SUI 0.22.1 - Updated CheckpointSummary result definition to include
timestamp_ms
field as per SUI 0.22.1
storage_gas_price
field from StateParameters result (part of SuiSystemState) as per SUI 0.23.0quorum_stake_threshold
field from ValidatorSet result (part of SuiSystemState) as per SUI 0.23.0
Breaking changes
description
,image_url
andproject_url
ValidatorMetadata in SystemState result as per SUI 0.22.0epoch
optional arguments added to InspectTransaction and InspectMoveCall builders as per SUI 0.22.0- GetCheckpointContents builder added as per SUI 0.22.0
- GetCheckpointContentsBySequence builder added as per SUI 0.22.0
- GetCheckpointSummary builder added as per SUI 0.22.0
- GetLatestCheckpointSequence builder added as per SUI 0.22.0
- ChangeEpocTx added to transaction execution result as per SUI 0.21.0
- GenesisTx added to transaction execution result as per SUI 0.21.0
- arguments from transaction 'Call' event supports empty list, list strings or int arrays
- Code refactoring for most builders in
builders/exec_builders.py
(BatchTransaction is the exception) - SuiConfig: documentation
- Wallet: SUI RPC API version printed with SDK version
wallet -v
- pending_delegations and pending_withdraws in StakingPool changed to TableVec from list of obsolete structures.
- DelegatedStakes: Built out result type (from GetDelegatedStakes builder)
sig_scheme
andpubkey
from ExecuteTransaction builder as per SUI 0.22.0switch_pool_token_amount
from RequestSwitchDelegation builder as per SUI 0.22.0principal_withdraw_amount
from RequestWithdrawDelegation builder as per SUI 0.22.0chain_id
from result of GetSystemState as per SUI 0.22.0
BREAKING CHANGES (Keys)
- Utility
keys_to_0210.py
about - GetDelegatedStakes builder and return types supporting new SUI RPC API (0.21.0)
- GetValidators builder and return types supporting new SUI RPC API (0.21.0)
- RequestAddDelegation builder supporting new SUI RPC API (0.21.0)
- RequestSwitchDelegation builder supporting new SUI RPC API (0.21.0)
- RequestWithdrawDelegation builder supporting new SUI RPC API (0.21.0)
- GetObjectsOwnedByObject result parsing bug
- Keystring processing as per sui 0.21.0 change
- GetTxn now references result dataclass. Updated samples/cmd.py to use new result.
- Code refactoring for all builders in
builders/get_builders.py
- Added 'lockedUntilEpoch
field to
SuiCoinObject` results (Sui 0.21.0)
unique
from SuiKeyPairED25519 and SuiKeyPairSECP256K1
Breaking changes
- async_gas and async_sub support calling with
--local path/file to non-standard client.yaml
- Prelim subscription docs
- Elaborated subscription doc with examples
- StakeSubsidy added to SuiSystemState result from GetSuiSystemState 0.20.0
- delegator_staked_sui_id field added to PendingDelegator result from GetSuiSystemState 0.20.0
- SuiTransactionBuilderMode enum added in support of executing
sui_batchTransaction
andsui_moveCall
0.20.0 - GetAllCoinBalances builder 0.20.0
- GetAllCoins builder 0.20.0
- GetDynamicFieldObject builder 0.20.0
- GetDynamicFields builder 0.20.0
- InspectTransaction builder 0.20.0
- InspectMoveCall builder 0.20.0
- consensus_address, worker_address and worker_pubkey_bytes fields added to ValidatorMetaData
- Signature on subscription handlers (typing Callable)
- Workaround for sui defect
- Using new 'temporary' gas retrival API to optimize
async_gas
discussion. Targetting milestone with enhancement - Dataclasses for result of calling
sui_getSuiSystemState
- GetCoinTypeBalance (
sui_getBalance
) now returns a single SuiCoinBalance instead of SuiCoinBalances (array of SuiCoinBalance). See above, in Added, GetAllCoinBalances support 0.20.0 - request_type: SuiRequestType to constructors of sync and async SuiClients. Defaults to WAITFORLOCALEXECUTION
- IMMEDIATERETURN and WAITFORTXCERT removed from
SuiRequestType
for txn execution 0.20.0
- New Provider: SuiClient in
sui.sui_clients.subscribe.py
enhancement
- ObjectRead supporting dynamic field type representation
- SuiParameterReference supporting str or dict in
reference_to
for scalar types - Samples:
wallet objects -a ...
was ignoring address
BIG BREAKING CHANGES!
- Refactored
sui.sui_types
as a package breaking changes - Refactored
sui.sui_builders
as a package breaking changes - Refactored
sui.sui_txresults
as a package breaking changes - Refactored
sui.sui_rpc
as a package (sui.sui_clients
) breaking changes - Renamed
SuiAsynchClient
toSuiClient
breaking changes
- faux_wallet.py in samples package
- Builders section to documentation
- Support for
sui_getBalance
enhancement. This returns total balance per coin type (i.e.0x2::sui::SUI
) for owner (SuiAddress) and is more efficient than getting all coins and totalling. - Support for
sui_getCoins
enhancement. This returns address coins for coin type (i.e.0x2::sui::SUI
) and is more efficient than getting all coin descriptors and sui_getObject for each descriptor. - Support for
sui_getTotalSupply
enhancement. This returns the total supply of coin_type (i.e.0x2::sui::SUI
). - Support for
sui_getSuiSystemState
enhancement. This returns SUI system state information. - Support for
sui_getTransactionsInRange
enhancement. This returns a list of transaction digests strings within the queried transaction sequence range:start
(inclusive) andend
(exclusive).
- [bug] (#46)
- SUI 0.19.0 changed type of ObjectRead coin 'balance' from int to string. bug
- Pushed
pysui
0.3.0 to PyPi - Pushed
pysui
0.3.0 to readthedocs dry_run
method added to SuiClient(s) enhancementexecute_no_sign
method added to SuiClient(s) enhancementsign_and_submit
method added to SuiClient(s) enhancement- New 'state' returned from
sui_tryGetPastObject
:VersionNotFound
- Support for
sui_executeTransactionSerializedSig
sign_and_submit
usessui_executeTransactionSerializedSig
if sui version >= '0.18.0'- Support (builders and types) for
sui_getTransactionAuthSigners
- GetPastObject default version fell back to 1, which no longer exists as the SUI system changed to reflect the transaction sequence number that created the object. Version is no longer an optional argument to GetPastObject
- Renamed
asynch_gas.py
toasync_gas.py
in samples - Extrapolate
type_arg
, if any, in ObjectRead post_init - Removed creation of a event.loop in the SuiAsyncClient
__init__
Breaking Changes (noted in bold)
- Pushed
pysui
0.2.0-beta to PyPi - Pushed
pysui
0.2.0-beta to readthedocs - SuiMoveScalarArgument as type for processing results of
sui_getNormalized...
calls - Added 15 second timeout on SuiClient execute
- Support for
sui_getCoinMetadata
(introduced in sui 0.17.0)
- Corrected return signature
type_arguments
on SuiParameterStruct fixed - Corrected handling of GetObject where ID is package fixed
- Various readthedocs nuances
- Added
SuiNullType
with alias tx properties and checking API schema for required/not-required parameters
- Added consistent format for
gas
andmist
in sample scripts - Factored out command line argument validators for sample scripts
- _ClientMixin in
sui_rpc
now check RPC API schema version. Minimmal support is 0.17.0
Was originally 0.1.2
but changed to 0.2.0
in line with semantic versioning, well, semantics!
Breaking Changes (noted in bold)
- Pushed
pysui
0.1.1 to PyPi - Support for
sui_splitCoinEqual
insui/sui_builders.py
- Support for
sui_batchTransaction
insui/sui_builders.py
- SuiConfig retains the fully qualified path to
client.yaml
used to initialize it - SuiConfig adds property (read only)
configuration_path
toclient.yaml
- SuiConfig adds property (read only)
environment
to the environment in use from client.yaml - Support for
sui_getNormalizedMoveModule
in sui/sui_builders.py change - Support for
sui_getNormalizedMoveFunction
in sui/sui_builders.py change - Support for
sui_getNormalizedMoveStruct
in sui/sui_builders.py change - Support for
sui_getMoveFunctionArgTypes
in sui/sui_builders.py change - Sphinx generated HTML docs documentation
- Object version result closed
- Sample wallet construction of object version type and
GetPastObject
insui/sui_builders.py
- Builder keyword expansion and initial docs closed
- SuiType keyword expansion and initial docs closed
- SuiClient and SuiAsynchClinet issue
- Relaxed build initializer validations closed
- Refactored data model for results of GetPackage. Now produces SuiMovePackage vs MovePackage
- Renamed
samples/asynch.py
tosamples/asynch_gas.py
Breaking Changes (noted in bold)
- Pushed
pysui
0.0.11 to PyPi get_gas_from_faucet
devnet only enhancement- Integration testing (devnet synchronous) enhancement
- Started SuiAsynchClient enhancement
- GetPastObject builder implementing
sui_tryGetPastObject
closes - Support for mnemonics and derivation pathcloses
recover_key_and_address
insui/sui_crypto.py
for lost/destroyed keypairpysui-dev.env
for vscode python module debuggingsui-test
(sui move package) added totests
for integration testing publish and move-callssamples/asynch.py
small asynchronous sample code
- Secp256k1 bug fixed issue
- SuiClient and SuiAsynchClient deriving from abstracts
Provider
samples.wallet
gas and objects formatting
- SyncHttpRPC and AsyncHttpRPC from
abstracts/client_rpc.py
as part of issue mnemonic
andpynacl
from requirements... redundant with use ofbip-utils
Breaking Release
- Pushed
pysui
0.0.10 to PyPi - SUI_COIN_DENOMINATOR: int = 1000000000 to
sui_constants.py
- CommitteeInfo type , in
sui_types.py
, forsui_getCommitteeInfo
RPC API response bin/build.sh
for building only and not publishing to PyPi- EventQueryEnvelope type, in
sui_types.py
, forsui_getEvents
RPC API response GetTxs
builder insui_builders.py
and TransactionQueryEnvelope, insui_types.py
forsui_getTransactions
RPC API response.
- Builder and RPC API parameter name fixes.
- Re-enabled event queries (
sui_getEvents
) on SuiClient (sui_rpc.py
) - Closed issue
- Closed issue
- Closed issue
- ObjectInfo, and subclasses, moved to dataclass types as per issue
- ObjectRead, and subclasses, moved to dataclass types as per issue
- SuiNumber renamed to SuiInteger as per issue
- Update README.md example to reflect RPC Client method additions
- Handle different 'owner' types in ObjectRead type
- CHANGELOG.md
- Hydrate object results from Sui
sui_executeTransaction
API (see sui/sui_tx_return_types.py) - Transaction result tests (results are static via conftest.py fixtures in tests/unit)
- MovePackage dataclasses from API result
- Added requirements-dev.txt for local development
- DEVELOP.md for local development
- SDK version command in samples wallet
bin/
folder for utility functionsbin/publish.sh
for publishingpysui
package to PyPi-v,--version
command tosamples.wallet
sphinx
inrequirements-dev.txt
get_address_object_descriptors
on SuiClient issueget_objects_for
on SuiClient issueget_object
on SuiClient issueget_package
on SuiClient issuepay_txn
on SuiClient issuepay_sui_txn
on SuiClient issuepay_allsui_txn
on SuiClient issuetransfer_sui_txn
on SuiClient issuetransfer_object_txn
on SuiClient issuemerge_coin_txn
on SuiClient issuesplit_coin_txn
on SuiClient issuemove_call_txn
on SuiClient issuepublish_package_txn
on SuiClient issue
- Absolute to relative imports
- Fixed issue
- Moved signed transaction handling to sui/sui_rpc.py from faux_wallet
- Moved configuration management to ClientConfig and SuiConfig from faux_wallet
- Moved content of sui/sui_tx_return_types to sui/sui_types
- Fixed typo in transaction return type class
Status
- Added builder callback for handling RPC response to types (sui/sui_builder.py)
- Changes to support Sui configuration files (both devnet and local) changes for RPC endpoints
- Added new RCP API type introduced 'boolean' in RPC API calls and results
- Simplified requirements.txt
- Added
pysui
to PyPi for ease of installing and using - Changed sample command line to use
--local
instead of--cfg
- When parsing sui configurations, the 'active_env' now drives RPC selection
- Added
build
, andtwine
torequirements-dev.txt
- Published 0.0.8 to PyPi
- Published 0.0.9 to PyPi
- Moved
get_type_descriptor
infaux_wallet.py
heavy lifting toget_address_object_descriptors
on SuiClient - Fixed transaction result
deleted
effect for merge-coin transaction to useGenericRef
result versusGenericOwnerRef
- sui/sui_tx_return_types.py
- All
events
commands from sample as they've been removed in RPC API in favor of generalsui_getEvents
. Will support in future. get_package_object
- NFT qualifiers issue