diff --git a/x/rollup/keeper/msg_server_init_prover.go b/x/rollup/keeper/msg_server_init_prover.go index c9e1b66..a5a5f46 100644 --- a/x/rollup/keeper/msg_server_init_prover.go +++ b/x/rollup/keeper/msg_server_init_prover.go @@ -6,7 +6,7 @@ import ( "cosmossdk.io/store/prefix" bls12381 "github.com/airchains-network/gnark/backend/groth16/bls12-381" - "github.com/airchains-network/junction/x/rollup/types" + rolluptypes "github.com/airchains-network/junction/x/rollup/types" "github.com/cosmos/cosmos-sdk/runtime" sdk "github.com/cosmos/cosmos-sdk/types" "google.golang.org/grpc/codes" @@ -16,11 +16,11 @@ import ( // InitProver initializes a prover for a specific rollup. It checks if the rollup exists, validates the provided verification key, // and ensures that no prover details already exist before storing the new prover information in the database. -func (k msgServer) InitProver(goCtx context.Context, msg *types.MsgInitProver) (*types.MsgInitProverResponse, error) { +func (k msgServer) InitProver(goCtx context.Context, msg *rolluptypes.MsgInitProver) (*rolluptypes.MsgInitProverResponse, error) { ctx := sdk.UnwrapSDKContext(goCtx) storeAdapter := runtime.KVStoreAdapter(k.storeService.OpenKVStore(ctx)) - rollupDataStore := prefix.NewStore(storeAdapter, types.KeyPrefix(types.RollupDataKey)) + rollupDataStore := prefix.NewStore(storeAdapter, rolluptypes.KeyPrefix(rolluptypes.RollupDataKey)) var rollupId = msg.RollupId var proverVerificationKey = msg.ProverVerificationKey @@ -41,7 +41,7 @@ func (k msgServer) InitProver(goCtx context.Context, msg *types.MsgInitProver) ( return nil, status.Error(codes.InvalidArgument, "invalid verification key") } - var rollup types.RollupMetadata + var rollup rolluptypes.RollupMetadata rollupBytes := rollupDataStore.Get([]byte(rollupId)) k.cdc.MustUnmarshal(rollupBytes, &rollup) // Prevent overwriting existing prover information by checking if any prover details are already set. @@ -59,14 +59,14 @@ func (k msgServer) InitProver(goCtx context.Context, msg *types.MsgInitProver) ( // Emit an event indicating that the prover has been successfully initialized. ctx.EventManager().EmitEvent(sdk.NewEvent( - "rollup-prover-initialized", - sdk.NewAttribute("rollup-id", rollupId), - sdk.NewAttribute("rollup-moniker", rollup.Moniker), - sdk.NewAttribute("prover-type", proverType), - sdk.NewAttribute("prover-endpoint", proverEndpoint), + rolluptypes.EventTypeRollupProverInitialized, + sdk.NewAttribute(rolluptypes.AttributeKeyRollupId, rollupId), + sdk.NewAttribute(rolluptypes.AttributeKeyRollupMoniker, rollup.Moniker), + sdk.NewAttribute(rolluptypes.AttributeKeyProverType, proverType), + sdk.NewAttribute(rolluptypes.AttributeKeyProverEndpoint, proverEndpoint), )) - return &types.MsgInitProverResponse{ + return &rolluptypes.MsgInitProverResponse{ Status: true, }, nil } diff --git a/x/rollup/keeper/msg_server_init_rollup.go b/x/rollup/keeper/msg_server_init_rollup.go index 7d2f614..6849ea6 100644 --- a/x/rollup/keeper/msg_server_init_rollup.go +++ b/x/rollup/keeper/msg_server_init_rollup.go @@ -10,7 +10,7 @@ import ( "cosmossdk.io/math" "cosmossdk.io/store/prefix" - "github.com/airchains-network/junction/x/rollup/types" + rolluptypes "github.com/airchains-network/junction/x/rollup/types" "github.com/cosmos/cosmos-sdk/runtime" sdk "github.com/cosmos/cosmos-sdk/types" "google.golang.org/grpc/codes" @@ -36,12 +36,12 @@ import ( // - A pointer to MsgInitRollupResponse containing the RollupId and a status indicating success or failure. // - An error if the rollup with the given moniker already exists or if any other issue occurs during initialization. -func (k msgServer) InitRollup(goCtx context.Context, msg *types.MsgInitRollup) (*types.MsgInitRollupResponse, error) { +func (k msgServer) InitRollup(goCtx context.Context, msg *rolluptypes.MsgInitRollup) (*rolluptypes.MsgInitRollupResponse, error) { ctx := sdk.UnwrapSDKContext(goCtx) storeAdapter := runtime.KVStoreAdapter(k.storeService.OpenKVStore(ctx)) // rollupStore := prefix.NewStore(storeAdapter, types.KeyPrefix(types.RollupKey)) - rollupDataStore := prefix.NewStore(storeAdapter, types.KeyPrefix(types.RollupDataKey)) - rollupMonikerStore := prefix.NewStore(storeAdapter, types.KeyPrefix(types.RollupMonikerKey)) + rollupDataStore := prefix.NewStore(storeAdapter, rolluptypes.KeyPrefix(rolluptypes.RollupDataKey)) + rollupMonikerStore := prefix.NewStore(storeAdapter, rolluptypes.KeyPrefix(rolluptypes.RollupMonikerKey)) var creator = msg.Creator var moniker = msg.Moniker @@ -106,7 +106,7 @@ func (k msgServer) InitRollup(goCtx context.Context, msg *types.MsgInitRollup) ( // return nil, status.Error(codes.FailedPrecondition, fmt.Sprintf("invalid genesis supply amount, expected: %d, got: %d", totalSupply, msg.GenesisSupply.Amount.Uint64())) // } - var rollup = types.RollupMetadata{ + var rollup = rolluptypes.RollupMetadata{ CreatedBy: creator, RollupId: rollupId, RollupLatestBatchNo: 0, @@ -135,7 +135,7 @@ func (k msgServer) InitRollup(goCtx context.Context, msg *types.MsgInitRollup) ( } // send the total supply of the denom from the creator address to the module account - err = k.bankKeeper.SendCoinsFromAccountToModule(ctx, creatorAddr, types.ModuleName, totalSupplyCoins) + err = k.bankKeeper.SendCoinsFromAccountToModule(ctx, creatorAddr, rolluptypes.ModuleName, totalSupplyCoins) if err != nil { return nil, status.Error(codes.FailedPrecondition, "failed to send coins from creator address to module account") } @@ -146,7 +146,7 @@ func (k msgServer) InitRollup(goCtx context.Context, msg *types.MsgInitRollup) ( If it doesn't exist, it creates a new entry with the rollup ID. */ - ledgerEntryStore := prefix.NewStore(storeAdapter, types.KeyPrefix(types.LedgerEntryRollupCreatorKey)) + ledgerEntryStore := prefix.NewStore(storeAdapter, rolluptypes.KeyPrefix(rolluptypes.LedgerEntryRollupCreatorKey)) if ledgerEntryStore.Has([]byte(creatorAddr.String())) { rollupsIdBytes := ledgerEntryStore.Get([]byte(creatorAddr.String())) var rollupsIds []string @@ -171,7 +171,7 @@ func (k msgServer) InitRollup(goCtx context.Context, msg *types.MsgInitRollup) ( } // update the ledger entry for the creator address - ledgerEntry := types.LedgerEntry{ + ledgerEntry := rolluptypes.LedgerEntry{ CreatorAddress: creatorAddr.String(), AmountStaked: totalSupply, Denom: denomName, @@ -181,7 +181,7 @@ func (k msgServer) InitRollup(goCtx context.Context, msg *types.MsgInitRollup) ( } ledgerEntryBytes := k.cdc.MustMarshal(&ledgerEntry) - rollupStakingInfoStore := prefix.NewStore(storeAdapter, types.KeyPrefix(types.RollupStakingInfoKey)) + rollupStakingInfoStore := prefix.NewStore(storeAdapter, rolluptypes.KeyPrefix(rolluptypes.RollupStakingInfoKey)) rollupStakingInfoKey := []byte(rollupId) rollupStakingInfoBytes := rollupStakingInfoStore.Get(rollupStakingInfoKey) if rollupStakingInfoBytes == nil { @@ -196,33 +196,33 @@ func (k msgServer) InitRollup(goCtx context.Context, msg *types.MsgInitRollup) ( rollupMonikerStore.Set([]byte(rollup.Moniker), []byte(rollup.RollupId)) ctx.EventManager().EmitEvent(sdk.NewEvent( - "token-locked", - sdk.NewAttribute("creator", rollup.CreatedBy), - sdk.NewAttribute("rollup-id", rollupId), - sdk.NewAttribute("amount", strconv.FormatUint(totalSupply, 10)), - sdk.NewAttribute("denom", rollup.DenomName), + rolluptypes.EventTypeTokenLocked, + sdk.NewAttribute(rolluptypes.AttributeKeyCreator, rollup.CreatedBy), + sdk.NewAttribute(rolluptypes.AttributeKeyRollupId, rollupId), + sdk.NewAttribute(sdk.AttributeKeyAmount, strconv.FormatUint(totalSupply, 10)), + sdk.NewAttribute(rolluptypes.AttributeKeyDenom, rollup.DenomName), )) ctx.EventManager().EmitEvent(sdk.NewEvent( - "rollup-initialized", - sdk.NewAttribute("creator", rollup.CreatedBy), - sdk.NewAttribute("rollup-id", rollupId), - sdk.NewAttribute("moniker", rollup.Moniker), - sdk.NewAttribute("chain-id", rollup.ChainId), - sdk.NewAttribute("denom-name", rollup.DenomName), - sdk.NewAttribute("da-type", rollup.DaType), - sdk.NewAttribute("keys", strings.Join(rollup.Keys, ",")), - sdk.NewAttribute("supply", strings.Join(uint64SliceToStringSlice(rollup.Supply), ",")), - sdk.NewAttribute("total-supply", strconv.FormatUint(totalSupply, 10)), - sdk.NewAttribute("acl-contract-address", rollup.AclContractAddress), - sdk.NewAttribute("kms-verifier-address", rollup.KmsVerifierAddress), - sdk.NewAttribute("tfhe-executor-address", rollup.TfheExecutorAddress), - sdk.NewAttribute("gateway-contract-address", rollup.GatewayContractAddress), - sdk.NewAttribute("asc-contract-address", rollup.AscContractAddress), - sdk.NewAttribute("relayer-g-address", rollup.RelayerGAddress), + rolluptypes.EventTypeRollupInitialized, + sdk.NewAttribute(rolluptypes.AttributeKeyCreator, rollup.CreatedBy), + sdk.NewAttribute(rolluptypes.AttributeKeyRollupId, rollupId), + sdk.NewAttribute(rolluptypes.AttributeKeyMoniker, rollup.Moniker), + sdk.NewAttribute(rolluptypes.AttributeKeyChainId, rollup.ChainId), + sdk.NewAttribute(rolluptypes.AttributeKeyDenomName, rollup.DenomName), + sdk.NewAttribute(rolluptypes.AttributeKeyDaType, rollup.DaType), + sdk.NewAttribute(rolluptypes.AttributeKeyKeys, strings.Join(rollup.Keys, ",")), + sdk.NewAttribute(rolluptypes.AttributeKeySupply, strings.Join(uint64SliceToStringSlice(rollup.Supply), ",")), + sdk.NewAttribute(rolluptypes.AttributeKeyTotalSupply, strconv.FormatUint(totalSupply, 10)), + sdk.NewAttribute(rolluptypes.AttributeKeyAclContractAddress, rollup.AclContractAddress), + sdk.NewAttribute(rolluptypes.AttributeKeyKmsVerifierAddress, rollup.KmsVerifierAddress), + sdk.NewAttribute(rolluptypes.AttributeKeyTfheExecutorAddress, rollup.TfheExecutorAddress), + sdk.NewAttribute(rolluptypes.AttributeKeyGatewayContractAddress, rollup.GatewayContractAddress), + sdk.NewAttribute(rolluptypes.AttributeKeyAscContractAddress, rollup.AscContractAddress), + sdk.NewAttribute(rolluptypes.AttributeKeyRelayerGAddress, rollup.RelayerGAddress), )) - return &types.MsgInitRollupResponse{ + return &rolluptypes.MsgInitRollupResponse{ RollupId: rollupId, Status: true, }, nil diff --git a/x/rollup/keeper/msg_server_submit_batch_metadata.go b/x/rollup/keeper/msg_server_submit_batch_metadata.go index c110f7c..5579240 100644 --- a/x/rollup/keeper/msg_server_submit_batch_metadata.go +++ b/x/rollup/keeper/msg_server_submit_batch_metadata.go @@ -5,14 +5,14 @@ import ( "strconv" "cosmossdk.io/store/prefix" - "github.com/airchains-network/junction/x/rollup/types" + rolluptypes "github.com/airchains-network/junction/x/rollup/types" "github.com/cosmos/cosmos-sdk/runtime" sdk "github.com/cosmos/cosmos-sdk/types" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" ) -func (k msgServer) SubmitBatchMetadata(goCtx context.Context, msg *types.MsgSubmitBatchMetadata) (*types.MsgSubmitBatchMetadataResponse, error) { +func (k msgServer) SubmitBatchMetadata(goCtx context.Context, msg *rolluptypes.MsgSubmitBatchMetadata) (*rolluptypes.MsgSubmitBatchMetadataResponse, error) { ctx := sdk.UnwrapSDKContext(goCtx) storeAdapter := runtime.KVStoreAdapter(k.storeService.OpenKVStore(ctx)) @@ -26,7 +26,7 @@ func (k msgServer) SubmitBatchMetadata(goCtx context.Context, msg *types.MsgSubm daNamespace := msg.DaNamespace batchStorePath, batchKeyByte := k.GetRollupBatchDbStoreKeys(rollupId, batchNo) - batchDataStore := prefix.NewStore(storeAdapter, types.KeyPrefix(batchStorePath)) + batchDataStore := prefix.NewStore(storeAdapter, rolluptypes.KeyPrefix(batchStorePath)) // Check if the batch metadata already exists if batchDataStore.Has(batchKeyByte) { @@ -42,7 +42,7 @@ func (k msgServer) SubmitBatchMetadata(goCtx context.Context, msg *types.MsgSubm if batchNo < 2 { previousMerkleRootHash = "initial_batch_no_previous_hash" // This indicates that there is no previous Merkle root hash for the initial batch } else { - var previousBatch types.Batch + var previousBatch rolluptypes.Batch _, previousBatchNo := k.GetRollupBatchDbStoreKeys(rollupId, batchNo-1) previousBatchBytes := batchDataStore.Get(previousBatchNo) @@ -51,7 +51,7 @@ func (k msgServer) SubmitBatchMetadata(goCtx context.Context, msg *types.MsgSubm } // Create a new batch metadata entry - var batchMetadata = types.Batch{ + var batchMetadata = rolluptypes.Batch{ Submitter: msg.Creator, RollupId: rollupId, BatchNo: batchNo, @@ -73,9 +73,9 @@ func (k msgServer) SubmitBatchMetadata(goCtx context.Context, msg *types.MsgSubm batchDataStore.Set(batchKeyByte, batchDataBytes) // updating rollup metadata - rollupDataStore := prefix.NewStore(storeAdapter, types.KeyPrefix(types.RollupDataKey)) + rollupDataStore := prefix.NewStore(storeAdapter, rolluptypes.KeyPrefix(rolluptypes.RollupDataKey)) rollupBytes := rollupDataStore.Get([]byte(rollupId)) - var rollup types.RollupMetadata + var rollup rolluptypes.RollupMetadata k.cdc.MustUnmarshal(rollupBytes, &rollup) rollup.RollupLatestBatchNo = batchNo @@ -86,21 +86,21 @@ func (k msgServer) SubmitBatchMetadata(goCtx context.Context, msg *types.MsgSubm // Emit an event for the new batch metadata ctx.EventManager().EmitEvent(sdk.NewEvent( - "batch-metadata-submitted", - sdk.NewAttribute("submitter", batchMetadata.Submitter), - sdk.NewAttribute("batch-no", strconv.FormatUint(batchMetadata.BatchNo, 10)), - sdk.NewAttribute("timestamp", batchMetadata.Timestamp), - sdk.NewAttribute("rollup-id", batchMetadata.RollupId), - sdk.NewAttribute("da-name", batchMetadata.DaName), - sdk.NewAttribute("da-commitment", batchMetadata.DaCommitment), - sdk.NewAttribute("da-hash", batchMetadata.DaHash), - sdk.NewAttribute("da-pointer", batchMetadata.DaPointer), - sdk.NewAttribute("da-namespace", batchMetadata.DaNamespace), - sdk.NewAttribute("previous-merkle-root-hash", batchMetadata.PreviousMerkleRootHash), - sdk.NewAttribute("is-finalized", strconv.FormatBool(batchMetadata.IsFinalized)), + rolluptypes.EventTypeBatchMetadataSubmitted, + sdk.NewAttribute(rolluptypes.AttributeKeySubmitter, batchMetadata.Submitter), + sdk.NewAttribute(rolluptypes.AttributeKeyBatchNo, strconv.FormatUint(batchMetadata.BatchNo, 10)), + sdk.NewAttribute(rolluptypes.AttributeKeyTimestamp, batchMetadata.Timestamp), + sdk.NewAttribute(rolluptypes.AttributeKeyRollupId, batchMetadata.RollupId), + sdk.NewAttribute(rolluptypes.AttributeKeyDaName, batchMetadata.DaName), + sdk.NewAttribute(rolluptypes.AttributeKeyDaCommitment, batchMetadata.DaCommitment), + sdk.NewAttribute(rolluptypes.AttributeKeyDaHash, batchMetadata.DaHash), + sdk.NewAttribute(rolluptypes.AttributeKeyDaPointer, batchMetadata.DaPointer), + sdk.NewAttribute(rolluptypes.AttributeKeyDaNamespace, batchMetadata.DaNamespace), + sdk.NewAttribute(rolluptypes.AttributeKeyPreviousMerkleRootHash, batchMetadata.PreviousMerkleRootHash), + sdk.NewAttribute(rolluptypes.AttributeKeyIsFinalized, strconv.FormatBool(batchMetadata.IsFinalized)), )) - return &types.MsgSubmitBatchMetadataResponse{ + return &rolluptypes.MsgSubmitBatchMetadataResponse{ Status: true, }, nil } diff --git a/x/rollup/module/module_ibc.go b/x/rollup/module/module_ibc.go index 3da8ccf..22647b9 100644 --- a/x/rollup/module/module_ibc.go +++ b/x/rollup/module/module_ibc.go @@ -191,6 +191,8 @@ func (im IBCModule) OnAcknowledgementPacket( return errorsmod.Wrap(sdkerrors.ErrUnknownRequest, errMsg) } + // TODO: resolve the following code is unreachable + ctx.EventManager().EmitEvent( sdk.NewEvent( eventType, diff --git a/x/rollup/types/events.go b/x/rollup/types/events.go new file mode 100644 index 0000000..b4ddbf6 --- /dev/null +++ b/x/rollup/types/events.go @@ -0,0 +1,40 @@ +package types + +const ( + EventTypeRollupProverInitialized = "rollup-prover-initialized" + EventTypeTokenLocked = "token-locked" + EventTypeRollupInitialized = "rollup-initialized" + EventTypeBatchMetadataSubmitted = "batch-metadata-submitted" +) + +const ( + AttributeKeyRollupId = "rollup-id" + AttributeKeyRollupMoniker = "rollup-moniker" + AttributeKeyMoniker = "moniker" // TODO: should merge with 'rollup-moniker' ? + AttributeKeyProverType = "prover-type" + AttributeKeyProverEndpoint = "prover-endpoint" + AttributeKeyCreator = "creator" + AttributeKeyDenom = "denom" + AttributeKeyDenomName = "denom-name" + AttributeKeyChainId = "chain-id" + AttributeKeyDaType = "da-type" + AttributeKeyDaName = "da-name" // TODO: should merge with 'da-type' ? + AttributeKeyKeys = "keys" + AttributeKeySupply = "supply" + AttributeKeyTotalSupply = "total-supply" + AttributeKeyAclContractAddress = "acl-contract-address" + AttributeKeyKmsVerifierAddress = "kms-verifier-address" + AttributeKeyTfheExecutorAddress = "tfhe-executor-address" + AttributeKeyGatewayContractAddress = "gateway-contract-address" + AttributeKeyAscContractAddress = "asc-contract-address" + AttributeKeyRelayerGAddress = "relayer-g-address" + AttributeKeySubmitter = "submitter" + AttributeKeyBatchNo = "batch-no" + AttributeKeyTimestamp = "timestamp" + AttributeKeyDaCommitment = "da-commitment" + AttributeKeyDaHash = "da-hash" + AttributeKeyDaPointer = "da-pointer" + AttributeKeyDaNamespace = "da-namespace" + AttributeKeyPreviousMerkleRootHash = "previous-merkle-root-hash" + AttributeKeyIsFinalized = "is-finalized" +)