Migration to 9.0.0
This guide describes all breaking changes introduced with v9.0.0.
drop waitMined static method
If you used it like
const sdk = await Universal({ ... })
sdk.waitMined(false)
const sdk = await Universal.compose({
deepProps: { Ae: { defaults: { waitMined: false } } }
})({ ... })
sdk.spend(amount, receiver, { waitMined: false })
const sdk = await Universal({ ... })
sdk.deepProps({ Ae: { defaults: { waitMined: false } } })
drop assertedType, use decode instead
If you used it like
const payload = Crypto.decodeBase64Check(Crypto.assertedType('tx_...', 'tx'))
decode method
const payload = TxBuilderHelper.decode('tx_...', 'tx')
validator: recursive validator, simplify schema
Instead of TransactionValidator stamp use verifyTransaction function. The function accepts
a transaction, and a Node instance for validation (instead of network id), it doesn't return
an unpacked transaction anymore, just an array of errors. Each error contains a verbose message
(msg before), unique key (for easy comparison), checkedKeys array (txKey before). Using
node instead of networkId allows to ensure transaction validation, so warnings are errors
now (type field removed).
SCHEMA doesn't contain validation schema anymore. This wasn't supposed to be used by external
developers.
simplify buildTxHash helper
If you used buildHash like
const hash = TxBuilderHelper.buildHash('xx', Buffer.from([1, 2, 3]), { raw: true })
const hash = Crypto.hash(Buffer.from([1, 2, 3]))
raw then
const hash = TxBuilderHelper.encode(Crypto.hash(Buffer.from([1, 2, 3])), 'xx')
buildTxHash don't have raw switch anymore, it returns th_-encoded string in all cases,
but it still accepts transactions as a string and as a buffer.
enable verification in deep props instead of extra variable
If you were passing verifyTx: false to sdk factory then use verify: false instead.