Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: adding Avail project #18

Merged
merged 1 commit into from
Nov 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions avail.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
specVersion: 1.0.0
name: subquery-proxy-avail
version: 1.0.0
runner:
node:
name: "@subql/node"
version: "*"
query:
name: "@subql/query"
version: v1.5.0
description: Nova SubQuery project
repository: https://github.com/nova-wallet/subquery-proxy
schema:
file: ./schema.graphql
network:
chainId: "0xb91746b45e0346cc2f815a520b9c6cb4d5c0902af848db0a80f85932d2e8276a"
endpoint: >-
wss://avail-mainnet.public.blastapi.io/
chaintypes:
file: ./dist/availChainTypes.js
dataSources:
- name: main
kind: substrate/Runtime
startBlock: 1
mapping:
file: ./dist/index.js
handlers:
- handler: handlePureProxyEvent
kind: substrate/EventHandler
filter:
module: proxy
method: PureCreated
- handler: handlePureProxyEvent
kind: substrate/EventHandler
filter:
module: proxy
method: AnonymousCreated
- handler: handleMultisigCall
kind: substrate/CallHandler
filter:
module: multisig
method: asMulti
success: true
isSigned: true
- handler: handleMultisigCall
kind: substrate/CallHandler
filter:
module: multisig
method: approveAsMulti
success: true
isSigned: true
- handler: handleMultisigCall
kind: substrate/CallHandler
filter:
module: multisig
method: cancelAsMulti
success: true
isSigned: true
- handler: handleMultisigCall
kind: substrate/CallHandler
filter:
module: multisig
method: asMultiThreshold1
success: true
isSigned: true
183 changes: 183 additions & 0 deletions chainTypes/availChainTypes.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,183 @@
import { OverrideBundleDefinition } from "@polkadot/types/types";

const definitions: OverrideBundleDefinition = {
types: [
{
minmax: [0, undefined],
types: {
"AppId": "Compact<u32>",
"DataLookupItem": {
"appId": "AppId",
"start": "Compact<u32>"
},
"CompactDataLookup": {
"size": "Compact<u32>",
"index": "Vec<DataLookupItem>"
},
"KateCommitment": {
"rows": "Compact<u16>",
"cols": "Compact<u16>",
"commitment": "Vec<u8>",
"dataRoot": "H256"
},
"V3HeaderExtension": {
"appLookup": "CompactDataLookup",
"commitment": "KateCommitment"
},
"HeaderExtension": {
"_enum": {
"V1": null,
"V2": null,
"V3": "V3HeaderExtension"
}
},
"DaHeader": {
"parentHash": "Hash",
"number": "Compact<BlockNumber>",
"stateRoot": "Hash",
"extrinsicsRoot": "Hash",
"digest": "Digest",
"extension": "HeaderExtension"
},
"Header": "DaHeader",
"CheckAppIdExtra": {
"appId": "AppId"
},
"CheckAppIdTypes": {},
"CheckAppId": {
"extra": "CheckAppIdExtra",
"types": "CheckAppIdTypes"
},
"BlockLengthColumns": "Compact<u32>",
"BlockLengthRows": "Compact<u32>",
"BlockLength": {
"max": "PerDispatchClass",
"cols": "BlockLengthColumns",
"rows": "BlockLengthRows",
"chunkSize": "Compact<u32>"
},
"PerDispatchClass": {
"normal": "u32",
"operational": "u32",
"mandatory": "u32"
},
"DataProof": {
"roots": "TxDataRoots",
"proof": "Vec<H256>",
"numberOfLeaves": "Compact<u32>",
"leafIndex": "Compact<u32>",
"leaf": "H256"
},
"TxDataRoots": {
"dataRoot": "H256",
"blobRoot": "H256",
"bridgeRoot": "H256"
},
"ProofResponse": {
"dataProof": "DataProof",
"message": "Option<AddressedMessage>"
},
"AddressedMessage": {
"message": "Message",
"from": "H256",
"to": "H256",
"originDomain": "u32",
"destinationDomain": "u32",
"id": "u64"
},
"Message": {
"_enum": {
"ArbitraryMessage": "ArbitraryMessage",
"FungibleToken": "FungibleToken"
}
},
"MessageType": {
"_enum": [
"ArbitraryMessage",
"FungibleToken"
]
},
"FungibleToken": {
"assetId": "H256",
"amount": "String"
},
"BoundedData": "Vec<u8>",
"ArbitraryMessage": "BoundedData",
"Cell": {
"row": "u32",
"col": "u32"
}
},
},
],
rpc: {
"kate": {
"blockLength": {
"description": "Get Block Length",
"params": [
{
"name": "at",
"type": "Hash",
"isOptional": true
}
],
"type": "BlockLength"
},
"queryProof": {
"description": "Generate the kate proof for the given `cells`",
"params": [
{
"name": "cells",
"type": "Vec<Cell>"
},
{
"name": "at",
"type": "Hash",
"isOptional": true
}
],
"type": "Vec<(U256, [u8; 48])>"
},
"queryDataProof": {
"description": "Generate the data proof for the given `transaction_index`",
"params": [
{
"name": "transaction_index",
"type": "u32"
},
{
"name": "at",
"type": "Hash",
"isOptional": true
}
],
"type": "ProofResponse"
},
"queryRows": {
"description": "Query rows based on their indices",
"params": [
{
"name": "rows",
"type": "Vec<u32>"
},
{
"name": "at",
"type": "Hash",
"isOptional": true
}
],
"type": "Vec<Vec<U256>>"
}
}
},
signedExtensions: {
"CheckAppId": {
"extrinsic": {
"appId": "AppId"
},
"payload": {}
}
}
};

export default { typesBundle: { spec: { "avail": definitions } } };
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
"author": "Novasama Technlogies",
"license": "MIT",
"devDependencies": {
"@polkadot/api": "^10",
"@polkadot/api": "^11",
"@subql/cli": "latest",
"@subql/testing": "latest",
"@subql/types": "latest",
Expand All @@ -49,6 +49,7 @@
"moonbeamChaintypes": "./chainTypes/moonbeamChaintypes.ts",
"bittensorChaintypes": "./chainTypes/bittensorChainTypes.ts",
"alephZeroChaintypes": "./chainTypes/alephZeroChaintypes.ts",
"kusamaAssetHubChaintypes": "./chainTypes/kusamaAssetHubChaintypes.ts"
"kusamaAssetHubChaintypes": "./chainTypes/kusamaAssetHubChaintypes.ts",
"availChainTypes": "./chainTypes/availChainTypes.ts"
}
}
Loading