From 1b7daeffd35f0634beac4ad20c479391a77613cd Mon Sep 17 00:00:00 2001 From: Dmitry Mirgaleev <35151170+dmirgaleev@users.noreply.github.com> Date: Fri, 3 May 2024 15:40:48 +0300 Subject: [PATCH] Add Paris support (#28) * Using ?version for mempool endpoints to avoid renaming endorsement -> attestation * DalPublishCommitment added --- node/chain_api.go | 2 +- node/chain_data.go | 2 +- node/consts.go | 1 + node/monitor.go | 2 +- node/operations.go | 22 +++++++++++++++++++++- tzkt/api/operations.go | 6 ++++++ tzkt/data/consts.go | 1 + tzkt/data/operations.go | 19 ++++++++++++++++++- tzkt/events/tzkt.go | 2 ++ 9 files changed, 52 insertions(+), 5 deletions(-) diff --git a/node/chain_api.go b/node/chain_api.go index 737cf09..2abf4be 100644 --- a/node/chain_api.go +++ b/node/chain_api.go @@ -118,7 +118,7 @@ func (api *Chain) LevelsSavepoint(ctx context.Context) (Savepoint, error) { // PendingOperations - func (api *Chain) PendingOperations(ctx context.Context) (MempoolResponse, error) { - req, err := newGetRequest(api.baseURL, fmt.Sprintf("chains/%s/mempool/pending_operations", api.chainID), nil) + req, err := newGetRequest(api.baseURL, fmt.Sprintf("chains/%s/mempool/pending_operations?version=1", api.chainID), nil) if err != nil { return MempoolResponse{}, err } diff --git a/node/chain_data.go b/node/chain_data.go index c20814a..2862589 100644 --- a/node/chain_data.go +++ b/node/chain_data.go @@ -142,5 +142,5 @@ func IsManager(kind string) bool { kind == KindSrAddMessages || kind == KindSrCement || kind == KindSrExecute || kind == KindSrOriginate || kind == KindSrPublish || kind == KindSrRecoverBond || kind == KindSrRefute || kind == KindSrTimeout || kind == KindIncreasePaidStorage || - kind == KindDrainDelegate || kind == KindUpdateConsensusKey + kind == KindDrainDelegate || kind == KindUpdateConsensusKey || kind == KindDalPublishCommitment } diff --git a/node/consts.go b/node/consts.go index 50fdd50..3c01e2b 100644 --- a/node/consts.go +++ b/node/consts.go @@ -44,6 +44,7 @@ const ( KindSrRecoverBond = "smart_rollup_recover_bond" KindSrTimeout = "smart_rollup_timeout" KindSrCement = "smart_rollup_cement" + KindDalPublishCommitment = "dal_publish_commitment" ) const ( diff --git a/node/monitor.go b/node/monitor.go index 6edc500..e7262a0 100644 --- a/node/monitor.go +++ b/node/monitor.go @@ -160,7 +160,7 @@ func (monitor *Monitor) pollingMempool(ctx context.Context, filter string) { filter = filterApplied } - url := fmt.Sprintf("/chains/main/mempool/monitor_operations?%s", filter) + url := fmt.Sprintf("chains/main/mempool/monitor_operations?version=0&%s", filter) ticker := time.NewTicker(time.Second) defer ticker.Stop() diff --git a/node/operations.go b/node/operations.go index 642967a..7d8e56a 100644 --- a/node/operations.go +++ b/node/operations.go @@ -18,7 +18,7 @@ type OperationConstraint interface { TxRollupRemoveCommitment | TxRollupSubmitBatch | UpdateConsensusKey | DrainDelegate | SmartRollupAddMessage | SmartRollupCement | SmartRollupExecute | SmartRollupOriginate | SmartRollupPublish | SmartRollupRecoverBond | - SmartRollupRefute | SmartRollupTimeout + SmartRollupRefute | SmartRollupTimeout | DalPublishCommitment } // OperationGroup - @@ -116,6 +116,8 @@ func (op *Operation) UnmarshalJSON(data []byte) error { err = parseOperation[SmartRollupRefute](data, op) case KindSrTimeout: err = parseOperation[SmartRollupTimeout](data, op) + case KindDalPublishCommitment: + err = parseOperation[DalPublishCommitment](data, op) } return err @@ -777,6 +779,24 @@ type SmartRollupTimeout struct { Metadata *ManagerOperationMetadata `json:"metadata,omitempty"` } +// DalPublishCommitment - +type DalPublishCommitment struct { + Kind string `json:"kind"` + Source string `json:"source"` + Fee string `json:"fee"` + Counter string `json:"counter"` + GasLimit string `json:"gas_limit"` + StorageLimit string `json:"storage_limit"` + SlotHeader SlotHeader `json:"slot_header"` + Metadata *ManagerOperationMetadata `json:"metadata,omitempty"` +} + +type SlotHeader struct { + SlotIndex int `json:"slot_index"` + Commitment string `json:"commitment"` + CommitmentProof string `json:"commitment_proof"` +} + // Stakers - type Stakers struct { Alice string `json:"alice"` diff --git a/tzkt/api/operations.go b/tzkt/api/operations.go index 2d9c9f0..5d7d48d 100644 --- a/tzkt/api/operations.go +++ b/tzkt/api/operations.go @@ -257,3 +257,9 @@ func (tzkt *API) GetSmartRollupRefute(ctx context.Context, filters map[string]st err = tzkt.json(ctx, "/v1/operations/sr_refute", filters, false, &operations) return } + +// GetDalPublishCommitment - +func (tzkt *API) GetDalPublishCommitment(ctx context.Context, filters map[string]string) (operations []data.DalPublishCommitment, err error) { + err = tzkt.json(ctx, "/v1/operations/dal_publish_commitment", filters, false, &operations) + return +} diff --git a/tzkt/data/consts.go b/tzkt/data/consts.go index 1a71705..f178c8e 100644 --- a/tzkt/data/consts.go +++ b/tzkt/data/consts.go @@ -41,6 +41,7 @@ const ( KindSrPublish = "sr_publish" KindSrRecoverBond = "sr_recover_bond" KindSrRefute = "sr_refute" + KindDalPublishCommitment = "dal_publish_commitment" ) // urls diff --git a/tzkt/data/operations.go b/tzkt/data/operations.go index 6427623..3cf0438 100644 --- a/tzkt/data/operations.go +++ b/tzkt/data/operations.go @@ -16,7 +16,7 @@ type OperationConstraint interface { TxRollupReturnBond | TxRollupSubmitBatch | NonceRevelation | DoubleBaking | DoubleEndorsing | SetDepositsLimit | DoublePreendorsing | Baking | RevelationPenalty | EndorsingReward | VdfRevelation | IncreasePaidStorage | DrainDelegate | UpdateConsensusKey | SmartRollupAddMessage | SmartRollupCement | SmartRollupExecute | - SmartRollupOriginate | SmartRollupPublish | SmartRollupRefute | SmartRollupRecoverBond + SmartRollupOriginate | SmartRollupPublish | SmartRollupRefute | SmartRollupRecoverBond | DalPublishCommitment } // Operation - @@ -865,3 +865,20 @@ type SrGameInfo struct { OpponentReward uint64 `json:"opponentReward"` OpponentLoss uint64 `json:"opponentLoss"` } + +type DalPublishCommitment struct { + Type string `json:"type"` + ID uint64 `json:"id"` + Level uint64 `json:"level"` + Timestamp string `json:"timestamp"` + Hash string `json:"hash"` + Sender *Address `json:"sender"` + Counter uint64 `json:"counter"` + GasLimit uint64 `json:"gasLimit"` + GasUsed uint64 `json:"gasUsed"` + StorageLimit uint64 `json:"storageLimit"` + BakerFee uint64 `json:"bakerFee"` + Slot int `json:"slot"` + Commitment string `json:"commitment"` + Status string `json:"status"` +} diff --git a/tzkt/events/tzkt.go b/tzkt/events/tzkt.go index aa8632d..19be8c1 100644 --- a/tzkt/events/tzkt.go +++ b/tzkt/events/tzkt.go @@ -369,6 +369,8 @@ func parseOperations(data []byte) (any, error) { result = append(result, &tzktData.SmartRollupRecoverBond{}) case tzktData.KindSrRefute: result = append(result, &tzktData.SmartRollupRefute{}) + case tzktData.KindDalPublishCommitment: + result = append(result, &tzktData.DalPublishCommitment{}) default: result = append(result, make(map[string]interface{})) }