Releases: axelarnetwork/interchain-token-service
Releases · axelarnetwork/interchain-token-service
v1.2.4
Changelog
This patch release introduces a change to custom token deployment to distinguish them from native interchain tokens deployed by ITS.
- Custom tokens using mint/burn will now have to use the updated
MINT_BURN
token manager type (i.e4
enum value). - Custom tokens using
MINT_BURN
orMINT_BURN_FROM
token manager types will need to give mint permission to the corresponding token manager contract instead of ITS. The token manager address corresponding to atokenId
can be predicted via thetokenManagerAddress
query andtokenId
can be computed via this query. - Native interchain tokens deployed by ITS will use the
NATIVE_INTERCHAIN_TOKEN
token manager type (i.e0
enum value). deployTokenManager
will now revert if0
token manager type is provided. All other token manager types will work as expected.- Existing custom tokens deployed with
0
token manager type will still work as expected. Although, when deploying the same token on a new chain, the new4
(MINT_BURN
) token manager type will need to be used, along with giving mint permission to the token manager (token manager address can be predicted via this query).
What's Changed
Full Changelog: v1.2.1...v1.2.4
v1.2.1
What's Changed
- fix: add missing imports to factory interface (#240) by @milapsheth in #243
- ci: backport ci fixes by @milapsheth in #244
Full Changelog: v1.2.0...v1.2.1
v1.2.0
What's Changed
- ci: use latest publish artifact action by @milapsheth in #236
- fix: fixing codegen invocation and removing tsconfig file by @canhtrinh in #237
- chore: remove tsc command by @canhtrinh in #238
- ci: fix bytecode publish action by @milapsheth in #239
Full Changelog: v1.1.0...v1.2.0
v1.1.0
Changelog
- Added missing
IUpgradable
interface inIInterchainTokenService
for completeness - Bumped cgp and gmp-sdk deps
- Various test improvements
What's Changed
- fix: add missing interfaces to ITS by @milapsheth in #227
- feat: added two more flow tests: executable and fixed supply (showcasing multiple interchainTransfers) by @Foivos in #225
- feat: token address derivation test by @deanamiel in #232
- feat: live testnet improvements by @deanamiel in #230
- docs: readme by @Foivos in #231
- build: bump cgp and gmp sdk dep by @milapsheth in #233
- fix: address audit comments by @milapsheth in #234
- refactor: set max uint256 value dynamically by @milapsheth in #235
Full Changelog: v1.0.0...v1.1.0
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
v1.0.0-beta.4
What's Changed
- feat: remove test coverage gaps by @deanamiel in #181
- fix: remove unpause txs by @deanamiel in #186
- refactor(Proxy): using generic proxy for ITS and Factory by @re1ro in #187
- feat: added a small sanity check by @Foivos in #191
- test(Service): gas usage reports by @re1ro in #184
- refactor(ITS protocol): unifying interchain transfer payload type by @re1ro in #189
- refactor(ITS): efficient Metadata decoding by @re1ro in #190
- feat: flow limit exceeded error by @deanamiel in #194
- feat: added ability to approve the service instead of the token manager by @Foivos in #195
- feat: bytecode checks by @deanamiel in #197
- feat: use a constant instead of type(uint256).max in two more places by @Foivos in #196
- feat: add compiler overrides for Proxy contracts by @milapsheth in #200
- chore: bump deps by @milapsheth in #199
- fix: set address(0) as operator/distributor by default by @milapsheth in #198
- fix(ITS): token type LOCK_UNLOCK_FEE express amount by @re1ro in #193
- fix(Factory): tracking deployer balance by @re1ro in #202
- feat: service token handling by @Foivos in #201
- refactor: clean up token specific express handling by @milapsheth in #203
- feat: add commandId to executables by @milapsheth in #204
- feat: bump release to v1.0.0-beta.4 by @milapsheth in #205
- test: preserve 0 flow limiter and update full flow test by @milapsheth in #206
- refactor: rename tests by @milapsheth in #207
Full Changelog: v1.0.0-beta.3...v1.0.0-beta.4
v1.0.0-beta.3
What's Changed
- feat: token service upgrade test by @deanamiel in #127
- feat: integrate @axelarjs/evm codegen tool by @alanrsoares in #167
- feat: canonical tokens cannot be gateway tokens by @Foivos in #169
- feat: proxy natspec by @deanamiel in #171
- feat: added some info in the tokenManagerProxy, which will cause some gas saving and will allow for a more powerfull design in the future. by @Foivos in #170
- feat: clone instead of fixed proxy by @Foivos in #168
- feat: final test coverage by @deanamiel in #172
- refactor: rename test contracts by @milapsheth in #174
- refactor: remove liquidity pool manager by @milapsheth in #175
- chore: update docs by @milapsheth in #176
- chore: address audit comments by @milapsheth in #177
- chore: use interchain across docs by @milapsheth in #178
- test: show more ways to transfer in full flows by @milapsheth in #179
- chore: bump release by @milapsheth in #180
- feat: final NatSpec documentation by @deanamiel in #173
Full Changelog: v1.0.0-beta.2...v1.0.0-beta.3
v1.0.0-beta.2
What's Changed
- fix: typescript codegen by @alanrsoares in #163
- chore: bump version by @milapsheth in #164
New Contributors
- @alanrsoares made their first contribution in #163
Full Changelog: v1.0.0-beta.1...v1.0.0-beta.2
v1.0.0-beta.1
What's Changed
- chore: add repository link by @StephenFluin in #90
- feat: least autority fixes by @Foivos in #87
- feat: add gh coverage action by @milapsheth in #94
- fix: coverage action build by @milapsheth in #95
- feat: gas optimizations by @Foivos in #92
- fix: typos by @deanamiel in #99
- feat: use create3 lib instead of using the Create3Deployer to save some gas. by @Foivos in #93
- feat: fee on transfer as a separate token manager by @Foivos in #96
- fix: flow limit should have a tighter check by @milapsheth in #97
- feat: move views out of serivce by @Foivos in #98
- feat: addressed ackeeblockchains's 3.0 report by @Foivos in #102
- feat: interchain transfer everywhere by @Foivos in #104
- feat: code4rena gas opts by @Foivos in #105
- feat: do not cache chain id for permit by @Foivos in #106
- feat: another example by @Foivos in #107
- fix(LockUnlockFee): always return adjusted amount by @re1ro in #110
- chore: fixed spelling mistakes in design doc by @blockchainguyy in #120
- feat: removed the default evm address from remote address validator by @Foivos in #112
- feat: using a custom implementation of AxelarExecutable by @Foivos in #114
- ci(Slither): action + fixes + comments by @re1ro in #117
- feat(InterchainTokenExecutable): passing token address to the executable by @re1ro in #118
- fix: pass commandId explicitly by @milapsheth in #121
- feat: bump to latest gmp-sdk and cgp by @milapsheth in #122
- feat: improved test coverage part one by @deanamiel in #111
- feat: improved test coverage part two by @deanamiel in #113
- feat: improved test coverage part three by @deanamiel in #115
- build: contract sizer [AXE-2035] by @blockchainguyy in #123
- feat: test hardcoded constants by @deanamiel in #119
- fix: file casing by @milapsheth in #126
- ci: check compilation warnings [AXE-2035] by @blockchainguyy in #124
- feat: remove liquidity pool token manager from ITS by @deanamiel in #129
- feat: flowLimit tests live network support by @deanamiel in #130
- feat: fixed some potential attack for the fee token manager by @Foivos in #133
- refactor: use normal proxy for ITS by @milapsheth in #134
- feat: added support for the sdk roles contract instead of custom roles definitions by @Foivos in #128
- feat(Service): implementing ValuedExpressExecutable by @re1ro in #131
- feat: custom token registrars by @Foivos in #116
- refactor: inter-chain-token service events and errors [AXE-2064] by @blockchainguyy in #125
- feat: use gmp sdk utils by @Foivos in #132
- feat: renamed a bunch of stuff for simplifying (on another PR) by @Foivos in #136
- feat: simplify its by @Foivos in #137
- refactor(AddressBytes): using lib from SDK by @re1ro in #141
- feat: updated tokenRegistrar by @Foivos in #138
- feat: remove IStandardizedTokenProxy by @deanamiel in #139
- refactor: change tokenId getter to interchainTokenId by @milapsheth in #142
- refactor: more method and event renaming by @milapsheth in #143
- feat: fixed token flow by @Foivos in #144
- feat: did a bunch of renaming by @Foivos in #145
- refactor: update folder structure by @milapsheth in #146
- refactor: simplify proxies by @milapsheth in #147
- feat: removed operator from interchain token payload by @Foivos in #149
- refactor(ITS): inheriting InterchainAddressValidator by @re1ro in #150
- feat: build abi files into ts encoding files by @canhtrinh in #140
- refactor: update workflows by @milapsheth in #153
- feat: add codeowners by @milapsheth in #154
- feat: track factory on its by @Foivos in #152
- refactor: rename token standard interface by @milapsheth in #156
- chore: bump release version by @milapsheth in #157
- feat: better ux service transfer by @Foivos in #158
- feat: add gh release actions by @milapsheth in #159
- fix: fix and improve full flow tests by @milapsheth in #160
- refactor: use validTokenAddress for validated token manager by @milapsheth in #161
- chore: v1 beta release by @milapsheth in #162
New Contributors
- @StephenFluin made their first contribution in #90
- @blockchainguyy made their first contribution in #120
- @canhtrinh made their first contribution in #140
Full Changelog: v0.3.0...v1.0.0-beta.1
v0.3.0
What's Changed
- feat: remove todos and update to v0.3.0 by @milapsheth in #89
Full Changelog: v0.2.0...v0.3.0