ARK Development Report — August 2020
August is over and it’s time for our monthly development report. We would like to thank every contributor who has helped us by opening issues, providing solutions, or suggesting improvements. Also, don’t forget to star🌟 us on GitHub.
The ARK Monthly Development Report covers all pull requests (opened, closed, merged) as well as all issues opened and closed in every ARK Ecosystem public repository, the number of contributors during that month, the number of new stargazers and total lines of GitHub code added or deleted. This info is presented here in a concise one-page blog.
- Get involved with ARK development and participate in our bounty program at https://bounty.ark.io.
- You can also apply for an ARK Grant at https://ark.io/grants.
You can track this weekly data directly on GitHub by opening the repository of interest, clicking on ‘issues’, and opening the latest ‘Weekly report digest’.
Thanks to all who contribute each month and help out with development!
Here’s the Monthly Digest from Sat, Aug 1, 2020 12:00 AM to Mon, Aug 31, 2020 12:00 AM.
Throughout public repositories we had:
- 264,671 lines of code added.
- 201,977 lines of code deleted.
- 3,216 files changed.
Contributors
Last month there were 16 contributors.
air1one, alessiodf, alexbarnsley, bertiespell, brenopolanski, clucasalcantara, dated, faustbrian, goga-m, Highjhacker, ItsANameToo, luciorubeens, rainydio, samharperpittam, sebastijankuzner, sleepdefic1t
Thank you for your contributions! 🎉
Pull Requests
Last month we had 284 pull-requests. Of which:
- 3 Still Open.
- 262 Merged.
- 19 Closed.
Still Open
From last month, 3 pull-requests are still open.
— faustbrian
— luciorubeens
— rainydio
Closed
Last month, 19 pull-requests were closed.
— air1one
— clucasalcantara
— dated
- #2723 Refactor/screenshots
- #2620 chore: add retries to apt commands to dance around connectivity issues to azure
- #2733 Base href
— faustbrian
- #3943 refactor(core-utils): use JSON.parse instead of fast-json-parse
- #2582 chore: update Platform SDK dependencies
- #3889 chore: update dependencies
— goga-m
— rainydio
- #3911 refactor(core-state): wallet repository search
- #3960 fix(core-p2p): out of memory test error
- #3956 fix(core-p2p): too many open files
- #3957 fix(core-p2p): too many open files
— sebastijankuzner
- #3981 test(core-magistrate-crypto): increase coverage to 100%
- #3934 fix(core-kernel): boot without .env file
- #3927 chore(core-forger): forger as separate process
- #3982 test(core-magistrate-api): increase coverage to 100%
— sleepdefic1t
Merged
Last month, 262 pull-requests were merged.
— air1one
- #3954 merge: master
- #3967 chore(crypto): add devnet exception
- #3987 chore(core-state): export state-builder
- #3986 chore(core-magistrate): more flexible entity types / sub-types + fees update
- #3937 chore(core-magistrate): remove bridgechain from aip36 entities
- #3950 fix(crypto): rs padding and sig length value checks
- #3924 chore(core-p2p): add 3.0.0 alpha channel to valid peer versions
— alessiodf
— alexbarnsley
- #2668 feat: load wallet from route for transaction send
- #2653 fix: transaction send functionality tests
- #2659 fix: windows builds
- #2651 fix: electron build
- #2670 fix: select recipient field input
- #2515 feat: list wallets on dashboard
- #2532 refactor: sdk wallet integration into components
- #2610 feat: transfer send functionality
- #2680 feat: ipfs transaction
- #2677 refactor: generalise send transaction form component
- #2570 fix: create wallet issues
- #2646 chore: temporarily remove eth network data
- #2695 feat: registration process & delegate registration form
- #2644 refactor: show required field icon by default
— bertiespell
— brenopolanski
- #2650 feat: add validation for duplicate address
- #2614 feat: add
InputAddress
component - #958 fix: add key attribute to
LinkWallet
component - #2639 chore: rename
selectAsset
variations toselectNetworkInput
- #2654 feat: add the
Completed
page after a successful import wallet - #2666 refactor: add the
openExternal()
electron to theLink
component - #2612 fix: add maxlength & validations in profile name
- #2667 refactor: update the
WalletUpdate
modal to use tab steps - #2661 feat: add electron util to open external links
- #2649 feat: implement offline splashscreen
- #2665 refactor: remove the required field icon for optional fields
- #2686 test: add mock test to multi-payment transactions
- #2681 feat: implement multi payment transaction
- #2579 feat: add avatar with contact initials
- #2572 refactor: update navbar image with the uploaded avatar
- #2584 test: fix NEO mock e2e tests
- #2671 fix: set selected network on the pages create wallet and import wallet
- #2588 chore: add i18n to the crumb label
- #2587 chore: add
noShadow
to the network icon in theSelectNetworkInput
- #2672 fix: add maxlength & validations in wallet name
- #2602 chore: remove error message when select an item of dropdown
- #2599 refactor: show form in
SignMessage
when closing modal - #2687 feat: implement voting
— clucasalcantara
- #2648 refactor: paginate wallet details transactions
- #2678 feat: transaction detail modal gate
- #2707 refactor: multi payment details modal
- #2682 refactor: fill out ipfs detail modal
- #2656 chore: upgrade storybook
- #2698 refactor: detail modal vote
- #2571 feat: list transactions on dashboard
- #2700 feat: sync delegates in background
- #2622 feat: paginate transactions table
- #2598 refactor: load transactions from wallet in details page
- #2600 chore: disable devtools in e2e
- #2741 refactor: details delegate registration
— dated
- #662 chore: rename
AutomaticLogoffPeriod
toAutomaticSignOutPeriod
- #2576 refactor: adjust vertical alignment and wallet table fix on dashboard
- #2573 refactor: pass active profile to pages
- #2575 refactor: adjust vertical alignment and font sizes in line chart
- #2556 feat: implement contact listing
- #2577 refactor: limit max height of SelectDropdown
- #613 feat(profiles): implement
Contact#avatar
- #614 fix(profiles): ensure uniqueness of contact name
- #2637 fix: spacing and alignment in wallet details components
- #2578 feat: handle contact update in contact list
- #2586 refactor: add sub form wrapper component
- #2638 refactor: adjust splash/welcome screens according to the designs
- #2591 feat: add application error display
- #2593 feat: implement auto logoff
- #640 fix(support): call
toFixed
with argument if argument is 0 - #2613 refactor: keep track of logoff threshold in middleware
- #2623 ci: always update before installing new packages
- #2619 fix: always add wallet icons cell in wallets table row
- #2701 refactor: change avatar button color on hover
- #2633 chore: update fixture data
- #2632 chore: add entity icon
- #2752 feat: implement starring of wallets
- #2702 chore: remove background color from InputAddonEnd
- #2730 refactor: cleanup and use utils in e2e tests
- #2714 test: await input change in sign in test
- #2722 refactor: adjust navbar styles
- #2721 fix: dynamic Circle shadow color
- #2719 refactor: profile image selection
- #677 fix: ark explorer links
- #2724 refactor: move screenshotprotection to profile middleware
- #2727 refactor: wallet card ui fixes
- #2725 refactor: registration page adjustments
- #2631 feat: add password settings
- #2726 test: refactor wallet e2e tests
- #2731 chore: set balance/fiat font weight to semibold
- #2708 refactor: settings adjustments
- #2736 refactor: scroll restoration upon route change
- #2735 refactor: add baseColor prop to toggle
- #2734 refactor: navigation bar and logo adjustments
- #2739 ci: screenshots path
- #2738 fix: allow setting an empty wallet name
- #2742 refactor: common base component for all cards
- #2745 refactor: explicitly align dropdown content and remove min width
- #2746 chore: adjust font sizes in dropdown and card control
- #2749 style: add explicit height to SideBarItem
- #2750 refactor: add position type and nests dropdown content
- #2712 chore: remove screenshot protection from profile fixtures
- #2574 chore: move currency icons to own module
- #2704 chore: fix login/sign in terminology
- #2705 chore: increase sign in timeout to 60 seconds
- #2706 fix: adjust negative margins and paddings inside of modals
— faustbrian
- #644 feat(ark): implement AIP36
- #2691 fix: use
SignedTransactionData
for IPFS sent page - #92 chore: update dependencies
- #2624 fix: send JSON headers to avoid malformed responses
- #2625 chore: update Platform SDK dependencies
- #964 feat: implement AIP36 transaction types
- #93 refactor: merge CLI and Server into a single application
- #646 feat: implement
SignedTransactionData
- #663 chore: update dependencies
- #648 feat(profiles): implement
RegistrationAggregate
- #2628 chore: update Platform SDK dependencies
- #2626 chore: update Platform SDK dependencies
- #2589 ci: pass repository token to codecov action
- #94 chore: replace tslint with eslint-typescript
- #679 refactor(ark): integrate
@arkecosystem/multi-signature
- #2697 fix: validate IPFS hash before the user can submit the transaction
- #678 feat: implement Multi-Signature signing and broadcasting
- #2635 feat: cache HTTP requests based on their URL
- #2636 refactor: include method and data in cache key
- #2690 fix: remove usage of
dist
imports - #85 chore: update dependencies
- #631 refactor(profile): pass query to transaction aggregate methods
- #89 fix: handle request errors
- #90 refactor: require specific public key to retrieve transactions
- #2603 chore: update Platform SDK dependencies
- #660 feat(profiles): implement
RegistrationAggregate
for profile - #2692 fix: make
WalletListItem
clickable to navigate to wallet details - #2728 chore: update Platform SDK dependencies
- #2595 chore: update Platform SDK dependencies
- #634 feat(profiles): expose data validator
- #637 feat: implement
TransactionData#isConfirmed
- #638 feat(profiles): implement wallet transaction service
- #639 chore(profiles): organise by domains
- #635 feat(profiles): implement public key to delegate mapper
- #2604 fix: respect query parameters for POST requests
- #2590 chore: update Platform SDK dependencies
- #2693 fix: hide view more button for wallets below a count of 10
- #2605 refactor: format amount in
TransactionRow
withBigNumber#toHuman
- #2607 refactor: pass
BigNumber
toTotalAmountBox
- #632 fix(profiles): ignore the name of contact that is being updated
- #2594 chore: update Platform SDK dependencies
- #91 remove delete
- #642 chore: update dependencies
- #2615 chore: update Platform SDK dependencies
- #2616 chore: add LSK to networks that can be selected
- #664 feat(profiles): add method to return all pending transactions
- #2689 refactor: copy transaction ID instead of whole transaction
- #87 chore: keep source and tests in the same directory
- #649 feat(profiles): persist signed and broadcasted transactions
- #657 feat(profiles): implement
DataRepository#first
andDataRepository#last
- #2744 chore: update Platform SDK dependencies
- #2580 chore: update Platform SDK dependencies
- #2709 chore: update Platform SDK dependencies
- #2684 fix: avoid using raw transaction data
- #675 feat(profiles): implement
ExtendedTransactionDataCollection
- #654 feat(profiles): implement
Environment#registerCoin
- #673 refactor(profiles): remove extraneous
Wallet
methods - #655 chore: update dependencies
- #680 feat(profiles): sync fees per coin
- #672 feat(profiles): implement
Wallet#canVote
- #630 test(profiles): add tests for
Profile#getExchangeRate
andWallet#syncExchangeRate
- #671 refactor(profiles): decouple
DelegateMapper
fromWallet
- #2703 ci: remove CodeQL analysis
- #670 feat(profiles): expose more voting information
- #669 feat(profiles): implement
CoinRepository
for direct coin interactions - #668 feat(profiles): implement vote syncing for wallets
- #2751 chore: update Platform SDK dependencies
- #667 refactor(profiles): implement Profile and Wallet contracts
- #666 feat(profiles): include rank in
ReadOnlyWallet
- #665 feat(profiles): implement TransactionData wrapper DTO
- #616 feat(sdk): implement collection paginator
- #620 feat(profiles): support pagination for transaction aggregate
- #676 refactor(profiles): break up environment booting process
- #621 test(profiles): add tests for
ReadOnlyWallet
- #651 feat: verify that expected and actual sender of transactions are a match
- #652 fix(profiles): only persist and restore known wallet data
- #2641 chore: import all SDK packages
- #2642 chore: update Platform SDK dependencies
- #629 test(profiles): add tests for coin proxy methods for
Wallet
- #628 test(profiles): add tests for
Profile
- #627 test(profiles): add tests for
TransactionAggregate
- #3976 refactor(core-transactions): throw more specific multi-signature exceptions
- #2688 refactor: use
SignedTransactionData
for transaction sent screen information - #659 refactor: expose more information through
SignedTransactionData
- #2685 chore: add AIP36 transaction support through SDK
- #626 test(profiles): add tests for
LocalStorage
- #2718 chore: update Platform SDK dependencies
- #625 test(profiles): add tests for
CountAggregate
- #624 test(profiles): add tests for
ContactAddressRepository
- #623 test(profiles): remove stub env before running tests
- #622 test(profiles): add tests for
ContactAddress
- #653 fix(profiles): throw an exception if the ID of a newly signed transaction is a duplicate
- #2655 chore: update Platform SDK dependencies
- #2715 chore: update Platform SDK dependencies
- #2696 fix: extra padding for smartbridge field to avoid max hint overlap
— goga-m
- #2566 refactor: use fixture in tests
- #2592 test: add contact deletion tests
- #661 fix(profiles): fix profile registration aggregate query params
- #2596 refactor: implementation changes on
ContactForm
- #2683 chore: update Platform SDK dependencies
- #2583 fix: add validation and default value on
UpdateWalletName
- #2627 fix: align pending transactions
- #2658 feat: implement skeleton in transaction tables
- #2669 chore: fix
Dropdown
scrollbar - #2747 feat: implement delegate resignation
- #2652 feat: add
ContactForm
address validations - #2713 fix: adjust transaction row link props
- #2710 feat: additional loading states for
WalletDetails
page - #2643 fix: dashboard tests
- #2717 feat: add
MyRegistrations
delegate list - #2629 chore: fix registrations icons
- #2630 chore: update Platform SDK dependencies
- #2679 feat: implement blockfolio signals
- #2621 feat: add animated loader
- #2617 feat: implement
Splash
screen - #2597 refactor: add
CreateContact
validations and tests - #2732 fix: adjust icon in
AddRecipient
- #2606 refactor: add
UpdateContact
validations and tests - #2609 fix: wallet labeling issues
- #2729 fix:
VoteDetails
test errors
— Highjhacker
— ItsANameToo
— luciorubeens
- #2611 feat: add
Amount
component - #2634 build: make all packages as external
- #2716 refactor: update transaction amount to show currency
- #2585 feat: implement route middleware
- #666 chore: bump Android target sdk version to 29
— rainydio
- #3939 fix(core-state): fix delegate search order
- #3953 fix(core-api): limit parameter (rollback #3940)
- #3940 refactor(core-api): put configuration into Joi context
- #3969 refactor(core-blockchain): initialize blockchain when resolved first time
- #3955 refactor(core-api): pagination configuration through joi context
- #3932 fix(core-api): fix order in delegates/{id}/blocks
- #3965 refactor(core-api): dot-separated-query hapi plugin
- #3925 fix(core-api): fix transactions/${id} confirmations and timestamp fields
— samharperpittam
— sebastijankuzner
- #3983 test(core-magistrate-crypto): increase test coverage to 100%
- #3985 chore(core-state): autoIndex option
- #3948 fix(core-database): revertBlock
- #3984 test(core-magistrate-api): incrase test coverage to 100%
- #3926 chore(core-p2p): implement HEAD HTTP request for ping
- #3962 chore(core-state): remove forget methods and use index instead
- #3949 chore(core-database): use GIN index on transactions.asset
- #3968 fix(core-kernel): dynamically import @pm2/io
- #3972 test(core-magistrate-transactions): increate coverage to 100 %
- #3928 chore(core-api): get registered server route
- #86 feat: implement HTTP HEAD method
- #3935 chore(core-kernel): process env over .env
— sleepdefic1t
- #19 chore: deprecate dotnet
- #3974 chore(crypto): add publickey verification
- #91 docs: remove ‘unsupported’ documentation
- #92 chore(Makefile): use LedgerHQ updates
Issues
Last month we had 51 issues. Of which:
- 6 Still Open.
- 45 Closed.
Open
— air1one
— EricGerbers
— sebastijankuzner
- #3977 Increase test coverage of core-magistrate-crypto to 100%
- #3980 Increase test coverage of core-p2p to 100%
- #3979 Increase test coverage of core-transactions to 100%
- #3978 Increase test coverage of core-magistrate-api to 100%
Closed
— adrian69
— air1one
- #3891 Some transactions in
/transactions/${id}
don't return timestamp - #3571 Allow to extend core-api responses
- #3952 API
limit
parameter is not accepted - #3920 Use head instead of get to ping peer ports (update @arkecosystem/utils)
- #83 Implement HTTP HEAD method
- #3933 process.env vars should take priority over
.env
file vars - #3912 “no matching binding” error when running as separate forger
- #3930
/delegates/${id}/blocks
returns blocks first to last (should be the opposite) - #3914
/delegates
API does not sort by rank - #3893 Mainnet sync (v3)
— alessiodf
- #1457 touch bar support
— cambo
- #647 Choose Price Source
— dated
- #1761 bug: error when sending transaction with same details as expired transaction
- #1738 ux: mandatory form fields are not identifiable as such
— faustbrian
- #571 Cache HTTP requests for plugins
- #564 Look into sodium build issues
- #636 Validate that the transaction sender is the same as the wallet
- #569 Cache HTTP requests for wallets
- #570 Cache HTTP requests for contacts
- #411 Create cryptography abstractions
- #556 Cache HTTP requests for transactions
- #619 Support pagination for transaction aggregate
- #643 [NEO] Implement wallet balance
- #578 Implement quick access to registrations of a wallet
- #585 Implement read-only wallets (Address, Avatar, Username)
- #568 Implement test helpers
- #618 [Profiles] Add remaining test coverage
- #656 [Profiles] Apply peer settings of profile to new and existing wallets
- #633 Expose address validation
- #641 [ARK] Add support for AIP36
- #645 Store signed transactions as a DTO
- #393 Implement
platform-sdk-json-rpc
- #647 Persist signed and broadcasted transactions
- #611 Implement currency exchange service for coins
- #612 Implement pending transaction storage
- #615 Finalise pagination implementation
— Mililiter94
— Pleiadien
— samharperpittam
— sebastijankuzner
- #3966 Extendable search scopes on wallet-repository (v3)
- #3938 Revert transaction if saving downloaded blocks to database fails (v3)
- #3971 Increase test coverage of core-magistrate-transactions to 100%
- #3947 Include partial index for transactions.asset (v3)
— zillionn
Releases
Last month there were 74 releases.
ARK Core
- 2.6.52 at Tue, Aug 11, 2020 1:25 PM
ARK Utils
- 1.2.0 at Mon, Aug 3, 2020 2:38 PM
ARK PHP Crypto
- 1.2.0 at Thu, Aug 27, 2020 8:25 AM
Platform SDK
- 0.9.207 at Sat, Aug 1, 2020 4:21 PM
- 0.9.208 at Mon, Aug 3, 2020 1:58 AM
- 0.9.209 at Mon, Aug 3, 2020 5:49 AM
- 0.9.210 at Tue, Aug 4, 2020 5:57 AM
- 0.9.213 at Tue, Aug 4, 2020 6:29 AM
- 0.9.215 at Tue, Aug 4, 2020 9:38 AM
- 0.9.216 at Tue, Aug 4, 2020 11:07 AM
- 0.9.217 at Tue, Aug 4, 2020 11:09 AM
- 0.9.220 at Wed, Aug 5, 2020 3:14 AM
- 0.9.221 at Wed, Aug 5, 2020 3:37 AM
- 0.9.222 at Wed, Aug 5, 2020 3:55 AM
- 0.9.223 at Wed, Aug 5, 2020 4:59 AM
- 0.9.224 at Wed, Aug 5, 2020 6:48 AM
- 0.9.225 at Wed, Aug 5, 2020 7:10 AM
- 0.9.227 at Wed, Aug 5, 2020 12:21 PM
- 0.9.229 at Thu, Aug 6, 2020 2:56 AM
- 0.9.230 at Thu, Aug 6, 2020 5:33 AM
- 0.9.234 at Thu, Aug 6, 2020 5:45 AM
- 0.9.235 at Thu, Aug 6, 2020 6:37 AM
- 0.9.238 at Thu, Aug 6, 2020 12:04 PM
- 0.9.239 at Thu, Aug 6, 2020 12:49 PM
- 0.9.240 at Fri, Aug 7, 2020 5:14 AM
- 0.9.241 at Fri, Aug 7, 2020 7:36 AM
- 0.9.242 at Fri, Aug 7, 2020 7:38 AM
- 0.9.243 at Fri, Aug 7, 2020 7:47 AM
- 0.9.245 at Fri, Aug 7, 2020 9:09 AM
- 0.9.246 at Fri, Aug 7, 2020 11:27 AM
- 0.9.248 at Mon, Aug 10, 2020 2:00 AM
- 0.9.249 at Mon, Aug 10, 2020 2:15 AM
- 0.9.251 at Mon, Aug 10, 2020 4:18 AM
- 0.9.252 at Mon, Aug 10, 2020 6:06 AM
- 0.9.253 at Mon, Aug 10, 2020 6:07 AM
- 0.9.254 at Mon, Aug 10, 2020 7:41 AM
- 0.9.255 at Mon, Aug 10, 2020 8:06 AM
- 0.9.257 at Wed, Aug 12, 2020 2:23 AM
- 0.9.259 at Fri, Aug 14, 2020 10:59 AM
- 0.9.260 at Tue, Aug 18, 2020 3:27 AM
- 0.9.261 at Tue, Aug 18, 2020 8:46 AM
- 0.9.262 at Tue, Aug 18, 2020 12:54 PM
- 0.9.263 at Tue, Aug 18, 2020 1:05 PM
- 0.9.264 at Tue, Aug 18, 2020 3:05 PM
- 0.9.265 at Wed, Aug 19, 2020 5:04 AM
- 0.9.266 at Wed, Aug 19, 2020 5:32 AM
- 0.9.267 at Thu, Aug 20, 2020 8:34 AM
- 0.9.268 at Thu, Aug 20, 2020 8:36 AM
- 0.9.269 at Thu, Aug 20, 2020 4:47 PM
- 0.9.271 at Fri, Aug 21, 2020 3:12 AM
- 0.9.272 at Fri, Aug 21, 2020 10:59 AM
- 0.9.277 at Sun, Aug 23, 2020 4:16 AM
- 0.9.279 at Sun, Aug 23, 2020 7:54 AM
- 0.9.280 at Sun, Aug 23, 2020 10:16 AM
- 0.9.285 at Sun, Aug 23, 2020 12:33 PM
- 0.9.286 at Sun, Aug 23, 2020 4:08 PM
- 0.9.287 at Mon, Aug 24, 2020 2:35 AM
- 0.9.289 at Mon, Aug 24, 2020 3:52 AM
- 0.9.290 at Mon, Aug 24, 2020 6:24 AM
- 0.9.291 at Mon, Aug 24, 2020 6:30 AM
- 0.9.292 at Mon, Aug 24, 2020 2:22 PM
- 0.9.293 at Mon, Aug 24, 2020 2:48 PM
- 0.9.301 at Wed, Aug 26, 2020 5:20 AM
- 0.9.302 at Wed, Aug 26, 2020 9:50 AM
- 0.9.303 at Wed, Aug 26, 2020 9:53 AM
- 0.9.305 at Wed, Aug 26, 2020 11:17 AM
- 0.9.307 at Wed, Aug 26, 2020 1:17 PM
- 0.9.308 at Wed, Aug 26, 2020 3:16 PM
- 0.9.311 at Thu, Aug 27, 2020 11:48 AM
- 0.9.312 at Thu, Aug 27, 2020 12:04 PM
- 0.9.316 at Fri, Aug 28, 2020 3:06 AM
- 0.9.317 at Sat, Aug 29, 2020 2:14 AM
- 0.9.318 at Sat, Aug 29, 2020 2:16 AM
- 0.9.319 at Sat, Aug 29, 2020 2:28 AM
Star Gazers
Last month there were 5 stargazers.
0xb4rt, 57-Wolve, anjaan7664, azadkuh, brenopolanski
You all are the stars! 🌟