- @iov/encoding: Use implementations of
fromHex
,toHex
,fromAscii
,toAscii
,fromBase64
,toBase64
,fromRfc3339
,toRfc3339
,fromUtf8
,toUtf8
,Bech32
,isNonNullObject
,isUint8Array
,Int53
,Uint32
,Uint53
,Uint64
,Decimal
from CosmJS in a backwards-compatible way. Users of@iov/encoding
should use them directly from@cosmjs/encoding
,@cosmjs/math
and@cosmjs/utils
. - @iov/crypto: Use implementations of
Bip39
,EnglishMnemonic
,HashFunction
,Hmac
,Keccak256
,Argon2id
,Argon2idOptions
,Ed25519
,Ed25519Keypair
,Random
,Ripemd160
,Secp256k1
,Secp256k1Keypair
,ExtendedSecp256k1Signature
,Secp256k1Signature
,Sha1
,Sha256
,Sha512
,pathToString
,stringToPath
,Slip10
,Slip10Curve
,Slip10RawIndex
,Slip10Result
,slip10CurveFromString
,Xchacha20poly1305Ietf
,Xchacha20poly1305IetfCiphertext
,Xchacha20poly1305IetfKey
,Xchacha20poly1305IetfMessage
,Xchacha20poly1305IetfNonce
from CosmJS in a backwards-compatible way. Users of@iov/crypto
should use them directly from@cosmjs/crypto
. - @iov/utils: Use implementations of
assert
andsleep
from CosmJS in a backwards-compatible way. Users of@iov/utils
should use them directly from@cosmjs/utils
.
- @iov/cosmos-sdk: New packages added that contains a BCP implementation for Cosmos SDK 0.38 blockchains.
- @iov/crypto: Add
pathToString
which creates a printable representation of a SLIP-0010 HD path. - @iov/crypto: Add
stringToPath
which parses a SLIP-0010 HD path. - @iov/encoding: Pull out free functions
fromRfc3339
,toRfc3339
,fromAscii
,toAscii
,fromUtf8
,toUtf8
,fromHex
,toHex
,fromBase64
andtoBase64
to simplify usability. The namespacing classEncoding
and all its members are now deprecated. - @iov/keycontrol: Add new HD path helper for the upcoming IOV blockchain
HdPaths.iovCosmosSdk
.
- @iov/bns: Rename
thirdPartyToken
tobroker
. - @iov/bns: Add
domainGracePeriod
. - @iov/bns: Add missing minimal proposal decoding for weave v1.0.x.
- @iov/ethereum: Add
smartcontracts
directory.
- @iov/bns: Add minimal proposal decoding for weave v1.0.x.
- @iov/bns: Add support for weave v1.0.0.
- @iov/bns: Fix
ReplaceAccountTargetsTx
type.
- @iov/cosmoshub: Fix types export.
- @iov/keycontrol: Deprecate
HdPaths.cosmos
in favour of the newHdPaths.cosmosHub
. - @iov/cosmos*: Rename package
cosmos
tocosmoshub
.
- @iov/cli: Add support for
Accounts
andDomains
. - @iov/crypto: Add
Secp256k1Signature.fromFixedLength
.
- @iov/bns: Add support for
Accounts
module. - @iov/bcp: Add optional payer field to
Fee
type. - @iov/bcp: Add optional feePayer parameter to
BlockchainConnection.withDefaultFee
. - @iov/bcp: Add optional senderPubkey parameter to
SendTransaction
. - @iov/bcp: Add
isSignedTransaction
helper. - @iov/bcp: Add
isConfirmedAndSignedTransaction
helper. - @iov/bcp: Add
NonEmptyArray
andisNonEmptyArray
/newNonEmptyArray
helper functions. - @iov/bns: Add support for weave v0.24.0.
- @iov/bns: Add support for weave v0.25.0.
- @iov/bns: Support ExecuteMigration in CreateProposal transactions.
- @iov/bns: Add optional payer parameter to
BnsConnection.withDefaultFee
. - @iov/bns:
BnsConnection.searchTx
now resolves to an array ofConfirmedAndSignedTransaction<UnsignedTransaction> | FailedTransaction
. - @iov/bns: Add
BnsConnection.estimateTxSize
andBnsConnection.getTxConfiguration
methods. - @iov/bns: Include transaction size fee in
BnsConnection.getFeeQuote
, which now includes optional parametersnumberOfSignatures
andnonce
for more accurate estimates. - @iov/bns: Exports Txs from the
accounts
module. - @iov/bns-governance: Add proposal type
ExecuteMigration
. - @iov/bns-governance: Make
Governor.identity
public. - @iov/cosmos: New package to support Cosmos.
- @iov/lisk: Export
pubkeyToAddress
. - @iov/utils: New package added that includes utils.
- @iov/bns: Convert
UpdateMultisignatureTx.contractId
to number.
Breaking changes
- ALL: With v2.0.0 we are moving to the new native
BigInt
type. As a result the minimum Node.js version is now 10.13. Only browsers which supportBigInt
will be compatible with IOV Core. This currently includes Chrome, Firefox and Opera, but not Edge, Internet Explorer or Safari. - ALL: Upgrade TypeScript from 3.5 to 3.7. This changes the signature of getters in declaration files (see https://devblogs.microsoft.com/typescript/announcing-typescript-3-6/#get-and-set-accessors-allowed-in-ambient-contexts)
- ALL: Change ECMAScript target version to ES2017, which results in JavaScript
output that is smaller, faster and easier to read and debug. The main change
is the usage of native
async
/await
, which is supported by all relevant JavaScript environments. - @iov/bcp: Remove
LightTransaction
andWithCreator
types and helpers. - @iov/bcp:
UnsignedTransaction
now has achainId
field instead ofcreator
. - @iov/bcp: Replace
primarySignature
andotherSignatures
inSignedTransaction
with a singlesignatures
field of typeNonEmptyArray
. - @iov/bcp: Convert getter function
BlockchainConnection.chainId()
into read-only property.chainId
. - @iov/bcp: Add required
BlockchainConnection.codec
property. - @iov/bns: Require fee payer to be specified when encoding a transaction with a fee.
- @iov/bns: Use single
signatures
field inSignedTransaction
s. - @iov/bns: The new field
VoteTx.voter
must be set for new transactions. - @iov/dpos: Package removed due to the removal of @iov/rise.
- @iov/ethereum: Use single
signatures
field inSignedTransaction
s. - @iov/keycontrol:
UserProfile.signTransaction
now requires the signing identity as an argument, just likeUserProfile.appendSignature
. - @iov/keycontrol: Deprecate
HdPaths.iovFaucet
. - @iov/keycontrol: Use single
signatures
field inSignedTransaction
s. - @iov/lisk: Require
senderPubkey
inSendTransaction
s. - @iov/lisk: Use single
signatures
field inSignedTransaction
s. - @iov/multichain: The
Profile
type required to create aMultiChainSigner
has been updated to match theUserProfile
change in @iov/keycontrol. - @iov/multichain:
MultiChainSigner.signAndPost
andSigningServerCore
now both require a signingidentity
argument. - @iov/rise: Package removed.
- @iov/bns: Upgrade weave to v0.22.0.
- @iov/bns: Support SetMsgFee in CreateProposal transactions.
- @iov/crypto: Upgrade to libsodium-wrappers v0.7.6. This means @iov/cli now supports Node v12.
- @iov/tendermint-rpc: Add support for Tendermint RPC v0.32.
- @iov/bns: Populate the correct block ID in
BnsConnection.watchBlockHeaders
. - @iov/bns: Export
Condition
,buildCondition
andconditionToAddress
. - @iov/cli: Add missing
tsconfig_repl.json
to the npm package, which prevented the tool from starting when installed via npm. - @iov/cli: Automatically import types necessary for working with escrows.
- @iov/encoding: Add
Uint32.toBytesLittleEndian
. - @iov/tendermint-rpc: Add
hashBlock
toAdaptor
type and implement forv0-31
. - @iov/tendermint-rpc: Add
ReadonlyDateWithNanoseconds
andVersion
types. - @iov/tendermint-rpc: Fill out
Header
type with missing fields and use newReadonlyDateWithNanoseconds
type fortime
field.
Breaking changes
- @iov/bcp: Add connection type parameter to
ChainConnector
and adaptcreateBnsConnector
,createEthereumConnector
,createLiskConnector
,createRiseConnector
accordingly. - @iov/bns: Change multisig ID type to
number
inmultisignatureIdToAddress
. - @iov/bns: Make escrow IDs numeric in transaction/action types.
- @iov/bns: Take a numeric escrow ID as an argument in
escrowIdToAddress
. - @iov/bns-governance: Remove
CommitteeIds
type as well ascommitteeIds
andguaranteeFundEscrowIds
constants. These are now the responsibility of the consumer. - @iov/bns-governance: Remove
TreasurySend
proposal type,TreasurySendOptions
type andGovernorOptions.treasuryAddress
. - @iov/bns-governance: Make
guaranteeFundEscrowId
Governor
option numeric. - @iov/bns-governance: Require a non-empty list of recipients when building a
DistributeFunds
create proposal tx. - @iov/encoding: Remove deprecated
EnglishMnemonic.asString
use.toString
instead. - @iov/encoding: Change return type of
Uint32.toBytesBigEndian
,Uint64.toBytesBigEndian
andUint64.toBytesLittleEndian
toUint8Array
. - @iov/keycontrol: Remove unused
ReadonlyWallet.canSign
from interface and implementations. - @iov/keycontrol: Remove deprecated
HdPaths.simpleAddress
. - @iov/tendermint-rpc: Remove support for Tendermint 0.29.x – 0.30.x.
- @iov/cli: Automatically import types necessary for creating and updating multisignature contracts
- @iov/encoding: Add missing integer check on input bytes in
Uint32.fromBigEndianBytes
andUint64.fromBytesBigEndian
- @iov/encoding: Add
Decimal.fractionalDigits
,.plus
and.toFloatApproximation
.
- @iov/bcp: Add
isFullSignature
typechecker. - @iov/bns: Validate memo length when encoding transactions.
- @iov/bns: Validate pubkey length when encoding.
- @iov/bns: Export escrow transaction types.
- @iov/bns: Export proposal action checkers.
- @iov/bns: Fixed a bug where memo fields of swap offer transactions were not parsed during decoding.
- @iov/bns-governance:
Governor.getElectionRules
now returns an empty array instead of throwing if no election rules are found. - @iov/encoding: Add
Decimal
class.
- @iov/bns: Create exported
electionRuleIdToAddress
- @iov/bns: Create exported
swapToAddress
,multisignatureIdToAddress
andescrowIdToAddress
- @iov/bns-governance: Let
Governor.getElectorates
return latest version only (like.getElectionRules
).
- @iov/bns-governance: Allow skipping filter in
Governor.getElectorates
.
- @iov/bns-governance: Make
Governor.address
public
- @iov/bns: Add
MultisignatureTx
type andisMultisignatureTx
helper function to BNS. - @iov/bns: Support encoding/decoding multisignature transactions.
- @iov/bns-governance: Add
TreasurySend
proposal type and exportTreasurySendOptions
. - @iov/bns-governance: Support
TreasurySend
proposals inGovernor.buildCreateProposalTx
.
- @iov/bns: Export
pubkeyToAddress
for address generation with prefix instead of chain ID.
Breaking changes
- @iov/bcp:
ChainConnector
typeclient
property has been renamed toestablishConnection
andexpectedChainId
property has been changed from optional toChainId | undefined
. - @iov/bns: Remove support for weave 0.19.x and 0.20.x; add support for weave 0.21.x.
- @iov/bns:
bnsConnector
has been renamed tocreateBnsConnector
. - @iov/bns:
CashConfiguration.minimalFee
is now nullable. - @iov/bns:
BnsConnection.getDefaultFee
can resolve toundefined
. - @iov/core: Re-implement
Random.getBytes
to use crypto APIs directly. It is now synchronous. - @iov/ethereum:
ethereumConnector
has been renamed tocreateEthereumConnector
. - @iov/jsonrpc: Remove deprecated types:
jsonRpcCodeInternalError
,jsonRpcCodeInvalidParams
,jsonRpcCodeInvalidRequest
,jsonRpcCodeMethodNotFound
,jsonRpcCodeParseError
,jsonRpcCodeServerErrorDefault
. - @iov/jsonrpc: Rename
parseJsonRpcResponse2
toparseJsonRpcResponse
. - @iov/lisk:
liskConnector
has been renamed tocreateLiskConnector
. - @iov/rise:
riseConnector
has been renamed tocreateRiseConnector
.
- @iov/keycontrol: Add
UserProfile.identityExists
- @iov/bns: Add
getVotes
by voter address method toBnsConnection
class. - @iov/bns-governance: Add
getVotes
method toGovernor
class. - @iov/crypto: Add
EnglishMnemonic.wordlist
.
- @iov/bns: Set chain ID for IOV mainnet (
iov-mainnet
). - @iov/cli: Import
UpdateTargetsOfUsernameTx
/ChainAddressPair
by default.
- @iov/bcp: Migrate to a
Uint8Array
check that works across multiple instantiations of the JavaScript standard library. - @iov/bns: Add
BnsConnection.getValidators
. - @iov/bns: Add
ProposalAction
union type and specific proposal action types. - @iov/bns: Add
TransferUsernameTx
type andisTransferUsernameTx
helper function. - @iov/bns-governance: Add new package to help with common governance tasks.
Includes
Governor
class (withGovernorOptions
);ProposalType
along with the union typeProposalOptions
and individual options types for each proposal type;CommitteeId
andCommitteeIds
types along with constantscommitteeIds
andguaranteeFundEscrowIds
to be populated with known committee IDs on a per-chain basis. - @iov/encoding: Add standard library type checks
isNonNullObject
andisUint8Array
. - @iov/encoding:
TransactionEncoder
now skips dictionary entries with valueundefined
instead of throwing an error. - @iov/ethereum: Fix transactions data in
EthereumConnection.liveTx
. - @iov/keycontrol: Add
HdPaths.iovFaucet
. - @iov/multichain: Add optional error logging callback to
SigningServerCore
.
Breaking changes
- @iov/bcp:
ConfirmedTransaction
does not extendSignedTransaction
anymore, allowingBlockchainConnection.searchTx
,.listenTx
and.liveTx
to use scrapers as a data source, that do not include signatures. The new typeConfirmedAndSignedTransaction
was added for cases when all data needs to be available, like inBlockchainConnection.getTx
. - @iov/bns:
ElectionRule
,Proposal
andVersionedId
all use numeric IDs now to conform withElectorate
. - @iov/bns: Remove support for weave 0.16.x; add support for weave 0.19.x and 0.20.x.
- @iov/bns: Remove
AddAddressToUsernameTx
andUpdateTargetsOfUsernameTx
in favour of the newUpdateTargetsOfUsernameTx
. - @iov/bns: Rename
BnsUsernameNft.addresses
to.targets
. - @iov/bns: Rename
RegisterUsernameTx.addresses
to.targets
. - @iov/bns:
RegisterUsernameTx.username
now has to include a *iov suffix. - @iov/bns: Remove
TallyTx
as tallies will now be performed automatically. - @iov/core: Move
TransactionEncoder
into @iov/encoding. - @iov/core: Rename package to @iov/multichain.
- @iov/jsonrpc: Move basic json types
JsonCompatibleValue
,isJsonCompatibleValue
,JsonCompatibleDictionary
,isJsonCompatibleDictionary
,JsonCompatibleArray
,isJsonCompatibleArray
into @iov/encoding.
- @iov/bns: Export
CreateProposalTx
andisCreateProposalTx
.
- @iov/bcp: Add
isSwapTransaction
helper function. - @iov/bcp: Add
isOpenSwap
,isClaimedSwap
andisAbortedSwap
helper functions. - @iov/bcp: Add
LightTransaction
andWithCreator
types, andisLightTransaction
helper function. - @iov/bcp:
ConfirmedTransaction
andSignedTransaction
now take a type argument that extendsLightTransaction
(UnsignedTransaction
is still the default). - @iov/bcp: Helper methods
isConfirmedTransaction
andisFailedTransaction
now take a type argument that extendsLightTransaction
(UnsignedTransaction
is still the default). - @iov/bcp: Add
getTx
method toBlockchainConnection
. - @iov/bns: Add support for multisignature transactions.
- @iov/bns: Add
CreateMultisignatureTx
andUpdateMultisignatureTx
types along withParticipant
. - @iov/bns: Add
getTx
method toBnsConnection
. - @iov/bns: Add support for escrow transactions.
- @iov/bns: Add
CreateEscrowTx
,ReleaseEscrowTx
,ReturnEscrowTx
andUpdateEscrowPartiesTx
types. - @iov/bns: Add support for governance functionality: add
CreateProposalTx
,VoteTx
,TallyTx
and related types as well asBnsConnection.getElectorates
,.getElectionRules
,.getProposals
. - @iov/ethereum: Add
createEtherSwapId
andcreateErc20SwapId
static methods. - @iov/ethereum: Add
SwapIdPrefix
enum. - @iov/ethereum: Add
Erc20TokensMap
type. - @iov/ethereum: Add
Erc20ApproveTransaction
type andisErc20ApproveTransaction
helper function. - @iov/ethereum: Add support for ERC 20
approve
transactions. - @iov/ethereum: Add support for ERC20 atomic swap transactions.
- @iov/ethereum: Add
getTx
method toEthereumConnection
. - @iov/lisk: Add
getTx
method toLiskConnection
. - @iov/rise: Add
getTx
method toRiseConnection
. - @iov/socket: Add 10 second timeout to
SocketWrapper
. Value can be configured using an optional constructor argument. - @iov/socket: Add 10 second timeout to
StreamingSocket
. Value can be configured using an optional constructor argument. - @iov/socket: Add
QueueingStreamingSocket
andReconnectingSocket
class. - @iov/stream:
ValueAndUpdates.waitFor
now rejects the promise if the underlying stream emits an error before the search value was found. - @iov/tendermint-rpc: Add support for Tendermint 0.30.x. and 0.31.x
Breaking changes
- @iov/bcp: Remove unused type
SwapIdString
. - @iov/bcp: Remove
AtomicSwapHelpers.createId
, which is now the responsibility of individual blockchain connections. - @iov/bcp: Add
SwapId
type, and use where appropriate. This is an interface containingSwapIdBytes
and can be extended on a per-chain basis. - @iov/bcp: Rename
AtomicSwapIdQuery.swapid
toAtomicSwapIdQuery.id
. - @iov/bcp: Rename
AtomicSwapHashlockQuery.hashlock
toAtomicSwapHashQuery.hash
and change to typeHash
; renameisAtomicSwapHashlockQuery
toisAtomicSwapHashQuery
. - @iov/bcp: Rename
PublicIdentity
toIdentity
,isPublicIdentity
toisIdentity
andpublicIdentityEquals
toidentityEquals
. - @iov/bcp: Several transaction types now extend
LightTransaction
instead ofUnsignedTransaction
(i.e. they have nocreator
field):SendTransaction
,SwapOfferTransaction
,SwapClaimTransaction
, andSwapAbortTransaction
. - @iov/bcp: Add
sender
field toSendTransaction
. - @iov/bcp:
BlockchainConnection
methodslistenTx
,liveTx
andsearchTx
now all resolve to confirmedLightTransaction
s instead ofUnsignedTransaction
s. - @iov/bcp: Rename
PublicKeyBundle
,isPublicKeyBundle
andpublicKeyBundleEquals
toPubkeyBundle
,isPubkeyBundle
andpubkeyBundleEquals
. - @iov/bcp: Rename
PublicKeyBytes
toPubkeyBytes
. - @iov/bns: Remove obsolete types
BnsBlockchainNft
,BnsBlockchainsByChainIdQuery
,BnsBlockchainsQuery
. - @iov/bns: Switch to new
SwapId
type instead ofSwapIdBytes
where appropriate. - @iov/bns:
BnsConnection
methodslistenTx
,liveTx
andsearchTx
now all resolve to confirmedLightTransaction
s instead ofUnsignedTransaction
s. - @iov/bns: Remove support for weave 0.14.x; add support for weave 0.16.x.
- @iov/bns: Remove
BnsUsernamesByChainAndAddressQuery
andisBnsUsernamesByChainAndAddressQuery
, since reverse lookup is not supported anymore. - @iov/bns: Rename
BnsUsernamesByOwnerAddressQuery
toBnsUsernamesByOwnerQuery
. - @iov/core: Remove
JsRpcSigningServer
and all related JS-RPC types. - @iov/core: Change return type of
SigningServerCore.signAndPost
toTransactionId | null
. - @iov/core: Remove re-exports
Address
,ChainId
,Nonce
,SendTransaction
,TokenTicker
from @iov/bcp andEd25519HdWallet
,Ed25519Wallet
,HdPaths
,Keyring
,Secp256k1HdWallet
,UserProfile
,Wallet
,WalletId
,WalletImplementationIdString
,WalletSerializationString
from @iov/keycontrol. - @iov/crypto: Remove
Secp256k1KeypairSymbol
.Secp256k1Keypair
now uses type-tagger instead. - @iov/ethereum: Switch to new
SwapId
type instead ofSwapIdBytes
where appropriate. - @iov/ethereum:
Erc20ApproveTransaction
now extendsLightTransaction
instead ofUnsignedTransaction
(i.e. it has nocreator
field). - @iov/ethereum: Remove
wsUrl
fromconnectionOptions
. Pass either WS or HTTP URLs viabaseUrl
instead. - @iov/ethereum:
EthereumConnection
methodslistenTx
,liveTx
andsearchTx
now all resolve to confirmedLightTransaction
s instead ofUnsignedTransaction
s. - @iov/keycontrol: The
UserProfile
storage format version was bumped to 2. Profiles stored in this version can only be opened with IOV-Core 0.14.4 and above. - @iov/jsonrpc: The
id
field ofJsonRpcRequest
,JsonRpcSuccessResponse
andJsonRpcErrorResponse
is now of typeJsonRpcId
, which can be a string or a number. - @iov/jsonrpc: Remove
parseJsonRpcResponse
andparseJsonRpcError
. - @iov/lisk:
LiskConnection
methodslistenTx
,liveTx
andsearchTx
now all resolve to confirmedLightTransaction
s instead ofUnsignedTransaction
s. - @iov/lisk: Switch to new chain ID format:
lisk-%s
where%s
is the first 10 hex-digits of the nethash. - @iov/rise:
RiseConnection
methodslistenTx
,liveTx
andsearchTx
now all resolve to confirmedLightTransaction
s instead ofUnsignedTransaction
s. - @iov/rise: Switch to new chain ID format:
rise-%s
where%s
is the first 10 hex-digits of the nethash. - @iov/tendermint-rpc: Remove support for Tendermint 0.25.x – 0.28.x.
- @iov/tendermint-rpc: Rename
v0_27
tov0_29
, which is now the adaptor for 0.29.x and 0.30.x. - @iov/tendermint-rpc: Rename
ConsensusParams.blockSize
to.block
andBlockSizeParams
toBlockParams
.
- @iov/bns: Export
isBnsTx
,isRegisterUsernameTx
,isAddAddressToUsernameTx
,isRemoveAddressFromUsernameTx
. - @iov/cli: Automatically import
TransactionId
from @iov/bcp. - @iov/crypto: Add
EnglishMnemonic.toString
; deprecate.asString
.
- @iov/ethereum: EthereumConnection now accepts a ws:// url as its baseUrl.
- @iov/keycontrol: Add missing
UserProfileOptions
export. - @iov/keycontrol: Add
UserProfile.deriveEncryptionKey
, which lets the caller create and cache aUserProfileEncryptionKey
, in order to speed up.storeIn
and.loadFrom
operations with the same password. - @iov/keycontrol:
UserProfile.loadFrom
and.storeIn
now acceptstring | UserProfileEncryptionKey
as a secret.
- @iov/bns: Automatically normalize empty memo strings for weave compatibility.
- @iov/socket: Fix bug in
SocketWrapper
where the timeout error was triggered even if the connection was successfully established.
- @iov/jsonrpc: Add
makeJsonRpcId
. - @iov/socket: Add 10 second timeout to
SocketWrapper
. Value can be configured using an optional constructor argument. - @iov/socket: Add 10 second timeout to
StreamingSocket
. Value can be configured using an optional constructor argument. - @iov/core: Add an optional argument
meta
toGetIdentitiesAuthorization
,SignAndPostAuthorization
,SigningServerCore.getIdentities
,SigningServerCore.signAndPost
,JsonRpcSigningServer.handleUnchecked
andJsonRpcSigningServer.handleChecked
which allows passing request meta information from the request handler to the authorization callbacks.
- @iov/socket: Fix bug in
SocketWrapper
where the timeout error was triggered even if the connection was successfully established.
- @iov/jsonrpc: Add
makeJsonRpcId
. - @iov/socket: Add 10 second timeout to
SocketWrapper
. Value can be configured using an optional constructor argument. - @iov/socket: Add 10 second timeout to
StreamingSocket
. Value can be configured using an optional constructor argument. - @iov/core: Add an optional argument
meta
toGetIdentitiesAuthorization
,SignAndPostAuthorization
,SigningServerCore.getIdentities
,SigningServerCore.signAndPost
,JsonRpcSigningServer.handleUnchecked
andJsonRpcSigningServer.handleChecked
which allows passing request meta information from the request handler to the authorization callbacks.
- @iov/core: Add
JsonRpcSigningServer
. - @iov/core: Deprecate
JsRpcSigningServer
and related types in favour ofJsonRpcSigningServer
. - @iov/core: Add
SigningServerCore.signedAndPosted
. - @iov/core: In
JsonRpcSigningServer
, decode all application level parameters viaTransactionEncoder.fromJson
. Before this was done inconsistently fortransaction
ingetIdentities
only. - @iov/ethereum: Support serialization of atomic swap transactions (ETH and ERC20).
- @iov/jsonrpc: Add
jsonRpcCode
constant object. Deprecate oldjsonRpcCode*
constants in favour ofjsonRpcCode
. - @iov/jsonrpc: Create
isJsonRpcSuccessResponse
analogue toisJsonRpcErrorResponse
. - @iov/jsonrpc: Create
parseJsonRpcErrorResponse
. - @iov/jsonrpc: Create
parseJsonRpcSuccessResponse
. - @iov/jsonrpc: Deprecate
parseJsonRpcError
andparseJsonRpcResponse
. - @iov/jsonrpc: Create
parseJsonRpcResponse2
, which combinesparseJsonRpcErrorResponse
andparseJsonRpcSuccessResponse
. It will be renamed toparseJsonRpcResponse
as soon as the existingparseJsonRpcResponse
is removed. - @iov/keycontrol: Export
ReadonlyWallet
. - @iov/keycontrol: Deprecate
HdPaths.simpleAddress
.
- @iov/jsonrpc: Create
parseJsonRpcResponse2
, which combinesparseJsonRpcErrorResponse
andparseJsonRpcSuccessResponse
. It will be renamed toparseJsonRpcResponse
as soon as the existingparseJsonRpcResponse
is removed.
- @iov/core: In
JsonRpcSigningServer
, decode all application level parameters viaTransactionEncoder.fromJson
. Before this was done inconsistently fortransaction
ingetIdentities
only. - @iov/jsonrpc: Create
isJsonRpcSuccessResponse
analogue toisJsonRpcErrorResponse
. - @iov/jsonrpc: Create
parseJsonRpcErrorResponse
. - @iov/jsonrpc: Create
parseJsonRpcSuccessResponse
. - @iov/jsonrpc: Deprecate
parseJsonRpcError
andparseJsonRpcResponse
.
- @iov/keycontrol: Export
ReadonlyWallet
. - @iov/jsonrpc: Add
jsonRpcCode
constant object. Deprecate oldjsonRpcCode*
constants in favour ofjsonRpcCode
. - @iov/core: Add
JsonRpcSigningServer
. - @iov/core: Deprecate
JsRpcSigningServer
and related types in favour ofJsonRpcSigningServer
. - @iov/core: Add
SigningServerCore.signedAndPosted
.
- @iov/bcp: Add
AtomicSwapHelpers.createId
. - @iov/bns: Cache token data from chain.
- @iov/ethereum: Export
SwapContractEvent
enum and related helpers. - @iov/ethereum: Export
EthereumLog
interface. - @iov/ethereum: Add
decodeSwapProcessState
anddecodeEventSignature
ABI methods. - @iov/ethereum: Add
atomicSwapEtherContractAddress
property toEthereumConnectionOptions
. - @iov/ethereum: Add optional
minHeight
andmaxHeight
parameters toEthereumConnection.getSwaps
. - @iov/stream: Create stream operator
dropDuplicates
.
Breaking changes
- @iov/bcp: Change type of
SwapData.timeout
andSwapOfferTransaction.timeout
toSwapTimeout = BlockHeightTimeout | TimestampTimeout
. - @iov/bcp: Rename
SwapState.Expired
to.Aborted
andExpiredSwap
toAbortedSwap
. - @iov/bcp: New type
Hash
used for atomic swap hashes. UseAtomicSwapHelpers.hashPreimage
to create those hashes. - @iov/bcp: Rename
SwapState
toSwapProcessState
. - @iov/bcp: Change type of
Fee.gasLimit
to string. - @iov/bcp: Change type of
Account.balance
to array ofAmount
, i.e. remove thetokenName
field. - @iov/bcp: Remove obsolete type
BcpCoin
. - @iov/bcp: Rename
BcpQueryTag
toQueryTag
andBcpTxQuery
toTransactionQuery
. - @iov/bcp: Rename
BcpAtomicSwapConnection
toAtomicSwapConnection
andBcpConnection
toBlockchainConnection
. - @iov/bcp: Rename
BcpTicker
toToken
. - @iov/bcp: Rename
BcpConnection.getTicker
togetToken
andBcpConnection.getAllTickers
to.getAllTokens
. - @iov/bns: Upgrade codec for compatibility with weave 0.14.x.
- @iov/ethereum: Options argument in
ethereumConnector
,EthereumConnection
andEthereumConnection.establish
is now required. Can be{}
.
- @iov/ethereum: Export
Erc20Options
. - @iov/ethereum: Set ERC20 tokens in codec of
ethereumConnector
. - @iov/ethereum: Deduplicate transaction events in
liveTx
/listenTx
.
- @iov/ethereum: Avoid dependency on
@types/bn.js
fromindex.d.ts
.
- @iov/ethereum: Allow querying of ERC20 token balances
- @iov/ethereum: Allow sending of ERC20 tokens
- @iov/ethereum: Support ERC20 tokens in
searchTx
,listenTx
andliveTx
. - @iov/ethereum: Export instantiable
EthereumCodec
withEthereumCodecOptions
argument. The oldethereumCodec
is now a backward compatible instance ofEthereumCodec
with default options. - @iov/ethereum: Implement
getFeeQuote
method onEthereumConnection
. - @iov/ethereum: Fix transaction fee parsing for transactions from RPC/scraper.
- @iov/ethereum: In
parseBytes
, convert on-chaininput
/memo data into hex representation when it is no valid UTF-8. - @iov/ethereum: Add
pollInterval
toEthereumConnectionOptions
. - @iov/dpos: Let
Serialization.serializeTransaction
accept transactions with fee set.
- @iov/bcp: Add
AtomicSwapMerger
- @iov/bcp:
AtomicSwapHelpers.createPreimage
and.hashPreimage
are now available to perform BCP specific atomic swap operations - @iov/bcp: Add
signedBy
field toBcpTxQuery
. - @iov/bcp: Add
memo
field toSwapOfferTransaction
. - @iov/bcp: Add
Fee
type andisFee
helper function. - @iov/bcp: Add
getFeeQuote
method toBcpConnection
. - @iov/bns: Implement
getFeeQuote
method onBnsConnection
. - @iov/keycontrol: Add
Keyring.getAllIdentities
andKeyring.getWalletByIdentity
- @iov/keycontrol: Add
UserProfile.getAllIdentities
- @iov/keycontrol: Add
.previewIdentity
to theReadonlyWallet
/Wallet
interfaces - @iov/jsonrpc: Let
isJsonCompatibleDictionary
not accept non-simple objects - @iov/lisk: Implement
watchBlockHeaders
method onLiskConnection
. - @iov/lisk: Implement
getFeeQuote
method onLiskConnection
. - @iov/rise: Implement
getFeeQuote
method onRiseConnection
.
Breaking changes
- @iov/bcp-types: Renamed to @iov/bcp
- @iov/bcp: Pluralize
.amounts
property and change toAmount
array inSwapOfferTransaction
,SwapData
- @iov/bcp: Rename
BcpAtomicSwap
toAtomicSwap
- @iov/bcp: Rename atomic swap query types to
AtomicSwapQuery
,AtomicSwapRecipientQuery
,AtomicSwapSenderQuery
,AtomicSwapIdQuery
,AtomicSwapHashlockQuery
,isAtomicSwap*Query
. - @iov/bcp: Rename
bnsSwapQueryTags
tobnsSwapQueryTag
- @iov/bcp: Let
SwapOfferTransaction
take ahash
instead of apreimage
. - @iov/bcp: Rename
SwapData.hashlock
toSwapData.hash
- @iov/bcp: Remove
SwapCounterTransaction
in favour ofSwapOfferTransaction
for both offer and counter offer. - @iov/bcp: Transaction fee data (including gas data) is now stored under a
fee
key. - @iov/bcp: Rename
SwapTimeoutTransaction
toSwapAbortTransaction
andisSwapTimeoutTransaction
toisSwapAbortTransaction
. - @iov/bcp: Convert type
Nonce
from Int53 to number to simplify use over JavaScript and JSON interfaces. - @iov/bns: Remove
bnsNonceTag
in favour ofBcpTxQuery.signedBy
. - @iov/core: Remove wallet ID argument from
MultiChainSigner.signAndPost
- @iov/core: Rename
JsonRpcSigningServer
toJsRpcSigningServer
and convert interface from JSON to JavaScript. - @iov/encoding: Remove
Uint32.asNumber
. UseUint32.toNumber
instead. - @iov/ethereum: The
options
parameter ofethereumConnector
does not allow strings anymore. Use{ wsUrl: myWebsocketUrl }
instead. - @iov/jsonrpc: Make request and response types generic in
SimpleMessagingConnection
. - @iov/keycontrol: Remove
HdPaths.metamaskHdKeyTree
. UseHdPaths.ethereum
instead. - @iov/keycontrol:
Keyring.getWallet
andKeyring.getWallets
return the immutable type ReadonlyWallet now. New functions to mutate wallets are added:Keyring.setWalletLabel
,.createIdentity
,.setIdentityLabel
are added. - @iov/keycontrol: Let
Keyring.addWallet
return aWalletInfo
object - @iov/keycontrol:
Keyring.addWallet
now stores a copy of the wallet - @iov/keycontrol: Identities now must be unique in
Keyring
. - @iov/keycontrol: Remove identity argument from
UserProfile.signTransaction
- @iov/keycontrol: Remove wallet ID argument from
UserProfile.signTransaction
,.appendSignature
,.setIdentityLabel
and.getIdentityLabel
as well asKeyring.setIdentityLabel
. - @iov/ledger-bns: Package removed from this monorepo and now available at https://github.com/iov-one/iov-ledger-bns
- @iov/iov-core: Constructor of
SigningServerCore
now takes two arguments for authozization callbacks.
- @iov/ethereum: Add missing dependencies on @iov/socket and @iov/stream
- @iov/ethereum: Export
toChecksummedAddress
- @iov/crypto: Add
Secp256k1.recoverPubkey
to recover pubkey from signature and message - @iov/ethereum: Implement pubkey recovery when parsing transaction in search by transaction ID.
- @iov/ethereum: Transaction parsing now works for pre-EIP155 signatures
- @iov/ethereum: Let listenTx/liveTx return signer's pubkey
- @iov/ethereum: Let
.getAccount
return undefined when balance is 0
- @iov/bns: Encode transaction fees
- @iov/bns: Export
ChainAddressPair
- @iov/ethereum: Allow passing
EthereumConnectionOptions
instead of websocket URL into secondethereumConnector
parameter.
- @iov/ethereum: Allow passing
EthereumConnectionOptions
instead of websocket URL into secondethereumConnector
parameter.
Breaking changes
- @iov/bcp-types: Remove
Bcp*
prefix fromBcpAccount
,BcpAccountQuery
,BcpAddressQuery
,BcpPubkeyQuery
- @iov/bcp-types: Remove
Account.name
in favour of BNS' username NFTs. - @iov/bcp-types: Remove
BcpConnection.changeBlock
along with its implementations in favour ofBcpConnection.watchBlockHeaders
. - @iov/bcp-types: Remove
BcpQueryEnvelope
anddummyEnvelope
- @iov/bcp-types: Change return type of
BcpAtomicSwapConnection.getSwap
to promise ofReadonlyArray<BcpAtomicSwap>
. - @iov/bcp-types: Rename methods to plural:
BcpAtomicSwapConnection.getSwaps
and.watchSwaps
. - @iov/bns: Binary compatibility for weave v0.10.x+ (breaks for all earlier versions)
- @iov/bns: Remove obsolete
SetNameTx
- @iov/bns: Remove
BnsConnection.status
- @iov/cli: Import Lisk, RISE and Ethereum symbols automatically
- @iov/ethereum: Expose
pubkeyToAddress
- @iov/ethereum: Fix error reporting when signing and sending transactions
- @iov/keycontrol: Add
HdPaths.ethereum
for Ethereum HD path derivation - @iov/keycontrol: Deprecate
HdPaths.metamaskHdKeyTree
in favour ofHdPaths.ethereum
- @iov/bcp-types:
BcpConnection.getNonce
now returns aPromise<Nonce>
and implementations set a default value on their own. - @iov/bcp-types: Expose
publicKeyBundleEquals
- @iov/bcp-types: Add
fractionalDigits
toBcpTicker
- @iov/ethereum: Add new package with Ethereum support
- @iov/jsonrpc: Add new package for type-safe JSON-RPC 2.0 interfaces and response parsers. This is used for out-of-process signing and can be reused in @iov/ethereum and @iov/tendermint-rpc later on.
- @iov/keycontrol: Add
HdPaths.bip44Like
andHdPaths.iov
- @iov/iov-core: Add
MultiChainSigner.shutdown
to shutdown the signer. - @iov/iov-core: Add
MultiChainSigner.isValidAddress
for chain-specific address input validation. - @iov/stream: Add an implementation of
concat
that buffers stream events - @iov/stream: Add
firstEvent
as a special case oftoListPromise
with one element - @iov/tendermint-rpc: Add support for Tendermint 0.27.x
Breaking changes
- @iov/tendermint-rpc: Changed some interfaces to remove dependency on
base-types.
PostableBytes
->TxBytes
,PublicKeyBundle
->ValidatorPubkey
,ChainId
->string
. - @iov/base-types: Package removed and all its types are now in @iov/bcp-types.
- @iov/bcp-types: Convert
TxReadCodec.keyToAddress
intoidentityToAddress(identity: PublicIdentity)
- @iov/bcp-types:
BcpConnection.watchNonce
and all its implementations were removed - @iov/bcp-types: Return type of
BcpConnection.getAccount
was changed toBcpAccount | undefined
to better represent the one-or-none result. - @iov/bcp-types: Remove
BcpValueNameQuery
from.getAccount
and.watchAccount
as we're migrating from wallet nicknames to username NFTs. - @iov/bcp-types: Convert
BcpQueryEnvelope
toReadonlyArray
in return type ofBcpConnection.getAllTickers
. - @iov/bcp-types: Convert
BcpQueryEnvelope
toBcpTicker | undefined
in return type ofBcpConnection.getTicker
. - @iov/bcp-types: Migrate
UnsignedTransaction.chainId
and.signer
into.creator
- @iov/bcp-types: Add
BcpConnection.getNonces
- @iov/bcp-types: Add
BcpTxQuery.sentFromOrTo
in favour of package-specific address tags - @iov/bcp-types: Removed
Bcp
prefix fromBcpTransactionState
,BcpBlockInfoPending
,BcpBlockInfoInBlock
,BcpBlockInfo
. - @iov/bcp-types: Add block info state
BlockInfoFailed
. - @iov/bcp-types: Handle failed transactions in
searchTx
/listenTx
/liveTx
andpostTx
. - @iov/bns: Convert
.owner
inBnsUsernameNft
andBnsBlockchainNft
toAddress
- @iov/bns: In
BncConnection.watchBlockHeaders
, the block header events temporarily contain a dummyid
string until ID calculation is implemented - @iov/core: Remove
MultiChainSigner.getNonce
. If you really need this, usesigner.connection(chainId).getNonce({ address: addr })
instead. - @iov/core: Removed BNS re-exports
bnsConnector
,bnsFromOrToTag
,bnsNonceTag
,bnsSwapQueryTags
. Import them from @iov/bns. - @iov/core: Convert
MultiChainSigner.keyToAddress
intoidentityToAddress(identity: PublicIdentity)
- @iov/keycontrol: Move
PublicIdentity
into @iov/bcp-types; addchainId
- @iov/keycontrol: Add chain ID argument to
UserProfile.createIdentity
andWallet.createIdentity
- @iov/keycontrol: Remove redundant chainId parameter from
Wallet.createTransactionSignature
- @iov/keycontrol: Remove
LocalIdentity
/LocalIdentityId
and createUserProdile.getIdentityLabel
to provide labels - @iov/tendermint-rpc: Remove support for Tendermint 0.20 and 0.21
- @iov/tendermint-rpc: Rename
TxResponse.txResult
->.result
- @iov/crypto: Remove support for ripemd160
- @iov/lisk: Implement
LiskConnection.watchAccount
- @iov/lisk: Support search by address tag in
LiskConnection.searchTx
- @iov/lisk: Support search by minHeight/maxHeight in
LiskConnection.searchTx
- @iov/lisk: Implement
LiskConnection.liveTx
- @iov/rise: Implement
RiseConnection.watchAccount
- @iov/rise: Support search by address tag in
RiseConnection.searchTx
- @iov/keycontrol: Fix parameter type of
UserProfile.createIdentity
to allow creating identities usingEd25519Keypair
.
- @iov/cli: Fix levelup import
- @iov/bcp-types: Add
BcpAccount.pubkey
and implement in Lisk, RISE and BNS. - @iov/core:
MultiChainSigner.getNonce
was deprecated.
- @iov/tendermint-rpc: convert
const enum
s toenum
s in public interface to allow callers to use--isolatedModules
.
- @iov/bcp-types:
BcpTransactionResponse
now contains ablockInfo
property that allows you to get block related data associated with the transactions and subscribing to updates.metadata
was deprecated in favour ofblockInfo
. - @iov/bcp-types: the new interfaces
getBlockHeader
andwatchBlockHeaders
provide block header information. - @iov/bns: Fix encoding of
BcpTxQuery.hash
inlistenTx
andliveTx
- @iov/socket: New package with wrappers around WebSockets:
SocketWrapper
andStreamingSocket
used by tendermint-rpc and Ethereum. - @iov/stream: Add
toListPromise
that collects stream events and returns a list when done. - @iov/stream:
ValueAndUpdates.waitFor
now returns the values that matched the search condition. - @iov/stream:
DefaultValueProducerCallsbacks.error
added to produce errors. - @iov/tendermint-rpc: Gracefully handle duplicate subscriptions.
Breaking changes
- @iov/base-types: Remove
TxId
in favour ofTxHash
in @iov/tendermint-rpc. - @iov/bcp-types: An
Amount
is now aquantity
expressed as a string, afractionalDigits
number and atokenTicker
. This replaces thewhole
,fractional
pair.BcpTicker
does not containsigFigs
anymore because it is not needed there.BcpCoin
is now anAmount
and aBcpTicker
. - @iov/bcp-types: Wrapper type
BcpNonce
was dropped from all interfaces in favour of justNonce
. - @iov/bcp-types:
BcpConnection.getNonce
/.watchNonce
now only acceptBcpAddressQuery
orBcpPubkeyQuery
as argument type. - @iov/bcp-types:
BcpConnection.listenTx
now takes anBcpTxQuery
argument analogue to.searchTx
and.liveTx
. - @iov/bcp-types:
BcpTransactionResponse
was removed in favour of the newPostTxResponse
. - @iov/bcp-types: Change binary
TransactionIdBytes
to printableTransactionId
and use inTxCodec.identifier
,PostTxResponse
andBcpTxQuery
. - @iov/bcp-types:
BcpTxQuery.tags
is now optional - @iov/bcp-types: Remove type
RecipientId
; useAddress
instead. - @iov/bcp-types: Remove unused
BaseTx.ttl
andTtlBytes
- @iov/bcp-types: Allow extension of transaction types: move BNS transactions
into @iov/bns, rename generic ones to
SendTransaction
andSwap{Offer,Claim,Counter,Timeout}Transaction
. Propertykind
is now a string in the format "{domain}/{concrete_type}", e.g. "bcp/send" or "bns/set_name". - @iov/bns:
BnsConnection.postTx
now resolves before a transaction is in a block. The fieldblockInfo
of its response can be used to track the transaction state. - @iov/bns:
getHeader
/watchHeaders
were removed in favour ofgetBlockHeader
/watchBlockHeaders
from BCP. - @iov/core: Rename
MultiChainSigner.signAndCommit
->.signAndPost
- @iov/crpto: the new types
Secp256k1Signature
andExtendedSecp256k1Signature
replace DER encoded signatures inSecp256k1
. - @iov/faucets: Remove
BovFaucet
. UseIovFaucet
instead. - @iov/keycontrol:
Secp256k1HdWallet.createTransactionSignature
now uses the custom fixed length encoding instead of DER to allow blockchains utilizing the recovery parameter. - @iov/stream:
streamPromise
was renamed tofromListPromise
. - @iov/tendermint-rpc: Rename
txCommitSuccess
tobroadcastTxCommitSuccess
and addbroadcastTxSyncSuccess
- @iov/tendermint-rpc: Remove all fields from
BroadcastTxAsyncResponse
- @iov/tendermint-rpc: Change type of
BroadcastTxSyncResponse.hash
toTxId
- @iov/tendermint-rpc: Un-export interface
RpcTxEvent
- @iov/tendermint-rpc: Change all
Method
enum names to PascalCase - @iov/tendermint-rpc:
Client.subscribeTx
now takes aQueryString
argument - @iov/tendermint-rpc: Support for Tendermint version 0.20.0 and 0.21.0 is deprecated and will be removed in the next version of IOV-Core. If you need support for Tendermint < 0.25.0, please open an issue on Github and we'll maintain it.
- @iov/bns: Add missing error propagation from
searchTx
/listenTx
intoliveTx
stream.
- @iov/bns: Add
getHeader
andwatchHeaders
methods to access block headers
- @iov/stream: Generalize
streamPromise
to take a promise of an iterable - @iov/bns: Fix order of events in
listenTx
. All history tx events are now emitted before updates.
- @iov/core: Export
Secp256k1HdWallet
and import by default in @iov/cli. - @iov/faucets: Postpone removal of
BovFaucet
to 0.10.x
Breaking changes
- @iov/bcp-types: Rename
FungibleToken
toAmount
- @iov/bns: Re-generate BNS codec from weave v0.9.0 and adapt wrapper types.
- @iov/bns: Add support for blockchain and username NFTs
- @iov/crypto: Convert pubkey of Secp256k1Keypair into uncompressed format with
prefix
04
. - @iov/crypto: Secp256k1.createSignature/.verifySignature now comsume a message hash and do no hashing internally.
- @iov/dpos: Rename
Amount
/parseAmount
toQuantity
/parseQuantity
- @iov/keycontrol: Let
Secp256k1HdWallet
work on uncompressed pubkeys. SinceSecp256k1HdWallet
was not used yet, there is no migration for existingSecp256k1HdWallet
. - @iov/tendermint-types: Move types
PrivateKeyBundle
,PrivateKeyBytes
into @iov/bns; splitTag
intoBcpQueryTag
in @iov/bcp-types andQueryTag
in @iov/tendermint-rpc; renameTxQuery
intoBcpTxQuery
in @iov/bcp-types; makeSignatureBundle
available in @iov/tendermint-rcp only and rename toVoteSignatureBundle
; movebuildTxQuery
into @iov/bns. - @iov/tendermint-types: renamed to @iov/base-types
- @iov/dpos: Deduplicate
Serialization
from Lisk and RISE - @iov/keycontrol: Add
Wallet.printableSecret
andUserProfile.printableSecret
- @iov/keycontrol: Add
HdPaths.bip44
andHdPaths.metamaskHdKeyTree
HD path builders - @iov/tendermint-rpc: Ensure transaction search results are sorted by height
- @iov/dpos: Add new package with shared code for Lisk and RISE. Don't use this directly. No code change necessary for users of @iov/lisk and @iov/rise.
- @iov/faucets: add
IovFaucet
to connect to the new faucet application - @iov/keycontrol: add format versioning to
Wallet
,Keyring
, keyring encryption andUserProfile
Deprecations
- @iov/faucets:
BovFaucet
is deprecated and will be removed in 0.9. Migrate to theIovFaucet
.
Breaking changes
- @iov/lisk: LiskConnection.postTx does not wait for block anymore (analogue to RiseConnection.postTx), making it faster and more reliable. Transaction state tracking will improve in the future.
- Due to updates in all serialization formats, UserProfiles stored with earlier versions of IOV-Core cannot be opened with 0.8.0. To migrate to the new version, extract the secret data using an older version and create a new UserProfile in 0.8.0.
- @iov/lisk: Implement
LiskConnection.getTicker
and.getAllTickers
- @iov/rise: Implement
RiseConnection.getTicker
and.getAllTickers
- @iov/bcp-types: optional field
expectedChainId
added toChainConnector
- @iov/bcp-types:
BcpConnection.getAccount
can now be called with a pubkey input - @iov/bcp-types:
TxReadCodec
and all its implementations now contain aisValidAddress
method - @iov/core:
MultiChainSigner.addChain
now returns chain information of the chain added - @iov/lisk: new package to connect to the Lisk blockchain
- @iov/rise: new package to connect to the RISE blockchain
- @iov/encoding: bech32 encoding support for address bytes
- @iov/keycontrol:
UserProfile.setEntry()
now returnsWalletInfo
of new wallet added, for ease of use
Breaking changes
- @iov/bcp-types:
Address
is now astring
instead of anUint8Array
- @iov/bcp-types:
BcpTransactionResponse.metadata.success
was removed since failures are reported as promise rejections - @iov/bcp-types:
Nonce
is now implemented byInt53
from @iov/encoding instead ofLong
- @iov/bns:
Client
was renamed toBnsConnection
. Theconnect()
function was renamed toBnsConnection.establish()
- @iov/core: rename
IovWriter
toMultiChainSigner
- @iov/core: rename the getter
reader
toconnection
inMultiChainSigner
- @iov/faucets:
BovFaucet.credit
now expects an address in bech32 format - @iov/keycontrol:
Ed25519KeyringEntry
now takes a keypair as an argument increateIdentity()
- @iov/keycontrol:
Ed25519SimpleAddressKeyringEntry
was removed in favour ofEd25519HdWallet
together withHdPaths.simpleAddress
- @iov/keycontrol: in
UserProfile
,.entriesCount
,.entryLabels
and.entryIds
have been merged into.wallets
- @iov/keycontrol: in
UserProfile
,.setEntryLabel
,.createIdentity
,.setIdentityLabel
,.getIdentities
,.signTransaction
,.appendSignature
now only accept string IDs for the entry/wallet argument - @iov/keycontrol:
DefaultValueProducer
andValueAndUpdates
moved into @iov/stream - @iov/keycontrol:
KeyringEntry.createIdentity
now takes a required options argument of typeEd25519KeyringEntry | ReadonlyArray<Slip10RawIndex> | number
- @iov/keycontrol: rename symbols to
Wallet
,WalletId
,WalletImplementationIdString
,WalletSerializationString
- @iov/keycontrol: rename
Ed25519KeyringEntry
toEd25519WalletId
- @iov/keycontrol: in
Keyring
, rename.getEntries/.getEntryById
to.getWallets/.getWallet
- @iov/keycontrol: in
Keyring
, remove obsolete.getEntryByIndex
- @iov/keycontrol: in
UserProfile
, rename.addEntry/.setEntryLabel
to.addWallet/.setWalletLabel
- @iov/ledger-bns: in
LedgerSimpleAddressKeyringEntry
,.createIdentity
takes an index argument - @iov/ledger-bns: rename
LedgerSimpleAddressKeyringEntry
toLedgerSimpleAddressWallet
- Due to updates in the Keyring serialization, UserProfiles stored with earlier versions of IOV-Core cannot be opened with 0.7.0. To migrate to the new version, extract the secret data using an older version and create a new UserProfile in 0.7.0.
- @iov/keycontrol: add Ed25519HdWallet and Secp256k1HdWallet that work like Ed25519SimpleAddressKeyringEntry but allow derivation of arbirtary SLIP-0010 paths
- @iov/core: move ChainConnector into @iov/bcp-types to avoid new chains to depend on @iov/core
- @iov/bcp-types: various refactorings to improve multi chain support
Other notes
- The new name for keyring entries is "wallet". A keyring contains multiple wallets. This transition was started with the intoduction of Ed25519HdWallet and Secp256k1HdWallet and other incompatible API changes will follow in 0.7.
- We welcome our first external code contributor @SpasZahariev! If you want to get familiar woth the codebase, check the issues labeled with "good first issue".
- @iov/core: expose Ed25519KeyringEntry
- @iov/keycontrol: refactor entry ID generation
- @iov/bcp-types: rename interface IovReader -> BcpConnection
- @iov/bcp-types: make BcpConnection.chainId() synchronous for easier use by clients
- @iov/bns: expose transaction result
- @iov/bns: expose atomic swap queries on the bns client
- @iov/bns: transaction search can handle unlimited number of results
Breaking changes
- Due to updates in the Keyring serialization, UserProfiles stored with earlier versions of IOV-Core cannot be opened with 0.6.0. To migrate to the new version, extract the secret data using an older version and create a new UserProfile in 0.6.0.
- @iov/cli: fix global installation support
- @iov/core and @iov/keycontrol: use strict types for keyring entry IDs
- @iov/bns: increase transaction search results to 100 items
- @iov/core and @iov/keycontrol: add keyring entry IDs
- @iov/keycontrol: ensure Ed25519SimpleAddressKeyringEntry.fromEntropyWithCurve/ and .fromMnemonicWithCurve return the correct type
Note: this version was published with an outdated build and should not be used
- @iov/bns: expose transaction IDs
- @iov/bns: Add support of listening to change events, watching accounts, txs
- @iov/core: Simplify construction of IovWriter
- @iov/crypto: Rename all
Slip0010*
symbols toSlip10*
- @iov/crypto: Fix keypair representation of Secp256k1.makeKeypair
- @iov/tendermint: Add support for subscribing to events
Breaking changes
- Due to multi curve support in keyring entries, UserProfiles stored with earlier versions of IOV-Core cannot be opened with 0.5.0. To migrate to the new version, extract the secret data using 0.4.1 and create a new UserProfile in 0.5.0.
- The IovWriter construction is changed. You can probably save a line there. Please look at @iov/core README to see how to build it.
- @iov/faucets: package added to provide easy access to a BovFaucet
- @iov/core: Add disconnect method to IovReader
- @iov/tendermint-rpc: Add disconnect method to WebsocketClient
- @iov/ledger-bns: Improved USB connectivity due to hw-transport-node-hid upgrade
Breaking changes
-
@iov/cli: wait() helper function removed
-
@iov/ledger-bns: LedgerSimpleAddressKeyringEntry.startDeviceTracking() must be called before getting device state or calling createIdentity()/createTransactionSignature()
-
The name field from the
getAccount
result data does not contain the chain ID anymore. Before[ { name: 'admin*test-chain-HexTMJ', address: Uint8Array [ 177, 202, ...
Now:
[ { name: 'admin', address: Uint8Array [ 177, 202, ...
- @iov/core: Export SetNameTx
- Improve Windows compatibility of build system and add Edge tests
- @iov/ledger-bns: Implement LedgerSimpleAddressKeyringEntry.canSign
- @iov/ledger-bns: Add LedgerSimpleAddressKeyringEntry.deviceState
- @iov/keycontrol: Encrypt UserProfile using XChaCha20-Poly1305
- @iov/crypto: Add support for unhardened Secp256k1 HD derivation
- @iov/cli: Add support for top level await
Breaking changes
- Due to an enhanced encryption mechanism, UserProfiles stored with IOV-Core 0.2.0 cannot be opened with 0.3.0. To migrate to the new version, extract the secret data using 0.2.0 and create a new UserProfile in 0.3.0.
Finalize library name, add documentation and open source
Expose type TransactionKind
The beginning of versioning
Initial development