ارتباط با web3js

من یه قرارداد ساده نوشتم و قصد دارم با web3js بهش وصل بشم
در ترمینال node این دستورات رو می‌زنم:

var Web3 = require('web3')
var fs = require('fs')
var url  = 'http://127.0.0.1:8545'
var web3 = new Web3(rul)
var address = '0x380A2ffeAe9A65291Ea863212Aad0d4Fa275b205'
var contractJson = fs.readFileSync('address of my contract.json')
var contractAbi = JSON.parse(contractJson)
var contract = new web3.eth.Contract(contractAbi, contractAddress)

و با خطای زیر مواجه می‌شم

Error: You must provide the json interface of the contract when instantiating a contract object.

شما در خط زیر باید مسیر فایل JSON مرتبط با ABI قراردادتون رو وارد کنید.

2 پسندیده

شایان جان مسیر رو توی کد درست گذاشتم. اینجا برای کوتاه‌تر شدن اینجوری نوشتم
مشکل انگار اینجاست که فایل contract.json برای اینکه درست پارس بشه، باید اونو توی براکت ‘[ ]’ قرار بدیم، بعد پارس کنیم
اینو از اینجا فهمیدم که وقتی ABI یه توکن موجود رو میری از etherscan کپی می‌کنی، اول و آخرش براکت داره اما فایل json مربوط به کانترکتی که توسط truffle ساخته می‌شه اینطور نیست

1 پسندیده

مشکل اینجاست که شما کل فایلی که ترافل میسازه رو دارید استفاده می کنید
باید از داخل اون فایل ABI رو بیارید بیرون و از اون استفاده کنید
داخل این پست توضیح داده شده نحوه استفاده از ABI

2 پسندیده

بله مشکل من اینجا بود که همه‌ی فایل ساخته شده توسط ترافل رو برمی‌داشتم
ممنون