├── .gitignore ├── .envexample ├── utils.js ├── package.json ├── mintSplit.js ├── README.md └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | .env 2 | node_modules -------------------------------------------------------------------------------- /.envexample: -------------------------------------------------------------------------------- 1 | TREASURY_SECRET_KEY= -------------------------------------------------------------------------------- /utils.js: -------------------------------------------------------------------------------- 1 | export const creators = [ 2 | { 3 | "address" : '', 4 | "share" : 50 // change as needed 5 | }, 6 | { 7 | "address" : '', 8 | "share": 50 9 | } // add or remove creators as needed 10 | ] 11 | 12 | export const network = 'devnet' // 'mainnet-beta' -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "split-mint", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "license": "MIT", 6 | "dependencies": { 7 | "@project-serum/anchor": "^0.20.1", 8 | "@solana/web3.js": "^1.31.0", 9 | "dotenv": "^11.0.0" 10 | }, 11 | "type": "module", 12 | "scripts": { 13 | "start": "node -r dotenv/config mintSplit.js" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /mintSplit.js: -------------------------------------------------------------------------------- 1 | import { 2 | Connection, 3 | Keypair, 4 | SystemProgram, 5 | LAMPORTS_PER_SOL, 6 | Transaction, 7 | sendAndConfirmTransaction, 8 | PublicKey, 9 | clusterApiUrl 10 | } from "@solana/web3.js"; 11 | import { 12 | creators, 13 | network 14 | } from "./utils.js" 15 | 16 | const connection = new Connection( 17 | clusterApiUrl(network), 18 | 'confirmed', 19 | ); 20 | 21 | const MY_SECRET_KEY = process.env.TREASURY_SECRET_KEY.split(",") 22 | const wallet = Keypair.fromSecretKey( 23 | new Uint8Array(MY_SECRET_KEY) 24 | ) 25 | 26 | async function handleTransaction(sigs, accountInfo) { 27 | const transaction = await connection.getTransaction(sigs[0].signature) 28 | const preBalances = transaction.meta.preBalances 29 | const postBalances = transaction.meta.postBalances 30 | 31 | const accounts = transaction.transaction.message.accountKeys 32 | 33 | let diff 34 | for (let i=0; i 0) { 40 | console.log(`Starting balance for treasury: ${accountInfo.lamports / LAMPORTS_PER_SOL}`) 41 | 42 | let creatorPubkey 43 | for (let i=0; i { 74 | const sigs = await connection.getConfirmedSignaturesForAddress2(wallet.publicKey) 75 | await handleTransaction(sigs, accountInfo) 76 | })() 77 | } 78 | 79 | const id = connection.onAccountChange(wallet.publicKey, onChange) -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # split-mint 2 | 3 | A package to split the SOL funds raised from an NFT mint between various creators. This was made in order to attempt to provide a way to split the funds raised from the initial mint as can be done using the creators array for royalties from secondary market sales. 4 | 5 | ## Overview 6 | 7 | While this program is running, it will pick up all transactions made to the Treasury Account (or whatever address you specify), and distribute the funds between a different group of accounts. Similiar to how royalties on sales of NFTs on secondary markets distributed to various creators works. 8 | 9 | Suggestions and PRs welcome! 10 | 11 | Note: This is experimental software for a young ecosystem. Use at your own risk. The author is not responsible for misuse of the software or for the user failing to test on devnet before using in production. 12 | 13 | ## Installation 14 | 15 | Clone the repository 16 | 17 | ``` 18 | git clone https://github.com/stephenwilliams1990/split-mint.git 19 | ``` 20 | 21 | To get started, you will need to make the following changes to the files in the package: 22 | 23 | ### 1. Update the .envexample file with your Treasury Private Key 24 | 25 | In the .envexample file, there is only 1 variable needed to update. Change the TREASURY_SECRET_KEY to the byte array of the Private Key of the Treasury wallet set in your Candy Machine config setup. Make sure you enter it WITHOUT the brackets []. 26 | 27 | For example, if your private key is: [1,2,3,4,5,...,64] 28 | 29 | You would enter: 30 | 31 | ``` 32 | TREASURY_SECRET_KEY=1,2,3,4,5,...,64 33 | ``` 34 | 35 | Once this is done you can save the file as .env. 36 | 37 | ### 2. Update the variables in utils.js 38 | 39 | There are 2 variables to update here, being the creators array and the network. 40 | 41 | Update the creators array as required. Add more creators and change the share as necessary. Note a share of 50 means that the creator will receive 50% of the funds. Within the creators array, the address should be the string of the creators' address, and share should be a number. For example: 42 | 43 | ``` 44 | export const creators = [ 45 | { 46 | "address" : 'BdmWyA3TNjthQddscAsqEfB18F2Fh8QtFAcshbHt6xcZ', 47 | "share" : 50 48 | }, 49 | { 50 | "address" : '8tVhVuphrKs9TeZPkJgU5im3qVZfonNCpKZe5mBbWFHx', 51 | "share": 50 52 | } 53 | ] 54 | ``` 55 | 56 | Set the network as required. **NB** Please do your own testing on devnet before deploying this on mainnet-beta. 57 | 58 | ``` 59 | export const network = 'devnet' // 'mainnet-beta' 60 | ``` 61 | 62 | Once this is done, run the following commands 63 | 64 | ``` 65 | yarn install 66 | 67 | yarn start 68 | ``` 69 | 70 | And it should be running! Whilst the program is running, it should distribute all payments made to the Treasury Account to the creators with the specified splits as entered by the user. Simply stop the program if you wish to stop the distribution of payments made to this account. 71 | 72 | ## Disclaimer 73 | 74 | This is a beta version! Please do your own testing and use at your own risk. 75 | 76 | ## Contributing 77 | 78 | All contributions are welcome and encouraged. Send through a PR if you find any bugs. In an ideal world, this would be converted into a Rust program to deploy as well. That build is on my list for when I can find the time. If someone beats me to it I wouldn't mind at all! 79 | 80 | ## Contact 81 | 82 | Twitter: @WallyWilliams2 83 | 84 | Discord: @wallypues#2876 85 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5": 6 | version "7.16.7" 7 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.7.tgz#03ff99f64106588c9c403c6ecb8c3bafbbdff1fa" 8 | integrity sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ== 9 | dependencies: 10 | regenerator-runtime "^0.13.4" 11 | 12 | "@ethersproject/bytes@^5.5.0": 13 | version "5.5.0" 14 | resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.5.0.tgz#cb11c526de657e7b45d2e0f0246fb3b9d29a601c" 15 | integrity sha512-ABvc7BHWhZU9PNM/tANm/Qx4ostPGadAuQzWTr3doklZOhDlmcBqclrQe/ZXUIj3K8wC28oYeuRa+A37tX9kog== 16 | dependencies: 17 | "@ethersproject/logger" "^5.5.0" 18 | 19 | "@ethersproject/logger@^5.5.0": 20 | version "5.5.0" 21 | resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.5.0.tgz#0c2caebeff98e10aefa5aef27d7441c7fd18cf5d" 22 | integrity sha512-rIY/6WPm7T8n3qS2vuHTUBPdXHl+rGxWxW5okDfo9J4Z0+gRRZT0msvUdIJkE4/HS29GUMziwGaaKO2bWONBrg== 23 | 24 | "@ethersproject/sha2@^5.5.0": 25 | version "5.5.0" 26 | resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.5.0.tgz#a40a054c61f98fd9eee99af2c3cc6ff57ec24db7" 27 | integrity sha512-B5UBoglbCiHamRVPLA110J+2uqsifpZaTmid2/7W5rbtYVz6gus6/hSDieIU/6gaKIDcOj12WnOdiymEUHIAOA== 28 | dependencies: 29 | "@ethersproject/bytes" "^5.5.0" 30 | "@ethersproject/logger" "^5.5.0" 31 | hash.js "1.1.7" 32 | 33 | "@project-serum/anchor@^0.20.1": 34 | version "0.20.1" 35 | resolved "https://registry.yarnpkg.com/@project-serum/anchor/-/anchor-0.20.1.tgz#0937807e807e8332aa708cfef4bcb6cbb88b4129" 36 | integrity sha512-2TuBmGUn9qeYz6sJINJlElrBuPsaUAtYyUsJ3XplEBf1pczrANAgs5ceJUFzdiqGEWLn+84ObSdBeChT/AXYFA== 37 | dependencies: 38 | "@project-serum/borsh" "^0.2.2" 39 | "@solana/web3.js" "^1.17.0" 40 | base64-js "^1.5.1" 41 | bn.js "^5.1.2" 42 | bs58 "^4.0.1" 43 | buffer-layout "^1.2.2" 44 | camelcase "^5.3.1" 45 | crypto-hash "^1.3.0" 46 | eventemitter3 "^4.0.7" 47 | find "^0.3.0" 48 | js-sha256 "^0.9.0" 49 | pako "^2.0.3" 50 | snake-case "^3.0.4" 51 | toml "^3.0.0" 52 | 53 | "@project-serum/borsh@^0.2.2": 54 | version "0.2.3" 55 | resolved "https://registry.yarnpkg.com/@project-serum/borsh/-/borsh-0.2.3.tgz#1d705c5887484cb6a127dd5feff58e90cbfcb558" 56 | integrity sha512-lH9zEYADZE3cxrgiFym8+jbUE3NM/LH+WOKYcUjs65CT10Q64Hv45bcAAa/phwYk4Tpz0uQ1x+ergFaAoGt67Q== 57 | dependencies: 58 | bn.js "^5.1.2" 59 | buffer-layout "^1.2.0" 60 | 61 | "@solana/buffer-layout@^3.0.0": 62 | version "3.0.0" 63 | resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-3.0.0.tgz#b9353caeb9a1589cb77a1b145bcb1a9a93114326" 64 | integrity sha512-MVdgAKKL39tEs0l8je0hKaXLQFb7Rdfb0Xg2LjFZd8Lfdazkg6xiS98uAZrEKvaoF3i4M95ei9RydkGIDMeo3w== 65 | dependencies: 66 | buffer "~6.0.3" 67 | 68 | "@solana/web3.js@^1.17.0", "@solana/web3.js@^1.31.0": 69 | version "1.31.0" 70 | resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.31.0.tgz#7a313d4c1a90b77f27ddbfe845a10d6883e06452" 71 | integrity sha512-7nHHx1JNFnrt15e9y8m38I/EJCbaB+bFC3KZVM1+QhybCikFxGMtGA5r7PDC3GEL1R2RZA8yKoLkDKo3vzzqnw== 72 | dependencies: 73 | "@babel/runtime" "^7.12.5" 74 | "@ethersproject/sha2" "^5.5.0" 75 | "@solana/buffer-layout" "^3.0.0" 76 | bn.js "^5.0.0" 77 | borsh "^0.4.0" 78 | bs58 "^4.0.1" 79 | buffer "6.0.1" 80 | cross-fetch "^3.1.4" 81 | jayson "^3.4.4" 82 | js-sha3 "^0.8.0" 83 | rpc-websockets "^7.4.2" 84 | secp256k1 "^4.0.2" 85 | superstruct "^0.14.2" 86 | tweetnacl "^1.0.0" 87 | 88 | "@types/bn.js@^4.11.5": 89 | version "4.11.6" 90 | resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" 91 | integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== 92 | dependencies: 93 | "@types/node" "*" 94 | 95 | "@types/connect@^3.4.33": 96 | version "3.4.35" 97 | resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" 98 | integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== 99 | dependencies: 100 | "@types/node" "*" 101 | 102 | "@types/express-serve-static-core@^4.17.9": 103 | version "4.17.28" 104 | resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8" 105 | integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig== 106 | dependencies: 107 | "@types/node" "*" 108 | "@types/qs" "*" 109 | "@types/range-parser" "*" 110 | 111 | "@types/lodash@^4.14.159": 112 | version "4.14.178" 113 | resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.178.tgz#341f6d2247db528d4a13ddbb374bcdc80406f4f8" 114 | integrity sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw== 115 | 116 | "@types/node@*": 117 | version "17.0.8" 118 | resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.8.tgz#50d680c8a8a78fe30abe6906453b21ad8ab0ad7b" 119 | integrity sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg== 120 | 121 | "@types/node@^12.12.54": 122 | version "12.20.41" 123 | resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.41.tgz#81d7734c5257da9f04354bd9084a6ebbdd5198a5" 124 | integrity sha512-f6xOqucbDirG7LOzedpvzjP3UTmHttRou3Mosx3vL9wr9AIQGhcPgVnqa8ihpZYnxyM1rxeNCvTyukPKZtq10Q== 125 | 126 | "@types/qs@*": 127 | version "6.9.7" 128 | resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" 129 | integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== 130 | 131 | "@types/range-parser@*": 132 | version "1.2.4" 133 | resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" 134 | integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== 135 | 136 | "@types/ws@^7.4.4": 137 | version "7.4.7" 138 | resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" 139 | integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== 140 | dependencies: 141 | "@types/node" "*" 142 | 143 | JSONStream@^1.3.5: 144 | version "1.3.5" 145 | resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" 146 | integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== 147 | dependencies: 148 | jsonparse "^1.2.0" 149 | through ">=2.2.7 <3" 150 | 151 | base-x@^3.0.2: 152 | version "3.0.9" 153 | resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" 154 | integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== 155 | dependencies: 156 | safe-buffer "^5.0.1" 157 | 158 | base64-js@^1.3.1, base64-js@^1.5.1: 159 | version "1.5.1" 160 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" 161 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== 162 | 163 | bn.js@^4.11.9: 164 | version "4.12.0" 165 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" 166 | integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== 167 | 168 | bn.js@^5.0.0, bn.js@^5.1.2: 169 | version "5.2.0" 170 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" 171 | integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== 172 | 173 | borsh@^0.4.0: 174 | version "0.4.0" 175 | resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.4.0.tgz#9dd6defe741627f1315eac2a73df61421f6ddb9f" 176 | integrity sha512-aX6qtLya3K0AkT66CmYWCCDr77qsE9arV05OmdFpmat9qu8Pg9J5tBUPDztAW5fNh/d/MyVG/OYziP52Ndzx1g== 177 | dependencies: 178 | "@types/bn.js" "^4.11.5" 179 | bn.js "^5.0.0" 180 | bs58 "^4.0.0" 181 | text-encoding-utf-8 "^1.0.2" 182 | 183 | brorand@^1.1.0: 184 | version "1.1.0" 185 | resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" 186 | integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= 187 | 188 | bs58@^4.0.0, bs58@^4.0.1: 189 | version "4.0.1" 190 | resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" 191 | integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo= 192 | dependencies: 193 | base-x "^3.0.2" 194 | 195 | buffer-layout@^1.2.0, buffer-layout@^1.2.2: 196 | version "1.2.2" 197 | resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" 198 | integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== 199 | 200 | buffer@6.0.1: 201 | version "6.0.1" 202 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.1.tgz#3cbea8c1463e5a0779e30b66d4c88c6ffa182ac2" 203 | integrity sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ== 204 | dependencies: 205 | base64-js "^1.3.1" 206 | ieee754 "^1.2.1" 207 | 208 | buffer@~6.0.3: 209 | version "6.0.3" 210 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" 211 | integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== 212 | dependencies: 213 | base64-js "^1.3.1" 214 | ieee754 "^1.2.1" 215 | 216 | bufferutil@^4.0.1: 217 | version "4.0.6" 218 | resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.6.tgz#ebd6c67c7922a0e902f053e5d8be5ec850e48433" 219 | integrity sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw== 220 | dependencies: 221 | node-gyp-build "^4.3.0" 222 | 223 | camelcase@^5.3.1: 224 | version "5.3.1" 225 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" 226 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== 227 | 228 | circular-json@^0.5.9: 229 | version "0.5.9" 230 | resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.5.9.tgz#932763ae88f4f7dead7a0d09c8a51a4743a53b1d" 231 | integrity sha512-4ivwqHpIFJZBuhN3g/pEcdbnGUywkBblloGbkglyloVjjR3uT6tieI89MVOfbP2tHX5sgb01FuLgAOzebNlJNQ== 232 | 233 | commander@^2.20.3: 234 | version "2.20.3" 235 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 236 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 237 | 238 | cross-fetch@^3.1.4: 239 | version "3.1.4" 240 | resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.4.tgz#9723f3a3a247bf8b89039f3a380a9244e8fa2f39" 241 | integrity sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ== 242 | dependencies: 243 | node-fetch "2.6.1" 244 | 245 | crypto-hash@^1.3.0: 246 | version "1.3.0" 247 | resolved "https://registry.yarnpkg.com/crypto-hash/-/crypto-hash-1.3.0.tgz#b402cb08f4529e9f4f09346c3e275942f845e247" 248 | integrity sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg== 249 | 250 | delay@^5.0.0: 251 | version "5.0.0" 252 | resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" 253 | integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== 254 | 255 | dot-case@^3.0.4: 256 | version "3.0.4" 257 | resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" 258 | integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== 259 | dependencies: 260 | no-case "^3.0.4" 261 | tslib "^2.0.3" 262 | 263 | dotenv@^11.0.0: 264 | version "11.0.0" 265 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-11.0.0.tgz#ee37feddf8ada6d348a79e198312d4a8abfd1c1e" 266 | integrity sha512-Fp/b504Y5W+e+FpCxTFMUZ7ZEQkQYF0rx+KZtmwixJxGQbLHrhCwo3FjZgNC8vIfrSi29PABNbMoCGD9YoiXbQ== 267 | 268 | elliptic@^6.5.4: 269 | version "6.5.4" 270 | resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" 271 | integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== 272 | dependencies: 273 | bn.js "^4.11.9" 274 | brorand "^1.1.0" 275 | hash.js "^1.0.0" 276 | hmac-drbg "^1.0.1" 277 | inherits "^2.0.4" 278 | minimalistic-assert "^1.0.1" 279 | minimalistic-crypto-utils "^1.0.1" 280 | 281 | es6-promise@^4.0.3: 282 | version "4.2.8" 283 | resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" 284 | integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== 285 | 286 | es6-promisify@^5.0.0: 287 | version "5.0.0" 288 | resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" 289 | integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= 290 | dependencies: 291 | es6-promise "^4.0.3" 292 | 293 | eventemitter3@^4.0.7: 294 | version "4.0.7" 295 | resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" 296 | integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== 297 | 298 | eyes@^0.1.8: 299 | version "0.1.8" 300 | resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" 301 | integrity sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A= 302 | 303 | find@^0.3.0: 304 | version "0.3.0" 305 | resolved "https://registry.yarnpkg.com/find/-/find-0.3.0.tgz#4082e8fc8d8320f1a382b5e4f521b9bc50775cb8" 306 | integrity sha512-iSd+O4OEYV/I36Zl8MdYJO0xD82wH528SaCieTVHhclgiYNe9y+yPKSwK+A7/WsmHL1EZ+pYUJBXWTL5qofksw== 307 | dependencies: 308 | traverse-chain "~0.1.0" 309 | 310 | hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3: 311 | version "1.1.7" 312 | resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" 313 | integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== 314 | dependencies: 315 | inherits "^2.0.3" 316 | minimalistic-assert "^1.0.1" 317 | 318 | hmac-drbg@^1.0.1: 319 | version "1.0.1" 320 | resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" 321 | integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= 322 | dependencies: 323 | hash.js "^1.0.3" 324 | minimalistic-assert "^1.0.0" 325 | minimalistic-crypto-utils "^1.0.1" 326 | 327 | ieee754@^1.2.1: 328 | version "1.2.1" 329 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" 330 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== 331 | 332 | inherits@^2.0.3, inherits@^2.0.4: 333 | version "2.0.4" 334 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 335 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 336 | 337 | isomorphic-ws@^4.0.1: 338 | version "4.0.1" 339 | resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" 340 | integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== 341 | 342 | jayson@^3.4.4: 343 | version "3.6.6" 344 | resolved "https://registry.yarnpkg.com/jayson/-/jayson-3.6.6.tgz#189984f624e398f831bd2be8e8c80eb3abf764a1" 345 | integrity sha512-f71uvrAWTtrwoww6MKcl9phQTC+56AopLyEenWvKVAIMz+q0oVGj6tenLZ7Z6UiPBkJtKLj4kt0tACllFQruGQ== 346 | dependencies: 347 | "@types/connect" "^3.4.33" 348 | "@types/express-serve-static-core" "^4.17.9" 349 | "@types/lodash" "^4.14.159" 350 | "@types/node" "^12.12.54" 351 | "@types/ws" "^7.4.4" 352 | JSONStream "^1.3.5" 353 | commander "^2.20.3" 354 | delay "^5.0.0" 355 | es6-promisify "^5.0.0" 356 | eyes "^0.1.8" 357 | isomorphic-ws "^4.0.1" 358 | json-stringify-safe "^5.0.1" 359 | lodash "^4.17.20" 360 | uuid "^8.3.2" 361 | ws "^7.4.5" 362 | 363 | js-sha256@^0.9.0: 364 | version "0.9.0" 365 | resolved "https://registry.yarnpkg.com/js-sha256/-/js-sha256-0.9.0.tgz#0b89ac166583e91ef9123644bd3c5334ce9d0966" 366 | integrity sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA== 367 | 368 | js-sha3@^0.8.0: 369 | version "0.8.0" 370 | resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" 371 | integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== 372 | 373 | json-stringify-safe@^5.0.1: 374 | version "5.0.1" 375 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 376 | integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= 377 | 378 | jsonparse@^1.2.0: 379 | version "1.3.1" 380 | resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" 381 | integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= 382 | 383 | lodash@^4.17.20: 384 | version "4.17.21" 385 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 386 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 387 | 388 | lower-case@^2.0.2: 389 | version "2.0.2" 390 | resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" 391 | integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== 392 | dependencies: 393 | tslib "^2.0.3" 394 | 395 | minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: 396 | version "1.0.1" 397 | resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" 398 | integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== 399 | 400 | minimalistic-crypto-utils@^1.0.1: 401 | version "1.0.1" 402 | resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" 403 | integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= 404 | 405 | no-case@^3.0.4: 406 | version "3.0.4" 407 | resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" 408 | integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== 409 | dependencies: 410 | lower-case "^2.0.2" 411 | tslib "^2.0.3" 412 | 413 | node-addon-api@^2.0.0: 414 | version "2.0.2" 415 | resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" 416 | integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== 417 | 418 | node-fetch@2.6.1: 419 | version "2.6.1" 420 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" 421 | integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== 422 | 423 | node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: 424 | version "4.3.0" 425 | resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3" 426 | integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q== 427 | 428 | pako@^2.0.3: 429 | version "2.0.4" 430 | resolved "https://registry.yarnpkg.com/pako/-/pako-2.0.4.tgz#6cebc4bbb0b6c73b0d5b8d7e8476e2b2fbea576d" 431 | integrity sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg== 432 | 433 | regenerator-runtime@^0.13.4: 434 | version "0.13.9" 435 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" 436 | integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== 437 | 438 | rpc-websockets@^7.4.2: 439 | version "7.4.16" 440 | resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-7.4.16.tgz#eb701cdef577d4357ba5f526d50e25f370396fac" 441 | integrity sha512-0b7OVhutzwRIaYAtJo5tqtaQTWKfwAsKnaThOSOy+VkhVdleNUgb8eZnWSdWITRZZEigV5uPEIDr5KZe4DBrdQ== 442 | dependencies: 443 | "@babel/runtime" "^7.11.2" 444 | circular-json "^0.5.9" 445 | eventemitter3 "^4.0.7" 446 | uuid "^8.3.0" 447 | ws "^7.4.5" 448 | optionalDependencies: 449 | bufferutil "^4.0.1" 450 | utf-8-validate "^5.0.2" 451 | 452 | safe-buffer@^5.0.1: 453 | version "5.2.1" 454 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 455 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 456 | 457 | secp256k1@^4.0.2: 458 | version "4.0.3" 459 | resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" 460 | integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== 461 | dependencies: 462 | elliptic "^6.5.4" 463 | node-addon-api "^2.0.0" 464 | node-gyp-build "^4.2.0" 465 | 466 | snake-case@^3.0.4: 467 | version "3.0.4" 468 | resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" 469 | integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== 470 | dependencies: 471 | dot-case "^3.0.4" 472 | tslib "^2.0.3" 473 | 474 | superstruct@^0.14.2: 475 | version "0.14.2" 476 | resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.14.2.tgz#0dbcdf3d83676588828f1cf5ed35cda02f59025b" 477 | integrity sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ== 478 | 479 | text-encoding-utf-8@^1.0.2: 480 | version "1.0.2" 481 | resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" 482 | integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== 483 | 484 | "through@>=2.2.7 <3": 485 | version "2.3.8" 486 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 487 | integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= 488 | 489 | toml@^3.0.0: 490 | version "3.0.0" 491 | resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" 492 | integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== 493 | 494 | traverse-chain@~0.1.0: 495 | version "0.1.0" 496 | resolved "https://registry.yarnpkg.com/traverse-chain/-/traverse-chain-0.1.0.tgz#61dbc2d53b69ff6091a12a168fd7d433107e40f1" 497 | integrity sha1-YdvC1Ttp/2CRoSoWj9fUMxB+QPE= 498 | 499 | tslib@^2.0.3: 500 | version "2.3.1" 501 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" 502 | integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== 503 | 504 | tweetnacl@^1.0.0: 505 | version "1.0.3" 506 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" 507 | integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== 508 | 509 | utf-8-validate@^5.0.2: 510 | version "5.0.8" 511 | resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.8.tgz#4a735a61661dbb1c59a0868c397d2fe263f14e58" 512 | integrity sha512-k4dW/Qja1BYDl2qD4tOMB9PFVha/UJtxTc1cXYOe3WwA/2m0Yn4qB7wLMpJyLJ/7DR0XnTut3HsCSzDT4ZvKgA== 513 | dependencies: 514 | node-gyp-build "^4.3.0" 515 | 516 | uuid@^8.3.0, uuid@^8.3.2: 517 | version "8.3.2" 518 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" 519 | integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== 520 | 521 | ws@^7.4.5: 522 | version "7.5.6" 523 | resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b" 524 | integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== 525 | --------------------------------------------------------------------------------