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:
Resultstyle objects in callbacks, rather than objects and errorsPromisefunctionality, via PromiseKit
Version 2.0.0 also introduces performance enhancements and more modular code structure to support future improvements.
1.2.2
Bump fix