graphprotocol / graphprotocol/graph-node

[Bug] Derived loader doesn't behave as expected

Đang mở
#5,608 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

bug Stale
Ngôn ngữ chính
Rust
Star
3.2k
Fork
1.1k
Merge trung bình
4 ngày 1 giờ
Pull request đã merge (30 ngày)
1

Mô tả

Bug report

When using a derived loader I get a confusing error. My basic setup is this:

// SCHEMA
type Pool {
  # `Pool-${token0.toHexString()}-${token1.toHexString()}`
  id: ID!
  stakingPool: StakingPool
}
type StakingPool {
  id: Bytes!
  liquidityPool: Pool!
}

// WHEN ADDING THE POOL FIRST
poolEntity.stakingPool = idOfFutureStakingPool;


const stakingPool = StakingPool.load(poolAddress)!;
const lp = stakingPool.liquidityPool.load()[0];

The last line is crashing with the error:
Mapping aborted at ~lib/@graphprotocol/graph-ts/common/value.ts, line 80, column 5, with message: Value is not a string.

What am I doing wrong? I didn't find any documentation for this modifier or any other for the subgraph. Also if I did anything wrong shouldn't the loader return an empty array instead of exploding in my face?

Using the derived field works well (in inspecting the store) but using the loader doesn't.

Relevant log output

No response

IPFS hash

No response

Subgraph name or link to explorer

No response

Some information to help us out
  • Tick this box if this bug is caused by a regression found in the latest release.
  • Tick this box if this bug is specific to the hosted service.
  • I have searched the issue tracker to make sure this issue is not a duplicate.
OS information

Linux

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Bắt đầu bằng cách tái hiện ví dụ derived-loader từ issue, sau đó kiểm tra lib/@graphprotocol/graph-ts/common/value.ts quanh dòng 80, nơi xảy ra lỗi được báo cáo. Theo dõi cách stakingPool.liquidityPool.load() xử lý schema và mapping được trình bày; hoàn thành nghĩa là xác định liệu vấn đề nằm ở cách sử dụng hay loader, đồng thời lập tài liệu hoặc sửa hành vi dự kiến.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Lĩnh vực
blockchain
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
20/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.