Skip to content

Commit

Permalink
chore: Add metadata matrixV1003 (#769)
Browse files Browse the repository at this point in the history
  • Loading branch information
justraman authored Dec 18, 2023
1 parent da0abad commit 608f5e2
Show file tree
Hide file tree
Showing 12 changed files with 8,416 additions and 96 deletions.
4 changes: 4 additions & 0 deletions src/mappings/fuelTanks/common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,10 @@ export function getTankDataFromCall(ctx: CommonContext, call: Call) {
data = new FuelTanksDispatchAndTouchCall(ctx, call)
}

if (data.isMatrixEnjinV1003) {
return data.asMatrixEnjinV1003
}

if (data.isMatrixEnjinV1000) {
return data.asMatrixEnjinV1000
}
Expand Down
4 changes: 4 additions & 0 deletions src/mappings/fuelTanks/events/fuelTankCreated.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,10 @@ function getCallData(ctx: CommonContext, call: Call) {
}
}

if (data.isMatrixEnjinV1003) {
return data.asMatrixEnjinV1003
}

if (data.isMatrixEnjinV1000) {
return data.asMatrixEnjinV1000
}
Expand Down
4 changes: 4 additions & 0 deletions src/mappings/fuelTanks/events/ruleSetInserted.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ function getEventData(ctx: CommonContext, event: Event) {
function getCallData(ctx: CommonContext, call: Call) {
const data = new FuelTanksInsertRuleSetCall(ctx, call)

if (data.isMatrixEnjinV1003) {
return data.asMatrixEnjinV1003
}

if (data.isMatrixEnjinV1000) {
return data.asMatrixEnjinV1000
}
Expand Down
20 changes: 20 additions & 0 deletions src/mappings/multiTokens/events/collection_created.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,26 @@ async function getCallData(ctx: CommonContext, call: Call) {
data = new FuelTanksDispatchAndTouchCall(ctx, call)
}

if (
data.isMatrixEnjinV1003 &&
data.asMatrixEnjinV1003.call.__kind === 'MultiTokens' &&
data.asMatrixEnjinV1003.call.value.__kind === 'create_collection'
) {
const { descriptor } = data.asMatrixEnjinV1003.call.value
const { maxTokenCount, maxTokenSupply, forceSingleMint } = descriptor.policy.mint
const royalty = descriptor.policy.market?.royalty
const market = royalty ? await getMarket(ctx, royalty) : null
const { explicitRoyaltyCurrencies } = descriptor

return {
maxTokenCount,
maxTokenSupply,
forceSingleMint,
market,
explicitRoyaltyCurrencies,
}
}

if (
data.isMatrixEnjinV1000 &&
data.asMatrixEnjinV1000.call.__kind === 'MultiTokens' &&
Expand Down
99 changes: 99 additions & 0 deletions src/mappings/multiTokens/events/token_created.ts
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,39 @@ async function getCallData(ctx: CommonContext, call: Call, event: ReturnType<typ
data = new FuelTanksDispatchAndTouchCall(ctx, call)
}

if (
data.isMatrixEnjinV1003 &&
data.asMatrixEnjinV1003.call.__kind === 'MultiTokens' &&
(data.asMatrixEnjinV1003.call.value.__kind === 'mint' || data.asMatrixEnjinV1003.call.value.__kind === 'force_mint')
) {
const { collectionId } = data.asMatrixEnjinV1003.call.value
const recipient = data.asMatrixEnjinV1003.call.value.recipient.value as Uint8Array
const params = data.asMatrixEnjinV1003.call.value.params as DefaultMintParamsCreateToken_v500
const cap = params.cap ? getCapType(params.cap) : null
const behavior = params.behavior ? await getBehavior(ctx, params.behavior) : null
const freezeState = params.freezeState ? getFreezeState(params.freezeState) : null
let unitPrice: bigint | null = 10_000_000_000_000_000n
let minimumBalance = 1n

if (params.sufficiency.__kind === 'Sufficient') {
minimumBalance = (params.sufficiency as SufficiencyParam_Sufficient).minimumBalance
unitPrice = null
}

return {
recipient,
collectionId,
tokenId: params.tokenId,
initialSupply: params.initialSupply,
minimumBalance,
unitPrice,
cap,
behavior,
freezeState,
listingForbidden: params.listingForbidden ?? false,
}
}

if (
data.isMatrixEnjinV1000 &&
data.asMatrixEnjinV1000.call.__kind === 'MultiTokens' &&
Expand Down Expand Up @@ -339,6 +372,43 @@ async function getCallData(ctx: CommonContext, call: Call, event: ReturnType<typ
}
}

if (
data.isMatrixEnjinV1003 &&
data.asMatrixEnjinV1003.call.__kind === 'MultiTokens' &&
data.asMatrixEnjinV1003.call.value.__kind === 'batch_mint'
) {
const { collectionId, recipients } = data.asMatrixEnjinV1003.call.value
const recipientCall = recipients.find((r) => r.params.tokenId === event.tokenId && r.params.__kind === 'CreateToken')

if (recipientCall) {
const recipient = recipientCall.accountId
const params = recipientCall.params as DefaultMintParamsCreateToken_Enjin_v603
const cap = params.cap ? getCapType(params.cap) : null
const behavior = params.behavior ? await getBehavior(ctx, params.behavior) : null
const freezeState = params.freezeState ? getFreezeState(params.freezeState) : null
let unitPrice: bigint | null = 10_000_000_000_000_000n
let minimumBalance = 1n

if (params.sufficiency.__kind === 'Sufficient') {
minimumBalance = (params.sufficiency as SufficiencyParam_Sufficient).minimumBalance
unitPrice = null
}

return {
recipient,
collectionId,
tokenId: params.tokenId,
initialSupply: params.initialSupply,
minimumBalance,
unitPrice,
cap,
behavior,
freezeState,
listingForbidden: params.listingForbidden ?? false,
}
}
}

if (
data.isMatrixEnjinV1000 &&
data.asMatrixEnjinV1000.call.__kind === 'MultiTokens' &&
Expand Down Expand Up @@ -486,6 +556,35 @@ async function getCallData(ctx: CommonContext, call: Call, event: ReturnType<typ
if (call.name === 'MultiTokens.force_mint') {
data = new MultiTokensForceMintCall(ctx, call)

if (data.isMatrixEnjinV1003) {
const { collectionId } = data.asMatrixEnjinV1003
const recipient = data.asMatrixEnjinV1003.recipient.value as Uint8Array
const params = data.asMatrixEnjinV1003.params as DefaultMintParamsCreateToken_v500
const cap = params.cap ? getCapType(params.cap) : null
const behavior = params.behavior ? await getBehavior(ctx, params.behavior) : null
const freezeState = params.freezeState ? getFreezeState(params.freezeState) : null
let unitPrice: bigint | null = 10_000_000_000_000_000n
let minimumBalance = 1n

if (params.sufficiency.__kind === 'Sufficient') {
minimumBalance = (params.sufficiency as SufficiencyParam_Sufficient).minimumBalance
unitPrice = null
}

return {
recipient,
collectionId,
tokenId: params.tokenId,
initialSupply: params.initialSupply,
minimumBalance,
unitPrice,
cap,
behavior,
freezeState,
listingForbidden: params.listingForbidden ?? false,
}
}

if (data.isMatrixEnjinV603) {
const { collectionId } = data.asMatrixEnjinV603
const recipient = data.asMatrixEnjinV603.recipient.value as Uint8Array
Expand Down
9 changes: 9 additions & 0 deletions src/mappings/xcm/events/attempted.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,15 @@ async function getCallData(ctx: CommonContext, call: Call) {
data = new FuelTanksDispatchAndTouchCall(ctx, call)
}

if (
data.isMatrixEnjinV1003 &&
data.asMatrixEnjinV1003.call.__kind === 'PolkadotXcm' &&
(data.asMatrixEnjinV1003.call.value.__kind === 'teleport_assets' ||
data.asMatrixEnjinV1003.call.value.__kind === 'limited_teleport_assets')
) {
return data.asMatrixEnjinV1003.call.value
}

if (
data.isMatrixEnjinV1000 &&
data.asMatrixEnjinV1000.call.__kind === 'PolkadotXcm' &&
Expand Down
Loading

0 comments on commit 608f5e2

Please sign in to comment.