Skip to content

Commit f14edbe

Browse files
committed
feat: 🎸 dart confidential asset
1 parent ffb4d1f commit f14edbe

File tree

4 files changed

+1098
-0
lines changed

4 files changed

+1098
-0
lines changed

‎project.ts‎

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,33 @@ const filters = {
142142
VenuesBlocked: ['handleVenuesBlocked'],
143143
FundsMoved: ['handleConfidentialAssetMoveFunds'],
144144
},
145+
confidentialAssets: {
146+
AccountAssetRegistered: ['handleDartAccountAssetRegistered'],
147+
AccountCurveTreeRootUpdated: ['handleDartAccountCurveTreeRootUpdated'],
148+
AccountRegistered: ['handleDartAccountRegistered'],
149+
AccountStateLeafInserted: ['handleDartAccountStateLeafInserted'],
150+
AssetCreated: ['handleDartAssetCreated'],
151+
AssetCurveTreeRootUpdated: ['handleDartAssetCurveTreeRootUpdated'],
152+
AssetMinted: ['handleDartAssetMinted'],
153+
AssetStateLeafUpdated: ['handleDartAssetStateLeafUpdated'],
154+
AssetUpdated: ['handleDartAssetUpdated'],
155+
EncryptionKeyRegistered: ['handleDartEncryptionKeyRegistered'],
156+
FeeAccountCurveTreeRootUpdated: ['handleDartFeeAccountCurveTreeRootUpdated'],
157+
FeeAccountDeposited: ['handleDartFeeAccountDeposited'],
158+
FeeAccountStateLeafInserted: ['handleDartFeeAccountStateLeafInserted'],
159+
FeeAccountUpdated: ['handleDartFeeAccountUpdated'],
160+
FeeAccountWithdrawn: ['handleDartFeeAccountWithdrawn'],
161+
MediatorAffirmed: ['handleDartMediatorAffirmed'],
162+
MediatorRejected: ['handleDartMediatorRejected'],
163+
ReceiverAffirmed: ['handleDartReceiverAffirmed'],
164+
ReceiverClaimed: ['handleDartReceiverClaimed'],
165+
RelayerBatchedProofs: ['handleDartRelayerBatchedProofs'],
166+
SenderAffirmed: ['handleDartSenderAffirmed'],
167+
SenderCounterUpdated: ['handleDartSenderCounterUpdated'],
168+
SenderReverted: ['handleDartSenderReverted'],
169+
SettlementCreated: ['handleDartSettlementCreated'],
170+
SettlementStatusUpdated: ['handleDartSettlementStatusUpdated'],
171+
},
145172
corporateAction: {
146173
CAInitiated: [],
147174
CALinkedToDoc: [],

‎schema.graphql‎

Lines changed: 278 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3033,6 +3033,284 @@ type ConfidentialAssetMovement @entity {
30333033
createdEvent: Event!
30343034
}
30353035

3036+
## DART confidential assets ##
3037+
3038+
enum DartLegActionEnum {
3039+
SenderAffirmed
3040+
SenderReverted
3041+
SenderCounterUpdated
3042+
MediatorAffirmed
3043+
MediatorRejected
3044+
ReceiverAffirmed
3045+
ReceiverClaimed
3046+
}
3047+
3048+
"""
3049+
Represents an encryption key registered on the DART confidential assets pallet
3050+
"""
3051+
type DartConfidentialEncryptionKey @entity {
3052+
id: ID!
3053+
caller: Identity!
3054+
eventIdx: Int!
3055+
createdBlock: Block!
3056+
updatedBlock: Block!
3057+
createdEvent: Event!
3058+
}
3059+
3060+
"""
3061+
Represents a confidential account registered on the DART confidential assets pallet
3062+
"""
3063+
type DartConfidentialAccount @entity {
3064+
id: ID!
3065+
caller: Identity!
3066+
encryptionKey: String!
3067+
eventIdx: Int!
3068+
createdBlock: Block!
3069+
updatedBlock: Block!
3070+
createdEvent: Event!
3071+
assets: [DartConfidentialAccountAsset!]! @derivedFrom(field: "account")
3072+
}
3073+
3074+
"""
3075+
Links a confidential account to an asset registration
3076+
"""
3077+
type DartConfidentialAccountAsset @entity {
3078+
id: ID!
3079+
account: DartConfidentialAccount!
3080+
assetId: Int!
3081+
caller: Identity!
3082+
eventIdx: Int!
3083+
createdBlock: Block!
3084+
updatedBlock: Block!
3085+
createdEvent: Event!
3086+
}
3087+
3088+
"""
3089+
Stores account curve tree root updates
3090+
"""
3091+
type DartConfidentialAccountCurveRoot @entity {
3092+
id: ID!
3093+
root: String!
3094+
eventIdx: Int!
3095+
createdBlock: Block!
3096+
updatedBlock: Block!
3097+
createdEvent: Event!
3098+
}
3099+
3100+
"""
3101+
Stores account state leaf insertions
3102+
"""
3103+
type DartConfidentialAccountStateLeaf @entity {
3104+
id: ID!
3105+
leafIndex: BigInt!
3106+
commitment: String!
3107+
eventIdx: Int!
3108+
createdBlock: Block!
3109+
updatedBlock: Block!
3110+
createdEvent: Event!
3111+
}
3112+
3113+
"""
3114+
Represents a confidential asset created on the DART confidential assets pallet
3115+
"""
3116+
type DartConfidentialAsset @entity {
3117+
id: ID!
3118+
assetId: Int!
3119+
caller: Identity!
3120+
mediators: [String!]
3121+
auditors: [String!]
3122+
name: String!
3123+
symbol: String!
3124+
decimals: Int!
3125+
data: String
3126+
totalSupply: BigInt
3127+
eventIdx: Int!
3128+
createdBlock: Block!
3129+
updatedBlock: Block!
3130+
createdEvent: Event!
3131+
mints: [DartConfidentialAssetMint!]! @derivedFrom(field: "asset")
3132+
}
3133+
3134+
"""
3135+
Captures updates to mediators/auditors for a confidential asset
3136+
"""
3137+
type DartConfidentialAssetUpdate @entity {
3138+
id: ID!
3139+
asset: DartConfidentialAsset!
3140+
mediators: [String!]
3141+
auditors: [String!]
3142+
eventIdx: Int!
3143+
createdBlock: Block!
3144+
updatedBlock: Block!
3145+
createdEvent: Event!
3146+
}
3147+
3148+
"""
3149+
Stores asset curve tree root updates
3150+
"""
3151+
type DartConfidentialAssetCurveRoot @entity {
3152+
id: ID!
3153+
root: String!
3154+
eventIdx: Int!
3155+
createdBlock: Block!
3156+
updatedBlock: Block!
3157+
createdEvent: Event!
3158+
}
3159+
3160+
"""
3161+
Stores asset state leaf updates
3162+
"""
3163+
type DartConfidentialAssetStateLeaf @entity {
3164+
id: ID!
3165+
leafIndex: BigInt!
3166+
leaf: String!
3167+
eventIdx: Int!
3168+
createdBlock: Block!
3169+
updatedBlock: Block!
3170+
createdEvent: Event!
3171+
}
3172+
3173+
"""
3174+
Represents a mint of a DART confidential asset
3175+
"""
3176+
type DartConfidentialAssetMint @entity {
3177+
id: ID!
3178+
asset: DartConfidentialAsset! @index(unique: false)
3179+
account: DartConfidentialAccount
3180+
caller: Identity!
3181+
amount: BigInt!
3182+
totalSupply: BigInt!
3183+
eventIdx: Int!
3184+
createdBlock: Block!
3185+
updatedBlock: Block!
3186+
createdEvent: Event!
3187+
}
3188+
3189+
"""
3190+
Represents a fee account registration or top-up event
3191+
"""
3192+
type DartConfidentialFeeAccount @entity {
3193+
id: ID!
3194+
account: String!
3195+
caller: Identity!
3196+
isRegistration: Boolean!
3197+
amount: BigInt!
3198+
eventIdx: Int!
3199+
createdBlock: Block!
3200+
updatedBlock: Block!
3201+
createdEvent: Event!
3202+
}
3203+
3204+
"""
3205+
Stores fee account curve tree root updates
3206+
"""
3207+
type DartConfidentialFeeAccountCurveRoot @entity {
3208+
id: ID!
3209+
root: String!
3210+
eventIdx: Int!
3211+
createdBlock: Block!
3212+
updatedBlock: Block!
3213+
createdEvent: Event!
3214+
}
3215+
3216+
"""
3217+
Stores fee account state leaf insertions
3218+
"""
3219+
type DartConfidentialFeeAccountStateLeaf @entity {
3220+
id: ID!
3221+
leafIndex: BigInt!
3222+
commitment: String!
3223+
eventIdx: Int!
3224+
createdBlock: Block!
3225+
updatedBlock: Block!
3226+
createdEvent: Event!
3227+
}
3228+
3229+
"""
3230+
Captures deposits into the fee account
3231+
"""
3232+
type DartConfidentialFeeAccountDeposit @entity {
3233+
id: ID!
3234+
sender: String!
3235+
amount: BigInt!
3236+
eventIdx: Int!
3237+
createdBlock: Block!
3238+
updatedBlock: Block!
3239+
createdEvent: Event!
3240+
}
3241+
3242+
"""
3243+
Captures withdrawals from the fee account
3244+
"""
3245+
type DartConfidentialFeeAccountWithdraw @entity {
3246+
id: ID!
3247+
receiver: String!
3248+
amount: BigInt!
3249+
eventIdx: Int!
3250+
createdBlock: Block!
3251+
updatedBlock: Block!
3252+
createdEvent: Event!
3253+
}
3254+
3255+
"""
3256+
Captures actions on a settlement leg
3257+
"""
3258+
type DartConfidentialLegAction @entity {
3259+
id: ID!
3260+
legRef: String!
3261+
action: DartLegActionEnum!
3262+
keyIndex: Int
3263+
eventIdx: Int!
3264+
createdBlock: Block!
3265+
updatedBlock: Block!
3266+
createdEvent: Event!
3267+
}
3268+
3269+
"""
3270+
Captures relayer batch submissions
3271+
"""
3272+
type DartConfidentialRelayerBatch @entity {
3273+
id: ID!
3274+
relayer: String!
3275+
amount: BigInt!
3276+
batchHash: String!
3277+
batchResult: String
3278+
eventIdx: Int!
3279+
createdBlock: Block!
3280+
updatedBlock: Block!
3281+
createdEvent: Event!
3282+
}
3283+
3284+
"""
3285+
Represents a confidential settlement on DART
3286+
"""
3287+
type DartConfidentialSettlement @entity {
3288+
id: ID!
3289+
settlementRef: String!
3290+
memo: String
3291+
assetRootBlock: Int!
3292+
legs: [String!]!
3293+
status: String
3294+
eventIdx: Int!
3295+
createdBlock: Block!
3296+
updatedBlock: Block!
3297+
createdEvent: Event!
3298+
statuses: [DartConfidentialSettlementStatus!]! @derivedFrom(field: "settlement")
3299+
}
3300+
3301+
"""
3302+
Tracks settlement status changes
3303+
"""
3304+
type DartConfidentialSettlementStatus @entity {
3305+
id: ID!
3306+
settlement: DartConfidentialSettlement!
3307+
status: String!
3308+
eventIdx: Int!
3309+
createdBlock: Block!
3310+
updatedBlock: Block!
3311+
createdEvent: Event!
3312+
}
3313+
30363314
"""
30373315
Represent asset pre-approvals from an Identity. These entries will not require an affirmation when the identity is receiving them
30383316
"""

0 commit comments

Comments
 (0)