v1.0.0
CHANGELOG
The major changes in this stable release compared to the beta release are:
- Tokens can be transferred directly via the ITS contract instead of TokenManagers, i.e provide the ERC20 approval (not needed for mint/burn tokens) to the ITS contract instead of the TokenManager.
- Separate
TokenManager
implementations have been consolidated into aTokenHandler
contract. This doesn't affect the API. - interchainTransfer now takes a
gasValue
param. This allows it to be used within a multicall (for e.g. transfer tokens to multiple chains in one tx). - InterchainTransfer event has a new
dataHash
field. This is set tokeccak256(data)
if a destination contract is being called with the transfer, andbytes32(0)
otherwise.InterchainTransferWithData
event type was removed as a result. - InterchainTokenExecutable.executeWithInterchainToken now takes
commandId
as well to allow apps to track individual messages. Similar change for the express executable. Distributable
has been renamed toMinter
for clarity. You can call transferMintership to transfer mint rights to a token.- Removed support for deploy + transfer to remote chains in
InterchainTokenFactory
to reduce complexity.InterchainTokenFactory.deployInterchainToken
will now mint the initial supply directly to the sender/deployer address. There is no need to transfer tokens from the factory to the sender anymore. - Renamed
BaseInterchainToken
to InterchainTokenStandard, and removed the coupling with anERC20
implementation. Custom interchain tokens can now inheritInterchainTokenStandard
directly to benefit from interchain transfer support. - Switch to using a minimal proxy for
InterchainToken
deployments to reduce gas usage significantly and support auto-proxy verification on explorers. - Passing
bytes4(uint32(1))
as the metadata version will pay for an express call on the gas service. This is relevant for an express relayer. - Misc bug fixes, test coverage, and improvements.
What's Changed
- chore: improve commandId doc by @milapsheth in #208
- refactor: separate transferToken method in token handler by @milapsheth in #209
- feat: add interchain proxy by @deanamiel in #210
- feat: express call from metadata by @Foivos in #212
- refactor(ITS): distributor -> minter by @re1ro in #211
- chore: update solidity 0.8.21 by @milapsheth in #215
- refactor(Factory): removing token transfer functions by @re1ro in #214
- refactor: remove ERC20 dependency from BaseInterchainToken by @milapsheth in #216
- feat: added gas value to interchain transfer methods by @Foivos in #219
- refactor: remove ITS interface dep in BaseInterchainToken by @milapsheth in #217
- fix: check token sender earlier by @milapsheth in #218
- refactor: rename BaseInterchainToken to InterchainTokenStandard by @milapsheth in #220
- feat: post refactor test coverage by @deanamiel in #213
- fix: return tokenId from deployInterchainToken by @milapsheth in #221
Full Changelog: v1.0.0-beta.4...v1.0.0