sumer-sdk
v6.0.3
Published
SDK that allows observing EVM-based provider requests
Downloads
14
Maintainers
Readme
1. Introduction
Sumer is the easiest way to integrate monitoring and get visibility to your dApp activity. It has been designed as an Observer Pattern-based SDK that allows users to observe Web3 Providers execution. Integration is done with just a few lines of code and directly into the dApp frontend
2. SDK Initialization
2.1. Prerequisites
To visualize the monitored activity, a Sumer dApp key is required. Go to Sumer App and complete the sign up process to create your Sumer dApp and get the key.
2.2. Installation
Add the sumer-sdk package to your project
npm i sumer-sdk
or
yarn add sumer-sdk
2.3. Initialization
Initialize the SumerSDK
import { Sumer } from 'sumer-sdk'
Sumer.init({ dappKey: 'YOUR_DAPP_KEY' })
3. SDK Integration
3.1. Integration with Web3 Libraries
The SDK currently has full support on Wagmi, Ethers and Web3-React Once integrated, all transactional activity will be observed and available for monitoring in the Sumer App
For Ethers and Web3-React integrations, once the SDK is initialized, you are set to go!
Wagmi Integration
The developer uses the wagmi.sh library as usual, no more software modifications are required
Client Integration
import { Sumer } from 'sumer-sdk'
const { chains, provider, webSocketProvider } = configureChains(
[mainnet],
[publicProvider()],
)
const client = createClient({
autoConnect: true,
connectors: [
new MetaMaskConnector({ chains }),
],
provider: Sumer.observe(provider),
webSocketProvider: Sumer.observe(webSocketProvider),
})
<WagmiConfig client={client}>
<YourDappComponents />
</WagmiConfig>
Furthermore, if you want to observe your contracts, you can do it as follows:
Contract Integration
import { Sumer } from 'sumer-sdk'
const contract = Sumer.contract(address, abi, chainId, signerOrProvider)
// use the contract instance as usual
const tx = contract.myFunction(...)
3.2. Custom Observers
The SDK allows the developer to create a customized observer targeting the desired object
import { Sumer, Observer, TargetExecution } from 'sumer-sdk'
class CustomObserver extends Observer {
public async inspect(execution: TargetExecution): Promise<void> {
// use execution object as needed
}
}
const client = createClient({
autoConnect: true,
connectors: [
new MetaMaskConnector({ chains }),
],
provider: Sumer.observe(provider, [new CustomObserver()]),
})
4. Contact
If you have any trouble integrating the SDK or visualizing the monitored activity, do not hesitate to contact the developers team. Also contact us for any features/support that you would like to request. General Contact - [email protected]
Developers Team - [email protected] Twitter Profile - twitter
LinkedIn Profile - linkedin Sumer Website - website GitHub Repository - repository
Documentation - documentation
5. License
Distributed under the GNU GENERAL PUBLIC LICENSE. See LICENSE
for more information.