Releases: AbstractSDK/abstract
Releases · AbstractSDK/abstract
v0.24.1
v0.x.x
[Unreleased] - yyyy-mm-dd
Added
- Added
PfmMemoBuilder
API for building middleware forwarding memo - Added
HookMemoBuilder
API for building wasm ibc hook memo execute_with_funds
to Executor to attach funds to execution.stargate
feature for abstract-app, abstract-standalone and abstract-adapter packages.- New module type:
Service
, behaves the same as Native, but can be registered by any namespace. AbstractClient
:service
to get api of Service moduleCustomExecuteHandler
To improve support for fully custom execute messages on Apps or Adaptersbalance
method forAnsHost
to query balance ofAssetEntry
AbstractInterchainClient
to simplify Abstract deployments across multiple chains
Changed
- **Merged
proxy
andmanager
contracts intoaccount
. - Deployments now use pre-determined addresses. These addresses are hardcoded in the contracts.
- Ibc related renaming to add more consistency in namings
- Account action on executor takes
impl IntoIter<Item = impl Into<AccountAction>>
instead ofVec<AccountAction>
- Native contracts now have pre-compiled addresses. This removes the need for storing addresses in an on-chain state.
- Removed
UpdateConfig
endpoints from most native contracts andApp
/Native
bases. - Minified the storage namespaces and made them available via constants
- Version Control renamed to registry
registry::QueryMsg::Account
was changed toregistry::QueryMsg::Accounts
for simultaneous queries- Added
registry::QueryMsg::AccountList
for paginated account queries - Simplified the implementations of KeyDeserialize, PrimaryKey and Prefixer traits for
AssetEntry
,DexAssetPairing
,ModuleInfo
,ModuleVersion
. Used the base tuple implementation instead - Removed
install_on_sub_account
for client, replaced with explicit sub_account creation
Abstract Client
with_modules
method for Account Builder to add list of modules to install (ModuleInstallConfig
)query_module
method for Account to query given module on account without retrievingApplication
objectmodule_installed
method for Account that returnstrue
if module installed on accountmodule_version_installed
method for Account that returnstrue
if module of this version installed on accountaddress
method for Account to get address of account. Result of this method is the same as callingproxy
enable_ibc
added to Account builder.module_status
on AbstractClient that returns current status of the module.install_on_sub_account
now defaults tofalse
in Account BuilderPublisher
will check if dependencies of the module is registered in version control to the chain before publishing.
Removed
- Receive endpoints from abstract Modules
- Value calculation logic from proxy contract.
cw-semver
dependency removed- Manager no longer able to migrate pre
0.19
abstract adapters - Account Factory contract
- Unused
DepositManager
andPagedMap
objects from abstract-std
Fixed
- Abstract Client: If Account Builder retrieves account now it will install missing modules from the builder instead of ignoring them
[0.23.0] - 2024-07-16
Added
- Abstract Client: Added a
claim_namespace
function to facilitate claiming a namespace after account creation - Version Control interface:
approve_all_modules_for_namespace
to approve any pending modules by given "namespace" - IBC module to module queries and API.
- Abstract Interface: Added helpers to create abstract IBC connections (with open-sourced cw-orch-interchain)
- Ability to send multiple query messages through IBC simultaneously
- New module type
abstract-standalone
for standalone contracts. - Abstract Client: added
execute_on_manager
helper method - Abstract Client: Exposed
IbcClient
object underAbstractClient::ibc_client()
- Abstract Client(feature "interchain"):
connect_to
to create abstract IBC connections - Abstract Client(feature "interchain"):
RemoteApplication
andRemoteAccount
objects that replicateApplication
andAccount
functionality in interchain environment - Abstract Account: Added an
upgrade
helper to upgrade an account step by step (going through all necessary versions) - IBC Client: Apps and Adapters checks that IBC Client is dependency of the module inside ibc_callback and module_ibc handlers
- Ibc Client: Module to module actions now checks if app have ibc_client installed to ensure account can receive ibc callback
- Helpers to simply connecting Abstract instances through IBC and reduce the setup boilerplate
register_in_version_control
added to theabstract_interface::Abstract
for registering new versions of native contracts in Version Control- Registration migrated native contracts to Version Control in
abstract_interface::Abstract::migrate_if_version_changed
method - New governance type
NFT
which allows an account to be owned by an NFT.
Changed
- Manager will try to check dependencies on standalone modules.
- Accounts with local sequence 2147483648..u32::MAX are allowed to be claimed in any order
- IBC Callback and IBC module to module endpoints now have decomposed variables (sender, msg and callback)
- IBC Callback messages are now mandatory and renamed to
callback
- Removed IBC callback IDs
- Renamed
CallbackInfo
toCallback
- Ibc API: Where applicable - accept
ChainName
instead ofString
to add clarity for the user - Standalones and IBC Client no longer added to proxy whitelist
- IBC client and host now migrated only if version is not breaking and deployed otherwise
cw-ownable
got replaced withcw-gov-ownable
for manager contract- Renamed
ChainName
toTruncatedChainId
- IBC Client:
send_funds
accepts optionalmemo
field for every Coin attached - Bump cw-orch to
0.24.0
Removed
- Accounts with local sequence 0..2147483648 cannot be predicted
- Ibc Callback handler no longer includes
MessageInfo
as sender is always ibc_client and funds are empty - Account Factory no longer stores ibc-host, instead it queries VersionControl to assert caller matches stored to the one in version control
governance_details
frommanager::AccountInfo
- Removed
update_factory_binary_msgs
endpoint from module factory - Removed
propose_ownership
method on manager, everything done throughupdate_ownership
instead
Fixed
- Abstract Client: Fixed contract address collision for same apps that are on different accounts
- abstract_interface deploy methods: Fixed a bug where it was not possible to propose uploaded contract(saved in cw-orch state)
- abstract_interface deploy methods: Checks both registered and pending modules instead of only registered
[0.22.1] - 2024-05-08
Added
state.json
now included in binary in release mode, allowing using binaries on a different environment than it's been built.module_instantiate2_address_raw
forAbstractClient
, allowing to install a different version than the dependency version.- Added helper functions
assert_registered
andis_registered
to the ANS client API. - Added method
module_info
for querying and verifying wether an address is a module to the ModuleRegistry API. - Added default IBC-Client installation on remote modules inside Client and Account interfaces
- Send multiple message simultaneously through IBC
Changed
- Renamed
account_id
toexpected_account_id
forabstract_client::AccountBuilder
for clarity - Namespace claiming on mainnet is now permissioned.
- Renamed
version_control::Config::allow_direct_module_registration_and_updates
field tosecurity_disabled
. - Renamed
request
toexecute
in adapter and apps APIs - Updated to cw-orch 0.22 and cw-orch-core stabilization to 1.0.0
Removed
- unused
custom_swap
ofDexCommand
- Send multiple messages to multiple IBC connected chains in one manager message.
interface
feature from all of the packages
Fixed
[0.21.0] - 2024-02-20
Added
- Added a
.execute
method on the AuthZ API to executeCosmosMsg
types on behalf of a granter. - Add IBC helpers to account client.
- Abstract Client builder: register dexes on ANS
.sub_accounts
method onAccount
for getting Abstract Client Sub Accounts- Publish adapter method of Abstract Client Publisher now returns Adapter object
- Added a
.account_from
method on theAbstractClient
for retrievingAccount
s. - Creating Sub Account from
AbstractClient
Account builder. - Installing apps and adapters for
AbstractClient
Account builder - Attaching funds to account creation on
AbstractClient
Account builder - Added
unchecked_account_id
method on version control. - Ability to provide expected local AccountId
- Reinstallation of the same version of an app is now disabled
.authorize_on_adapters
method onApplication
for authorizing application on adapters- Added method to assign expected
.account_id
for Abstract Client Account builder .next_local_account_id
forAbstractClient
to query next local account sequence.module_instantiate2_address
forAbstractClient
to get predicted address
Changed
- Updated UsageFee api to use
Address
, instead ofApi
+ unchecked address - Tests now use
MockBech32
due to use of instantiate2.
Removed
Fixed
- Added a validation on
account_id
method on version control. - Creating sub-account from account factory is restricted. Use Create Sub Account method of the manager instead
[0.20.0] - 2024-01-24
Added
AppDeployer
andAdapterDeployer
now take aDeployStrategy
field.Astrovault
integrated into dex and cw-staking adaptersAuthZ
API added- Interchain Abstract Accounts can now be created!
- Added snapshot tests
- Method
query_account_owner()
for Apps Admin object - Query
registered_dexes
forAbstractNameServiceClient
- Query
top_level_owner
for manager and apps(as base query) - Support of
ConcentratedLiquidity
pool type for swaps. Stake/unstake currently n...
v0.23.0
Added
- Abstract Client: Added a
claim_namespace
function to facilitate claiming a namespace after account creation - Version Control interface:
approve_all_modules_for_namespace
to approve any pending modules by given "namespace" - IBC module to module queries and API.
- Abstract Interface: Added helpers to create abstract IBC connections (with open-sourced cw-orch-interchain)
- Ability to send multiple query messages through IBC simultaneously
- New module type
abstract-standalone
for standalone contracts. - Abstract Client: added
execute_on_manager
helper method - Abstract Client: Exposed
IbcClient
object underAbstractClient::ibc_client()
- Abstract Client(feature "interchain"):
ibc_connection_with
to create abstract IBC connections - Abstract Client(feature "interchain"):
RemoteApplication
andRemoteAccount
objects that replicateApplication
andAccount
functionality in interchain environment - Abstract Account: Added an
upgrade
helper to upgrade an account step by step (going through all necessary versions) - IBC Client: Apps and Adapters checks that IBC Client is dependency of the module inside ibc_callback and module_ibc handlers
- Ibc Client: Module to module actions now checks if app have ibc_client installed to ensure account can receive ibc callback
- Helpers to simply connecting Abstract instances through IBC and reduce the setup boilerplate
register_in_version_control
added to theabstract_interface::Abstract
for registering new versions of native contracts in Version Control- Registration migrated native contracts to Version Control in
abstract_interface::Abstract::migrate_if_version_changed
method - New governance type
NFT
which allows an account to be owned by an NFT.
Changed
- Manager will try to check dependencies on standalone modules.
- Accounts with local sequence 2147483648..u32::MAX are allowed to be claimed in any order
- IBC Callback and IBC module to module endpoints now have decomposed variables (sender, msg and callback)
- IBC Callback messages are now mandatory and renamed to
callback
- Removed IBC callback IDs
- Renamed
CallbackInfo
toCallback
- Ibc API: Where applicable - accept
ChainName
instead ofString
to add clarity for the user - Standalones and IBC Client no longer added to proxy whitelist
- IBC client and host now migrated only if version is not breaking and deployed otherwise
cw-ownable
got replaced withcw-gov-ownable
for manager contract- Renamed
ChainName
toTruncatedChainId
- IBC Client:
send_funds
accepts optionalmemo
field for every Coin attached - Bump cw-orch to
0.24.0
Removed
- Accounts with local sequence 0..2147483648 cannot be predicted
- Ibc Callback handler no longer includes
MessageInfo
as sender is always ibc_client and funds are empty - Account Factory no longer stores ibc-host, instead it queries VersionControl to assert caller matches stored to the one in version control
governance_details
frommanager::AccountInfo
- Removed
update_factory_binary_msgs
endpoint from module factory - Removed
propose_ownership
method on manager, everything done throughupdate_ownership
instead
Fixed
- Abstract Client: Fixed contract address collision for same apps that are on different accounts
- abstract_interface deploy methods: Fixed a bug where it was not possible to propose uploaded contract(saved in cw-orch state)
- abstract_interface deploy methods: Checks both registered and pending modules instead of only registered
v0.22.1
Added
state.json
now included in binary in release mode, allowing using binaries on a different environment than it's been built.module_instantiate2_address_raw
forAbstractClient
, allowing to install a different version than the dependency version.- Added helper functions
assert_registered
andis_registered
to the ANS client API. - Added method
module_info
for querying and verifying wether an address is a module to the ModuleRegistry API. - Added default IBC-Client installation on remote modules inside Client and Account interfaces
- Send multiple message simultaneously through IBC
Changed
- Renamed
account_id
toexpected_account_id
forabstract_client::AccountBuilder
for clarity - Namespace claiming on mainnet is now permissioned.
- Renamed
version_control::Config::allow_direct_module_registration_and_updates
field tosecurity_disabled
. - Renamed
request
toexecute
in adapter and apps APIs - Updated to cw-orch 0.22 and cw-orch-core stabilization to 1.0.0
Removed
- unused
custom_swap
ofDexCommand
- Send multiple messages to multiple IBC connected chains in one manager message.
interface
feature from all of the packages
v0.21.0
Added
- Added a
.execute
method on the AuthZ API to executeCosmosMsg
types on behalf of a granter. - Add IBC helpers to account client.
- Abstract Client builder: register dexes on ANS
.sub_accounts
method onAccount
for getting Abstract Client Sub Accounts- Publish adapter method of Abstract Client Publisher now returns Adapter object
- Added a
.account_from
method on theAbstractClient
for retrievingAccount
s. - Creating Sub Account from
AbstractClient
Account builder. - Installing apps and adapters for
AbstractClient
Account builder - Attaching funds to account creation on
AbstractClient
Account builder - Added
unchecked_account_id
method on version control. - Ability to provide expected local AccountId
- Reinstallation of the same version of an app is now disabled
.authorize_on_adapters
method onApplication
for authorizing application on adapters- Added method to assign expected
.account_id
for Abstract Client Account builder .next_local_account_id
forAbstractClient
to query next local account sequence.module_instantiate2_address
forAbstractClient
to get predicted address
Changed
- Updated UsageFee api to use
Address
, instead ofApi
+ unchecked address - Tests now use
MockBech32
due to use of instantiate2.
Removed
Fixed
- Added a validation on
account_id
method on version control. - Creating sub-account from account factory is restricted. Use Create Sub Account method of the manager instead
v0.20.0
Added
AppDeployer
andAdapterDeployer
now take aDeployStrategy
field.Astrovault
integrated into dex and cw-staking adaptersAuthZ
API added- Interchain Abstract Accounts can now be created!
- Added snapshot tests
- Method
query_account_owner()
for Apps Admin object - Query
registered_dexes
forAbstractNameServiceClient
- Query
top_level_owner
for manager and apps(as base query) - Support of
ConcentratedLiquidity
pool type for swaps. Stake/unstake currently not supported - Account namespace is unclaimed after
Renounce
- Resolve trait for
cw-orch
AnsHost
interface
Changed
is_module_installed
moved fromManager
toAccount
.account_id()
method ofAccountRegistry
is now exposed.- Allow module-id to be passed in as a valid authorized address when allowing new addresses on adapter contracts.
BaseInstantiateMsg
is now removed from install app API, now onlyModuleMsg
should be provided.Modules
,Manager
andProxy
are now instantiated via instantiate2 message.FeeGrant
API updated.- Bump
cw-orch
tov0.18
. - Top level account owner now has admin privileges on the apps and adapters
- Multiple
AbstractAccount
s now don't overlap - Top level account owner can now claim pending sub-accounts directly
Clearable
helper type was added to the messages where clearing optional state could be useful- Only incremental version migration of modules allowed (0.10 -> 0.11 is allowed but 0.10 -> 0.12 not because it skips 0.11)
- Module
tag_response
andcustom_tag_response
no longer requireResponse
as an argument as well as renamed toresponse
andcustom_response
respectively. - Having sub accounts will prevent you from
Renounce
- Version Control
Namespace
query now doesn't return an error when namespace is unclaimed NamespaceResponse
type updated to be able to represent claimed and unclaimed namespace
Removed
DepositMsgs
removed (nowdeposit()
returnsVec<CosmosMsg>
)- Abstract removed from the fields where it's redundant
- InstantiateMsg is now removed from the install_adapter API
- Removed
wasm_smart_query
helper, since it's accessible fromQuerier
object - Removed Adapter base
Remove
action
Fixed
- Namespace registration fee fixed
- Version Control smart query now returns Version Control config instead of factory address
- Sub accounts now unregister themselves on owning manager if renounced
v0.19.0
What's Changed
- Apps refactor by @Buckram123 in #19
- Set adapter addr on install_adapter by @Buckram123 in #21
- Add schema generation for wrapped abstract types in adapters and apps by @adairrr in #17
- Instantiate admins to native contracts by @Buckram123 in #16
- Add lazy_static initialization for astroport chains by @adairrr in #25
- Merge 0.17 into main by @adairrr in #35
- Improve ContractEntry construction by @Buckram123 in #26
- Add ETF module to monorepo by @adairrr in #31
- Sub Account Logic by @Kayanski in #18
- Added namespace and base asset definitions in account creation by @Kayanski in #34
- Fix builds and bump cw-orch by @CyberHoward in #45
- Fix/standalone modules by @Buckram123 in #44
- fix: typo in execute_create_module function docs by @jvr0x in #51
- Added cw20+staking by @Kayanski in #42
- Add ability to install modules on account creation by @Buckram123 in #46
- Fix sub account admin assertion by @Buckram123 in #54
- docs: add intro to abstract documentation - first tranche by @jvr0x in #38
- Apps schema updates by @Buckram123 in #20
- Update MAPPING.md by @Buckram123 in #43
- Register the sub account on the main account on creation by @Buckram123 in #55
- Update optimizer and add wasms to gitattributes by @CyberHoward in #56
- Feature/Query handler for module data by @Buckram123 in #23
- Support multi module installation by @Buckram123 in #57
- Docs/improvements 2 by @jvr0x in #59
- Forward any funds provided to the
exec_on_module
call to the module that is being called by @CyberHoward in #64 - Add/circle ci by @CyberHoward in #62
- Add version control to abstract app in instantiation by @Buckram123 in #63
- Allow funds to be transferred to module on instantiation by @Buckram123 in #65
- Separate kujira integration by @Buckram123 in #33
- Patch osmosis test tube by @CyberHoward in #67
- [ignore] Test wasm build trigger by @CyberHoward in #66
- ABS-166: Create accountability module by @0xmovses in #47
- Changed account id structure by @Kayanski in #58
- Update deploy_all bin by @0xmovses in #75
- Add new release action by @0xmovses in #78
- Fixed labels by @Kayanski in #79
- Fixed comments by @Buckram123 in #80
- Remove unused binaries by @CyberHoward in #72
- Add ability to query version of no-cw2 modules by @Buckram123 in #69
- Update register_modules to accept multiple modules on manager by @Buckram123 in #73
- 0xmovses/update action main by @0xmovses in #81
- test pr ci by @0xmovses in #84
- Multiple stake targets for cw-staking adapter by @Buckram123 in #70
- Update template to a new version by @Buckram123 in #87
- Update/Must use on abstract sdk methods by @Buckram123 in #86
- Fix/croncat git dependencies by @Buckram123 in #91
- Update Module readmes by @adairrr in #76
- updates for CI for release by @0xmovses in #90
New Contributors
- @Kayanski made their first contribution in #18
- @jvr0x made their first contribution in #51
- @0xmovses made their first contribution in #47
Full Changelog: v0.18.0...v0.19.0
v0.18.0
Abstract Changelog
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.
[Unreleased] - yyyy-mm-dd
Added
Changed
- Updated fetch_data arguments of CwStakingCommand
Fixed
- Partially fixed cw-staking for Osmosis
[0.17.2] - 2023-07-27
Added
- Neutron + Archway to registry
Changed
Fixed
[0.17.0] - 2023-07-05
Added
- Ability to add module metadata.
- Ability to set an install fee for modules.
- Account interaction helpers
Changed
- Removed the ability to claim multiple namespaces.
- It is now possible to replace a module code-id/address on testnets.
Fixed
- Adapter execution from the manager with a provided proxy address is now allowed.
[0.7.0] - 2023-02-15
Added
Changed
- Errors now need to implement
From<AbstractError>
andFrom<AbstractSdkError>
Fixed
[0.7.0] - 2023-02-01
Added
Changed
- Version Control
Modules
/ModuleList
Fixed
[0.5.2] - 2023-01-10
Added
Changed
Fixed
- Fixed abstract-interface publishing
[0.5.0] - 2022-01-08
Added
Changed
Fixed
- Fixed wasming with
write_api
error in theabstract-adapter
andabstract-app
[0.5.0] - 2022-01-08
Added
Module Factory
- unit testing
Ans Host
Config
query
Abstract SDK
- Better querying of app and adapter directly vs message construction
Changed
PoolId
is now renamed toPoolAddress
to avoid confusion with the Abstract Pool Id (and because it can be resolved
to an address / id)
Removed
construct_staking_entry
fromContractEntry
, which had previously violated the SRP.
Fixed
v0.17.1
Abstract Changelog
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.
[Unreleased] - yyyy-mm-dd
Added
Changed
Fixed
[0.17.1] - 2023-07-26
Added
- Ability to set admin to native contracts during instantiation
- Added neutron
Changed
- Address of App/Adapter returned and set by default.
Fixed
[0.17.0] - 2023-07-05
Added
- Ability to add module metadata.
- Ability to set an install fee for modules.
- Account interaction helpers
Changed
- Removed the ability to claim multiple namespaces.
- It is now possible to replace a module code-id/address on testnets.
Fixed
- Adapter execution from the manager with a provided proxy address is now allowed.
[0.7.0] - 2023-02-15
Added
Changed
- Errors now need to implement
From<AbstractError>
andFrom<AbstractSdkError>
Fixed
[0.7.0] - 2023-02-01
Added
Changed
- Version Control
Modules
/ModuleList
Fixed
[0.5.2] - 2023-01-10
Added
Changed
Fixed
- Fixed abstract-interface publishing
[0.5.0] - 2022-01-08
Added
Changed
Fixed
- Fixed wasming with
write_api
error in theabstract-adapter
andabstract-app
[0.5.0] - 2022-01-08
Added
Module Factory
- unit testing
Ans Host
Config
query
Abstract SDK
- Better querying of app and adapter directly vs message construction
Changed
PoolId
is now renamed toPoolAddress
to avoid confusion with the Abstract Pool Id (and because it can be resolved
to an address / id)
Removed
construct_staking_entry
fromContractEntry
, which had previously violated the SRP.
Fixed
0.17.0
Abstract Changelog
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.
[Unreleased] - yyyy-mm-dd
Added
Changed
Fixed
[0.17.0] - 2023-07-05
Added
- Ability to add module metadata.
- Ability to set an install fee for modules.
- Account interaction helpers
Changed
- Removed the ability to claim multiple namespaces.
- It is now possible to replace a module code-id/address on testnets.
Fixed
- Adapter execution from the manager with a provided proxy address is now allowed.
[0.7.0] - 2023-02-15
Added
Changed
- Errors now need to implement
From<AbstractError>
andFrom<AbstractSdkError>
Fixed
[0.7.0] - 2023-02-01
Added
Changed
- Version Control
Modules
/ModuleList
Fixed
[0.5.2] - 2023-01-10
Added
Changed
Fixed
- Fixed abstract-interface publishing
[0.5.0] - 2022-01-08
Added
Changed
Fixed
- Fixed wasming with
write_api
error in theabstract-adapter
andabstract-app
[0.5.0] - 2022-01-08
Added
Module Factory
- unit testing
Ans Host
Config
query
Abstract SDK
- Better querying of app and adapter directly vs message construction
Changed
PoolId
is now renamed toPoolAddress
to avoid confusion with the Abstract Pool Id (and because it can be resolved
to an address / id)
Removed
construct_staking_entry
fromContractEntry
, which had previously violated the SRP.