Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

148
Views
¿Cómo transferir ERC20 a contrato desplegado con trufa?

Estoy usando trufa para implementar un conjunto de contratos inteligentes.

Estos contratos deben financiarse con un token ERC20 (LINK). La cuenta que está implementando los contratos tiene LINK y debe transferir una cantidad al contrato.

 const DemoNFT = artifacts.require("./DemoNFT.sol"); const IdentityProvider = artifacts.require("./IdentityProvider.sol"); const Web3 = require("web3"); const allConfigs = require("../config.json"); const linkABI = require("../abi/link.abi"); module.exports = async function(deployer, network) { const config = allConfigs[network.replace(/-fork$/, '')] || allConfigs.default; const provider = await IdentityProvider.deployed(); const linkToken = new web3.eth.Contract(linkABI, config.token); for (let i = 0; i < config.nfts.length; i++) { const settings = config.nfts[i]; await deployer.deploy(DemoNFT, settings.name, settings.symbol); const nft = await DemoNFT.deployed(); await nft.setupVerification(provider.address, config.token, config.oracle, config.jobId, Web3.utils.toBN(config.fee)); await linkToken.methods.transfer(nft.address, Web3.utils.toBN(config.fee).muln(10)).send(); } };

Llamar a esto da como resultado un error, indicando que no se ha proporcionado ninguna dirección para send() y que no hay una dirección predeterminada.

 Replacing 'DemoNFT' ------------------- > block number: 33383565 > block timestamp: 1661007148 > account: 0x7775fccbfa977fEA0676CD9e2768A19008d47C7F > balance: 100.946846325862723725 > gas used: 5022789 (0x4ca445) > gas price: 2 gwei > value sent: 0 ETH > total cost: 0.010045578 ETH Error: No "from" address specified in neither the given options, nor the default options.

Configuré una semilla para el proveedor en truffle.js, lo que da como resultado esta dirección.

 provider: function() { return new HDWalletProvider( process.env.MNEMONIC, `https://rinkeby.infura.io/v3/${process.env.INFURA_ID}` ) },

Sin embargo, web3.eth.getCoinbase() (y web3.eth.getAccounts() ) devuelve una dirección completamente diferente.

¿Cómo puedo transferir tokens desde la billetera configurada para el proveedor al contrato recién implementado en este script de migración de trufas?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Creo que esto podría causar problemas:

 const DemoNFT = artifacts.require("./DemoNFT.sol");

está pasando la ubicación relativa del archivo pero debería pasar el nombre del contrato

 const DemoNFT = artifacts.require("nameOfSolidityContract");

si su nombre es DemoNFT

 artifacts.require("DemoNFT")

De los documentos:

El nombre especificado debe coincidir con el nombre de la definición del contrato dentro de ese archivo fuente. No pase el nombre del archivo de origen, ya que los archivos pueden contener más de un contrato.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!