{"_id":"@api3/merkle-funder","_rev":"15-c2a8531cf75ff7ae8c4755f34f3b490e","name":"@api3/merkle-funder","dist-tags":{"latest":"0.6.0"},"versions":{"0.1.0":{"name":"@api3/merkle-funder","version":"0.1.0","license":"MIT","_id":"@api3/merkle-funder@0.1.0","maintainers":[{"name":"amarthadan","email":"kimle.michal@gmail.com"},{"name":"aquarat","email":"blue@aquarat.co.za"},{"name":"bbenligiray","email":"bbenligiray@gmail.com"},{"name":"andreogle","email":"ogleandre@gmail.com"}],"dist":{"shasum":"e5251282f6cf69e780fbda502336c0a0d10fbd85","tarball":"https://registry.npmjs.org/@api3/merkle-funder/-/merkle-funder-0.1.0.tgz","fileCount":9,"integrity":"sha512-Ftrr0be1hv6zkiRFdOQK2ukjW/Lb8xP06NXlcl8LwidiZKy3ZF8A/pqCxWSNhnCshg2rK5SzFl0zZxJurEfajw==","signatures":[{"sig":"MEYCIQCJFG6hCtffDJum4Rh5B1P+7obijAxpblvLTiaTot4OCgIhAPFEWSt0gvgTBk8OKb6QG2EqXWbElMBk5fGsAaTc0jJn","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20184},"private":false,"scripts":{"fund":"hardhat run ./scripts/fund.ts --network","lint":"yarn run prettier:check && yarn run lint:eslint && yarn run lint:solhint","test":"yarn test:unit && yarn test:contracts","build":"yarn clean && hardhat compile --force","clean":"rimraf .esbuild .serverless artifacts cache coverage typechain-types","hh:node":"hardhat node","prepare":"husky install","prettier":"prettier --write \"./**/*.{js,ts,md,json,sol}\"","hh:deploy":"hardhat deploy","sls:local":"sls offline","test:unit":"jest","sls:config":"sls config credentials --provider aws --key $AWS_ACCESS_KEY_ID --secret $AWS_SECRET_ACCESS_KEY","sls:deploy":"ts-node scripts/load-config.ts && sls deploy --region us-east-1","sls:remove":"sls remove --region us-east-1","lint:eslint":"eslint . --ext .js,.ts","deploy:watch":"hardhat deploy --watch --network","lint:solhint":"solhint ./contracts/**/*.sol","prettier:check":"prettier --check \"./**/*.{js,ts,md,json,sol}\"","test:contracts":"hardhat test --parallel","env-example:write":"ts-node scripts/write-env-example-file.ts","deploy:merkle-funder":"DETERMINISTIC=true hardhat deploy --network $NETWORK","sls:invoke:fundHandler":"sls invoke local -f fundHandler","fund:merkle-funder-depositories":"hardhat run ./scripts/fund-merkle-funder-depositories.ts --network","deploy:merkle-funder-depositories":"hardhat run ./scripts/deploy-merkle-funder-depositories.ts --network $NETWORK"},"_npmUser":{"name":"bbenligiray","email":"bbenligiray@gmail.com"},"description":"This repo contains contracts, scripts and a serverless function that can be used to send funds to addresses based on values from a configuration file","directories":{},"dependencies":{"@api3/chains":"^3.3.0","@api3/airnode-utilities":"^0.11.2","@api3/airnode-validator":"^0.11.2"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.21.4","chai":"^4.3.7","jest":"^29.6.1","husky":"^8.0.3","dotenv":"^16.3.1","eslint":"^8.45.0","ethers":"^5.7.2","lodash":"^4.17.21","esbuild":"^0.18.14","hardhat":"2.17.0","solhint":"^3.4.1","ts-jest":"^29.1.1","ts-node":">=8.10.2","prettier":"^2.8.8","typechain":"^8.3.0","typescript":"^5.1.6","@types/chai":"^4.3.5","@types/jest":"^29.5.3","@types/node":">=12.20.55","@types/mocha":">=9.1.1","@types/lodash":"^4.14.195","hardhat-deploy":"^0.11.34","hardhat-prettier":"^0.0.1","@types/aws-lambda":"^8.10.119","solidity-coverage":"^0.8.4","@ethersproject/abi":"^5.7.0","@typechain/hardhat":"^6.1.6","eslint-plugin-jest":"^27.2.3","serverless-esbuild":"^1.46.0","serverless-offline":"^12.0.4","@api3/promise-utils":"^0.4.0","@typechain/ethers-v5":"^10.2.1","hardhat-gas-reporter":"^1.0.9","@ethersproject/providers":"^5.7.2","prettier-plugin-solidity":"^1.1.3","@api3/airnode-protocol-v1":"^2.8.0","@nomiclabs/hardhat-ethers":"^2.2.3","@openzeppelin/merkle-tree":"^1.0.5","@typescript-eslint/parser":"^6.1.0","@nomiclabs/hardhat-etherscan":"^3.1.7","@nomicfoundation/hardhat-toolbox":"^2.0.2","@typescript-eslint/eslint-plugin":"^6.1.0","@nomicfoundation/hardhat-chai-matchers":"^1.0.6","@nomicfoundation/hardhat-network-helpers":"^1.0.8"},"_npmOperationalInternal":{"tmp":"tmp/merkle-funder_0.1.0_1690104105483_0.34958394896727274","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@api3/merkle-funder","version":"0.2.0","license":"MIT","_id":"@api3/merkle-funder@0.2.0","maintainers":[{"name":"amarthadan","email":"kimle.michal@gmail.com"},{"name":"aquarat","email":"blue@aquarat.co.za"},{"name":"bbenligiray","email":"bbenligiray@gmail.com"},{"name":"andreogle","email":"ogleandre@gmail.com"}],"dist":{"shasum":"4b6dc67086e16acd6c6f75ee60b3217d6686bebb","tarball":"https://registry.npmjs.org/@api3/merkle-funder/-/merkle-funder-0.2.0.tgz","fileCount":12,"integrity":"sha512-SjXsbSf1ykUn95b7ACLPc7PoFP7L4IxhGZ317r0bTYffl/EGUgfRxZZkJvodC2lZQIaXbFr5FGOw9oVgFl3d5Q==","signatures":[{"sig":"MEUCIQDckaEQbdkJo4WHdupXtPEE1CjIIA6bu0lpuw2oFEcAkQIgKRE5O89iS43fc/m9xePF525XBD0Z6RXM+9vIVN8y9x0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23388},"private":false,"scripts":{"fund":"hardhat run ./scripts/fund.ts --network","lint":"yarn run prettier:check && yarn run lint:eslint && yarn run lint:solhint","test":"yarn test:unit && yarn test:contracts","build":"yarn clean && hardhat compile --force","clean":"rimraf .esbuild .serverless artifacts cache coverage typechain-types","hh:node":"hardhat node","prepare":"husky install","prettier":"prettier --write \"./**/*.{js,ts,md,json,sol}\"","hh:deploy":"hardhat deploy","sls:local":"sls offline","test:unit":"jest","sls:config":"sls config credentials --provider aws --key $AWS_ACCESS_KEY_ID --secret $AWS_SECRET_ACCESS_KEY","sls:deploy":"ts-node scripts/load-config.ts && sls deploy --region us-east-1","sls:remove":"sls remove --region us-east-1","lint:eslint":"eslint . --ext .js,.ts","deploy:watch":"hardhat deploy --watch --network","lint:solhint":"solhint ./contracts/**/*.sol","prettier:check":"prettier --check \"./**/*.{js,ts,md,json,sol}\"","test:contracts":"hardhat test --parallel","env-example:write":"ts-node scripts/write-env-example-file.ts","deploy:merkle-funder":"DETERMINISTIC=true hardhat deploy --network $NETWORK","sls:invoke:fundHandler":"sls invoke local -f fundHandler","fund:merkle-funder-depositories":"hardhat run ./scripts/fund-merkle-funder-depositories.ts --network","deploy:merkle-funder-depositories":"hardhat run ./scripts/deploy-merkle-funder-depositories.ts --network $NETWORK"},"_npmUser":{"name":"bbenligiray","email":"bbenligiray@gmail.com"},"description":"This repo contains contracts, scripts and a serverless function that can be used to send funds to addresses based on values from a configuration file","directories":{},"dependencies":{"@api3/chains":"^3.3.0","@api3/airnode-utilities":"^0.11.2","@api3/airnode-validator":"^0.11.2"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.21.4","chai":"^4.3.7","jest":"^29.6.1","husky":"^8.0.3","dotenv":"^16.3.1","eslint":"^8.45.0","ethers":"^5.7.2","lodash":"^4.17.21","esbuild":"^0.18.14","hardhat":"2.17.0","solhint":"^3.4.1","ts-jest":"^29.1.1","ts-node":">=8.10.2","prettier":"^2.8.8","typechain":"^8.3.0","typescript":"^5.1.6","@types/chai":"^4.3.5","@types/jest":"^29.5.3","@types/node":">=12.20.55","@types/mocha":">=9.1.1","@types/lodash":"^4.14.195","hardhat-deploy":"^0.11.34","hardhat-prettier":"^0.0.1","@types/aws-lambda":"^8.10.119","solidity-coverage":"^0.8.4","@ethersproject/abi":"^5.7.0","@typechain/hardhat":"^6.1.6","eslint-plugin-jest":"^27.2.3","serverless-esbuild":"^1.46.0","serverless-offline":"^12.0.4","@api3/promise-utils":"^0.4.0","@typechain/ethers-v5":"^10.2.1","hardhat-gas-reporter":"^1.0.9","@ethersproject/providers":"^5.7.2","prettier-plugin-solidity":"^1.1.3","@api3/airnode-protocol-v1":"^2.8.0","@nomiclabs/hardhat-ethers":"^2.2.3","@openzeppelin/merkle-tree":"^1.0.5","@typescript-eslint/parser":"^6.1.0","@nomiclabs/hardhat-etherscan":"^3.1.7","@nomicfoundation/hardhat-toolbox":"^2.0.2","@typescript-eslint/eslint-plugin":"^6.1.0","@nomicfoundation/hardhat-chai-matchers":"^1.0.6","@nomicfoundation/hardhat-network-helpers":"^1.0.8"},"_npmOperationalInternal":{"tmp":"tmp/merkle-funder_0.2.0_1690881451372_0.6138759576205002","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"@api3/merkle-funder","version":"0.2.1","license":"MIT","_id":"@api3/merkle-funder@0.2.1","maintainers":[{"name":"amarthadan","email":"kimle.michal@gmail.com"},{"name":"aquarat","email":"blue@aquarat.co.za"},{"name":"bbenligiray","email":"bbenligiray@gmail.com"},{"name":"andreogle","email":"ogleandre@gmail.com"}],"dist":{"shasum":"fc005fb3e4eed46f403e0bf01aeb25a12dc10dbf","tarball":"https://registry.npmjs.org/@api3/merkle-funder/-/merkle-funder-0.2.1.tgz","fileCount":14,"integrity":"sha512-Eaf3pKK7pO0uE8eaFYGwJBsB5Ig0qolRA/BlYpAGEsDJV5ShlteI4SeSJ6bbiV4tT8RlszE3EditAoDtpX9uGw==","signatures":[{"sig":"MEUCIQCJvevAIc4O3iAL+iAc7o5zrPlVkXJOSAeamaTXkXgklAIgS5xSFj58jTodKyOF3cGZIoeIg1WKRrU+BVNoawEweDY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23523},"main":"src/references.js","private":false,"scripts":{"fund":"hardhat run ./scripts/fund.ts --network","lint":"yarn run prettier:check && yarn run lint:eslint && yarn run lint:solhint","test":"yarn test:unit && yarn test:contracts","build":"yarn clean && hardhat compile --force","clean":"rimraf .esbuild .serverless artifacts cache coverage typechain-types","hh:node":"hardhat node","prepare":"husky install","prettier":"prettier --write \"./**/*.{js,ts,md,json,sol}\"","hh:deploy":"hardhat deploy","sls:local":"sls offline","test:unit":"jest","sls:config":"sls config credentials --provider aws --key $AWS_ACCESS_KEY_ID --secret $AWS_SECRET_ACCESS_KEY","sls:deploy":"ts-node scripts/load-config.ts && sls deploy --region us-east-1","sls:remove":"sls remove --region us-east-1","lint:eslint":"eslint . --ext .js,.ts","deploy:watch":"hardhat deploy --watch --network","lint:solhint":"solhint ./contracts/**/*.sol","prettier:check":"prettier --check \"./**/*.{js,ts,md,json,sol}\"","test:contracts":"hardhat test --parallel","env-example:write":"ts-node scripts/write-env-example-file.ts","deploy:merkle-funder":"DETERMINISTIC=true hardhat deploy --network $NETWORK","sls:invoke:fundHandler":"sls invoke local -f fundHandler","fund:merkle-funder-depositories":"hardhat run ./scripts/fund-merkle-funder-depositories.ts --network","deploy:merkle-funder-depositories":"hardhat run ./scripts/deploy-merkle-funder-depositories.ts --network $NETWORK"},"_npmUser":{"name":"bbenligiray","email":"bbenligiray@gmail.com"},"description":"This repo contains contracts, scripts and a serverless function that can be used to send funds to addresses based on values from a configuration file","directories":{},"dependencies":{"@api3/chains":"^3.3.0","@api3/airnode-utilities":"^0.11.2","@api3/airnode-validator":"^0.11.2"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.21.4","chai":"^4.3.7","jest":"^29.6.1","husky":"^8.0.3","dotenv":"^16.3.1","eslint":"^8.45.0","ethers":"^5.7.2","lodash":"^4.17.21","esbuild":"^0.18.14","hardhat":"2.17.0","solhint":"^3.4.1","ts-jest":"^29.1.1","ts-node":">=8.10.2","prettier":"^2.8.8","typechain":"^8.3.0","typescript":"^5.1.6","@types/chai":"^4.3.5","@types/jest":"^29.5.3","@types/node":">=12.20.55","@types/mocha":">=9.1.1","@types/lodash":"^4.14.195","hardhat-deploy":"^0.11.34","hardhat-prettier":"^0.0.1","@types/aws-lambda":"^8.10.119","solidity-coverage":"^0.8.4","@ethersproject/abi":"^5.7.0","@typechain/hardhat":"^6.1.6","eslint-plugin-jest":"^27.2.3","serverless-esbuild":"^1.46.0","serverless-offline":"^12.0.4","@api3/promise-utils":"^0.4.0","@typechain/ethers-v5":"^10.2.1","hardhat-gas-reporter":"^1.0.9","@ethersproject/providers":"^5.7.2","prettier-plugin-solidity":"^1.1.3","@api3/airnode-protocol-v1":"^2.8.0","@nomiclabs/hardhat-ethers":"^2.2.3","@openzeppelin/merkle-tree":"^1.0.5","@typescript-eslint/parser":"^6.1.0","@nomiclabs/hardhat-etherscan":"^3.1.7","@nomicfoundation/hardhat-toolbox":"^2.0.2","@typescript-eslint/eslint-plugin":"^6.1.0","@nomicfoundation/hardhat-chai-matchers":"^1.0.6","@nomicfoundation/hardhat-network-helpers":"^1.0.8"},"_npmOperationalInternal":{"tmp":"tmp/merkle-funder_0.2.1_1690883013328_0.5834120969696128","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"@api3/merkle-funder","version":"0.3.0","license":"MIT","_id":"@api3/merkle-funder@0.3.0","maintainers":[{"name":"amarthadan","email":"kimle.michal@gmail.com"},{"name":"aquarat","email":"blue@aquarat.co.za"},{"name":"bbenligiray","email":"bbenligiray@gmail.com"},{"name":"andreogle","email":"ogleandre@gmail.com"}],"dist":{"shasum":"27a75b2781e9fec1c140208611100e9aec718339","tarball":"https://registry.npmjs.org/@api3/merkle-funder/-/merkle-funder-0.3.0.tgz","fileCount":212,"integrity":"sha512-li2Kg0Kc2MN2cehkXK+lY9stLFwZMVtREKjSeTli8AtFw4GtnI/bCI186UAciqalht5wVtJcMaDQqCVJ9faOMQ==","signatures":[{"sig":"MEYCIQDSrf3uGoWvdu4tDByKRGvXyTvmUBHmy+QptzYjnk9ntQIhAOjSSWKsymcN+b+Ca5bVHq8nw88Ph8OD3hxA/Unw1fJP","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490801},"main":"dist/src/index","private":false,"scripts":{"fund":"hardhat run ./scripts/fund.ts --network $NETWORK","lint":"yarn run prettier:check && yarn run lint:eslint && yarn run lint:solhint","test":"yarn test:unit && yarn test:contracts","build":"yarn clean && hardhat compile --force && tsc","clean":"rimraf dist .esbuild .serverless artifacts cache coverage typechain-types","hh:node":"hardhat node","prepare":"husky install","prettier":"prettier --write \"./**/*.{js,ts,md,json,sol}\"","hh:deploy":"hardhat deploy","sls:local":"sls offline","test:unit":"jest","sls:config":"sls config credentials --provider aws --key $AWS_ACCESS_KEY_ID --secret $AWS_SECRET_ACCESS_KEY","sls:deploy":"ts-node scripts/load-config.ts && sls deploy --region us-east-1","sls:remove":"sls remove --region us-east-1","lint:eslint":"eslint . --ext .js,.ts","deploy:watch":"hardhat deploy --watch --network","lint:solhint":"solhint ./contracts/**/*.sol","prettier:check":"prettier --check \"./**/*.{js,ts,md,json,sol}\"","test:contracts":"hardhat test --parallel","env-example:write":"ts-node scripts/write-env-example-file.ts","deploy:merkle-funder":"DETERMINISTIC=true hardhat deploy --network $NETWORK","sls:invoke:fundHandler":"sls invoke local -f fundHandler","fund:merkle-funder-depositories":"hardhat run ./scripts/fund-merkle-funder-depositories.ts --network $NETWORK","deploy:merkle-funder-depositories":"hardhat run ./scripts/deploy-merkle-funder-depositories.ts --network $NETWORK"},"_npmUser":{"name":"bbenligiray","email":"bbenligiray@gmail.com"},"description":"This repo contains contracts, scripts and a serverless function that can be used to send funds to addresses based on values from a configuration file","directories":{},"dependencies":{"zod":"^3.21.4","ethers":"^5.7.2","lodash":"^4.17.21","@ethersproject/abi":"^5.7.0","@api3/promise-utils":"^0.4.0","@api3/airnode-utilities":"^0.12.0","@api3/airnode-validator":"^0.12.0","@ethersproject/providers":"^5.7.2","@api3/airnode-protocol-v1":"^2.8.0","@openzeppelin/merkle-tree":"^1.0.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.7","jest":"^29.6.2","husky":"^8.0.3","dotenv":"^16.3.1","eslint":"^8.46.0","esbuild":"^0.18.20","hardhat":"2.17.1","solhint":"^3.5.1","ts-jest":"^29.1.1","ts-node":">=10.9.1","prettier":"^2.8.8","typechain":"^8.3.1","typescript":"^5.1.6","@types/chai":"^4.3.5","@types/jest":"^29.5.3","@types/node":">=18.17.3","@api3/chains":"^3.3.0","@types/mocha":">=10.0.1","@types/lodash":"^4.14.196","hardhat-deploy":"^0.11.34","hardhat-prettier":"^0.0.1","@types/aws-lambda":"^8.10.119","solidity-coverage":"^0.8.4","@typechain/hardhat":"^6.1.6","eslint-plugin-jest":"^27.2.3","serverless-esbuild":"^1.46.0","serverless-offline":"^12.0.4","@typechain/ethers-v5":"^10.2.1","hardhat-gas-reporter":"^1.0.9","prettier-plugin-solidity":"^1.1.3","@nomiclabs/hardhat-ethers":"^2.2.3","@typescript-eslint/parser":"^6.3.0","@nomiclabs/hardhat-etherscan":"^3.1.7","@nomicfoundation/hardhat-toolbox":"^2.0.2","@typescript-eslint/eslint-plugin":"^6.3.0","@nomicfoundation/hardhat-chai-matchers":"^1.0.6","@nomicfoundation/hardhat-network-helpers":"^1.0.8"},"_npmOperationalInternal":{"tmp":"tmp/merkle-funder_0.3.0_1691674158627_0.3075993452569301","host":"s3://npm-registry-packages"}},"0.4.0":{"name":"@api3/merkle-funder","version":"0.4.0","license":"MIT","_id":"@api3/merkle-funder@0.4.0","maintainers":[{"name":"amarthadan","email":"kimle.michal@gmail.com"},{"name":"aquarat","email":"blue@aquarat.co.za"},{"name":"bbenligiray","email":"bbenligiray@gmail.com"},{"name":"andreogle","email":"ogleandre@gmail.com"}],"dist":{"shasum":"e7c7ba27eb148fc1fe5737c103119ad65687de65","tarball":"https://registry.npmjs.org/@api3/merkle-funder/-/merkle-funder-0.4.0.tgz","fileCount":212,"integrity":"sha512-62jK2v3KOejwQKF5xflBJGaamxHPD+jshmy99IFaCPNg9Fi9CjIarNZCRwG6e/fHIq85vP6IheiU5oGNpK3c2w==","signatures":[{"sig":"MEUCID2V14/6lTFiDrRyYysJfXneqWUQn4gsrP0Fl/9Bu6L8AiEA1UILErBHViekpHo9yvTSVVIOOxR9/a8ibUYKENSZ32s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":504351},"main":"dist/src/index","private":false,"scripts":{"fund":"hardhat run ./scripts/fund.ts --network $NETWORK","lint":"yarn run prettier:check && yarn run lint:eslint && yarn run lint:solhint","test":"yarn test:unit && yarn test:contracts","build":"yarn clean && hardhat compile --force && tsc","clean":"rimraf dist .esbuild .serverless artifacts cache coverage typechain-types","hh:node":"hardhat node","prepare":"husky install","prettier":"prettier --write \"./**/*.{js,ts,md,json,sol}\"","hh:deploy":"hardhat deploy","sls:local":"sls offline","test:unit":"jest","sls:config":"sls config credentials --provider aws --key $AWS_ACCESS_KEY_ID --secret $AWS_SECRET_ACCESS_KEY","sls:deploy":"ts-node scripts/load-config.ts && sls deploy --region us-east-1","sls:remove":"sls remove --region us-east-1","lint:eslint":"eslint . --ext .js,.ts","deploy:watch":"hardhat deploy --watch --network","lint:solhint":"solhint ./contracts/**/*.sol","prettier:check":"prettier --check \"./**/*.{js,ts,md,json,sol}\"","test:contracts":"hardhat test --parallel","env-example:write":"ts-node scripts/write-env-example-file.ts","deploy:merkle-funder":"DETERMINISTIC=true hardhat deploy --network $NETWORK","sls:invoke:fundHandler":"sls invoke local -f fundHandler","fund:merkle-funder-depositories":"hardhat run ./scripts/fund-merkle-funder-depositories.ts --network $NETWORK","deploy:merkle-funder-depositories":"hardhat run ./scripts/deploy-merkle-funder-depositories.ts --network $NETWORK"},"_npmUser":{"name":"bbenligiray","email":"bbenligiray@gmail.com"},"description":"This repo contains contracts, scripts and a serverless function that can be used to send funds to addresses based on values from a configuration file","directories":{},"dependencies":{"zod":"^3.21.4","ethers":"^5.7.2","lodash":"^4.17.21","@ethersproject/abi":"^5.7.0","@api3/promise-utils":"^0.4.0","@api3/airnode-utilities":"^0.12.0","@api3/airnode-validator":"^0.12.0","@ethersproject/providers":"^5.7.2","@api3/airnode-protocol-v1":"^2.8.0","@openzeppelin/merkle-tree":"^1.0.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.7","jest":"^29.6.2","husky":"^8.0.3","dotenv":"^16.3.1","eslint":"^8.47.0","esbuild":"^0.19.2","hardhat":"2.17.1","solhint":"^3.6.1","ts-jest":"^29.1.1","ts-node":">=10.9.1","prettier":"^2.8.8","typechain":"^8.3.1","typescript":"^5.1.6","@types/chai":"^4.3.5","@types/jest":"^29.5.3","@types/node":">=18.17.5","@api3/chains":"^3.3.0","@types/mocha":">=10.0.1","@types/lodash":"^4.14.197","hardhat-deploy":"^0.11.36","hardhat-prettier":"^0.0.1","@types/aws-lambda":"^8.10.119","solidity-coverage":"^0.8.4","@typechain/hardhat":"^6.1.6","eslint-plugin-jest":"^27.2.3","serverless-esbuild":"^1.46.0","serverless-offline":"^12.0.4","@typechain/ethers-v5":"^10.2.1","hardhat-gas-reporter":"^1.0.9","prettier-plugin-solidity":"^1.1.3","@nomiclabs/hardhat-ethers":"^2.2.3","@typescript-eslint/parser":"^6.4.0","@nomiclabs/hardhat-etherscan":"^3.1.7","@nomicfoundation/hardhat-toolbox":"^2.0.2","@typescript-eslint/eslint-plugin":"^6.4.0","@nomicfoundation/hardhat-chai-matchers":"^1.0.6","@nomicfoundation/hardhat-network-helpers":"^1.0.8"},"_npmOperationalInternal":{"tmp":"tmp/merkle-funder_0.4.0_1692196285709_0.9747469413730185","host":"s3://npm-registry-packages"}},"0.5.0":{"name":"@api3/merkle-funder","version":"0.5.0","license":"MIT","_id":"@api3/merkle-funder@0.5.0","maintainers":[{"name":"dcroote","email":"npmjs.whopx@passmail.net"},{"name":"aquarat","email":"blue@aquarat.co.za"},{"name":"bbenligiray","email":"bbenligiray@gmail.com"},{"name":"andreogle","email":"ogleandre@gmail.com"}],"dist":{"shasum":"1d2758b7a45d3cd78a9de43defae226aa1cf6918","tarball":"https://registry.npmjs.org/@api3/merkle-funder/-/merkle-funder-0.5.0.tgz","fileCount":212,"integrity":"sha512-eRUZz/KDGJCSsQ16u4KKgEL8l7iDgvZK8zoXDGVPMIYz7xVMwPpjd8J5LXgje6ME15VA8QI/HhNOAztMTWjZaQ==","signatures":[{"sig":"MEUCIFd2CMkRYnozDyh7vp5WONopPVAzvohBUMVVNI2nY4qDAiEAjQ1KOtPIRClPUilHbc6J5Ei1KnZNNpMLyxAr9ZabQhI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":507856},"main":"dist/src/index","private":false,"scripts":{"fund":"hardhat run ./scripts/fund.ts --network $NETWORK","lint":"yarn run prettier:check && yarn run lint:eslint && yarn run lint:solhint","test":"yarn test:unit && yarn test:contracts","build":"yarn clean && hardhat compile --force && tsc","clean":"rimraf dist .esbuild .serverless artifacts cache coverage typechain-types","hh:node":"hardhat node","prepare":"husky install","prettier":"prettier --write \"./**/*.{js,ts,md,json,sol}\"","hh:deploy":"hardhat deploy","sls:local":"sls offline","test:unit":"jest","sls:config":"sls config credentials --provider aws --key $AWS_ACCESS_KEY_ID --secret $AWS_SECRET_ACCESS_KEY","sls:deploy":"ts-node scripts/load-config.ts && sls deploy --region us-east-1","sls:remove":"sls remove --region us-east-1","lint:eslint":"eslint . --ext .js,.ts","deploy:watch":"hardhat deploy --watch --network","lint:solhint":"solhint ./contracts/**/*.sol","prettier:check":"prettier --check \"./**/*.{js,ts,md,json,sol}\"","test:contracts":"hardhat test --parallel","env-example:write":"ts-node scripts/write-env-example-file.ts","deploy:merkle-funder":"DETERMINISTIC=true hardhat deploy --network $NETWORK","sls:invoke:fundHandler":"sls invoke local -f fundHandler","fund:merkle-funder-depositories":"hardhat run ./scripts/fund-merkle-funder-depositories.ts --network $NETWORK","deploy:merkle-funder-depositories":"hardhat run ./scripts/deploy-merkle-funder-depositories.ts --network $NETWORK","deploy:merkle-funder:undeterministic":"hardhat deploy --network $NETWORK"},"_npmUser":{"name":"bbenligiray","email":"bbenligiray@gmail.com"},"description":"This repo contains contracts, scripts and a serverless function that can be used to send funds to addresses based on values from a configuration file","directories":{},"dependencies":{"zod":"^3.21.4","ethers":"^5.7.2","lodash":"^4.17.21","@ethersproject/abi":"^5.7.0","@api3/promise-utils":"^0.4.0","@api3/airnode-utilities":"^0.12.0","@api3/airnode-validator":"^0.12.0","@ethersproject/providers":"^5.7.2","@api3/airnode-protocol-v1":"^2.10.0","@openzeppelin/merkle-tree":"^1.0.5"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.3.7","jest":"^29.6.2","husky":"^8.0.3","dotenv":"^16.3.1","eslint":"^8.47.0","esbuild":"^0.19.2","hardhat":"2.17.1","solhint":"^3.6.1","ts-jest":"^29.1.1","ts-node":">=10.9.1","prettier":"^2.8.8","typechain":"^8.3.1","typescript":"^5.1.6","@types/chai":"^4.3.5","@types/jest":"^29.5.3","@types/node":">=18.17.5","@api3/chains":"^3.5.0","@types/mocha":">=10.0.1","@types/lodash":"^4.14.197","hardhat-deploy":"^0.11.36","hardhat-prettier":"^0.0.1","@types/aws-lambda":"^8.10.119","solidity-coverage":"^0.8.4","@typechain/hardhat":"^6.1.6","eslint-plugin-jest":"^27.2.3","serverless-esbuild":"^1.46.0","serverless-offline":"^12.0.4","@typechain/ethers-v5":"^10.2.1","hardhat-gas-reporter":"^1.0.9","prettier-plugin-solidity":"^1.1.3","@nomiclabs/hardhat-ethers":"^2.2.3","@typescript-eslint/parser":"^6.4.0","@nomiclabs/hardhat-etherscan":"^3.1.7","@nomicfoundation/hardhat-toolbox":"^2.0.2","@typescript-eslint/eslint-plugin":"^6.4.0","@nomicfoundation/hardhat-chai-matchers":"^1.0.6","@nomicfoundation/hardhat-network-helpers":"^1.0.8"},"_npmOperationalInternal":{"tmp":"tmp/merkle-funder_0.5.0_1695228455433_0.11912543039489831","host":"s3://npm-registry-packages"}},"0.6.0":{"name":"@api3/merkle-funder","version":"0.6.0","license":"MIT","_id":"@api3/merkle-funder@0.6.0","maintainers":[{"name":"siegrift","email":"e.tesarr@gmail.com"},{"name":"dcroote","email":"npmjs.whopx@passmail.net"},{"name":"aquarat","email":"blue@aquarat.co.za"},{"name":"bbenligiray","email":"bbenligiray@gmail.com"},{"name":"andreogle","email":"ogleandre@gmail.com"}],"dist":{"shasum":"eb671d68443e296277079167c32d274de1e953f6","tarball":"https://registry.npmjs.org/@api3/merkle-funder/-/merkle-funder-0.6.0.tgz","fileCount":212,"integrity":"sha512-oMjxSvLG6yaTn9pv1MbASHy4arlw/t0Qh+luWeJ1SXXS8vyJUgtAXVt2OcPODvOzN89f3RzVBlj3/cJPY2rMLg==","signatures":[{"sig":"MEQCIBV4RI4DOcOVDy322jop/BGGTfKCRGZAxhENBmat+qCIAiBPk6rsek62byjG84O3UZIHHQJlaPSJqHnFO6KsLthIJw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":530451},"main":"dist/src/index","private":false,"scripts":{"fund":"hardhat run ./scripts/fund.ts --network $NETWORK","lint":"yarn run prettier:check && yarn run lint:eslint && yarn run lint:solhint","test":"yarn test:unit && yarn test:contracts","build":"yarn clean && hardhat compile --force && tsc","clean":"rimraf dist .esbuild .serverless artifacts cache coverage typechain-types","hh:node":"hardhat node","prepare":"husky install","prettier":"prettier --write \"./**/*.{js,ts,md,json,sol}\"","hh:deploy":"hardhat deploy","sls:local":"sls offline","test:unit":"jest","sls:config":"sls config credentials --provider aws --key $AWS_ACCESS_KEY_ID --secret $AWS_SECRET_ACCESS_KEY","sls:deploy":"ts-node scripts/load-config.ts && sls deploy","sls:remove":"sls remove","lint:eslint":"eslint . --ext .js,.ts","deploy:watch":"hardhat deploy --watch --network","lint:solhint":"solhint ./contracts/**/*.sol","prettier:check":"prettier --check \"./**/*.{js,ts,md,json,sol}\"","test:contracts":"hardhat test --parallel","env-example:write":"ts-node scripts/write-env-example-file.ts","deploy:merkle-funder":"DETERMINISTIC=true hardhat deploy --network $NETWORK","sls:invoke:fundHandler":"sls invoke local -f fundHandler","fund:merkle-funder-depositories":"hardhat run ./scripts/fund-merkle-funder-depositories.ts --network $NETWORK","deploy:merkle-funder-depositories":"hardhat run ./scripts/deploy-merkle-funder-depositories.ts --network $NETWORK","deploy:merkle-funder:undeterministic":"hardhat deploy --network $NETWORK"},"_npmUser":{"name":"bbenligiray","email":"bbenligiray@gmail.com"},"description":"This repo contains contracts, scripts and a serverless function that can be used to send funds to addresses based on values from a configuration file","directories":{},"dependencies":{"zod":"^3.22.4","ethers":"^5.7.2","lodash":"^4.17.21","@ethersproject/abi":"^5.7.0","@api3/promise-utils":"^0.4.0","@api3/airnode-utilities":"^0.14.0","@api3/airnode-validator":"^0.14.0","@ethersproject/providers":"^5.7.2","@api3/airnode-protocol-v1":"^3.3.0","@openzeppelin/merkle-tree":"^1.0.6"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.4.1","jest":"^29.7.0","husky":"^9.0.11","dotenv":"^16.4.5","eslint":"^8.57.0","esbuild":"^0.20.1","hardhat":"2.20.1","solhint":"^4.1.1","ts-jest":"^29.1.2","ts-node":">=10.9.2","prettier":"^2.8.8","typechain":"^8.3.2","serverless":"^3.38.0","typescript":"^5.3.3","@types/chai":"^4.3.12","@types/jest":"^29.5.12","@types/node":">=18.19.21","@api3/chains":"^4.11.0","@types/mocha":">=10.0.6","@types/lodash":"^4.14.202","hardhat-deploy":"^0.12.1","hardhat-prettier":"^0.0.1","@types/aws-lambda":"^8.10.134","@types/serverless":"^3.12.22","solidity-coverage":"^0.8.10","@typechain/hardhat":"^9.1.0","eslint-plugin-jest":"^27.9.0","serverless-esbuild":"^1.51.0","serverless-offline":"^13.3.3","@typechain/ethers-v5":"^10.2.1","hardhat-gas-reporter":"^1.0.10","prettier-plugin-solidity":"^1.3.1","@nomiclabs/hardhat-ethers":"^2.2.3","@typescript-eslint/parser":"^7.1.0","@nomiclabs/hardhat-etherscan":"^3.1.8","@nomicfoundation/hardhat-toolbox":"^2.0.2","@typescript-eslint/eslint-plugin":"^7.1.0","@nomicfoundation/hardhat-chai-matchers":"^1.0.6","@nomicfoundation/hardhat-network-helpers":"^1.0.10"},"_npmOperationalInternal":{"tmp":"tmp/merkle-funder_0.6.0_1709336188244_0.33870175194709007","host":"s3://npm-registry-packages"}}},"time":{"created":"2023-07-23T09:21:45.378Z","modified":"2026-04-07T10:33:21.456Z","0.1.0":"2023-07-23T09:21:45.629Z","0.2.0":"2023-08-01T09:17:31.486Z","0.2.1":"2023-08-01T09:43:33.424Z","0.3.0":"2023-08-10T13:29:18.885Z","0.4.0":"2023-08-16T14:31:26.015Z","0.5.0":"2023-09-20T16:47:35.641Z","0.6.0":"2024-03-01T23:36:28.430Z"},"license":"MIT","description":"This repo contains contracts, scripts and a serverless function that can be used to send funds to addresses based on values from a configuration file","maintainers":[{"email":"bbenligiray@gmail.com","name":"bbenligiray"},{"email":"e.tesarr@gmail.com","name":"siegrift"}],"readme":"# merkle-funder\n\nThis repo contains contracts, scripts and a serverless function that can be used to send funds to addresses based on values from a configuration file\n\n- [`contracts`](./contracts/) - Smart contracts written in Solidity to manage funds sent to pre-defined addresses using a Merkle tree\n- [`deploy`](./deploy/) - Deployment scripts for the hardhat-deploy plugin. Currently there is a single script that deploys the [MerkleFunder](./contracts/MerkleFunder.sol) contract\n- [`deployments`](./deployments/) - Parent directory for the hardhat-deploy script output. When MerkleFunder.sol is deployed to a new chain using this script, a new directory with the chain name will be added\n- [`scripts`](./scripts/) - Utility scripts to interact with the MerkleFunder contract\n- [`src`](./src/) - Shared source code and the handler implementation for the serverless function\n\n## Prerequisites\n\n- Node.js >= 18.x\n- Yarn\n\n## Installation\n\n```sh\nyarn install --frozen-lockfile\n```\n\n## Building\n\n```sh\nyarn build\n```\n\n## Adding a new chain\n\n### Deploy contracts\n\n1. Run the following script to generate the [example.env](./example.env) file:\n\n   ```shell\n   yarn env-example:write\n   ```\n\n1. Copy [example.env](./example.env) to `.env`\n\n1. In `.env`, delete the lines that are related to chains that you will not use.\n   Refer to [@api3/chains](https://github.com/api3dao/chains) for more information about the chains.\n\n1. In `.env`, populate the `MNEMONIC` value.\n   This will be used by hardhat-deploy to deploy contracts and by the app you deploy to send transactions to execute fundings.\n\n1. In `.env`, populate the `FUNDER_RPC_URL_` values.\n   These will be used by the app you deploy.\n\n1. In `.env`, populate the `ETHERSCAN_API_KEY_` values.\n   These will be used by hardhat-etherscan to verify the contracts you deploy.\n\n1. Copy [config.example.json](./config/config.example.json) to `config.json` and add a new entry using the chain ID as key for the object\n   <!-- TODO: add more details about each field in the config -->\n\n1. Deploy `MerkleFunder` by running:\n\n   ```shell\n   NETWORK=<chainAlias> yarn deploy:merkle-funder\n   ```\n\n   `chainAlias` must match one from [@api3/chains](https://github.com/api3dao/chains)\n\n1. Deploy all `MerkleFunderDepository` contracts by running:\n\n   ```shell\n   NETWORK=<chainAlias> yarn deploy:merkle-funder-depositories\n   ```\n\n### Send funds to recipients\n\nAfter following all steps in [previous section](#deploy-contracts), and funding your MerkleFunderDepository contracts, run the following command:\n\n```shell\nyarn fund <chainName>\n```\n\nThis command will trigger funds to be sent to recipients defined in `config.json`\n\n### Deploy serverless function\n\nAnother way to trigger funds to be sent from a `MerkleFunderDepository` to a recipient address is to run the scheduled lambda function on a 1 minute interval\n\n1. Configure your AWS credentials\n\n1. Deploy the function by running:\n\n   ```shell\n   yarn sls:deploy --stage <stageName>\n   ```\n\n   Make sure that your environment variables are defined in your `.env` file.\n\n### Remove serverless function\n\nIf you want to remove the function from AWS then run the following command:\n\n```shell\nyarn sls:remove --stage <stageName>\n```\n\n## Local development\n\n- Start a local ethereum node by running `yarn hh:node`\n- The scripts can be then run using `localhost` as `chainName`\n  For example:\n\n  ```shell\n  yarn deploy:merkle-funder localhost\n  yarn deploy:merkle-funder-depositories localhost\n  yarn fund:merkle-funder-depositories localhost\n  yarn fund localhost\n  ```\n\n- There are 2 ways to test the lambda function locally:\n\n  1. `yarn sls:local` (uses serverless-offline plugin and this is the closest to actually deploying the function to AWS)\n  1. `yarn sls:invoke:fundHandler`\n\n  > In case you want to use different environment variables when testing this function locally then the easiest is to create a `.env.dev` file which will have precedence over `.env` when executing either of the two commands. Another alternative is to create a `.env.local` (or `.env.development`, etc) and set the stage to `local`. For example: `yarn sls:local --stage local`\n","readmeFilename":"README.md"}