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

EFM Integration Test Part 2 #6424

Open
wants to merge 9 commits into
base: feature/efm-recovery
Choose a base branch
from
1 change: 1 addition & 0 deletions cmd/access/node_builder/access_node_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -367,6 +367,7 @@ func (builder *FlowAccessNodeBuilder) buildFollowerState() *FlowAccessNodeBuilde
node.Storage.Index,
node.Storage.Payloads,
blocktimer.DefaultBlockTimer,
nil,
)
builder.FollowerState = followerState

Expand Down
46 changes: 32 additions & 14 deletions cmd/bootstrap/run/epochs.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package run

import (
"encoding/hex"
"fmt"

"github.com/rs/zerolog"
Expand All @@ -22,12 +23,12 @@ func GenerateRecoverEpochTxArgs(log zerolog.Logger,
internalNodePrivInfoDir string,
nodeConfigJson string,
collectionClusters int,
epochCounter uint64,
recoveryEpochCounter uint64,
rootChainID flow.ChainID,
numViewsInStakingAuction uint64,
numViewsInEpoch uint64,
targetDuration uint64,
initNewEpoch bool,
unsafeAllowOverWrite bool,
snapshot *inmem.Snapshot,
) ([]cadence.Value, error) {
epoch := snapshot.Epochs().Current()
Expand Down Expand Up @@ -69,11 +70,6 @@ func GenerateRecoverEpochTxArgs(log zerolog.Logger,
}
}

currentEpochDKG, err := epoch.DKG()
if err != nil {
return nil, fmt.Errorf("failed to get DKG for current epoch: %w", err)
}

log.Info().Msg("computing collection node clusters")

assignments, clusters, err := common.ConstructClusterAssignment(log, partnerCollectors, internalCollectors, collectionClusters)
Expand All @@ -83,30 +79,37 @@ func GenerateRecoverEpochTxArgs(log zerolog.Logger,
log.Info().Msg("")

log.Info().Msg("constructing root blocks for collection node clusters")
clusterBlocks := GenerateRootClusterBlocks(epochCounter, clusters)
clusterBlocks := GenerateRootClusterBlocks(recoveryEpochCounter, clusters)
log.Info().Msg("")

log.Info().Msg("constructing root QCs for collection node clusters")
clusterQCs := ConstructRootQCsForClusters(log, clusters, internalNodes, clusterBlocks)
log.Info().Msg("")

dkgPubKeys := make([]cadence.Value, 0)
nodeIds := make([]cadence.Value, 0)
epochProtocolState, err := snapshot.EpochProtocolState()
if err != nil {
return nil, fmt.Errorf("failed to get epoch protocol state from snapshot: %w", err)
}
currentEpochDKG, err := epochProtocolState.DKG()
if err != nil {
return nil, fmt.Errorf("failed to get DKG for current epoch: %w", err)
}

// NOTE: The RecoveryEpoch will re-use the last successful DKG output. This means that the consensus
// committee in the RecoveryEpoch must be identical to the committee which participated in that DKG.
dkgGroupKeyCdc, cdcErr := cadence.NewString(currentEpochDKG.GroupKey().String())
dkgGroupKeyCdc, cdcErr := cadence.NewString(hex.EncodeToString(currentEpochDKG.GroupKey().Encode()))
if cdcErr != nil {
log.Fatal().Err(cdcErr).Msg("failed to get dkg group key cadence string")
}
dkgPubKeys = append(dkgPubKeys, dkgGroupKeyCdc)
dkgPubKeys := make([]cadence.Value, 0)
nodeIds := make([]cadence.Value, 0)
for _, id := range currentEpochIdentities {
if id.GetRole() == flow.RoleConsensus {
dkgPubKey, keyShareErr := currentEpochDKG.KeyShare(id.GetNodeID())
if keyShareErr != nil {
log.Fatal().Err(keyShareErr).Msg(fmt.Sprintf("failed to get dkg pub key share for node: %s", id.GetNodeID()))
}
dkgPubKeyCdc, cdcErr := cadence.NewString(dkgPubKey.String())
dkgPubKeyCdc, cdcErr := cadence.NewString(hex.EncodeToString(dkgPubKey.Encode()))
if cdcErr != nil {
log.Fatal().Err(cdcErr).Msg(fmt.Sprintf("failed to get dkg pub key cadence string for node: %s", id.GetNodeID()))
}
Expand All @@ -118,6 +121,15 @@ func GenerateRecoverEpochTxArgs(log zerolog.Logger,
}
nodeIds = append(nodeIds, nodeIdCdc)
}

dkgIndexMapPairs := make([]cadence.KeyValuePair, 0)
for nodeID, index := range epochProtocolState.EpochCommit().DKGIndexMap {
dkgIndexMapPairs = append(dkgIndexMapPairs, cadence.KeyValuePair{
Key: cadence.String(nodeID.String()),
Value: cadence.NewInt(index),
})
}

clusterQCAddress := systemcontracts.SystemContractsForChain(rootChainID).ClusterQC.Address.String()
qcVoteData, err := common.ConvertClusterQcsCdc(clusterQCs, clusters, clusterQCAddress)
if err != nil {
Expand All @@ -135,6 +147,8 @@ func GenerateRecoverEpochTxArgs(log zerolog.Logger,
}

args := []cadence.Value{
// recovery epoch counter
cadence.NewUInt64(recoveryEpochCounter),
// epoch start view
cadence.NewUInt64(currEpochFinalView + 1),
// staking phase end view
Expand All @@ -151,11 +165,15 @@ func GenerateRecoverEpochTxArgs(log zerolog.Logger,
cadence.NewArray(qcVoteData),
// dkg pub keys
cadence.NewArray(dkgPubKeys),
// dkg group key,
dkgGroupKeyCdc,
// dkg index map
cadence.NewDictionary(dkgIndexMapPairs),
// node ids
cadence.NewArray(nodeIds),
// recover the network by initializing a new recover epoch which will increment the smart contract epoch counter
// or overwrite the epoch metadata for the current epoch
cadence.NewBool(initNewEpoch),
cadence.NewBool(unsafeAllowOverWrite),
}

return args, nil
Expand Down
1 change: 1 addition & 0 deletions cmd/collection/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,7 @@ func main() {
node.Storage.Index,
node.Storage.Payloads,
blocktimer.DefaultBlockTimer,
nil,
)
return err
}).
Expand Down
2 changes: 2 additions & 0 deletions cmd/consensus/main.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package main

Check failure on line 1 in cmd/consensus/main.go

View workflow job for this annotation

GitHub Actions / Lint (./)

: # github.com/onflow/flow-go/cmd/consensus

import (
"encoding/json"
Expand Down Expand Up @@ -287,6 +287,7 @@
blockTimer,
receiptValidator,
sealValidator,
dkgState,

Check failure on line 290 in cmd/consensus/main.go

View workflow job for this annotation

GitHub Actions / Lint (./)

cannot use dkgState (variable of type *"github.com/onflow/flow-go/storage/badger".DKGState) as "github.com/onflow/flow-go/storage".EpochRecoveryDKGState value in argument to badgerState.NewFullConsensusState: *"github.com/onflow/flow-go/storage/badger".DKGState does not implement "github.com/onflow/flow-go/storage".EpochRecoveryDKGState (missing method OverwriteMyBeaconPrivateKey)

Check failure on line 290 in cmd/consensus/main.go

View workflow job for this annotation

GitHub Actions / Unit Tests (cmd)

cannot use dkgState (variable of type *"github.com/onflow/flow-go/storage/badger".DKGState) as "github.com/onflow/flow-go/storage".EpochRecoveryDKGState value in argument to badgerState.NewFullConsensusState: *"github.com/onflow/flow-go/storage/badger".DKGState does not implement "github.com/onflow/flow-go/storage".EpochRecoveryDKGState (missing method OverwriteMyBeaconPrivateKey)

Check failure on line 290 in cmd/consensus/main.go

View workflow job for this annotation

GitHub Actions / Unit Tests (cmd)

cannot use dkgState (variable of type *"github.com/onflow/flow-go/storage/badger".DKGState) as "github.com/onflow/flow-go/storage".EpochRecoveryDKGState value in argument to badgerState.NewFullConsensusState: *"github.com/onflow/flow-go/storage/badger".DKGState does not implement "github.com/onflow/flow-go/storage".EpochRecoveryDKGState (missing method OverwriteMyBeaconPrivateKey)

Check failure on line 290 in cmd/consensus/main.go

View workflow job for this annotation

GitHub Actions / Unit Tests (cmd)

cannot use dkgState (variable of type *"github.com/onflow/flow-go/storage/badger".DKGState) as "github.com/onflow/flow-go/storage".EpochRecoveryDKGState value in argument to badgerState.NewFullConsensusState: *"github.com/onflow/flow-go/storage/badger".DKGState does not implement "github.com/onflow/flow-go/storage".EpochRecoveryDKGState (missing method OverwriteMyBeaconPrivateKey)

Check failure on line 290 in cmd/consensus/main.go

View workflow job for this annotation

GitHub Actions / Unit Tests (cmd)

cannot use dkgState (variable of type *"github.com/onflow/flow-go/storage/badger".DKGState) as "github.com/onflow/flow-go/storage".EpochRecoveryDKGState value in argument to badgerState.NewFullConsensusState: *"github.com/onflow/flow-go/storage/badger".DKGState does not implement "github.com/onflow/flow-go/storage".EpochRecoveryDKGState (missing method OverwriteMyBeaconPrivateKey)

Check failure on line 290 in cmd/consensus/main.go

View workflow job for this annotation

GitHub Actions / Unit Tests (cmd)

cannot use dkgState (variable of type *"github.com/onflow/flow-go/storage/badger".DKGState) as "github.com/onflow/flow-go/storage".EpochRecoveryDKGState value in argument to badgerState.NewFullConsensusState: *"github.com/onflow/flow-go/storage/badger".DKGState does not implement "github.com/onflow/flow-go/storage".EpochRecoveryDKGState (missing method OverwriteMyBeaconPrivateKey)
)
return err
}).
Expand Down Expand Up @@ -725,6 +726,7 @@
node.Storage.Results,
node.Storage.Setups,
node.Storage.EpochCommits,
dkgState,

Check failure on line 729 in cmd/consensus/main.go

View workflow job for this annotation

GitHub Actions / Lint (./)

cannot use dkgState (variable of type *"github.com/onflow/flow-go/storage/badger".DKGState) as "github.com/onflow/flow-go/storage".EpochRecoveryDKGState value in argument to protocol_state.NewMutableProtocolState: *"github.com/onflow/flow-go/storage/badger".DKGState does not implement "github.com/onflow/flow-go/storage".EpochRecoveryDKGState (missing method OverwriteMyBeaconPrivateKey) (typecheck)

Check failure on line 729 in cmd/consensus/main.go

View workflow job for this annotation

GitHub Actions / Unit Tests (cmd)

cannot use dkgState (variable of type *"github.com/onflow/flow-go/storage/badger".DKGState) as "github.com/onflow/flow-go/storage".EpochRecoveryDKGState value in argument to protocol_state.NewMutableProtocolState: *"github.com/onflow/flow-go/storage/badger".DKGState does not implement "github.com/onflow/flow-go/storage".EpochRecoveryDKGState (missing method OverwriteMyBeaconPrivateKey)

Check failure on line 729 in cmd/consensus/main.go

View workflow job for this annotation

GitHub Actions / Unit Tests (cmd)

cannot use dkgState (variable of type *"github.com/onflow/flow-go/storage/badger".DKGState) as "github.com/onflow/flow-go/storage".EpochRecoveryDKGState value in argument to protocol_state.NewMutableProtocolState: *"github.com/onflow/flow-go/storage/badger".DKGState does not implement "github.com/onflow/flow-go/storage".EpochRecoveryDKGState (missing method OverwriteMyBeaconPrivateKey)

Check failure on line 729 in cmd/consensus/main.go

View workflow job for this annotation

GitHub Actions / Unit Tests (cmd)

cannot use dkgState (variable of type *"github.com/onflow/flow-go/storage/badger".DKGState) as "github.com/onflow/flow-go/storage".EpochRecoveryDKGState value in argument to protocol_state.NewMutableProtocolState: *"github.com/onflow/flow-go/storage/badger".DKGState does not implement "github.com/onflow/flow-go/storage".EpochRecoveryDKGState (missing method OverwriteMyBeaconPrivateKey)

Check failure on line 729 in cmd/consensus/main.go

View workflow job for this annotation

GitHub Actions / Unit Tests (cmd)

cannot use dkgState (variable of type *"github.com/onflow/flow-go/storage/badger".DKGState) as "github.com/onflow/flow-go/storage".EpochRecoveryDKGState value in argument to protocol_state.NewMutableProtocolState: *"github.com/onflow/flow-go/storage/badger".DKGState does not implement "github.com/onflow/flow-go/storage".EpochRecoveryDKGState (missing method OverwriteMyBeaconPrivateKey)

Check failure on line 729 in cmd/consensus/main.go

View workflow job for this annotation

GitHub Actions / Unit Tests (cmd)

cannot use dkgState (variable of type *"github.com/onflow/flow-go/storage/badger".DKGState) as "github.com/onflow/flow-go/storage".EpochRecoveryDKGState value in argument to protocol_state.NewMutableProtocolState: *"github.com/onflow/flow-go/storage/badger".DKGState does not implement "github.com/onflow/flow-go/storage".EpochRecoveryDKGState (missing method OverwriteMyBeaconPrivateKey)
)
// initialize the block builder
var build module.Builder
Expand Down
1 change: 1 addition & 0 deletions cmd/execution_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,7 @@ func (exeNode *ExecutionNode) LoadMutableFollowerState(node *NodeConfig) error {
node.Storage.Index,
node.Storage.Payloads,
blocktimer.DefaultBlockTimer,
nil,
)
return err
}
Expand Down
1 change: 1 addition & 0 deletions cmd/observer/node_builder/observer_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -408,6 +408,7 @@ func (builder *ObserverServiceBuilder) buildFollowerState() *ObserverServiceBuil
node.Storage.Index,
node.Storage.Payloads,
blocktimer.DefaultBlockTimer,
nil,
)
builder.FollowerState = followerState

Expand Down
3 changes: 2 additions & 1 deletion cmd/util/cmd/common/clusters.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package common

import (
"encoding/hex"
"errors"
"fmt"

Expand Down Expand Up @@ -150,7 +151,7 @@ func ConvertClusterQcsCdc(qcs []*flow.QuorumCertificate, clusterList flow.Cluste

qcVoteData[i] = cadence.NewStruct([]cadence.Value{
// aggregatedSignature
cadence.String(fmt.Sprintf("%#x", qc.SigData)),
cadence.String(hex.EncodeToString(qc.SigData)),
// Node IDs of signers
cadence.NewArray(cdcVoterIds).WithType(cadence.NewVariableSizedArrayType(cadence.StringType)),
}).WithType(voteDataType)
Expand Down
13 changes: 9 additions & 4 deletions cmd/util/cmd/epochs/cmd/recover.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,8 @@ This recovery process has some constraints:
flagNumViewsInStakingAuction uint64
flagEpochCounter uint64
flagTargetDuration uint64
flagInitNewEpoch bool
flagRecoveryEpochCounter uint64
flagUnsafeAllowOverWrite bool
flagRootChainID string
)

Expand Down Expand Up @@ -82,7 +83,8 @@ func addGenerateRecoverEpochTxArgsCmdFlags() error {
// This is needed only if a previous recoverEpoch transaction was submitted and a race condition occurred such that:
// - the RecoveryEpoch in the admin transaction was accepted by the smart contract
// - the RecoveryEpoch service event (after sealing latency) was rejected by the Protocol State
generateRecoverEpochTxArgsCmd.Flags().BoolVar(&flagInitNewEpoch, "unsafe-overwrite-epoch-data", false, "set to true if the resulting transaction is allowed to overwrite an already specified epoch in the smart contract.")
generateRecoverEpochTxArgsCmd.Flags().BoolVar(&flagUnsafeAllowOverWrite, "unsafe-overwrite-epoch-data", false, "set to true if the resulting transaction is allowed to overwrite an already specified epoch in the smart contract.")
generateRecoverEpochTxArgsCmd.Flags().Uint64Var(&flagEpochCounter, "recovery-epoch-counter", 0, "the recovery epoch counter")

err := generateRecoverEpochTxArgsCmd.MarkFlagRequired("access-address")
if err != nil {
Expand All @@ -108,11 +110,14 @@ func addGenerateRecoverEpochTxArgsCmdFlags() error {
if err != nil {
return fmt.Errorf("failed to mark epoch-timing-duration flag as required")
}

err = generateRecoverEpochTxArgsCmd.MarkFlagRequired("root-chain-id")
if err != nil {
return fmt.Errorf("failed to mark root-chain-id flag as required")
}
err = generateRecoverEpochTxArgsCmd.MarkFlagRequired("recovery-epoch-counter")
if err != nil {
return fmt.Errorf("failed to mark recovery-epoch-counter flag as required")
}
return nil
}

Expand Down Expand Up @@ -150,7 +155,7 @@ func generateRecoverEpochTxArgs(getSnapshot func() *inmem.Snapshot) func(cmd *co
flagNumViewsInStakingAuction,
flagNumViewsInEpoch,
flagTargetDuration,
flagInitNewEpoch,
flagUnsafeAllowOverWrite,
getSnapshot(),
)
if err != nil {
Expand Down
2 changes: 1 addition & 1 deletion cmd/util/cmd/epochs/cmd/recover_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ func TestRecoverEpochHappyPath(t *testing.T) {
_, ok := allNodeIdsCdc[nodeId.(cadence.String)]
require.True(t, ok)
}
// initNewEpoch
// unsafeAllowOverWrite
require.Equal(t, decodedValues[9], cadence.NewBool(false))
})
}
1 change: 1 addition & 0 deletions cmd/verification_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ func (v *VerificationNodeBuilder) LoadComponentsAndModules() {
node.Storage.Index,
node.Storage.Payloads,
blocktimer.DefaultBlockTimer,
nil,
)
return err
}).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ func (p *CombinedVoteProcessorV2) Process(vote *model.Vote) error {

// checking of conditions for building QC are satisfied
totalWeight := p.stakingSigAggtor.TotalWeight()
p.log.Debug().Msgf("processed vote, total weight=(%d), required=(%d)", totalWeight, p.minRequiredWeight)
p.log.Debug().Msgf("processed vote with sig len %d, total weight=(%d), required=(%d)", len(vote.SigData), totalWeight, p.minRequiredWeight)
if totalWeight < p.minRequiredWeight {
return nil
}
Expand Down
1 change: 1 addition & 0 deletions engine/testutil/nodes.go
Original file line number Diff line number Diff line change
Expand Up @@ -557,6 +557,7 @@ func ExecutionNode(t *testing.T, hub *stub.Hub, identity bootstrap.NodeInfo, ide
node.Index,
node.Payloads,
blocktimer.DefaultBlockTimer,
nil,
)
require.NoError(t, err)

Expand Down
1 change: 1 addition & 0 deletions follower/follower_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,7 @@ func (builder *FollowerServiceBuilder) buildFollowerState() *FollowerServiceBuil
node.Storage.Index,
node.Storage.Payloads,
blocktimer.DefaultBlockTimer,
nil,
)
builder.FollowerState = followerState

Expand Down
13 changes: 11 additions & 2 deletions fvm/environment/event_emitter.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ package environment

import (
"fmt"
"github.com/onflow/flow-go/utils/logging"
"github.com/rs/zerolog"

"github.com/onflow/cadence"

Expand Down Expand Up @@ -114,6 +116,7 @@ func (NoEventEmitter) Reset() {
}

type eventEmitter struct {
log zerolog.Logger
tracer tracing.TracerSpan
meter Meter

Expand All @@ -128,13 +131,15 @@ type eventEmitter struct {

// NewEventEmitter constructs a new eventEmitter
func NewEventEmitter(
log zerolog.Logger,
tracer tracing.TracerSpan,
meter Meter,
chain flow.Chain,
txInfo TransactionInfoParams,
params EventEmitterParams,
) EventEmitter {
emitter := &eventEmitter{
log: log,
tracer: tracer,
meter: meter,
chain: chain,
Expand Down Expand Up @@ -201,8 +206,12 @@ func (emitter *eventEmitter) EmitEvent(event cadence.Event) error {

// skip limit if payer is service account
// TODO skip only limit-related errors
if !isServiceAccount && eventEmitError != nil {
return eventEmitError
if eventEmitError != nil {
if isServiceAccount {
emitter.log.Error().Err(eventEmitError).Str(logging.KeySuspicious, "true").Msg("could not process service event")
} else {
return eventEmitError
}
}
}

Expand Down
1 change: 1 addition & 0 deletions fvm/environment/facade_env.go
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,7 @@ func NewTransactionEnvironment(
params.Chain.ServiceAddress(),
)
env.EventEmitter = NewEventEmitter(
env.Logger(),
tracer,
env.Meter,
params.Chain,
Expand Down
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ require (
github.com/onflow/cadence v1.0.0-preview.52
github.com/onflow/crypto v0.25.2
github.com/onflow/flow v0.3.4
github.com/onflow/flow-core-contracts/lib/go/contracts v1.3.2-0.20240917184822-af7e508a44af
github.com/onflow/flow-core-contracts/lib/go/templates v1.3.2-0.20240917184822-af7e508a44af
github.com/onflow/flow-core-contracts/lib/go/contracts v1.3.2-0.20241010130115-8dae842b7438
github.com/onflow/flow-core-contracts/lib/go/templates v1.3.2-0.20241010130115-8dae842b7438
github.com/onflow/flow-go-sdk v1.0.0-preview.55
github.com/onflow/flow/protobuf/go/flow v0.4.7
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58
Expand Down
8 changes: 4 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -2178,10 +2178,10 @@ github.com/onflow/crypto v0.25.2 h1:GjHunqVt+vPcdqhxxhAXiMIF3YiLX7gTuTR5O+VG2ns=
github.com/onflow/crypto v0.25.2/go.mod h1:fY7eLqUdMKV8EGOw301unP8h7PvLVy8/6gVR++/g0BY=
github.com/onflow/flow v0.3.4 h1:FXUWVdYB90f/rjNcY0Owo30gL790tiYff9Pb/sycXYE=
github.com/onflow/flow v0.3.4/go.mod h1:lzyAYmbu1HfkZ9cfnL5/sjrrsnJiUU8fRL26CqLP7+c=
github.com/onflow/flow-core-contracts/lib/go/contracts v1.3.2-0.20240917184822-af7e508a44af h1:1vg6OyFMigNoyqk4SWaMlfIr5POiFX9SpFpcCvrKrUc=
github.com/onflow/flow-core-contracts/lib/go/contracts v1.3.2-0.20240917184822-af7e508a44af/go.mod h1:u/mkP/B+PbV33tEG3qfkhhBlydSvAKxfLZSfB4lsJHg=
github.com/onflow/flow-core-contracts/lib/go/templates v1.3.2-0.20240917184822-af7e508a44af h1:Vzaw1OSMOKnS3zGVyv0kgDRX+Owsj/IF4B0vbEO7kOk=
github.com/onflow/flow-core-contracts/lib/go/templates v1.3.2-0.20240917184822-af7e508a44af/go.mod h1:l8eCazFlUva+sQzh5hBWfOtk+iLmVYJ2DuhR2jSP06o=
github.com/onflow/flow-core-contracts/lib/go/contracts v1.3.2-0.20241010130115-8dae842b7438 h1:8RL40YQUgh5QXyXB95N84zF0yd1nZx35QHlKBNNhWjE=
github.com/onflow/flow-core-contracts/lib/go/contracts v1.3.2-0.20241010130115-8dae842b7438/go.mod h1:u/mkP/B+PbV33tEG3qfkhhBlydSvAKxfLZSfB4lsJHg=
github.com/onflow/flow-core-contracts/lib/go/templates v1.3.2-0.20241010130115-8dae842b7438 h1:NrbU3s+ZwD0Q1G4Ni75mV9uwygmGnCcYRjbGLYWi2is=
github.com/onflow/flow-core-contracts/lib/go/templates v1.3.2-0.20241010130115-8dae842b7438/go.mod h1:l8eCazFlUva+sQzh5hBWfOtk+iLmVYJ2DuhR2jSP06o=
github.com/onflow/flow-ft/lib/go/contracts v1.0.0 h1:mToacZ5NWqtlWwk/7RgIl/jeKB/Sy/tIXdw90yKHcV0=
github.com/onflow/flow-ft/lib/go/contracts v1.0.0/go.mod h1:PwsL8fC81cjnUnTfmyL/HOIyHnyaw/JA474Wfj2tl6A=
github.com/onflow/flow-ft/lib/go/templates v1.0.0 h1:6cMS/lUJJ17HjKBfMO/eh0GGvnpElPgBXx7h5aoWJhs=
Expand Down
4 changes: 2 additions & 2 deletions insecure/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -204,8 +204,8 @@ require (
github.com/olekukonko/tablewriter v0.0.5 // indirect
github.com/onflow/atree v0.8.0-rc.6 // indirect
github.com/onflow/cadence v1.0.0-preview.52 // indirect
github.com/onflow/flow-core-contracts/lib/go/contracts v1.3.2-0.20240917184822-af7e508a44af // indirect
github.com/onflow/flow-core-contracts/lib/go/templates v1.3.2-0.20240917184822-af7e508a44af // indirect
github.com/onflow/flow-core-contracts/lib/go/contracts v1.3.2-0.20241010130115-8dae842b7438 // indirect
github.com/onflow/flow-core-contracts/lib/go/templates v1.3.2-0.20241010130115-8dae842b7438 // indirect
github.com/onflow/flow-ft/lib/go/contracts v1.0.0 // indirect
github.com/onflow/flow-ft/lib/go/templates v1.0.0 // indirect
github.com/onflow/flow-go-sdk v1.0.0-preview.55 // indirect
Expand Down
8 changes: 4 additions & 4 deletions insecure/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -2164,10 +2164,10 @@ github.com/onflow/cadence v1.0.0-preview.52/go.mod h1:7wvvecnAZtYOspLOS3Lh+FuAmM
github.com/onflow/crypto v0.25.0/go.mod h1:C8FbaX0x8y+FxWjbkHy0Q4EASCDR9bSPWZqlpCLYyVI=
github.com/onflow/crypto v0.25.2 h1:GjHunqVt+vPcdqhxxhAXiMIF3YiLX7gTuTR5O+VG2ns=
github.com/onflow/crypto v0.25.2/go.mod h1:fY7eLqUdMKV8EGOw301unP8h7PvLVy8/6gVR++/g0BY=
github.com/onflow/flow-core-contracts/lib/go/contracts v1.3.2-0.20240917184822-af7e508a44af h1:1vg6OyFMigNoyqk4SWaMlfIr5POiFX9SpFpcCvrKrUc=
github.com/onflow/flow-core-contracts/lib/go/contracts v1.3.2-0.20240917184822-af7e508a44af/go.mod h1:u/mkP/B+PbV33tEG3qfkhhBlydSvAKxfLZSfB4lsJHg=
github.com/onflow/flow-core-contracts/lib/go/templates v1.3.2-0.20240917184822-af7e508a44af h1:Vzaw1OSMOKnS3zGVyv0kgDRX+Owsj/IF4B0vbEO7kOk=
github.com/onflow/flow-core-contracts/lib/go/templates v1.3.2-0.20240917184822-af7e508a44af/go.mod h1:l8eCazFlUva+sQzh5hBWfOtk+iLmVYJ2DuhR2jSP06o=
github.com/onflow/flow-core-contracts/lib/go/contracts v1.3.2-0.20241010130115-8dae842b7438 h1:8RL40YQUgh5QXyXB95N84zF0yd1nZx35QHlKBNNhWjE=
github.com/onflow/flow-core-contracts/lib/go/contracts v1.3.2-0.20241010130115-8dae842b7438/go.mod h1:u/mkP/B+PbV33tEG3qfkhhBlydSvAKxfLZSfB4lsJHg=
github.com/onflow/flow-core-contracts/lib/go/templates v1.3.2-0.20241010130115-8dae842b7438 h1:NrbU3s+ZwD0Q1G4Ni75mV9uwygmGnCcYRjbGLYWi2is=
github.com/onflow/flow-core-contracts/lib/go/templates v1.3.2-0.20241010130115-8dae842b7438/go.mod h1:l8eCazFlUva+sQzh5hBWfOtk+iLmVYJ2DuhR2jSP06o=
github.com/onflow/flow-ft/lib/go/contracts v1.0.0 h1:mToacZ5NWqtlWwk/7RgIl/jeKB/Sy/tIXdw90yKHcV0=
github.com/onflow/flow-ft/lib/go/contracts v1.0.0/go.mod h1:PwsL8fC81cjnUnTfmyL/HOIyHnyaw/JA474Wfj2tl6A=
github.com/onflow/flow-ft/lib/go/templates v1.0.0 h1:6cMS/lUJJ17HjKBfMO/eh0GGvnpElPgBXx7h5aoWJhs=
Expand Down
4 changes: 2 additions & 2 deletions integration/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ require (
github.com/libp2p/go-libp2p v0.32.2
github.com/onflow/cadence v1.0.0-preview.52
github.com/onflow/crypto v0.25.2
github.com/onflow/flow-core-contracts/lib/go/contracts v1.3.2-0.20240917184822-af7e508a44af
github.com/onflow/flow-core-contracts/lib/go/templates v1.3.2-0.20240917184822-af7e508a44af
github.com/onflow/flow-core-contracts/lib/go/contracts v1.3.2-0.20241010130115-8dae842b7438
github.com/onflow/flow-core-contracts/lib/go/templates v1.3.2-0.20241010130115-8dae842b7438
github.com/onflow/flow-emulator v1.0.0-preview.41.0.20240829134601-0be55d6970b5
github.com/onflow/flow-go v0.37.7-0.20240826193109-e211841b59f5
github.com/onflow/flow-go-sdk v1.0.0-preview.55
Expand Down
Loading
Loading