v3.0.0
This version brings protocol 13 support with backwards compatibility support for protocol 12.
Add
- Add
TransactionBuilder.buildFeeBumpTransaction
which makes it easy to createFeeBumpTransaction
(#321). - Adds a feature flag which allow consumers of this library to create V1 (protocol 13) transactions using the
TransactionBuilder
(#321). - Add support for CAP0027: First-class multiplexed accounts (#325).
- Add
Keypair.xdrMuxedAccount
which creates a newxdr.MuxedAccount
(#325). - Add
FeeBumpTransaction
which makes it easy to work with fee bump transactions (#328). - Add
TransactionBuilder.fromXDR
which receives an xdr envelope and return aTransaction
orFeeBumpTransaction
(#328).
Update
-
Update XDR definitions with protocol 13 (#317).
-
Extend
Transaction
to work withTransactionV1Envelope
andTransactionV0Envelope
(#317). -
Update operations builder to support multiplexed accounts (#337).
This allows you to specify an
M
account as the destination or source:var destination = 'MAAAAAAAAAAAAAB7BQ2L7E5NBWMXDUCMZSIPOBKRDSBYVLMXGSSKF6YNPIB7Y77ITLVL6'; var amount = '1000.0000000'; var asset = new StellarBase.Asset( 'USDUSD', 'GDGU5OAPHNPU5UCLE5RDJHG7PXZFQYWKCFOEXSXNMR6KRQRI5T6XXCD7' ); var source = 'MAAAAAAAAAAAAAB7BQ2L7E5NBWMXDUCMZSIPOBKRDSBYVLMXGSSKF6YNPIB7Y77ITLVL6'; StellarBase.Operation.payment({ destination, asset, amount, source });
To use multiplexed accounts you need a Stellar network instance running Protocol 13 or higher
Breaking changes
-
Transaction.toEnvelope()
returns a protocol 13xdr.TransactionEnvelope
which is anxdr.Union
(#317).
If you have code that looks like this -transaction.toEnvelope().tx
- you have two options:- You can grab the value wrapped by the union, calling
value()
liketransaction.toEnvelope().value().tx
. - You can check which is the discriminant by using
switch()
and then callv0()
,v1()
, orfeeBump()
.
- You can grab the value wrapped by the union, calling
-
The return value from
Transaction.fee
changed fromnumber
tostring
. This brings support forInt64
values (#321). -
The const
BASE_FEE
changed fromnumber
tostring
(#321). -
The option
fee
passed tonew TransactionBuilder({fee: ..})
changed fromnumber
tostring
(#321). -
The following fields, which were previously an
xdr.AccountID
are now axdr.MuxedAccount
(#325):PaymentOp.destination
PathPaymentStrictReceiveOp.destination
PathPaymentStrictSendOp.destination
Operation.sourceAccount
Operation.destination
(forACCOUNT_MERGE
)Transaction.sourceAccount
FeeBumpTransaction.feeSource
You can get the string representation by calling
StrKey.encodeMuxedAccount
which will return aG..
orM..
account. -
Remove the following deprecated functions (#331):
Operation.manageOffer
Operation.createPassiveOffer
Operation.pathPayment
Keypair.fromBase58Seed
-
Remove the
Network
class (#331). -
Remove
vendor/base58.js
(#331).