Iov One Weave Versions Save

Easy-to-use SDK to build Tendermint ABCI applications

v0.16.0

4 years ago
  • A new tool cmd/bnscli for interacting with a BNS node was created.
  • Creation of a new proposal in x/gov extension is now restricted to only members of the electorate that this proposal is created for.
  • Cleanup escrow: removed the support for atomic swap
  • A new bucket implementation orm.ModelBucket was added that provides an easier to use interface when dealing with a single entity type.
  • migration package was updated to provide orm.ModelBucket wrapper for transparent schema version migrations
  • x/gov package was added, which maintains multiple versioned Electorates and ElectionRules that define voting rules (quorum, threshold, voting period) for a given Electorate. Votes can be tallied at the end and execute an application-defined action which is passed in to the constructor. This is compatible with standard handler interfaces and sample application-level setup is demonstrated in the test code (and all sample*_test.go code).
  • Failed execution of the Proposal intent does not result in a failed transaction (so we update the Proposal state properly), but is rolled back independently and noted in DeliverResult.Log (reporting to be improved in a future issue)
  • x/gov adds three internal transations: UpdateElectorate, UpdateElectionRule, and TextResolution. TextResolutions can only be created by elections and the text is stored in a bucket along with a reference to the electorate and proposal that they refer to.
  • Enabled x/batch in bnsd. You can now send a batch of messages, which are executed atomically as one unit (all succeed, or no changes committed).
  • x/gov methods are exposed in bnsd application. The list of messages that are eligible for proposals is in cmd/bnsd/app/codec.go.ProposalOptions. Note that you can also use a batch message with a subset of possible actions, to make multiple SendTx as part of a governance vote, for example.
  • Dockerize all the protobuf tooling for easier developer experience and reproducible builds
  • You can use "seq:multisig/usage/1" or similar in the genesis file to easily create addresses without manually encoding everything into 16 hex digits
  • Introduce errors.Append function to combine errors into a new multi error type
  • spec directory now contains protobuf files and testvectors (standard api objects in both json and binary encodings) to enable easier bindings and unit tests in client code, and projects that import weave.

Breaking changes

  • Escrow does not support atomic swap anymore: preimage is removed from Tx and, haslock extension removed and arbiter now must be an Address and not a Condition
  • Metadata attribute was removed from transaction attributes. This affects two entities x/cash.FeeInfo and x/sigs.StdSignature
  • Max length of blockchain ids used in username NFTs is now 32 (previously 128)

v0.15.0

5 years ago
  • Tendermint is upgraded to version 0.31.5
  • New x/aswap extension implementing atomic swap functionality. Atomic swap implementation is separated from x/escrow
  • x/cash is using the new gconf package for configuration. New genesis path is used. To update genesis file, replace "gconf": { "cash:xyz": "foo" } with "conf": { "cash": { "xyz": "foo" } }
  • Removed support for Go 1.10. Minimal required version is now 1.11.4.
  • Added support for Go 1.12
  • New migration package. Schema versioning for models and messages can be implemented by relying on functionality provided by this package.

Breaking changes

  • Dependency management was migrated to Go modules. dep is no longer used or supported.
  • x/paychan extension is using a wall clock for the timeout functionality instead of relying on the block height
  • gconf package was reimplemented from scratch. Configuration can be changed during the runtime using messages.
  • Many extensions where updated to provide weave.Metadata and support schema versioning as implemented by migrations package. Protobuf messages are using new schema and are not binary compatible with old ones. Updated extensions are: x/cash, x/currency, x/distribution, x/escrow, x/msgfee, x/multisig, x/namecoin, x/nft, x/paychan, x/sigs, x/validators

v0.14.0

5 years ago
  • Simplify transaction message unpacking with weave.LoadMsg
  • Initial version of the governance extension (x/gov)
  • Signature verification in x/sigs extension costs gas now
  • A new message BumpSequenceMsg for incrementing a user sequence value in x/sigs extension
  • When considering expiration in x/escrow extension, expiration time is now inclusive
  • A new validator subjective anti-spam fee was added

v0.13.0

5 years ago
  • Allow app.ChainDecorators to accept nil #414
  • Improve high-level benchmarks, sending coins with fees at abci level #408
  • Remove composite literal uses of unkeyed fields #403
  • Extend multisig contract with weights #285

v0.12.1

5 years ago
  • Distriubtion condition must match regexp for validation #425
  • Support time with escrow #392
  • Deprecate Error.New for errors.Wrap #382
  • Only support Error.Is with better algorithm #381
  • Cleanup coins package errors #378
  • Add support for bech32 in genesis file #362
  • Benchmark gconf Get #360
  • Automate benchmarks and record them #263

v0.12.0

5 years ago

Changelog

v0.12.0 (12/03/2019)

  • Apply iov theme (css) to readthedocs #373
  • Create a package for testing tools #372
  • Don't allow everyone to issue with namecoin #371
  • Require ticker for min fee - no wildcard #369
  • errors package improvements #368
  • Revisit all errors that print Condition and weave.Address as '%X' #350
  • Add support for required fees #349
  • Improve fee deduction on errors #348
  • More friendly references for genesis file #347
  • Move all errors code to errors.go and remove obsolete files once refactoring and stacktrace prs are merged #345
  • Add distribution extension to bcpd #336
  • Acceptance tests for x/distribution extension #335
  • Include x/distribution in cmd/bnsd #328
  • Check for overflow in Coin.Multiply and return error #326
  • Add protobuf linter to travis build #318
  • Add stack traces to new errors #311
  • Add block rewards minting contract #310
  • Standardize new error handling #309
  • Add prototool linter to build process #302
  • Add "expected" and "actual" to invalid nonce error message #288
  • Only use nft/username in bnsd #283
  • Allow nft/username to be used alone #282
  • Update readthedocs to weave 0.12 #280
  • Remove cmd/bnsd enum declaration #262
  • Fee distribution module #233
  • Collect fixed fees for certain transactions #232
  • Remove field sig_figs from namecoin.Token #207
  • Cleanup escrow implementation #134
  • Deploy testnet v2 (bnsnet + bcpnet) #110
  • Make prehash algorithm extensible #88
  • Add PoA modules, also NtoN example #32
  • [docs]Generate single file protocol definition #187
  • [docs]Add docs on proper usage of the new errors package #333
  • [docs] Add docs on how to write a scenario test #332
  • [bug]Update go version requirement #366
  • [bug] Issuer ignored in x.Coin Add/ Substract/ ??? functions - REMOVE IT #321
  • [bug] Update ROADMAP.md file #258

v0.11.1

5 years ago

[bugfix] Bcpd: initialize validator update addresses

v0.11.0

5 years ago

[Feature] Upgrade Tendermint to v0.29.1

v0.10.2

5 years ago

Changelog

v0.10.2 (23/01/2019)

  • [cleanup] Move custom nft types under cmd/bnsd/x package #255
  • [bug] Fixes validator initializer not called PR-287

v0.10.1

5 years ago
  • [cleanup] Remove x/nft enum declaration #252
  • [breaking] Upgrade to tendermint 0.27.4 #206
  • [bugfix] Fix batch integration in bcpd #237