Releases: keefertaylor/TezosKit
Babylon Support
Version 4.2 updates TezosKit to support new Smart Contract functionality introduced in the Babylon protocol ammendment. Specifically:
- Add support for multiple big maps
- Add support for contract entry points
- Update RPCs for breaking changes introduced by Babylon
Additionally this update migrates the TokenContractClient
to use Tezos' FA1.2 standard. It also updates DexterExchangeClient
to work with the most recent revision of DEXter.
4.1.0
Fixing file
DEXter Exchange Integration
New Features
DEXter Integration
In collaboration with CamlCase, TezosKit provides first class integration for DEXter, a decentralized exchange built on Tezos.
Clients can interact with a DEXter smart contract through the new DexterExchangeClient
class. Clients can also interact with underlying token contracts using the new TokenContractClient
class.
Fee, Gas Limit and Storage Limit Policy
A new enum, OperationFeesPolicy
provides a more granular way to provide fees for operations on the Tezos blockchain. OperationsFeesPolicy
has three cases:
(1) default
: use the default fees for the protocol
(2) custom
: provide your own OperationFees
via an associated value
(3) estimate
: estimate and apply fees for your operation via simulating the operation on the Tezos blockchain.
New APIs have been exposed to allow users to pass these enums. The default is default
.
// New API
public func delegate(
from source: Address,
to delegate: Address,
signatureProvider: SignatureProvider,
operationFeePolicy: OperationFeePolicy = .default,
completion: @escaping (Result<String, TezosKitError>) -> Void
) { ... }
// Usage Examples
// Use default fees
delegate(<...>, .default)
// Use custom fees
let operationFees = OperationFees(<...>)
delegate(<...>, .custom(operationFees));
// Estimate fees
delegate(<...>, .estimate);
Older versions of TezosKit allowed users to pass an optional OperationFees
object when appending an operation to the ledger. These APIs are now deprecated:
// Deprecated
public func delegate(
from source: Address,
to delegate: Address,
signatureProvider: SignatureProvider,
operationFees: OperationFees? = nil,
completion: @escaping (Result<String, TezosKitError>) -> Void
) { ... }
4.0.1: Merge pull request #108 from keefertaylor/public_op_fees_init
Allow external instantiation of OperationFees
Smart Contract Interaction Improvements
TezosKit 4.0
TezosKit 4.0.0 Improves interactions with smart contracts.
Smart Contracts
The following APIs are added to TezosNodeClient
:
// Call a smart contract
public func call(...)
// Inspect smart contract storage
public func getContractStorage(...)
// Inspect big map values
public func getBigMapValue(...)
Equivalent PromiseKit
APIs are also provided.
Additionally, MichelsonParameter
and MichelsonComparable
objects are provided to model these interactions.
For additional details about working with Michelson, see: https://github.com/keefertaylor/TezosKit/blob/master/docs/Michelson.md
Other APIs
Signing
A new SignatureProvider
class now provides an abstraction for Signing
. All Wallet
objects now conform to this class and can continue to be used to sign operatins.
Protocol Modeling
A new enum, TezosProtocol
provides details about the what protocol version the remote node is running. The value is provided to TezosNodeClient
at instantiation time.
Default Fees
A new class, DefaultFeeProvider
, is introduced to provide an abstraction between TezosProtocol
and default fees. The class is internal to TezosNodeClient
and this change should be transparent to suers.
Forging Policy
A new enum, ForgingPolicy
, is introduced to express how operations should be forged. TezosKit does not yet support local forging, so the only valid value of this policy is .remote
.
Networking
AbstractClient
is removed as a super class of TezosNodeClient
and ConseilClient
and replaced with a new class NetworkClient
which is wrapped by the clients.
Athens Protocol Support
This release upgrades TezosKit to be compatible with the Athens protocol.
Upgrade Crypto Library
TezosCrypto 2.0.1 provides new abstractions for cryptographic programming. These abstractions can be used to build out additional TezosKit features, like tz2 and tz3 signing curves, or secure enclave based signing.
Conseil Support
TezosKit 3.0 adds support for Conseil, a powerful indexing service provided by Cryptonomic.
You can learn more about using Conseil here: https://github.com/keefertaylor/TezosKit/blob/master/docs/Conseil.md
2.0.0
Version 2.0.0
Version 2.0.0 introduces two major features:
Result
style objects in callbacks, rather than objects and errorsPromise
functionality, via PromiseKit
Version 2.0.0 also introduces performance enhancements and more modular code structure to support future improvements.
1.2.2
Bump fix