From 5dd28ae2ceae503efb3e08e457a3a401c33f792b Mon Sep 17 00:00:00 2001 From: Viki Val Date: Tue, 11 Apr 2023 22:36:24 +0200 Subject: [PATCH 1/2] :zap: realAddress consolidator --- src/mappings/utils/consolidator.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/mappings/utils/consolidator.ts b/src/mappings/utils/consolidator.ts index 9e36030d..f2a7a042 100644 --- a/src/mappings/utils/consolidator.ts +++ b/src/mappings/utils/consolidator.ts @@ -24,6 +24,10 @@ export function isIssuer(entity: Entity, caller: string) { return entity.issuer === caller } +export function realAddress(address?: string): boolean { + return !!address && isAddress(address) +} + export function isOwnerOrElseError(entity: Entity, caller: string) { if (!isOwner(entity, caller)) { throw new ReferenceError(`[CONSOLIDATE Bad Owner] Entity: ${entity.currentOwner} Caller: ${caller}`) From 11593a85cc9a83a9cc562f0082f78b45055243e9 Mon Sep 17 00:00:00 2001 From: Viki Val Date: Tue, 11 Apr 2023 22:37:09 +0200 Subject: [PATCH 2/2] :zap: validate that is real address --- src/mappings/v1/send.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/mappings/v1/send.ts b/src/mappings/v1/send.ts index 6b81713b..07e46a35 100644 --- a/src/mappings/v1/send.ts +++ b/src/mappings/v1/send.ts @@ -1,13 +1,14 @@ import { getOrFail as get } from '@kodadot1/metasquid/entity' import { Optional } from '@kodadot1/metasquid/types' +import { plsBe } from '@kodadot1/metasquid/consolidator' import { NFTEntity } from '../../model' +import { createEvent } from '../shared/event' import { unwrap } from '../utils' -import { isOwnerOrElseError, validateInteraction } from '../utils/consolidator' +import { isOwnerOrElseError, realAddress, validateInteraction } from '../utils/consolidator' import { getInteraction } from '../utils/getters' import { error, success } from '../utils/logger' import { Action, Context, RmrkInteraction } from '../utils/types' -import { createEvent } from '../shared/event' const OPERATION = Action.SEND @@ -21,6 +22,7 @@ export async function send(context: Context) { const nft = await get(context.store, NFTEntity, interaction.id) validateInteraction(nft, interaction) isOwnerOrElseError(nft, caller) + plsBe(realAddress, interaction.value) const originalOwner = nft.currentOwner ?? undefined nft.currentOwner = interaction.value nft.price = BigInt(0)