ethereum-read-functions v0.0.1
Read smart contract functions from the ethereum and every other evm blockchain.
Fetch tokenURI and Name
require( 'dotenv' ).config( { path: '.env' } )
const { readFunction } = require( 'ethereum-read-functions' )
const config = {
'cmds': [ 'tokenURI(1)', 'name()' ],
'network': 'homestead',
'address': '0xFF9C1b15B16263C61d017ee9F65C50e4AE0113D7',
'etherscan_api_key': process.env.ETHERSCAN_API_KEY,
'infura_project_id': process.env.INFURA_PROJECT_ID,
'infura_project_secret': process.env.INFURA_PROJECT_SECRET,
}
readFunction( config )
.then( ( result ) => console.log( result ) )
.catch( ( e ) => console.log( e ) )
Unverified source code on Etherscan
Set try blind
to true
require( 'dotenv' ).config( { path: '.env' } )
const { readFunction } = require( 'ethereum-read-functions' )
const config = {
'cmds': [ 'tokenURI(19)' ],
'network': 'homestead',
'address': '0x4ef107a154cb7580c686c239ed9f92597a42b961',
'etherscan_api_key': process.env.ETHERSCAN_API_KEY,
'infura_project_id': process.env.INFURA_PROJECT_ID,
'infura_project_secret': process.env.INFURA_PROJECT_SECRET,
'try_blind': true,
}
readFunction( config )
.then( ( result ) => console.log( result ) )
.catch( ( e ) => console.log( e ) )
Fetch all viewable Functions
require( 'dotenv' ).config( { path: '.env' } )
const { readFunction } = require( 'ethereum-read-functions' )
const config = {
'cmds': [],
'network': 'homestead',
'address': '0x4ef107a154cb7580c686c239ed9f92597a42b961',
'etherscan_api_key': process.env.ETHERSCAN_API_KEY,
'infura_project_id': process.env.INFURA_PROJECT_ID,
'infura_project_secret': process.env.INFURA_PROJECT_SECRET,
'try_all': true
}
readFunction( config )
.then( ( result ) => console.log( result ) )
.catch( ( e ) => console.log( e ) )
require( 'dotenv' ).config( { path: '.env' } )
const { readFunction } = require( 'ethereum-read-functions' )
readFunction( {
'cmds': [ 'tokenURI(19)' ],
'network': 'homestead',
'address': '0x4ef107a154cb7580c686c239ed9f92597a42b961',
'etherscan_api_key': process.env.ETHERSCAN_API_KEY,
'infura_project_id': process.env.INFURA_PROJECT_ID,
'infura_project_secret': process.env.INFURA_PROJECT_SECRET,
} )
.then( ( result ) => console.log( result ) )
.catch( ( e ) => console.log( e ) )
npm i ethereum-read-functions
{
'cmds': null,
'address': null,
'network': 'homestead',
'etherscan_api_key': process.env.ETHERSCAN_API_KEY,
'infura_project_id': process.env.INFURA_PROJECT_ID,
'infura_project_secret': process.env.INFURA_PROJECT_SECRET,
'silent': false,
'shrink': true,
'try_blind': true,
'try_all': true
}
Validation
| Name | Type | Required | Default | Description |
|------:|:------|:------|:------|:------|
| cmds | Array of numbers or strings
| No | [] | Set here your function names. If you set 1
it will interpreted as tokenURI(1)
. Please cast long int to string. |
| address | String
| Yes | | Set smart contract address here |
| network | String
| Yes | "Homestead"
| Choose network. Homestead === Ethereum Mainnet
, visit etherjs documentation for more Informations |
| etherscan_api_key | String
| Yes | ""
| Some request will work without api key. More Informations to Etherscan Api you can find here |
| infura_project_id | String
| Yes | ""
| More Informations to Infura´s Api you can find here |
| infura_secret_id | String
| Yes | ""
| More Informations to Infura´s Api you can find here |
| silent | Boolean
| no | false
| By default console output will print helpful status messages. |
| shrink | Boolean
| no | true
| Reduces to size of the result. |
| try_blind | Boolean
| no | false
| Experimental! If no ABIs was found (means Etherscan source code is verified) the algorithm uses a default ABIs to guess the ABI and fetch only a tokenURI call. |
| try_all | Boolean
| no | false
| Experimental! Search inside of ABIs for viewable function without parameters and fetch them all automatically. |
Bug reports and pull requests are welcome on GitHub at https://github.com/a6b8/ethereum-read-functions. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.
- Not tested for production
- Works only with Infura and Etherscan.
- Build for NFT request only.
- Function are executed with ether.js
ABIs are fetched from Etherscan once for every address.
The module is available as open source under the terms of the MIT License.
Please ⭐️ star this Project, every ⭐️ star makes us very happy!
2 years ago