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!
4 years ago