I need help here.. I am following the functionality of this Relayer example
but I can't get the SimpleRegistry
contract, where can I see it?
I have also been guided by the library doc, which has been updated..
my goal is to use the relayer! thanks in advance for any help!
Hey @luislucena! We recommend to use the Defender SDK instead of the individual packages. Check out this example on how to deploy a smart contract via the SDK with a Relayer.
hey @cairoeth thank you for your quick response! I am using it this way:
const { DefenderRelayProvider, DefenderRelaySigner } = require('@openzeppelin/defender-relay-client/lib/ethers');
const { ethers } = require('hardhat');
const {writeFileSync} = require('fs');
async function main() {
require('dotenv').config();
const credentials = {apiKey: process.env.RELAYER_API_KEY, apiSecret: process.env.RELAYER_API_SECRET};
const provider = new DefenderRelayProvider(credentials);
const relaySigner = new DefenderRelaySigner(credentials, provider, { speed: 'fast' });
const arg1 = '0xaBd1f38A9fE993447590FC63e25e0cCc3163FB23'; // example address
const arg2 = '0xb6d3feB9A00810Da88352E2C918C669AF06b8224'; // example address
const Marketplace = await ethers.getContractFactory("Marketplace");
const marketplace = await Marketplace.connect(relaySigner).deploy(arg1, arg2).then(f => f.deployed());
writeFileSync('deploy.json', JSON.stringify({
Marketplace: marketplace.address,
}, null, 2));
console.log(`Marketplace: ${marketplace.address}\n`);
}
if (require.main === module) {
main().then(() => process.exit(0))
.catch(error => { console.error(error); process.exit(1); });
}
I tried deploying my contract with the relayer and it worked fine! I funded my relayer with the currency I specified when I created it and it discounted everything fine!
would this work the same if i pay for user transactions?
For example if in my contract there are interactions with USDC and I pay the fees in the native currency of the network.
Some extra points to consider? All feedback is welcome.. Thanks in advance!