Невозможно сравнить 2 адреса в коде солидности

Почему результаты различаются в следующем:

truffle(development)> l.ownerOf(t) == l.ownerOf(t)
false
truffle(development)> l.ownerOf(t) != l.ownerOf(t)
true

Другая версия:

truffle(development)> var l1 = l.ownerOf(t)
undefined
truffle(development)> l1
'0xf17f52151ebef6c7334fad080c5704d77216b732'
truffle(development)> l1==l1
true
truffle(development)> var l2 = l.ownerOf(t)
undefined
truffle(development)> l1==l2
false
truffle(development)> l2
'0xf17f52151ebef6c7334fad080c5704d77216b732'

Я не могу сравнить два одинаковых адреса из функции просмотра с одинаковыми параметрами.

Ответы (1)

Я считаю, что это связано с тем фактом, что и l1, и l2 на самом деле являются промисами, хотя они регистрируют свои результаты. Эта логика работает:

truffle(development)> l.ownerOf(t).then(function(i){lll = i})
undefined
truffle(development)> l.ownerOf(t).then(function(i){ll = i})
undefined
truffle(development)> ll==lll
true