diff --git a/deliveries/myriad_social-milestone_3.md b/deliveries/myriad_social-milestone_3.md new file mode 100644 index 000000000..4eb909730 --- /dev/null +++ b/deliveries/myriad_social-milestone_3.md @@ -0,0 +1,51 @@ + +# Milestone Delivery :mailbox: + + +**The delivery is according to the official [milestone delivery guidelines](https://github.com/w3f/Grants-Program/blob/master/docs/Support%20Docs/milestone-deliverables-guidelines.md).** + +* **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/myriad_social.md + + + +* **Milestone Number:** 3 + +**Context** (optional) +> Please provide a short paragraph or two connecting the deliverables in this milestone and describing their purpose. +## Summary of Deliverables for Myriad Social's Polkadot Grant + +### 0a. License +Our project is released under the GPL 3.0 License, ensuring it's open-source and fostering a community-driven approach. + +### 0b. Documentation +We've included a comprehensive [documentation](https://github.com/myriadsocial/myriad-web/blob/main/docs/milestone-3-documentation.md) in the README file on our GitHub repo. This serves as a guide for the entire project. + +### 0c. Testing and Testing Guide +We've prepared a [Testing Guide](https://github.com/myriadsocial/myriad-web/blob/main/docs/milestone-3-testing-guide.md). This guide, also found in the README, outlines how to test the project using Docker. + +### 0d. Docker +For ease of testing, we have a [Dockerfile](https://github.com/myriadsocial/myriad-infrastructure/blob/main/linux/Dockerfile) ready to make the setup as smooth as possible. This Dockerfile has been updated to reflect the changes in this Milestone 3. + + +**Deliverables** +> Please provide a list of all deliverables of the milestone extracted from the initial application and a link to the deliverable itself. Ideally, all links inside the below table should include a commit hash, which will be used for testing. If you don't provide a commit hash, we will work off the default branch of your repository. Thus, if you plan on continuing work after delivery, we suggest you create a separate branch for either the delivery or your continuing work. +> +> If there is anything particular about any deliverables we or a future reader should know, use the respective `Notes` column. + +| Number | Deliverable | Link | Notes | +| ------------- | ------------- | ------------- |------------- | +| 0. | Deployment of Myriad Social on Paseo Network | https://polkadot.js.org/apps/?rpc=wss://ws-rpc.paseo.myriad.social/websocket/#/explorer | Myriad Social is now part of the Paseo network as a Parachain with ParaID 4005. This integration brings new features and better connectivity to everyone using Myriad. We've completed the token migration from Octopus Testnet to Myriad Paseo! All user funds have been safely moved through our automated airdrop process. This migration ensures that all user balances are preserved, tokens are now active on Paseo Network, and no action is needed from users - funds are already transferred | +| 1. | New UI (Front-end), Polkadot Setup, Connection, and User Guide | 1. https://github.com/myriadsocial/myriad-web/commit/b66e3162 - Update the image for timeline and send-tip (#1964)
2. https://github.com/myriadsocial/myriad-web/commit/047801e5 - Update nova wallet tutorial - Documentation 3 (#1962)
3. https://github.com/myriadsocial/myriad-web/commit/46103d40 - Add exclusive timeline feature (#1959)
4. https://github.com/myriadsocial/myriad-web/commit/c813b68a - Add new login method (#1957)
5. https://github.com/myriadsocial/myriad-web/commit/de6df799 - Fix exclusive content on mobile (#1939)
6. https://github.com/myriadsocial/myriad-web/commit/82ef2169 - Fix notification spacing (#1938)
7. https://github.com/myriadsocial/myriad-web/commit/9b83c821 - Fix notification message (#1934)
8. https://github.com/myriadsocial/myriad-web/commit/1e8d1b60 - Fix new mobile create post UI (#1922)
9. https://github.com/myriadsocial/myriad-web/commit/155c9bfa - feat: revamp ui mobile home (#1813)
10. https://github.com/myriadsocial/myriad-web/commit/59807dd2 - Revamp UI desktop (#1799) | We have revamped the Polkadot wallet integration process to make it more user-friendly. A step-by-step guide with interactive tooltips now assists you through every stage of connecting your Polkadot wallet. ![Connect to Myriad on Paseo](https://github.com/myriadsocial/myriad-web/raw/main/docs/select-wallet.png "Connect to Myriad on Paseo")![Wallet sign-in](https://github.com/myriadsocial/myriad-web/raw/main/docs/wallet-sign-in.png "Wallet sign-in") These wallet improvements make it easier for everyone to use Web3 features. With clearer steps and helpful guides, connecting your wallet is now simpler and safer. | +| 2. | Simplified Transaction Flow for Tipping and Exclusive Content | https://github.com/myriadsocial/myriad-web/commit/b66e3162 - Update the image for timeline and send-tip (#1964)
2. https://github.com/myriadsocial/myriad-web/commit/46103d40 - Add exclusive timeline feature (#1959)
3. https://github.com/myriadsocial/myriad-web/commit/de6df799 - Fix exclusive content on mobile (#1939)
4. https://github.com/myriadsocial/myriad-api/commit/fa6432cf - Update transaction search for exclusive timeline (#983)
5. https://github.com/myriadsocial/myriad-api/commit/98c713ef - Update exclusive timeline exclusion logic to fetch transaction (#981)
6. https://github.com/myriadsocial/myriad-api/commit/024118df - Exclu (#979)
7. https://github.com/myriadsocial/myriad-api/commit/dd7e5ea2 - Return empty array when timeline is exclusive (#978)
8. https://github.com/myriadsocial/myriad-api/commit/b67661cc - Add exclusiveness to timeline model (#974) | We have streamlined the transaction processes for tipping creators and accessing exclusive content, ensuring a smoother experience. ![Send Tip](https://github.com/myriadsocial/myriad-web/raw/main/docs/step-send-tip.png "Send Tip") ![Send MYRIAr](https://github.com/myriadsocial/myriad-web/raw/main/docs/send-tip-myriar.png "Send MYRIAr") The new Tipping Enhancements bring a more seamless and transparent experience for users. With a unified interface, the tipping window is now consolidated and easy to navigate, simplifying the process. Quick access buttons allow users to tip creators directly from their posts without the need for extra navigation, making support instant and effortless. Moreover, transparent fees ensure that any transaction costs are clearly displayed before confirming a tip, fostering trust and clarity in every transaction. | +| 3. | Simplified Timeline Discovery and First Step Guide for New Users | 1. https://github.com/myriadsocial/myriad-web/commit/b66e3162 - Update the image for timeline and send-tip (#1964)
2. https://github.com/myriadsocial/myriad-web/commit/46103d40 - Add exclusive timeline feature (#1959)
3. https://github.com/myriadsocial/myriad-web/commit/de6df799 - Fix exclusive content on mobile (#1939)
4. https://github.com/myriadsocial/myriad-api/commit/fa6432cf - Update transaction search for exclusive timeline (#983)
5. https://github.com/myriadsocial/myriad-api/commit/98c713ef - Update exclusive timeline exclusion logic to fetch transaction (#981)
6. https://github.com/myriadsocial/myriad-api/commit/024118df - Exclu (#979)
7. https://github.com/myriadsocial/myriad-api/commit/dd7e5ea2 - Return empty array when timeline is exclusive (#978)
8. https://github.com/myriadsocial/myriad-api/commit/b67661cc - Add exclusiveness to timeline model (#974) | ![Timeline Discovery](https://github.com/myriadsocial/myriad-web/raw/main/docs/timeline-discovery.png "Timeline Discovery") Discovering new timelines and managing your own is now more intuitive thanks to a revamped layout and enhanced search capabilities, allowing users to discover new timeline based on tags user want to see or dont want to see. ![Exclusive Timeline](https://github.com/myriadsocial/myriad-web/raw/main/docs/create-exclusive-timeline.png "Exclusive Timeline") We have introduced the Exclusive Timeline feature, which allows you to mark specific timeline content as exclusive. When a timeline is marked as exclusive, it will be clearly indicated with an exclusive label, helping differentiate it from regular timelines in the listing. | +| 4. | B2B Features: Multi-User Management System | 1. https://github.com/myriadsocial/myriad-web/commit/e15a84bf - Add PAT & account sharing setting (#1907)
2. https://github.com/myriadsocial/myriad-web/commit/d385a0e6 - Fix PAT UI (#1949)
3. https://github.com/myriadsocial/myriad-web/commit/6386e19c - Revert PAT UI (#1950)
4. https://github.com/myriadsocial/myriad-api/commit/908d17a2 - Prevent anonymous user to generate personal access token (#929)
5. https://github.com/myriadsocial/myriad-api/commit/b662acb8 - Add authentication with personal access token (#926)
6. https://github.com/myriadsocial/myriad-api/commit/6c83e797 - Fix error on creating multi user timeline (#958)
7. https://github.com/myriadsocial/myriad-api/commit/ff773669 - Fix multi user timeline dto (#934)
8. https://github.com/myriadsocial/myriad-api/commit/8eaa4f6a - Fix CRUD operation involving multi user timeline editors (#932)
9. https://github.com/myriadsocial/myriad-api/commit/bdf2167d - Enable editors in timeline for multi user timeline (#931) | We have implemented comprehensive B2B features that enable organizations to manage multiple users, timelines, and content metrics efficiently through a single interface. This enterprise-grade functionality provides organizations with powerful tools for team collaboration and content management. ![Multi User Login](https://github.com/myriadsocial/myriad-web/raw/main/docs/multi-user.png "Multi User Login") The new account sharing system introduces a secure way to manage multiple user access using Personal Access Tokens, One-Time Token Display, and Seamless Authentication. With these new B2B features, teams and businesses can now better manage their Myriad Social presence. Whether you're handling multiple accounts, working with a team, or tracking content performance, these tools make it simple. | +| 5. | Mobile Wallet Integration with Nova Wallet | 1. https://github.com/myriadsocial/myriad-web/commit/047801e5 - Update nova wallet tutorial - Documentation 3 (#1962)
2. https://github.com/myriadsocial/myriad-web/commit/c813b68a - Add new login method (#1957)
3. https://www.youtube.com/watch?v=6PtEhR9-K50 | Myriad Social now supports mobile wallet integration with Nova Wallet. Previously, mobile users were limited to connecting via NEAR Wallet, but with this update, you can now connect your Polkadot wallet seamlessly on mobile devices. ![Multi User Login](https://camo.githubusercontent.com/e49259a3869a59b49acdff2ea2ce8778af594f5a7a82a731f7d3e6cb967b9338/68747470733a2f2f696d672e796f75747562652e636f6d2f76692f365074456852392d4b35302f302e6a7067 "Multi User Login") | +| 6. | Backend Improvements and Algorithm Enhancements | 1. https://github.com/myriadsocial/myriad-web/commit/677b54ee - Update FilterBuilderService for filtering (#972)
2. https://github.com/myriadsocial/myriad-api/commit/2a42f273 - Fixed get posts by profile endpoint (#970)
3. https://github.com/myriadsocial/myriad-api/commit/a2265144 - Fix get posts by profile (#968)
4. https://github.com/myriadsocial/myriad-api/commit/ed271af0 - Fix get posts by profile (#967)
5. https://github.com/myriadsocial/myriad-api/commit/8d58fac8 - Replace firebase with minio (#964)
6. https://github.com/myriadsocial/myriad-api/commit/1a361e28 - Fix issue with uploading image (#963)
7. https://github.com/myriadsocial/myriad-api/commit/d7255d68 - Fix mention notification (#957)
8. https://github.com/myriadsocial/myriad-api/commit/20ce7dcc - Fix update comment notification message (#953)
9. https://github.com/myriadsocial/myriad-api/commit/e30dde91 - Fix email leak on find post by id api (#947)
10. https://www.youtube.com/watch?v=D0Km7_Buclo | We have significantly enhanced our backend infrastructure and algorithms to improve content discovery, platform performance, and user experience. ![Improved Backend](https://github.com/myriadsocial/myriad-web/raw/main/docs/Filtering%20cut%20off12.png "Improved Backend") Users can now seamlessly import and embed YouTube content with native playback support, automatic metadata extraction, and optimized performance, while our refined content ranking algorithm focuses on the most recent 12 months of data to ensure fresh content, phasing out historical posts while still maintaining archive access. Enhanced ranking factors now include post engagement metrics, timeline trends, hashtag usage, user interactions, and content quality signals. | +| 7. | Performance Optimization and Enhancement | The performance enhancements were done within the server's NGINX configuration, which is not shared here. But you can take a look at how we set it up within this repository: https://github.com/myriadsocial/myriad-infrastructure | We have implemented significant performance improvements to enhance the user experience and reduce resource consumption. These optimizations focus on reducing payload sizes, implementing modern compression techniques, and optimizing network requests. ![Transfer Size](https://github.com/myriadsocial/myriad-web/raw/main/docs/image-1.png "Transfer Size") We have successfully cut the total transfer size by more than 50%, reducing it from 24.3 MB to 10.4 MB. On another note, the platform now utilizes Brotli compression, a modern compression algorithm that offers better compression ratios compared to traditional methods like gzip. We've also achieved a significant improvement in Fetch/XHR payload efficiency through Brotli compression, reducing the overhead to just 7% of its previous size. Next, through careful analysis and optimization of our JavaScript bundles, combined with Brotli compression, we've achieved a 14% reduction in JavaScript payload size, bringing it down to 325kb. Our latest updates have made Myriad Social faster and more efficient. Pages load quicker, use less data, and work better on all devices. Using new compression technology and better code, we've cut loading times in half while using less bandwidth. | +| 8. | Self-Hosting Capabilities | 1. Marauder.sh script: https://github.com/myriadsocial/myriad-infrastructure/blob/main/linux/marauder.sh
2. Dockerfile for testing: https://github.com/myriadsocial/myriad-infrastructure/blob/main/linux/Dockerfile
3. Directory housing the relevant scripts: https://github.com/myriadsocial/myriad-infrastructure/tree/main/linux | Myriad Social can now be self-hosted, giving users complete control over their social media infrastructure. Detailed [documentation and resources](https://github.com/myriadsocial/myriad-infrastructure/blob/main/linux/README.md) are available to help you begin your self-hosting journey. | +| 9. | Additional Clients | https://github.com/myriadsocial/myriad-importer-extension | We have developed a browser extension that enables seamless content importing and cross-posting from various social media platforms to Myriad.social. The extension supports:
- Twitter Posts: Automatic detection and import of Twitter posts with badge notifications for existing imports
- Reddit Posts: Direct importing of Reddit content with similar badge notification system
- YouTube Integration: Automatic conversion of URLs to embedded iframes with custom caption support
- Twitch Integration: Channel URL conversion to embedded players with proper domain settings

Key features include:
- Magic link authentication system
- Text selection and formatting capabilities
- Clean, responsive popup interface
- Secure API integration

The extension is available at:
- https://myriad.social/extension
- Chrome Web Store: [Myriad Extension](https://chrome.google.com/webstore/detail/myriad-extension/caafifipbilmonkndcpppfehkhappcci) | + +**Additional Information** +We are excited to share this delivery document with you to confirm the successful completion of all deliverable items from our initial application. We apologise that this deliverable is overdue due to several technical challenges and an unexpected product update that required a migration to Paseo. + +We are excited for you to experience these new features and improvements. Your feedback is invaluable to us, so please do not hesitate to share your thoughts and suggestions. diff --git a/deliveries/p2p_state_channels-milestone_2.md b/deliveries/p2p_state_channels-milestone_2.md new file mode 100644 index 000000000..eef393501 --- /dev/null +++ b/deliveries/p2p_state_channels-milestone_2.md @@ -0,0 +1,33 @@ +# Milestone Delivery :mailbox: + +> ⚡ Only the GitHub account that submitted the application is allowed to submit milestones. +> +> Don't remove any of the mandatory parts presented in bold letters or as headlines! Lines starting with `>`, such as this one, can be removed. + +**The delivery is according to the official [milestone delivery guidelines](https://github.com/w3f/Grants-Program/blob/master/docs/Support%20Docs/milestone-deliverables-guidelines.md).** + +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/P2PStateChannels.md +- **Milestone Number:** 2 + +**Context** (optional) + +Link to project repository - https://github.com/peer3to/state-channels-plus/ +We recommend reading the READMEs, watching the videos, and trying the demo. + +**Deliverables** + +| Number | Deliverable | Link | Notes | +| ------ | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0a. | License | https://github.com/peer3to/state-channels-plus/blob/master/LICENSE | MIT | +| 0b. | Documentation | https://github.com/peer3to/state-channels-plus/blob/master/docs/mfsDocs.md | There are also some videos in the root README that may be helpful | +| 0c. | Testing and Testing Guide | https://github.com/peer3to/state-channels-plus/tree/master/test | https://github.com/peer3to/state-channels-plus/blob/master/README.md#run-tests | +| 0d. | Docker | https://github.com/peer3to/state-channels-plus/blob/master/Dockerfile | Used to run the above tests in a container | +| 0e. | Article | https://docs.google.com/document/d/1qS7ZY8noaObP5Ze1mVOaydDBih4jHYym4qacAx46Fas | Will be posted on medium - this is just a draft for review | +| 1. | Networking and Discovery | https://github.com/peer3to/state-channels-plus/blob/master/src/transport/HolepunchTransport.ts https://github.com/peer3to/state-channels-plus/blob/master/src/Holepunch.ts | Currently it uses holepunch but it's designed to support multiple transports like WebRTC for browsers | +| 2. | P2P State Machine | https://github.com/peer3to/state-channels-plus/blob/master/src/evm/EvmStateMachine.ts | This uses the official EVM implementation. This can be substituted polymoprhically for another VM like the PVM when there's an official implementation. | +| 3. | Agreement Tracking | https://github.com/peer3to/state-channels-plus/blob/master/src/AgreementManager.ts | | +| 4. | Dispute Handling | https://github.com/peer3to/state-channels-plus/blob/master/src/DisputeHandler.ts | Accounts only for liveness logic - the more advanced dispute resolution mechanism will be in the full feature set | +| 5. | Virtual Clock | https://github.com/peer3to/state-channels-plus/blob/master/src/Clock.ts | | +| 6. | Observing & Notifying | https://github.com/peer3to/state-channels-plus/blob/master/src/P2pEventHooks.ts | These are optional hooks that can be overridden as callbacks when certain things trigger in the system. | + +**Additional Information** diff --git a/evaluations/DAOsign_m3_keeganquigley.md b/evaluations/DAOsign_m3_keeganquigley.md new file mode 100644 index 000000000..181a00740 --- /dev/null +++ b/evaluations/DAOsign_m3_keeganquigley.md @@ -0,0 +1,1309 @@ +# Evaluation + + +- **Status:** In progress +- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/DAOsign.md +- **Milestone:** 3 + +| Number | Deliverable | Accepted | Link | Notes | +| ------------- | ------------- | ------------- | ------------- | ------------- | +| 0a. | License | | [LICENSE](https://github.com/DAOsign/relayer/blob/main/LICENSE) | Apache 2.0 | +| 0b. | Documentation | | [Readme](https://github.com/DAOsign/relayer/blob/main/README.md) | | +| 0c. | Testing and Testing Guide | | https://github.com/DAOsign/relayer/blob/main/README.md#testing | | +| 0d. | Docker | | https://github.com/DAOsign/relayer?tab=readme-ov-file#with-docker | +| 1. | Gas Relayer | |[Github Repo](https://github.com/DAOsign/relayer) | | + +# General Notes + +The test is failing with errors but it's due to the .env setup. + +After copying the example .env file the tests are currently failing with a lot of errors: + +
+ Output + +```ts + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "[ { account_id: 1, hd_path: "m/44'/60'/0'/0/0", balance: '1000000' } ]". + + 50 | + 51 | const unlockedAccounts = await this.getUnlockedAccounts(); + > 52 | console.log(unlockedAccounts); + | ^ + 53 | + 54 | if (!unlockedAccounts.length) { + 55 | this.logger.info(`No unlocked ${this.networkName} accounts found. Skipping ${this.networkName} queue processing`); + + at console.log (node_modules/@jest/console/build/BufferedConsole.js:156:10) + at QueueService. (src/worker/queue.service.ts:52:13) + at fulfilled (src/worker/queue.service.ts:5:58) + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "[ { account_id: 1, hd_path: "m/44'/60'/0'/0/0", balance: '1000000' } ]". + + 50 | + 51 | const unlockedAccounts = await this.getUnlockedAccounts(); + > 52 | console.log(unlockedAccounts); + | ^ + 53 | + 54 | if (!unlockedAccounts.length) { + 55 | this.logger.info(`No unlocked ${this.networkName} accounts found. Skipping ${this.networkName} queue processing`); + + at console.log (node_modules/@jest/console/build/BufferedConsole.js:156:10) + at QueueService. (src/worker/queue.service.ts:52:13) + at fulfilled (src/worker/queue.service.ts:5:58) + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "[ { account_id: 1, hd_path: "m/44'/60'/0'/0/0", balance: '1000000' } ]". + + 50 | + 51 | const unlockedAccounts = await this.getUnlockedAccounts(); + > 52 | console.log(unlockedAccounts); + | ^ + 53 | + 54 | if (!unlockedAccounts.length) { + 55 | this.logger.info(`No unlocked ${this.networkName} accounts found. Skipping ${this.networkName} queue processing`); + + at console.log (node_modules/@jest/console/build/BufferedConsole.js:156:10) + at QueueService. (src/worker/queue.service.ts:52:13) + at fulfilled (src/worker/queue.service.ts:5:58) + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "[ { account_id: 1, hd_path: "m/44'/60'/0'/0/0", balance: '1000000' } ]". + + 50 | + 51 | const unlockedAccounts = await this.getUnlockedAccounts(); + > 52 | console.log(unlockedAccounts); + | ^ + 53 | + 54 | if (!unlockedAccounts.length) { + 55 | this.logger.info(`No unlocked ${this.networkName} accounts found. Skipping ${this.networkName} queue processing`); + + at console.log (node_modules/@jest/console/build/BufferedConsole.js:156:10) + at QueueService. (src/worker/queue.service.ts:52:13) + at fulfilled (src/worker/queue.service.ts:5:58) + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "[ { account_id: 1, hd_path: "m/44'/60'/0'/0/0", balance: '1000000' } ]". + + 50 | + 51 | const unlockedAccounts = await this.getUnlockedAccounts(); + > 52 | console.log(unlockedAccounts); + | ^ + 53 | + 54 | if (!unlockedAccounts.length) { + 55 | this.logger.info(`No unlocked ${this.networkName} accounts found. Skipping ${this.networkName} queue processing`); + + at console.log (node_modules/@jest/console/build/BufferedConsole.js:156:10) + at QueueService. (src/worker/queue.service.ts:52:13) + at fulfilled (src/worker/queue.service.ts:5:58) + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "[ { account_id: 1, hd_path: "m/44'/60'/0'/0/0", balance: '1000000' } ]". + + 50 | + 51 | const unlockedAccounts = await this.getUnlockedAccounts(); + > 52 | console.log(unlockedAccounts); + | ^ + 53 | + 54 | if (!unlockedAccounts.length) { + 55 | this.logger.info(`No unlocked ${this.networkName} accounts found. Skipping ${this.networkName} queue processing`); + + at console.log (node_modules/@jest/console/build/BufferedConsole.js:156:10) + at QueueService. (src/worker/queue.service.ts:52:13) + at fulfilled (src/worker/queue.service.ts:5:58) + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "[ { account_id: 1, hd_path: "m/44'/60'/0'/0/0", balance: '1000000' } ]". + + 50 | + 51 | const unlockedAccounts = await this.getUnlockedAccounts(); + > 52 | console.log(unlockedAccounts); + | ^ + 53 | + 54 | if (!unlockedAccounts.length) { + 55 | this.logger.info(`No unlocked ${this.networkName} accounts found. Skipping ${this.networkName} queue processing`); + + at console.log (node_modules/@jest/console/build/BufferedConsole.js:156:10) + at QueueService. (src/worker/queue.service.ts:52:13) + at fulfilled (src/worker/queue.service.ts:5:58) + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "[ { account_id: 1, hd_path: "m/44'/60'/0'/0/0", balance: '1000000' } ]". + + 50 | + 51 | const unlockedAccounts = await this.getUnlockedAccounts(); + > 52 | console.log(unlockedAccounts); + | ^ + 53 | + 54 | if (!unlockedAccounts.length) { + 55 | this.logger.info(`No unlocked ${this.networkName} accounts found. Skipping ${this.networkName} queue processing`); + + at console.log (node_modules/@jest/console/build/BufferedConsole.js:156:10) + at QueueService. (src/worker/queue.service.ts:52:13) + at fulfilled (src/worker/queue.service.ts:5:58) + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "[ { account_id: 1, hd_path: "m/44'/60'/0'/0/0", balance: '1000000' } ]". + + 50 | + 51 | const unlockedAccounts = await this.getUnlockedAccounts(); + > 52 | console.log(unlockedAccounts); + | ^ + 53 | + 54 | if (!unlockedAccounts.length) { + 55 | this.logger.info(`No unlocked ${this.networkName} accounts found. Skipping ${this.networkName} queue processing`); + + at console.log (node_modules/@jest/console/build/BufferedConsole.js:156:10) + at QueueService. (src/worker/queue.service.ts:52:13) + at fulfilled (src/worker/queue.service.ts:5:58) + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "[ { account_id: 1, hd_path: "m/44'/60'/0'/0/0", balance: '1000000' } ]". + + 50 | + 51 | const unlockedAccounts = await this.getUnlockedAccounts(); + > 52 | console.log(unlockedAccounts); + | ^ + 53 | + 54 | if (!unlockedAccounts.length) { + 55 | this.logger.info(`No unlocked ${this.networkName} accounts found. Skipping ${this.networkName} queue processing`); + + at console.log (node_modules/@jest/console/build/BufferedConsole.js:156:10) + at QueueService. (src/worker/queue.service.ts:52:13) + at fulfilled (src/worker/queue.service.ts:5:58) + +A worker process has failed to exit gracefully and has been force exited. This is likely caused by tests leaking due to improper teardown. Try running with --detectOpenHandles to find leaks. Active timers can also cause this, ensure that .unref() was called on them. + +Test Suites: 3 passed, 3 total +Tests: 28 passed, 28 total +Snapshots: 0 total +Time: 6.457 s +Ran all test suites matching /test/i. +Done in 7.00s. +ubuntu@ip-172-31-21-129:~/relayer$ ls +Dockerfile LICENSE README.md jest.config.js node_modules package.json src tsconfig.json yarn.lock +ubuntu@ip-172-31-21-129:~/relayer$ ls -a +. .env .eslintignore .git .gitignore .prettierrc.json LICENSE jest.config.js package.json tsconfig.json +.. .env.example .eslintrc.json .github .prettierignore Dockerfile README.md node_modules src yarn.lock +ubuntu@ip-172-31-21-129:~/relayer$ vim .env +ubuntu@ip-172-31-21-129:~/relayer$ sudo rm -rf .env +ubuntu@ip-172-31-21-129:~/relayer$ ls +Dockerfile LICENSE README.md jest.config.js node_modules package.json src tsconfig.json yarn.lock +ubuntu@ip-172-31-21-129:~/relayer$ ls -a +. .env.example .eslintrc.json .github .prettierignore Dockerfile README.md node_modules src yarn.lock +.. .eslintignore .git .gitignore .prettierrc.json LICENSE jest.config.js package.json tsconfig.json +ubuntu@ip-172-31-21-129:~/relayer$ touch .env +ubuntu@ip-172-31-21-129:~/relayer$ vim .env +ubuntu@ip-172-31-21-129:~/relayer$ vim .env +ubuntu@ip-172-31-21-129:~/relayer$ yarn install +yarn install v1.22.22 +warning ../package.json: No license field +[1/4] Resolving packages... +success Already up-to-date. +Done in 0.33s. +ubuntu@ip-172-31-21-129:~/relayer$ yarn test +yarn run v1.22.22 +warning ../package.json: No license field +$ jest test + PASS src/__tests__/utils.ts + PASS src/__tests__/queueService.ts + ● Console + + console.log + 2024-11-20 22:15:23:1523 info: ETHEREUM queue processor started + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + [ { account_id: 1, hd_path: "m/44'/60'/0'/0/0", balance: '1000000' } ] + + at QueueService. (src/worker/queue.service.ts:52:13) + + console.log + 2024-11-20 22:15:23:1523 info: 1 ETHEREUM unlocked accounts found. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: No unprocessed ETHEREUM proofs found. Skipping ETHEREUM queue processing + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: ETHEREUM queue processor started + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + [ { account_id: 1, hd_path: "m/44'/60'/0'/0/0", balance: '1000000' } ] + + at QueueService. (src/worker/queue.service.ts:52:13) + + console.log + 2024-11-20 22:15:23:1523 info: 1 ETHEREUM unlocked accounts found. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: No unprocessed ETHEREUM proofs found. Skipping ETHEREUM queue processing + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: auth1 proof have no processed authority proof. Skipping. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: ETHEREUM queue processor started + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + [ { account_id: 1, hd_path: "m/44'/60'/0'/0/0", balance: '1000000' } ] + + at QueueService. (src/worker/queue.service.ts:52:13) + + console.log + 2024-11-20 22:15:23:1523 info: 1 ETHEREUM unlocked accounts found. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: No unprocessed ETHEREUM proofs found. Skipping ETHEREUM queue processing + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: sig1 proof have no processed signatures proof. Skipping. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: ETHEREUM queue processor started + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + [ { account_id: 1, hd_path: "m/44'/60'/0'/0/0", balance: '1000000' } ] + + at QueueService. (src/worker/queue.service.ts:52:13) + + console.log + 2024-11-20 22:15:23:1523 info: 1 ETHEREUM unlocked accounts found. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: No unprocessed ETHEREUM proofs found. Skipping ETHEREUM queue processing + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: auth1 proof have no processed authority proof. Skipping. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: ETHEREUM queue processor started + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + [ { account_id: 1, hd_path: "m/44'/60'/0'/0/0", balance: '1000000' } ] + + at QueueService. (src/worker/queue.service.ts:52:13) + + console.log + 2024-11-20 22:15:23:1523 info: 1 ETHEREUM unlocked accounts found. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: No unprocessed ETHEREUM proofs found. Skipping ETHEREUM queue processing + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: auth1 proof have no processed authority proof. Skipping. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: ETHEREUM queue processor started + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + [ { account_id: 1, hd_path: "m/44'/60'/0'/0/0", balance: '1000000' } ] + + at QueueService. (src/worker/queue.service.ts:52:13) + + console.log + 2024-11-20 22:15:23:1523 info: 1 ETHEREUM unlocked accounts found. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: No unprocessed ETHEREUM proofs found. Skipping ETHEREUM queue processing + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: Tried to process proof with empty account 8 Skipping. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: ETHEREUM queue processor started + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + [ { account_id: 1, hd_path: "m/44'/60'/0'/0/0", balance: '1000000' } ] + + at QueueService. (src/worker/queue.service.ts:52:13) + + console.log + 2024-11-20 22:15:23:1523 info: 1 ETHEREUM unlocked accounts found. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: No unprocessed ETHEREUM proofs found. Skipping ETHEREUM queue processing + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: Test error + at /home/ubuntu/relayer/src/__tests__/queueService.ts:134:63 + at Generator.next () + at /home/ubuntu/relayer/src/__tests__/queueService.ts:8:71 + at new Promise () + at Object..__awaiter (/home/ubuntu/relayer/src/__tests__/queueService.ts:4:12) + at Object. (/home/ubuntu/relayer/src/__tests__/queueService.ts:130:94) + at Promise.then.completed (/home/ubuntu/relayer/node_modules/jest-circus/build/utils.js:298:28) + at new Promise () + at callAsyncCircusFn (/home/ubuntu/relayer/node_modules/jest-circus/build/utils.js:231:10) + at _callCircusTest (/home/ubuntu/relayer/node_modules/jest-circus/build/run.js:316:40) + at processTicksAndRejections (node:internal/process/task_queues:95:5) + at _runTest (/home/ubuntu/relayer/node_modules/jest-circus/build/run.js:252:3) + at _runTestsForDescribeBlock (/home/ubuntu/relayer/node_modules/jest-circus/build/run.js:126:9) + at _runTestsForDescribeBlock (/home/ubuntu/relayer/node_modules/jest-circus/build/run.js:121:9) + at _runTestsForDescribeBlock (/home/ubuntu/relayer/node_modules/jest-circus/build/run.js:121:9) + at run (/home/ubuntu/relayer/node_modules/jest-circus/build/run.js:71:3) + at runAndTransformResultsToJestFormat (/home/ubuntu/relayer/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) + at jestAdapter (/home/ubuntu/relayer/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) + at runTestInternal (/home/ubuntu/relayer/node_modules/jest-runner/build/runTest.js:367:16) + at runTest (/home/ubuntu/relayer/node_modules/jest-runner/build/runTest.js:444:34) + at Object.worker (/home/ubuntu/relayer/node_modules/jest-runner/build/testWorker.js:106:12) + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + at Generator.throw () + + console.log + 2024-11-20 22:15:23:1523 info: ETHEREUM queue processor started + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + [ { account_id: 1, hd_path: "m/44'/60'/0'/0/0", balance: '1000000' } ] + + at QueueService. (src/worker/queue.service.ts:52:13) + + console.log + 2024-11-20 22:15:23:1523 info: 1 ETHEREUM unlocked accounts found. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: No unprocessed ETHEREUM proofs found. Skipping ETHEREUM queue processing + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: ETHEREUM queue processor started + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + [] + + at QueueService. (src/worker/queue.service.ts:52:13) + + console.log + 2024-11-20 22:15:23:1523 info: No unlocked ETHEREUM accounts found. Skipping ETHEREUM queue processing + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: ETHEREUM queue processor started + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + [ { account_id: 1, hd_path: "m/44'/60'/0'/0/0", balance: '1000000' } ] + + at QueueService. (src/worker/queue.service.ts:52:13) + + console.log + 2024-11-20 22:15:23:1523 info: 1 ETHEREUM unlocked accounts found. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: No unprocessed ETHEREUM proofs found. Skipping ETHEREUM queue processing + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: ETHEREUM queue processor started + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + [ { account_id: 1, hd_path: "m/44'/60'/0'/0/0" } ] + + at QueueService. (src/worker/queue.service.ts:52:13) + + console.log + 2024-11-20 22:15:23:1523 info: 1 ETHEREUM unlocked accounts found. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: No unprocessed ETHEREUM proofs found. Skipping ETHEREUM queue processing + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: ETHEREUM queue processor started + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + [ { account_id: 1, hd_path: "m/44'/60'/0'/0/0", balance: '1000000' } ] + + at QueueService. (src/worker/queue.service.ts:52:13) + + console.log + 2024-11-20 22:15:23:1523 info: 1 ETHEREUM unlocked accounts found. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: No unprocessed ETHEREUM proofs found. Skipping ETHEREUM queue processing + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: ETHEREUM queue processor started + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + [ + { account_id: 1, hd_path: "m/44'/60'/0'/0/0", balance: '1000000' }, + { account_id: 2, hd_path: "m/44'/60'/0'/0/1", balance: '1000000' } + ] + + at QueueService. (src/worker/queue.service.ts:52:13) + + console.log + 2024-11-20 22:15:23:1523 info: 2 ETHEREUM unlocked accounts found. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: 2 ETHEREUM unprocessed proofs found. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-20 22:15:23:1523 info: Processed 2 ETHEREUM proofs. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "Error while trying to write to graylog2: Error: getaddrinfo ENOTFOUND + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + at console.error (node_modules/@jest/console/build/BufferedConsole.js:127:10) + at graylog. (node_modules/winston-graylog2/lib/winston-graylog2.js:61:15) + at node_modules/graylog2/graylog.js:269:18 + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "Error while trying to write to graylog2: Error: getaddrinfo ENOTFOUND + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + at console.error (node_modules/@jest/console/build/BufferedConsole.js:127:10) + at graylog. (node_modules/winston-graylog2/lib/winston-graylog2.js:61:15) + at node_modules/graylog2/graylog.js:269:18 + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "Error while trying to write to graylog2: Error: getaddrinfo ENOTFOUND + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + at console.error (node_modules/@jest/console/build/BufferedConsole.js:127:10) + at graylog. (node_modules/winston-graylog2/lib/winston-graylog2.js:61:15) + at node_modules/graylog2/graylog.js:269:18 + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "Error while trying to write to graylog2: Error: getaddrinfo ENOTFOUND + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + at console.error (node_modules/@jest/console/build/BufferedConsole.js:127:10) + at graylog. (node_modules/winston-graylog2/lib/winston-graylog2.js:61:15) + at node_modules/graylog2/graylog.js:269:18 + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "Error while trying to write to graylog2: Error: getaddrinfo ENOTFOUND + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + at console.error (node_modules/@jest/console/build/BufferedConsole.js:127:10) + at graylog. (node_modules/winston-graylog2/lib/winston-graylog2.js:61:15) + at node_modules/graylog2/graylog.js:269:18 + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "Error while trying to write to graylog2: Error: getaddrinfo ENOTFOUND + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + at console.error (node_modules/@jest/console/build/BufferedConsole.js:127:10) + at graylog. (node_modules/winston-graylog2/lib/winston-graylog2.js:61:15) + at node_modules/graylog2/graylog.js:269:18 + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "Error while trying to write to graylog2: Error: getaddrinfo ENOTFOUND + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + at console.error (node_modules/@jest/console/build/BufferedConsole.js:127:10) + at graylog. (node_modules/winston-graylog2/lib/winston-graylog2.js:61:15) + at node_modules/graylog2/graylog.js:269:18 + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "Error while trying to write to graylog2: Error: getaddrinfo ENOTFOUND + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + at console.error (node_modules/@jest/console/build/BufferedConsole.js:127:10) + at graylog. (node_modules/winston-graylog2/lib/winston-graylog2.js:61:15) + at node_modules/graylog2/graylog.js:269:18 + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "Error while trying to write to graylog2: Error: getaddrinfo ENOTFOUND + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + at console.error (node_modules/@jest/console/build/BufferedConsole.js:127:10) + at graylog. (node_modules/winston-graylog2/lib/winston-graylog2.js:61:15) + at node_modules/graylog2/graylog.js:269:18 + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "Error while trying to write to graylog2: Error: getaddrinfo ENOTFOUND + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + at console.error (node_modules/@jest/console/build/BufferedConsole.js:127:10) + at graylog. (node_modules/winston-graylog2/lib/winston-graylog2.js:61:15) + at node_modules/graylog2/graylog.js:269:18 + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "Error while trying to write to graylog2: Error: getaddrinfo ENOTFOUND + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + at console.error (node_modules/@jest/console/build/BufferedConsole.js:127:10) + at graylog. (node_modules/winston-graylog2/lib/winston-graylog2.js:61:15) + at node_modules/graylog2/graylog.js:269:18 + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "Error while trying to write to graylog2: Error: getaddrinfo ENOTFOUND + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + at console.error (node_modules/@jest/console/build/BufferedConsole.js:127:10) + at graylog. (node_modules/winston-graylog2/lib/winston-graylog2.js:61:15) + at node_modules/graylog2/graylog.js:269:18 + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "Error while trying to write to graylog2: Error: getaddrinfo ENOTFOUND + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + at console.error (node_modules/@jest/console/build/BufferedConsole.js:127:10) + at graylog. (node_modules/winston-graylog2/lib/winston-graylog2.js:61:15) + at node_modules/graylog2/graylog.js:269:18 + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "Error while trying to write to graylog2: Error: getaddrinfo ENOTFOUND + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + at console.error (node_modules/@jest/console/build/BufferedConsole.js:127:10) + at graylog. (node_modules/winston-graylog2/lib/winston-graylog2.js:61:15) + at node_modules/graylog2/graylog.js:269:18 + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "Error while trying to write to graylog2: Error: getaddrinfo ENOTFOUND + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + at console.error (node_modules/@jest/console/build/BufferedConsole.js:127:10) + at graylog. (node_modules/winston-graylog2/lib/winston-graylog2.js:61:15) + at node_modules/graylog2/graylog.js:269:18 + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "Error while trying to write to graylog2: Error: getaddrinfo ENOTFOUND + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + at console.error (node_modules/@jest/console/build/BufferedConsole.js:127:10) + at graylog. (node_modules/winston-graylog2/lib/winston-graylog2.js:61:15) + at node_modules/graylog2/graylog.js:269:18 + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "Error while trying to write to graylog2: Error: getaddrinfo ENOTFOUND + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + at console.error (node_modules/@jest/console/build/BufferedConsole.js:127:10) + at graylog. (node_modules/winston-graylog2/lib/winston-graylog2.js:61:15) + at node_modules/graylog2/graylog.js:269:18 + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "Error while trying to write to graylog2: Error: getaddrinfo ENOTFOUND + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + at console.error (node_modules/@jest/console/build/BufferedConsole.js:127:10) + at graylog. (node_modules/winston-graylog2/lib/winston-graylog2.js:61:15) + at node_modules/graylog2/graylog.js:269:18 + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "Error while trying to write to graylog2: Error: getaddrinfo ENOTFOUND + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + at console.error (node_modules/@jest/console/build/BufferedConsole.js:127:10) + at graylog. (node_modules/winston-graylog2/lib/winston-graylog2.js:61:15) + at node_modules/graylog2/graylog.js:269:18 + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "Error while trying to write to graylog2: Error: getaddrinfo ENOTFOUND + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + at console.error (node_modules/@jest/console/build/BufferedConsole.js:127:10) + at graylog. (node_modules/winston-graylog2/lib/winston-graylog2.js:61:15) + at node_modules/graylog2/graylog.js:269:18 + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "Error while trying to write to graylog2: Error: getaddrinfo ENOTFOUND + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + at console.error (node_modules/@jest/console/build/BufferedConsole.js:127:10) + at graylog. (node_modules/winston-graylog2/lib/winston-graylog2.js:61:15) + at node_modules/graylog2/graylog.js:269:18 + + + ● Cannot log after tests are done. Did you forget to wait for something async in your test? + Attempted to log "Error while trying to write to graylog2: Error: getaddrinfo ENOTFOUND + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + + at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:108:26) { + errno: -3008, + code: 'ENOTFOUND', + syscall: 'getaddrinfo', + hostname: '' + }". + at console.error (node_modules/@jest/console/build/BufferedConsole.js:127:10) + at graylog. (node_modules/winston-graylog2/lib/winston-graylog2.js:61:15) + at node_modules/graylog2/graylog.js:269:18 + + PASS src/__tests__/proofService.ts + ● Console + + console.log + proof { id: 2, refId: 'authorityCID', network: 1, type: 2 } + + at ProofService. (src/services/proofService.ts:72:13) + + console.log + proof { id: 3, refId: 'authorityCID', network: 1, type: 3 } + + at ProofService. (src/services/proofService.ts:72:13) + + console.log + proof Promise { + Error: Creation error + at /home/ubuntu/relayer/src/__tests__/proofService.ts:170:64 + at Generator.next () + at /home/ubuntu/relayer/src/__tests__/proofService.ts:8:71 + at new Promise () + at Object..__awaiter (/home/ubuntu/relayer/src/__tests__/proofService.ts:4:12) + at Object. (/home/ubuntu/relayer/src/__tests__/proofService.ts:138:90) + at Promise.then.completed (/home/ubuntu/relayer/node_modules/jest-circus/build/utils.js:298:28) + at new Promise () + at callAsyncCircusFn (/home/ubuntu/relayer/node_modules/jest-circus/build/utils.js:231:10) + at _callCircusTest (/home/ubuntu/relayer/node_modules/jest-circus/build/run.js:316:40) + at processTicksAndRejections (node:internal/process/task_queues:95:5) + at _runTest (/home/ubuntu/relayer/node_modules/jest-circus/build/run.js:252:3) + at _runTestsForDescribeBlock (/home/ubuntu/relayer/node_modules/jest-circus/build/run.js:126:9) + at _runTestsForDescribeBlock (/home/ubuntu/relayer/node_modules/jest-circus/build/run.js:121:9) + at _runTestsForDescribeBlock (/home/ubuntu/relayer/node_modules/jest-circus/build/run.js:121:9) + at run (/home/ubuntu/relayer/node_modules/jest-circus/build/run.js:71:3) + at runAndTransformResultsToJestFormat (/home/ubuntu/relayer/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21) + at jestAdapter (/home/ubuntu/relayer/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19) + at runTestInternal (/home/ubuntu/relayer/node_modules/jest-runner/build/runTest.js:367:16) + at runTest (/home/ubuntu/relayer/node_modules/jest-runner/build/runTest.js:444:34) + at Object.worker (/home/ubuntu/relayer/node_modules/jest-runner/build/testWorker.js:106:12) + } + + at ProofService. (src/services/proofService.ts:72:13) + + console.log + proof { id: 4, refId: 'authorityCID', network: 1, type: 4 } + + at ProofService. (src/services/proofService.ts:72:13) + +A worker process has failed to exit gracefully and has been force exited. This is likely caused by tests leaking due to improper teardown. Try running with --detectOpenHandles to find leaks. Active timers can also cause this, ensure that .unref() was called on them. + +Test Suites: 3 passed, 3 total +Tests: 28 passed, 28 total +Snapshots: 0 total +Time: 5.57 s, estimated 6 s +``` +
+ +## Docker + +I am able to build the Docker image but when I try to run it with `docker run --env-file .env daosign-relayer` I get the following error: + +```sh +ubuntu@ip-172-31-21-129:~/relayer$ docker run --env-file .env daosign-relayer +yarn run v1.22.22 +$ NODE_ENV=production npm exec node ./dist/index.js +1 +/app/node_modules/ethers/lib.commonjs/utils/errors.js:149 + throw makeError(message, code, info); + ^ + +TypeError: invalid BytesLike value (argument="value", value="0x", code=INVALID_ARGUMENT, version=6.13.4) + at makeError (/app/node_modules/ethers/lib.commonjs/utils/errors.js:122:21) + at assert (/app/node_modules/ethers/lib.commonjs/utils/errors.js:149:15) + at assertArgument (/app/node_modules/ethers/lib.commonjs/utils/errors.js:161:5) + at _getBytes (/app/node_modules/ethers/lib.commonjs/utils/data.js:27:36) + at getBytes (/app/node_modules/ethers/lib.commonjs/utils/data.js:37:12) + at dataLength (/app/node_modules/ethers/lib.commonjs/utils/data.js:108:12) + at new SigningKey (/app/node_modules/ethers/lib.commonjs/crypto/signing-key.js:22:66) + at new Wallet (/app/node_modules/ethers/lib.commonjs/wallet/wallet.js:33:56) + at new EthereumProofProvider (/app/dist/services/proof_provider/ethereum.js:29:24) + at Object. (/app/dist/controllers/proof.js:24:5) { + code: 'INVALID_ARGUMENT', + argument: 'value', + value: '0x', + shortMessage: 'invalid BytesLike value' +} + +Node.js v18.20.5 +error Command failed with exit code 1. +info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. +``` + +## Tests + +Unit tests are now all passing: + +```rust +ubuntu@ip-172-31-27-130:~/relayer$ yarn test +yarn run v1.22.22 +warning ../package.json: No license field +$ jest test + PASS src/__tests__/utils.ts + PASS src/__tests__/queueService.ts (5.701 s) + ● Console + + console.log + 2024-11-27 21:22:59:2259 info: ETHEREUM queue processor started + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: 1 ETHEREUM unlocked accounts found. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: No unprocessed ETHEREUM proofs found. Skipping ETHEREUM queue processing + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: ETHEREUM queue processor started + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: 1 ETHEREUM unlocked accounts found. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: No unprocessed ETHEREUM proofs found. Skipping ETHEREUM queue processing + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: auth1 proof have no processed authority proof. Skipping. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: ETHEREUM queue processor started + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: 1 ETHEREUM unlocked accounts found. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: No unprocessed ETHEREUM proofs found. Skipping ETHEREUM queue processing + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: sig1 proof have no processed signatures proof. Skipping. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: ETHEREUM queue processor started + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: 1 ETHEREUM unlocked accounts found. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: No unprocessed ETHEREUM proofs found. Skipping ETHEREUM queue processing + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: auth1 proof have no processed authority proof. Skipping. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: ETHEREUM queue processor started + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: 1 ETHEREUM unlocked accounts found. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: No unprocessed ETHEREUM proofs found. Skipping ETHEREUM queue processing + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: auth1 proof have no processed authority proof. Skipping. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: ETHEREUM queue processor started + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: 1 ETHEREUM unlocked accounts found. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: No unprocessed ETHEREUM proofs found. Skipping ETHEREUM queue processing + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: Tried to process proof with empty account 8 Skipping. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: ETHEREUM queue processor started + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: 1 ETHEREUM unlocked accounts found. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: No unprocessed ETHEREUM proofs found. Skipping ETHEREUM queue processing + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: ETHEREUM queue processor started + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: 1 ETHEREUM unlocked accounts found. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: No unprocessed ETHEREUM proofs found. Skipping ETHEREUM queue processing + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: ETHEREUM queue processor started + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: No unlocked ETHEREUM accounts found. Skipping ETHEREUM queue processing + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: ETHEREUM queue processor started + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: 1 ETHEREUM unlocked accounts found. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: No unprocessed ETHEREUM proofs found. Skipping ETHEREUM queue processing + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: ETHEREUM queue processor started + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: 1 ETHEREUM unlocked accounts found. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: No unprocessed ETHEREUM proofs found. Skipping ETHEREUM queue processing + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: ETHEREUM queue processor started + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: 1 ETHEREUM unlocked accounts found. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: No unprocessed ETHEREUM proofs found. Skipping ETHEREUM queue processing + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: ETHEREUM queue processor started + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: 2 ETHEREUM unlocked accounts found. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: 2 ETHEREUM unprocessed proofs found. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + console.log + 2024-11-27 21:23:00:230 info: Processed 2 ETHEREUM proofs. + + at Console.log (node_modules/winston/lib/winston/transports/console.js:87:23) + + PASS src/__tests__/proofService.ts (5.77 s) +A worker process has failed to exit gracefully and has been force exited. This is likely caused by tests leaking due to improper teardown. Try running with --detectOpenHandles to find leaks. Active timers can also cause this, ensure that .unref() was called on them. + +Test Suites: 3 passed, 3 total +Tests: 28 passed, 28 total +Snapshots: 0 total +Time: 6.509 s +Ran all test suites matching /test/i. +Done in 7.05s. +``` diff --git a/evaluations/p2pStateChannels_2_piewol.md b/evaluations/p2pStateChannels_2_piewol.md new file mode 100644 index 000000000..9aa9bafcb --- /dev/null +++ b/evaluations/p2pStateChannels_2_piewol.md @@ -0,0 +1,30 @@ +# Evaluation + +- **Status:** accepted +- **Application Document:** [P2P State Channels](https://github.com/w3f/Grants-Program/blob/master/applications/P2PStateChannels.md) +- **Milestone:** 2 +- **Previously successfully merged evaluation:** All by PieWol + +| Number | Deliverable | Accepted | Link | Evaluation Notes | +| ------ | ----------- | :------: | ---- |----------------- | +| **0a.** | License |
  • [x]
| [License file](https://github.com/peer3to/state-channels-plus/blob/master/LICENSE) | MIT, compiling the solidity contracts emits warnings about unspecified licenses. | +| **0b.** | Documentation |
  • [x]
|https://github.com/peer3to/state-channels-plus/blob/master/docs/mfsDocs.md | ok | +| **0c.** | Testing and Testing Guide |
  • [x]
| https://github.com/peer3to/state-channels-plus/tree/master/test | ok | +| **0d.** | Docker |
  • [x]
| https://github.com/peer3to/state-channels-plus/blob/master/Dockerfile | ok | +| **0e.** | Article |
  • [x]
| https://docs.google.com/document/d/1qS7ZY8noaObP5Ze1mVOaydDBih4jHYym4qacAx46Fas | ok | +| **1** | Networking and Discovery |
  • [x]
| https://github.com/peer3to/state-channels-plus/blob/master/src/transport/HolepunchTransport.ts https://github.com/peer3to/state-channels-plus/blob/master/src/Holepunch.ts | ok | +| **2** | P2P State Machine |
  • [x]
| https://github.com/peer3to/state-channels-plus/blob/master/src/evm/EvmStateMachine.ts| ok | +| **3** | Agreement Tracking |
  • [x]
| https://github.com/peer3to/state-channels-plus/blob/master/src/AgreementManager.ts | ok | +| **4** | Dispute Handling |
  • [x]
| https://github.com/peer3to/state-channels-plus/blob/master/src/DisputeHandler.ts | ok | +| **5** | Virtual Clock |
  • [x]
| https://github.com/peer3to/state-channels-plus/blob/master/src/Clock.ts | ok | +| **6** | Observing & Notifying |
  • [x]
| https://github.com/peer3to/state-channels-plus/blob/master/src/P2pEventHooks.ts | ok | + + + +## General Notes +Thanks for adding more inline documentation and enriching the article. + +## Tests +the tests are still passing since there have been no changes since the delivery of m1 + +