Skip to content
Open
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
20 changes: 10 additions & 10 deletions x/rollup/keeper/msg_server_init_prover.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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
Expand All @@ -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.
Expand All @@ -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
}
62 changes: 31 additions & 31 deletions x/rollup/keeper/msg_server_init_rollup.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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")
}
Expand All @@ -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
Expand All @@ -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,
Expand All @@ -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 {
Expand All @@ -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
Expand Down
40 changes: 20 additions & 20 deletions x/rollup/keeper/msg_server_submit_batch_metadata.go
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand All @@ -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) {
Expand All @@ -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)
Expand All @@ -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,
Expand All @@ -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
Expand All @@ -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
}
2 changes: 2 additions & 0 deletions x/rollup/module/module_ibc.go
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
40 changes: 40 additions & 0 deletions x/rollup/types/events.go
Original file line number Diff line number Diff line change
@@ -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"
)