Untitled
unknown
plain_text
a year ago
1.7 kB
7
Indexable
static async handleTBACreated({ event }) { const token_address = event.data[0]; const token_id = Utils.feltToInt({ low: event.data[1], high: event.data[2], }); const provider = new RpcProvider({ nodeUrl: CRAWLER.URL, }); const { abi: nft_contract_abi } = await provider.getClassAt(token_address); if (!nft_contract_abi) return null; const nft_contract_view = new Contract(nft_contract_abi, token_address, provider); const token_owner = await nft_contract_view.owner_of({ // token id low: event.data[1], high: event.data[2], }); const token_uri_array = await nft_contract_view.token_uri({ low: event.data[1], high: event.data[2], }); const token_uri = token_uri_array.map(Utils.feltToStr).join(''); const { data: nft_metadata } = await axios.get(token_uri); const { abi: registry_contract_abi } = await provider.getClassAt(process.env.REGISTRY_CONTRACT); if (!registry_contract_abi) return null; const registry_contract_view = new Contract(registry_contract_abi, process.env.REGISTRY_CONTRACT, provider); const tba_address = await registry_contract_view.get_account( process.env.TBA_CLASSHASH, token_address, // token id { low: event.data[1], high: event.data[2], } ) await Databases.saveTBA({ tba_address: '0x' + tba_address.toString(16), contract_address: token_address, token_id: token_id, owner_address: '0x' + token_owner.toString(16), tba_name: nft_metadata.name, tba_image: nft_metadata.image }) }
Editor is loading...
Leave a Comment