Use new ethers.js NonceManager to handle transaction nonces
So far we have failed to globally handle the transaction nonces. The new ethers.js v5 comes with a NonceManager that helps us handling transaction nonces and automatically increases the nonce for each transaction.
This commit is contained in:
		
							parent
							
								
									35f6acc150
								
							
						
					
					
						commit
						b7ff55929c
					
				
							
								
								
									
										3
									
								
								index.js
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								index.js
									
									
									
									
									
								
							| @ -2,6 +2,7 @@ const fs = require('fs'); | ||||
| const util = require('util'); | ||||
| const fetch = require('node-fetch'); | ||||
| const ethers = require('ethers'); | ||||
| const NonceManager = require('@ethersproject/experimental').NonceManager; | ||||
| const Kredits = require('kredits-contracts'); | ||||
| 
 | ||||
| const walletPath  = process.env.KREDITS_WALLET_PATH || './wallet.json'; | ||||
| @ -43,7 +44,7 @@ module.exports = async function(robot) { | ||||
|   } else { | ||||
|     ethProvider = new ethers.getDefaultProvider('rinkeby'); | ||||
|   } | ||||
|   const signer = wallet.connect(ethProvider); | ||||
|   const signer = new NonceManager(wallet.connect(ethProvider)); | ||||
| 
 | ||||
|   //
 | ||||
|   // Kredits contracts setup
 | ||||
|  | ||||
| @ -1,5 +1,9 @@ | ||||
| const fetch = require('node-fetch'); | ||||
| 
 | ||||
| function sleep(ms) { | ||||
|   return new Promise(resolve => setTimeout(resolve, ms)); | ||||
| } | ||||
| 
 | ||||
| module.exports = async function(robot, kredits) { | ||||
| 
 | ||||
|   function messageRoom(message) { | ||||
| @ -13,9 +17,6 @@ module.exports = async function(robot, kredits) { | ||||
| 
 | ||||
|   const zoomAccessToken = process.env.KREDITS_ZOOM_JWT; | ||||
| 
 | ||||
|   const walletTransactionCount = await kredits.provider.getTransactionCount(kredits.signer.address); | ||||
|   let nonce = walletTransactionCount; | ||||
| 
 | ||||
|   async function createContributionFor (displayName, meeting) { | ||||
|     const contributor = await getContributorByZoomDisplayName(displayName); | ||||
| 
 | ||||
| @ -35,7 +36,7 @@ module.exports = async function(robot, kredits) { | ||||
|       time: meeting.end_time.split('T')[1] | ||||
|     } | ||||
| 
 | ||||
|     return Contribution.add(contribution, { nonce: nonce++ }) | ||||
|     return Contribution.add(contribution) | ||||
|       .then(tx => { | ||||
|         robot.logger.info(`[hubot-kredits] Contribution created: ${tx.hash}`); | ||||
|       }) | ||||
| @ -78,6 +79,7 @@ module.exports = async function(robot, kredits) { | ||||
| 
 | ||||
|     for (const displayName of names) { | ||||
|       await createContributionFor(displayName, meetingDetails); | ||||
|       await sleep(60000); // potentially to prevent too many transactions at the sametime. transactions need to be ordered because of the nonce. not sure though if this is needed.
 | ||||
|     }; | ||||
|   } | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										543
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										543
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -4,6 +4,423 @@ | ||||
|   "lockfileVersion": 1, | ||||
|   "requires": true, | ||||
|   "dependencies": { | ||||
|     "@ensdomains/address-encoder": { | ||||
|       "version": "0.1.7", | ||||
|       "resolved": "https://registry.npmjs.org/@ensdomains/address-encoder/-/address-encoder-0.1.7.tgz", | ||||
|       "integrity": "sha512-p43NCgeyF3Q5ZEhEa24SN/UYUTKZIvFHwQ3xT8xqv4/iBbf7+efOP8Pl6kHbu6HI6pdWhTMvHOUR4UEDu4MN1g==", | ||||
|       "requires": { | ||||
|         "bech32": "^1.1.3", | ||||
|         "crypto-addr-codec": "^0.1.7" | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/abi": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.1.tgz", | ||||
|       "integrity": "sha512-9fqSa3jEYV4nN8tijW+jz4UnT/Ma9/b8y4+nHlsvuWqr32E2kYsT9SCIVpk/51iM6NOud7xsA6UxCox9zBeHKg==", | ||||
|       "requires": { | ||||
|         "@ethersproject/address": "^5.0.0", | ||||
|         "@ethersproject/bignumber": "^5.0.0", | ||||
|         "@ethersproject/bytes": "^5.0.0", | ||||
|         "@ethersproject/constants": "^5.0.0", | ||||
|         "@ethersproject/hash": "^5.0.0", | ||||
|         "@ethersproject/keccak256": "^5.0.0", | ||||
|         "@ethersproject/logger": "^5.0.0", | ||||
|         "@ethersproject/properties": "^5.0.0", | ||||
|         "@ethersproject/strings": "^5.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/abstract-provider": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.0.1.tgz", | ||||
|       "integrity": "sha512-/KOw65ayviYPtKLqFE1qozeIJJlfI1wE/tNA+iKUPUai6bU6vg2tbfLFGarRTCQe3HoWV1t7xSsD/z9T9xg74g==", | ||||
|       "requires": { | ||||
|         "@ethersproject/bignumber": "^5.0.0", | ||||
|         "@ethersproject/bytes": "^5.0.0", | ||||
|         "@ethersproject/logger": "^5.0.0", | ||||
|         "@ethersproject/networks": "^5.0.0", | ||||
|         "@ethersproject/properties": "^5.0.0", | ||||
|         "@ethersproject/transactions": "^5.0.0", | ||||
|         "@ethersproject/web": "^5.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/abstract-signer": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.0.1.tgz", | ||||
|       "integrity": "sha512-Rp8DP+cLcSNFkd1YhwPSBcgEWLRipNakitwIwHngAmhbo4zdiWgALD/OLqdQ7SKF75CufF1W4BCuXcQgiWaRow==", | ||||
|       "requires": { | ||||
|         "@ethersproject/abstract-provider": "^5.0.0", | ||||
|         "@ethersproject/bignumber": "^5.0.0", | ||||
|         "@ethersproject/bytes": "^5.0.0", | ||||
|         "@ethersproject/logger": "^5.0.0", | ||||
|         "@ethersproject/properties": "^5.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/address": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.0.1.tgz", | ||||
|       "integrity": "sha512-kfQtXpBP2pI2TfoRRAYv8grHGiYw8U0c1KbMsC58/W33TIBy7gFSf/oAzOd94lNzdIUenKU0OuSzrHQfVcDDDA==", | ||||
|       "requires": { | ||||
|         "@ethersproject/bignumber": "^5.0.0", | ||||
|         "@ethersproject/bytes": "^5.0.0", | ||||
|         "@ethersproject/keccak256": "^5.0.0", | ||||
|         "@ethersproject/logger": "^5.0.0", | ||||
|         "@ethersproject/rlp": "^5.0.0", | ||||
|         "bn.js": "^4.4.0" | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/base64": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.0.1.tgz", | ||||
|       "integrity": "sha512-WZDa+TYl6BQfUm9EQIDDfJFL0GiuYXNZPIWoiZx3uds7P1XMsvcW3k71AyjYUxIkU5AKW7awwPbzCbBeP1uXsA==", | ||||
|       "requires": { | ||||
|         "@ethersproject/bytes": "^5.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/basex": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.0.1.tgz", | ||||
|       "integrity": "sha512-ssL2+p/A5bZgkZkiWy0iQDVz2mVJxZfzpf7dpw8t0sKF9VpoM3ZiMthRapH/QBhd4Rr6TNbr619pFLAGmMi9Ug==", | ||||
|       "requires": { | ||||
|         "@ethersproject/bytes": "^5.0.0", | ||||
|         "@ethersproject/properties": "^5.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/bignumber": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.0.1.tgz", | ||||
|       "integrity": "sha512-srGDO7ksT0avdDw5pBtj6F81psv5xiJMInwSSatfIKplitubFb6yVwoHGObGRd0Pp3TvrkIDfJkuskoSMj4OHQ==", | ||||
|       "requires": { | ||||
|         "@ethersproject/bytes": "^5.0.0", | ||||
|         "@ethersproject/logger": "^5.0.0", | ||||
|         "@ethersproject/properties": "^5.0.0", | ||||
|         "bn.js": "^4.4.0" | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/bytes": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.0.1.tgz", | ||||
|       "integrity": "sha512-Y198536UW9Jb9RBXuqmCsCa9mYJUsxJn+5aGr2XjNMpLBc6vEn/44GHnbQXYgRCzh4rnWtJ9bTgSwDjme9Hgnw==", | ||||
|       "requires": { | ||||
|         "@ethersproject/logger": "^5.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/constants": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.0.1.tgz", | ||||
|       "integrity": "sha512-Xec07hFCPN4wfC3WDiRay7KipkApl2msiKTrBHCuAwNMOM8M92+mlQp8tgfEL51DPwCZkmdk1f02kArc6caVSw==", | ||||
|       "requires": { | ||||
|         "@ethersproject/bignumber": "^5.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/contracts": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.0.1.tgz", | ||||
|       "integrity": "sha512-1uPajmkvw3Oy/dxs5TKUsGaXzQ3s5qiXKSVpw9ZrhGG6fMRO3gNyUA+uSWk9IXK0ulj5P95F7vW8HmYOkzep/Q==", | ||||
|       "requires": { | ||||
|         "@ethersproject/abi": "^5.0.0", | ||||
|         "@ethersproject/abstract-provider": "^5.0.0", | ||||
|         "@ethersproject/abstract-signer": "^5.0.0", | ||||
|         "@ethersproject/address": "^5.0.0", | ||||
|         "@ethersproject/bignumber": "^5.0.0", | ||||
|         "@ethersproject/bytes": "^5.0.0", | ||||
|         "@ethersproject/constants": "^5.0.0", | ||||
|         "@ethersproject/logger": "^5.0.0", | ||||
|         "@ethersproject/properties": "^5.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/experimental": { | ||||
|       "version": "5.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/experimental/-/experimental-5.0.0.tgz", | ||||
|       "integrity": "sha512-AEjVi6uvV4LcHbIozUyM7i6UNj1pqqWV4PhJiVfpeYLVc7FpiIlOOQUGJUHyXLuwjqyBO6vrQrtP3u2x2mKPFQ==", | ||||
|       "requires": { | ||||
|         "@ensdomains/address-encoder": "^0.1.2", | ||||
|         "@ethersproject/web": "^5.0.0", | ||||
|         "ethers": "^5.0.0", | ||||
|         "scrypt-js": "3.0.1" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "scrypt-js": { | ||||
|           "version": "3.0.1", | ||||
|           "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", | ||||
|           "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/hash": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.0.1.tgz", | ||||
|       "integrity": "sha512-1ByUXYvkszrSSks07xctBtZfpFnIVmftxWlAAnguxh6Q65vKECd/EPi5uI5xVOvnrYMH9Vb8MK1SofPX/6fArQ==", | ||||
|       "requires": { | ||||
|         "@ethersproject/bytes": "^5.0.0", | ||||
|         "@ethersproject/keccak256": "^5.0.0", | ||||
|         "@ethersproject/logger": "^5.0.0", | ||||
|         "@ethersproject/strings": "^5.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/hdnode": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.0.1.tgz", | ||||
|       "integrity": "sha512-L2OZP4SKKxNtHUdwfK8cND09kHRH62ncxXW33WAJU9shKo8Sbz31HVqSdov84bMAGm8QfEKZbfbAJV/7DM6DjQ==", | ||||
|       "requires": { | ||||
|         "@ethersproject/abstract-signer": "^5.0.0", | ||||
|         "@ethersproject/basex": "^5.0.0", | ||||
|         "@ethersproject/bignumber": "^5.0.0", | ||||
|         "@ethersproject/bytes": "^5.0.0", | ||||
|         "@ethersproject/logger": "^5.0.0", | ||||
|         "@ethersproject/pbkdf2": "^5.0.0", | ||||
|         "@ethersproject/properties": "^5.0.0", | ||||
|         "@ethersproject/sha2": "^5.0.0", | ||||
|         "@ethersproject/signing-key": "^5.0.0", | ||||
|         "@ethersproject/strings": "^5.0.0", | ||||
|         "@ethersproject/transactions": "^5.0.0", | ||||
|         "@ethersproject/wordlists": "^5.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/json-wallets": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.0.1.tgz", | ||||
|       "integrity": "sha512-QjqQCh1a0a6wRVHdnqVccCLWX0vAgxnvGZeGqpOk2NbyNE8HTzV7GpOE+4LU+iCc8oonfy1gYd4hpsf+iEUWGg==", | ||||
|       "requires": { | ||||
|         "@ethersproject/abstract-signer": "^5.0.0", | ||||
|         "@ethersproject/address": "^5.0.0", | ||||
|         "@ethersproject/bytes": "^5.0.0", | ||||
|         "@ethersproject/hdnode": "^5.0.0", | ||||
|         "@ethersproject/keccak256": "^5.0.0", | ||||
|         "@ethersproject/logger": "^5.0.0", | ||||
|         "@ethersproject/pbkdf2": "^5.0.0", | ||||
|         "@ethersproject/properties": "^5.0.0", | ||||
|         "@ethersproject/random": "^5.0.0", | ||||
|         "@ethersproject/strings": "^5.0.0", | ||||
|         "@ethersproject/transactions": "^5.0.0", | ||||
|         "aes-js": "3.0.0", | ||||
|         "scrypt-js": "3.0.1", | ||||
|         "uuid": "2.0.1" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "scrypt-js": { | ||||
|           "version": "3.0.1", | ||||
|           "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", | ||||
|           "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/keccak256": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.0.1.tgz", | ||||
|       "integrity": "sha512-AtFm/4qHRQUvZcG3WYmaT7zV79dz72+N01w0XphcIBaD/7UZXyW85Uf08sirVlckHmh9fvc4UDWyHiroKsBT6Q==", | ||||
|       "requires": { | ||||
|         "@ethersproject/bytes": "^5.0.0", | ||||
|         "js-sha3": "0.5.7" | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/logger": { | ||||
|       "version": "5.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.0.2.tgz", | ||||
|       "integrity": "sha512-NQe3O1/Nwkcp6bto6hsTvrcCeR/cOGK+RhOMn0Zi2FND6gdWsf1g+5ie8gQ1REqDX4MTGP/Y131dZas985ls/g==" | ||||
|     }, | ||||
|     "@ethersproject/networks": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.0.1.tgz", | ||||
|       "integrity": "sha512-Pe34JCTC6Apm/DkK3z97xotvEyu9YHKIFlDIu5hGV6yFDb4/sUfY2SHKYSGdUrV0418ZZVrwYDveJtBFMmYu2Q==", | ||||
|       "requires": { | ||||
|         "@ethersproject/logger": "^5.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/pbkdf2": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.0.1.tgz", | ||||
|       "integrity": "sha512-4wc8Aov0iJmiomu6Dv1JNGOlhm3L7omITjLmChz/vgeDnW4Unv4J/nGybCeWKgY4hnjyQMVXkdkQ15BCRbkaYg==", | ||||
|       "requires": { | ||||
|         "@ethersproject/bytes": "^5.0.0", | ||||
|         "@ethersproject/sha2": "^5.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/properties": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.0.1.tgz", | ||||
|       "integrity": "sha512-b3VZ/NpYIf64/hFXeWNxVCbY1xoMPIYM3n6Qnu6Ayr3bLt1olFPQfAaaRB0aOsLz7tMtmkT3DrA1KG/IrOgBRw==", | ||||
|       "requires": { | ||||
|         "@ethersproject/logger": "^5.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/providers": { | ||||
|       "version": "5.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.0.2.tgz", | ||||
|       "integrity": "sha512-28ABJmHB9ii/73F3P9CXLBvlRkitiOGHCrUZqjQ6FELuAtKEROqA/yDklT9o/r/BpGcGTeeWpWfvdfgDHjshiw==", | ||||
|       "requires": { | ||||
|         "@ethersproject/abstract-provider": "^5.0.0", | ||||
|         "@ethersproject/abstract-signer": "^5.0.0", | ||||
|         "@ethersproject/address": "^5.0.0", | ||||
|         "@ethersproject/bignumber": "^5.0.0", | ||||
|         "@ethersproject/bytes": "^5.0.0", | ||||
|         "@ethersproject/constants": "^5.0.0", | ||||
|         "@ethersproject/hash": "^5.0.0", | ||||
|         "@ethersproject/logger": "^5.0.0", | ||||
|         "@ethersproject/networks": "^5.0.0", | ||||
|         "@ethersproject/properties": "^5.0.0", | ||||
|         "@ethersproject/random": "^5.0.0", | ||||
|         "@ethersproject/rlp": "^5.0.0", | ||||
|         "@ethersproject/strings": "^5.0.0", | ||||
|         "@ethersproject/transactions": "^5.0.0", | ||||
|         "@ethersproject/web": "^5.0.0", | ||||
|         "ws": "7.2.3" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "ws": { | ||||
|           "version": "7.2.3", | ||||
|           "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz", | ||||
|           "integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/random": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.0.1.tgz", | ||||
|       "integrity": "sha512-nYzNhcp5Th4dCocV3yceZmh80bRmSQxqNRgND7Y/YgEgYJSSnknScpfRHACG//kgbsY8zui8ajXJeEnzS7yFbQ==", | ||||
|       "requires": { | ||||
|         "@ethersproject/bytes": "^5.0.0", | ||||
|         "@ethersproject/logger": "^5.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/rlp": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.0.1.tgz", | ||||
|       "integrity": "sha512-3F8XE1zS4w8w4xiK1hMtFuVs6UnhQlmrEHLT85GanqK8vG5wGi81IQmkukL9tQIu2a5jykoO46ibja+6N1fpFg==", | ||||
|       "requires": { | ||||
|         "@ethersproject/bytes": "^5.0.0", | ||||
|         "@ethersproject/logger": "^5.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/sha2": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.0.1.tgz", | ||||
|       "integrity": "sha512-5wNdULNDMJKwyzqrTH66e2TZPZTSqqluS7RNtuuuQSTP+yIALoID7ewLjDoj31g4kZyq/pqQbackKJLOXejTKw==", | ||||
|       "requires": { | ||||
|         "@ethersproject/bytes": "^5.0.0", | ||||
|         "@ethersproject/logger": "^5.0.0", | ||||
|         "hash.js": "1.1.3" | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/signing-key": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.0.1.tgz", | ||||
|       "integrity": "sha512-Z3yMPFFf4KkWltndDNi/tpese7qZh6ZWKbGu3DHd8xOX0PJqbScdAs6gCfFeMatO06qyX307Y52soc/Ayf8ZSg==", | ||||
|       "requires": { | ||||
|         "@ethersproject/bytes": "^5.0.0", | ||||
|         "@ethersproject/logger": "^5.0.0", | ||||
|         "@ethersproject/properties": "^5.0.0", | ||||
|         "elliptic": "6.5.2" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "elliptic": { | ||||
|           "version": "6.5.2", | ||||
|           "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", | ||||
|           "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==", | ||||
|           "requires": { | ||||
|             "bn.js": "^4.4.0", | ||||
|             "brorand": "^1.0.1", | ||||
|             "hash.js": "^1.0.0", | ||||
|             "hmac-drbg": "^1.0.0", | ||||
|             "inherits": "^2.0.1", | ||||
|             "minimalistic-assert": "^1.0.0", | ||||
|             "minimalistic-crypto-utils": "^1.0.0" | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/solidity": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.0.1.tgz", | ||||
|       "integrity": "sha512-3L+xI1LaJmd2zBJxnK9Y4cd1vb2aJLFvL6fxvjWpzcMiFiZ4dbPwj3kharv5f5mAlbGwAs6NiPJaFWvbOpm96Q==", | ||||
|       "requires": { | ||||
|         "@ethersproject/bignumber": "^5.0.0", | ||||
|         "@ethersproject/bytes": "^5.0.0", | ||||
|         "@ethersproject/keccak256": "^5.0.0", | ||||
|         "@ethersproject/sha2": "^5.0.0", | ||||
|         "@ethersproject/strings": "^5.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/strings": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.0.1.tgz", | ||||
|       "integrity": "sha512-N8LxdHGBT7GZdogkEOV5xKXYTz5PNHuNzcxLNPYfH3kpvWSyXshZBgAz8YE1a8sMZagGj+Ic6d3mHijdCTSkGA==", | ||||
|       "requires": { | ||||
|         "@ethersproject/bytes": "^5.0.0", | ||||
|         "@ethersproject/constants": "^5.0.0", | ||||
|         "@ethersproject/logger": "^5.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/transactions": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.0.1.tgz", | ||||
|       "integrity": "sha512-IGc6/5hri3PrqR/ZCj89osDiq3Lt0CSrycn6vlRl8SjpBKYDdcT+Ru5xkeC7YcsnqcdBmTL+jyR3SLudU+x2Kw==", | ||||
|       "requires": { | ||||
|         "@ethersproject/address": "^5.0.0", | ||||
|         "@ethersproject/bignumber": "^5.0.0", | ||||
|         "@ethersproject/bytes": "^5.0.0", | ||||
|         "@ethersproject/constants": "^5.0.0", | ||||
|         "@ethersproject/keccak256": "^5.0.0", | ||||
|         "@ethersproject/logger": "^5.0.0", | ||||
|         "@ethersproject/properties": "^5.0.0", | ||||
|         "@ethersproject/rlp": "^5.0.0", | ||||
|         "@ethersproject/signing-key": "^5.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/units": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.0.1.tgz", | ||||
|       "integrity": "sha512-7J7Jmm4hMZ+yFiqEd7D5oeVK/V74GDwQlT0Om1yxXLYX6UPcV5ChHkUz/xpHPT9JXQlQ+2D69HBf1dzvdflrmQ==", | ||||
|       "requires": { | ||||
|         "@ethersproject/bignumber": "^5.0.0", | ||||
|         "@ethersproject/constants": "^5.0.0", | ||||
|         "@ethersproject/logger": "^5.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/wallet": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.0.1.tgz", | ||||
|       "integrity": "sha512-1/QPpFngJtUGtdVOLSoIN3vf+zEWyEVxQ0lhRCwGkiBqL2SoVoDHB7/nCfcv7wwlZkdnegFfo/8DxeyYjTZN7w==", | ||||
|       "requires": { | ||||
|         "@ethersproject/abstract-provider": "^5.0.0", | ||||
|         "@ethersproject/abstract-signer": "^5.0.0", | ||||
|         "@ethersproject/address": "^5.0.0", | ||||
|         "@ethersproject/bignumber": "^5.0.0", | ||||
|         "@ethersproject/bytes": "^5.0.0", | ||||
|         "@ethersproject/hash": "^5.0.0", | ||||
|         "@ethersproject/hdnode": "^5.0.0", | ||||
|         "@ethersproject/json-wallets": "^5.0.0", | ||||
|         "@ethersproject/keccak256": "^5.0.0", | ||||
|         "@ethersproject/logger": "^5.0.0", | ||||
|         "@ethersproject/properties": "^5.0.0", | ||||
|         "@ethersproject/random": "^5.0.0", | ||||
|         "@ethersproject/signing-key": "^5.0.0", | ||||
|         "@ethersproject/transactions": "^5.0.0", | ||||
|         "@ethersproject/wordlists": "^5.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/web": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.0.1.tgz", | ||||
|       "integrity": "sha512-lWPg8BR6KoyiIKYRIM6j+XO9bT9vGM1JnxFj2HmhIvOrOjba7ZRd8ANBOsDVGfw5igLUdfqAUOf9WpSsH//TzA==", | ||||
|       "requires": { | ||||
|         "@ethersproject/base64": "^5.0.0", | ||||
|         "@ethersproject/logger": "^5.0.0", | ||||
|         "@ethersproject/properties": "^5.0.0", | ||||
|         "@ethersproject/strings": "^5.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@ethersproject/wordlists": { | ||||
|       "version": "5.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.0.1.tgz", | ||||
|       "integrity": "sha512-R7boLmpewucz5v4jD7cWwI0BGHR/DstiZtjdhUOft6XdMqM1OGb1UTL0GBQeS4vDXzCLuJEHddjJ69beGVN/4Q==", | ||||
|       "requires": { | ||||
|         "@ethersproject/bytes": "^5.0.0", | ||||
|         "@ethersproject/hash": "^5.0.0", | ||||
|         "@ethersproject/logger": "^5.0.0", | ||||
|         "@ethersproject/properties": "^5.0.0", | ||||
|         "@ethersproject/strings": "^5.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@types/node": { | ||||
|       "version": "10.14.4", | ||||
|       "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.4.tgz", | ||||
| @ -262,6 +679,16 @@ | ||||
|       "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", | ||||
|       "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" | ||||
|     }, | ||||
|     "bech32": { | ||||
|       "version": "1.1.4", | ||||
|       "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", | ||||
|       "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" | ||||
|     }, | ||||
|     "big-integer": { | ||||
|       "version": "1.6.36", | ||||
|       "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", | ||||
|       "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==" | ||||
|     }, | ||||
|     "bignumber.js": { | ||||
|       "version": "8.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-8.1.1.tgz", | ||||
| @ -617,6 +1044,35 @@ | ||||
|         "sha.js": "^2.4.8" | ||||
|       } | ||||
|     }, | ||||
|     "crypto-addr-codec": { | ||||
|       "version": "0.1.7", | ||||
|       "resolved": "https://registry.npmjs.org/crypto-addr-codec/-/crypto-addr-codec-0.1.7.tgz", | ||||
|       "integrity": "sha512-X4hzfBzNhy4mAc3UpiXEC/L0jo5E8wAa9unsnA8nNXYzXjCcGk83hfC5avJWCSGT8V91xMnAS9AKMHmjw5+XCg==", | ||||
|       "requires": { | ||||
|         "base-x": "^3.0.8", | ||||
|         "big-integer": "1.6.36", | ||||
|         "blakejs": "^1.1.0", | ||||
|         "bs58": "^4.0.1", | ||||
|         "ripemd160-min": "0.0.6", | ||||
|         "safe-buffer": "^5.2.0", | ||||
|         "sha3": "^2.1.1" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "base-x": { | ||||
|           "version": "3.0.8", | ||||
|           "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", | ||||
|           "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", | ||||
|           "requires": { | ||||
|             "safe-buffer": "^5.0.1" | ||||
|           } | ||||
|         }, | ||||
|         "safe-buffer": { | ||||
|           "version": "5.2.1", | ||||
|           "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", | ||||
|           "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "cycle": { | ||||
|       "version": "1.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", | ||||
| @ -747,38 +1203,39 @@ | ||||
|       "integrity": "sha512-DqtdXNHGi/QtOjEovNOegVVQTd8/NnH9rP27R5SU3j2LKECZbcLGIZ3Z9Ln1SDaeUC5YJGJFYQCUUjfIi7NNyQ==" | ||||
|     }, | ||||
|     "ethers": { | ||||
|       "version": "4.0.27", | ||||
|       "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.27.tgz", | ||||
|       "integrity": "sha512-+DXZLP/tyFnXWxqr2fXLT67KlGUfLuvDkHSOtSC9TUVG9OIj6yrG5JPeXRMYo15xkOYwnjgdMKrXp5V94rtjJA==", | ||||
|       "version": "5.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.0.2.tgz", | ||||
|       "integrity": "sha512-hAWTPQXvjFlrtnPLCnOOJJuqiqmJv820egPHpOwcWTIQxXRrcfZyse2692eaqsXMeYLNM2CRfYgEomBiBGvgjw==", | ||||
|       "requires": { | ||||
|         "@types/node": "^10.3.2", | ||||
|         "aes-js": "3.0.0", | ||||
|         "bn.js": "^4.4.0", | ||||
|         "elliptic": "6.3.3", | ||||
|         "hash.js": "1.1.3", | ||||
|         "js-sha3": "0.5.7", | ||||
|         "scrypt-js": "2.0.4", | ||||
|         "setimmediate": "1.0.4", | ||||
|         "uuid": "2.0.1", | ||||
|         "xmlhttprequest": "1.8.0" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "elliptic": { | ||||
|           "version": "6.3.3", | ||||
|           "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", | ||||
|           "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", | ||||
|           "requires": { | ||||
|             "bn.js": "^4.4.0", | ||||
|             "brorand": "^1.0.1", | ||||
|             "hash.js": "^1.0.0", | ||||
|             "inherits": "^2.0.1" | ||||
|           } | ||||
|         }, | ||||
|         "js-sha3": { | ||||
|           "version": "0.5.7", | ||||
|           "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", | ||||
|           "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" | ||||
|         } | ||||
|         "@ethersproject/abi": "^5.0.0", | ||||
|         "@ethersproject/abstract-provider": "^5.0.0", | ||||
|         "@ethersproject/abstract-signer": "^5.0.0", | ||||
|         "@ethersproject/address": "^5.0.0", | ||||
|         "@ethersproject/base64": "^5.0.0", | ||||
|         "@ethersproject/bignumber": "^5.0.0", | ||||
|         "@ethersproject/bytes": "^5.0.0", | ||||
|         "@ethersproject/constants": "^5.0.0", | ||||
|         "@ethersproject/contracts": "^5.0.0", | ||||
|         "@ethersproject/hash": "^5.0.0", | ||||
|         "@ethersproject/hdnode": "^5.0.0", | ||||
|         "@ethersproject/json-wallets": "^5.0.0", | ||||
|         "@ethersproject/keccak256": "^5.0.0", | ||||
|         "@ethersproject/logger": "^5.0.0", | ||||
|         "@ethersproject/networks": "^5.0.0", | ||||
|         "@ethersproject/pbkdf2": "^5.0.0", | ||||
|         "@ethersproject/properties": "^5.0.0", | ||||
|         "@ethersproject/providers": "^5.0.0", | ||||
|         "@ethersproject/random": "^5.0.0", | ||||
|         "@ethersproject/rlp": "^5.0.0", | ||||
|         "@ethersproject/sha2": "^5.0.0", | ||||
|         "@ethersproject/signing-key": "^5.0.0", | ||||
|         "@ethersproject/solidity": "^5.0.0", | ||||
|         "@ethersproject/strings": "^5.0.0", | ||||
|         "@ethersproject/transactions": "^5.0.0", | ||||
|         "@ethersproject/units": "^5.0.0", | ||||
|         "@ethersproject/wallet": "^5.0.0", | ||||
|         "@ethersproject/web": "^5.0.0", | ||||
|         "@ethersproject/wordlists": "^5.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "events": { | ||||
| @ -2201,6 +2658,11 @@ | ||||
|         "inherits": "^2.0.1" | ||||
|       } | ||||
|     }, | ||||
|     "ripemd160-min": { | ||||
|       "version": "0.0.6", | ||||
|       "resolved": "https://registry.npmjs.org/ripemd160-min/-/ripemd160-min-0.0.6.tgz", | ||||
|       "integrity": "sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A==" | ||||
|     }, | ||||
|     "rsa-pem-to-jwk": { | ||||
|       "version": "1.1.3", | ||||
|       "resolved": "https://registry.npmjs.org/rsa-pem-to-jwk/-/rsa-pem-to-jwk-1.1.3.tgz", | ||||
| @ -2349,6 +2811,25 @@ | ||||
|         "safe-buffer": "^5.0.1" | ||||
|       } | ||||
|     }, | ||||
|     "sha3": { | ||||
|       "version": "2.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.2.tgz", | ||||
|       "integrity": "sha512-agYUtkzMsdFTQkM3ECyt6YW0552fyEb0tYZkl7olurS1Vg2Ms5+2SdF4VFPC1jnwtiXMb8b0fSyuAGZh+q2mAw==", | ||||
|       "requires": { | ||||
|         "buffer": "5.5.0" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "buffer": { | ||||
|           "version": "5.5.0", | ||||
|           "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.5.0.tgz", | ||||
|           "integrity": "sha512-9FTEDjLjwoAkEwyMGDjYJQN2gfRgOKBKRfiglhvibGbpeeU/pQn1bJxQqm32OD/AIeEuHxU9roxXxg34Byp/Ww==", | ||||
|           "requires": { | ||||
|             "base64-js": "^1.0.2", | ||||
|             "ieee754": "^1.1.4" | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "signed-varint": { | ||||
|       "version": "2.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/signed-varint/-/signed-varint-2.0.1.tgz", | ||||
|  | ||||
| @ -12,7 +12,8 @@ | ||||
|   "dependencies": { | ||||
|     "cors": "^2.8.5", | ||||
|     "eth-provider": "^0.2.2", | ||||
|     "ethers": "^4.0.27", | ||||
|     "ethers": "^5.0.2", | ||||
|     "@ethersproject/experimental": "5.0.0", | ||||
|     "express": "^4.17.1", | ||||
|     "express-session": "^1.16.2", | ||||
|     "grant-express": "^4.6.1", | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user