blueprints

package
v0.43.1-rc.1.access-me... Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 30, 2025 License: AGPL-3.0 Imports: 18 Imported by: 5

Documentation

Index

Constants

View Source
const SystemChunkTransactionGasLimit = 100_000_000

Variables

View Source
var BridgeContracts = []string{
	"cadence/contracts/utils/ArrayUtils.cdc",
	"cadence/contracts/utils/StringUtils.cdc",
	"cadence/contracts/utils/ScopedFTProviders.cdc",
	"cadence/contracts/utils/Serialize.cdc",
	"cadence/contracts/utils/SerializeMetadata.cdc",
	"cadence/contracts/bridge/interfaces/FlowEVMBridgeHandlerInterfaces.cdc",
	"cadence/contracts/bridge/interfaces/IBridgePermissions.cdc",
	"cadence/contracts/bridge/interfaces/ICrossVM.cdc",
	"cadence/contracts/bridge/interfaces/ICrossVMAsset.cdc",
	"cadence/contracts/bridge/interfaces/CrossVMNFT.cdc",
	"cadence/contracts/bridge/interfaces/CrossVMToken.cdc",
	"cadence/contracts/bridge/interfaces/IEVMBridgeNFTMinter.cdc",
	"cadence/contracts/bridge/interfaces/IEVMBridgeTokenMinter.cdc",
	"cadence/contracts/bridge/FlowEVMBridgeConfig.cdc",
	"cadence/contracts/bridge/interfaces/IFlowEVMNFTBridge.cdc",
	"cadence/contracts/bridge/interfaces/IFlowEVMTokenBridge.cdc",
	"cadence/contracts/bridge/FlowEVMBridgeUtils.cdc",
	"cadence/contracts/bridge/FlowEVMBridgeResolver.cdc",
	"cadence/contracts/bridge/FlowEVMBridgeHandlers.cdc",
	"cadence/contracts/bridge/FlowEVMBridgeNFTEscrow.cdc",
	"cadence/contracts/bridge/FlowEVMBridgeTokenEscrow.cdc",
	"cadence/contracts/bridge/FlowEVMBridgeTemplates.cdc",
	"cadence/contracts/bridge/FlowEVMBridge.cdc",
}

All the Cadence contracts that make up the core functionality of the Flow VM bridge. They are all needed for the bridge to function properly. Solidity contracts are handled elsewhere in the bootstrapping process See more info in the VM Bridge Repo https://github.com/onflow/flow-evm-bridge or FLIP https://github.com/onflow/flips/blob/main/application/20231222-evm-vm-bridge.md

View Source
var ContractDeploymentAuthorizedAddressesPath = cadence.Path{
	Domain:     common.PathDomainStorage,
	Identifier: "authorizedAddressesToDeployContracts",
}
View Source
var ContractRemovalAuthorizedAddressesPath = cadence.Path{
	Domain:     common.PathDomainStorage,
	Identifier: "authorizedAddressesToRemoveContracts",
}
View Source
var DeployContractTransactionTemplate []byte
View Source
var IsContractDeploymentRestrictedPath = cadence.Path{
	Domain:     common.PathDomainStorage,
	Identifier: "isContractDeploymentRestricted",
}
View Source
var TransactionFeesExecutionEffortWeightsPath = cadence.Path{
	Domain:     common.PathDomainStorage,
	Identifier: "executionEffortWeights",
}
View Source
var TransactionFeesExecutionMemoryLimitPath = cadence.Path{
	Domain:     common.PathDomainStorage,
	Identifier: "executionMemoryLimit",
}
View Source
var TransactionFeesExecutionMemoryWeightsPath = cadence.Path{
	Domain:     common.PathDomainStorage,
	Identifier: "executionMemoryWeights",
}

Functions

func AddDeployerTransaction added in v0.41.0

func AddDeployerTransaction(
	env templates.Environment,
	bridgeEnv bridge.Environment,
	service flow.Address,
	deployerTag, deployerAddress string,
) (*flow.TransactionBody, error)

AddDeployerTransaction returns the transaction body for the transaction to add a deployer for a particular token type

func BridgeFTFromEVMTransaction added in v0.41.0

func BridgeFTFromEVMTransaction(
	env templates.Environment,
	bridgeEnv bridge.Environment,
	service flow.Address,
	forType string,
	amount uint,
) *flow.TransactionBodyBuilder

BridgeFTFromEVMTransaction returns the transaction body for the transaction that bridges a fungible token from EVM to Cadence

func BridgeFTToEVMTransaction added in v0.41.0

func BridgeFTToEVMTransaction(
	env templates.Environment,
	bridgeEnv bridge.Environment,
	service flow.Address,
	forType string,
	amount string,
) *flow.TransactionBodyBuilder

BridgeFTToEVMTransaction returns the transaction body for the transaction that bridges a fungible token from Cadence to EVM

func BridgeNFTFromEVMTransaction added in v0.41.0

func BridgeNFTFromEVMTransaction(
	env templates.Environment,
	bridgeEnv bridge.Environment,
	service flow.Address,
	forType string,
	id cadence.UInt256,
) *flow.TransactionBodyBuilder

BridgeNFTFromEVMTransaction returns the transaction body for the transaction that bridges a non-fungible token from EVM to Cadence

func BridgeNFTToEVMTransaction added in v0.41.0

func BridgeNFTToEVMTransaction(
	env templates.Environment,
	bridgeEnv bridge.Environment,
	service flow.Address,
	forType string,
	id cadence.UInt64,
) *flow.TransactionBodyBuilder

BridgeNFTToEVMTransaction returns the transaction body for the transaction that bridges a non-fungible token from Cadence to EVM

func BytesToCadenceArray added in v0.25.0

func BytesToCadenceArray(b []byte) cadence.Array

BytesToCadenceArray converts byte slice to cadence array

func CreateCOATransaction added in v0.41.0

func CreateCOATransaction(
	env templates.Environment,
	bridgeEnv bridge.Environment,
	service flow.Address,
) *flow.TransactionBodyBuilder

CreateCOATransaction returns the transaction body for the create COA transaction

func CreateFlowTokenMinterTransaction added in v0.20.0

func CreateFlowTokenMinterTransaction(service, flowToken flow.Address) (*flow.TransactionBody, error)

CreateFlowTokenMinterTransaction returns a transaction which creates a Flow token Minter resource and stores it in the service account. This Minter is expected to be stored here by the epoch smart contracts.

func CreateWFLOWTokenHandlerTransaction added in v0.41.0

func CreateWFLOWTokenHandlerTransaction(
	env templates.Environment,
	bridgeEnv bridge.Environment,
	service flow.Address,
	wflowEVMAddress string,
) (*flow.TransactionBody, error)

CreateWFLOWTokenHandlerTransaction returns the transaction body for the transaction that creates a token handler for the WFLOW Solidity contract

func DeployBurnerContractTransaction added in v0.33.30

func DeployBurnerContractTransaction(fungibleToken flow.Address) *flow.TransactionBodyBuilder

func DeployContractTransaction added in v0.17.6

func DeployContractTransaction(address flow.Address, contract []byte, contractName string) *flow.TransactionBodyBuilder

TODO (ramtin) get rid of authorizers

func DeployCrossVMMetadataViewsContractTransaction added in v0.41.0

func DeployCrossVMMetadataViewsContractTransaction(nonFungibleToken flow.Address, contract []byte) *flow.TransactionBodyBuilder

func DeployEVMContractTransaction added in v0.41.0

func DeployEVMContractTransaction(
	env templates.Environment,
	bridgeEnv bridge.Environment,
	service flow.Address,
	bytecode string,
	gasLimit int,
	deploymentValue float64,
) (*flow.TransactionBody, error)

DeployEVMContractTransaction returns the transaction body for the deploy EVM contract transaction

func DeployEpochTransaction added in v0.25.0

func DeployEpochTransaction(service flow.Address, contract []byte, epochConfig epochs.EpochConfig) (*flow.TransactionBody, error)

DeployEpochTransaction returns the transaction body for the deploy epoch transaction

func DeployFlowEVMBridgeAccessorContractTransaction added in v0.41.0

func DeployFlowEVMBridgeAccessorContractTransaction(
	env templates.Environment,
	bridgeEnv bridge.Environment,
	service flow.Address,
) (*flow.TransactionBody, error)

DeployFlowEVMBridgeAccessorContractTransaction returns the transaction body for the deploy FlowEVMBridgeAccessor contract transaction

func DeployFlowEVMBridgeUtilsContractTransaction added in v0.41.0

func DeployFlowEVMBridgeUtilsContractTransaction(
	env templates.Environment,
	bridgeEnv *bridge.Environment,
	service flow.Address,
	contract []byte,
	contractName string,
	factoryAddress string,
) (*flow.TransactionBody, error)

DeployFlowEVMBridgeUtilsContractTransaction returns the transaction body for the deploy FlowEVMBridgeUtils contract transaction

func DeployFlowTokenContractTransaction added in v0.17.6

func DeployFlowTokenContractTransaction(service, flowToken flow.Address, contract []byte) (*flow.TransactionBody, error)

func DeployFungibleTokenContractTransaction added in v0.17.6

func DeployFungibleTokenContractTransaction(fungibleToken flow.Address, contract []byte) *flow.TransactionBodyBuilder

func DeployFungibleTokenMetadataViewsContractTransaction added in v0.32.0

func DeployFungibleTokenMetadataViewsContractTransaction(fungibleToken flow.Address, contract []byte) *flow.TransactionBodyBuilder

func DeployFungibleTokenSwitchboardContractTransaction added in v0.33.30

func DeployFungibleTokenSwitchboardContractTransaction(fungibleToken flow.Address, contract []byte) *flow.TransactionBodyBuilder

func DeployIDTableStakingTransaction added in v0.25.0

func DeployIDTableStakingTransaction(service flow.Address, contract []byte, epochTokenPayout cadence.UFix64, rewardCut cadence.UFix64) (*flow.TransactionBody, error)

DeployIDTableStakingTransaction returns the transaction body for the deploy id table staking transaction

func DeployLockedTokensTransaction added in v0.25.0

func DeployLockedTokensTransaction(service flow.Address, contract []byte, publicKeys []cadence.Value) (*flow.TransactionBody, error)

DeployLockedTokensTransaction returns the transaction body for the deploy locked tokens transaction

func DeployMetadataViewsContractTransaction added in v0.32.0

func DeployMetadataViewsContractTransaction(nonFungibleToken flow.Address, contract []byte) *flow.TransactionBodyBuilder

func DeployNodeVersionBeaconTransaction added in v0.30.5

func DeployNodeVersionBeaconTransaction(
	service flow.Address,
	versionFreezePeriod cadence.UInt64,
) (*flow.TransactionBody, error)

DeployNodeVersionBeaconTransaction returns the transaction body for the deployment NodeVersionBeacon contract transaction

func DeployNonFungibleTokenContractTransaction added in v0.32.0

func DeployNonFungibleTokenContractTransaction(nonFungibleToken flow.Address, contract []byte) *flow.TransactionBodyBuilder

func DeployRandomBeaconHistoryTransaction added in v0.32.2

func DeployRandomBeaconHistoryTransaction(
	service flow.Address,
) (*flow.TransactionBody, error)

DeployRandomBeaconHistoryTransaction returns the transaction body for the deployment of the RandomBeaconHistory contract transaction

func DeployStorageFeesContractTransaction added in v0.17.6

func DeployStorageFeesContractTransaction(service flow.Address, contract []byte) *flow.TransactionBodyBuilder

func DeployTxFeesContractTransaction added in v0.17.6

func DeployTxFeesContractTransaction(flowFees, service flow.Address, contract []byte) *flow.TransactionBodyBuilder

func DeployViewResolverContractTransaction added in v0.32.0

func DeployViewResolverContractTransaction(nonFungibleToken flow.Address) *flow.TransactionBodyBuilder

func EnableWFLOWTokenHandlerTransaction added in v0.41.0

func EnableWFLOWTokenHandlerTransaction(
	env templates.Environment,
	bridgeEnv bridge.Environment,
	service flow.Address,
	flowTokenType string,
) (*flow.TransactionBody, error)

EnableWFLOWTokenHandlerTransaction returns the transaction body for the transaction that enables the token handler for the WFLOW Solidity contract

func ExecuteCallbacksTransactions added in v0.43.0

func ExecuteCallbacksTransactions(chainID flow.Chain, processEvents flow.EventsList) ([]*flow.TransactionBody, error)

ExecuteCallbacksTransactions constructs a list of transaction to execute callbacks, for the given chain. No errors are expected during normal operation.

func FundAccountTransaction added in v0.25.0

func FundAccountTransaction(
	service flow.Address,
	fungibleToken flow.Address,
	flowToken flow.Address,
	nodeAddress flow.Address,
) (*flow.TransactionBody, error)

FundAccountTransaction returns the transaction body for the fund account transaction

func GetEscrowedTokenBalanceScript added in v0.41.0

func GetEscrowedTokenBalanceScript(
	env templates.Environment,
	bridgeEnv bridge.Environment,
) []byte

GetEscrowedTokenBalanceScript returns the script body for the script that gets the balance of an escrowed fungible token in the Cadence side of the VM bridge

func GetIsNFTInEscrowScript added in v0.41.0

func GetIsNFTInEscrowScript(
	env templates.Environment,
	bridgeEnv bridge.Environment,
) []byte

GetIsNFTInEscrowScript returns the script body for the script that gets if an NFT is escrowed in the Cadence side of the VM bridge

func IntegrateEVMWithBridgeAccessorTransaction added in v0.41.0

func IntegrateEVMWithBridgeAccessorTransaction(
	env templates.Environment,
	bridgeEnv bridge.Environment,
	service flow.Address,
) (*flow.TransactionBody, error)

IntegrateEVMWithBridgeAccessorTransaction returns the transaction body for the transaction that claims the bridge accessor capability and saves the bridge router

func MintFlowTokenTransaction added in v0.17.6

func MintFlowTokenTransaction(
	fungibleToken, flowToken, service flow.Address,
	initialSupply cadence.UFix64,
) (*flow.TransactionBody, error)

func OnboardToBridgeByTypeIDTransaction added in v0.41.0

func OnboardToBridgeByTypeIDTransaction(
	env templates.Environment,
	bridgeEnv bridge.Environment,
	service flow.Address,
	forType string,
) *flow.TransactionBodyBuilder

OnboardToBridgeByTypeIDTransaction returns the transaction body for the transaction that onboards a FT or NFT type to the bridge

func PauseBridgeTransaction added in v0.41.0

func PauseBridgeTransaction(
	env templates.Environment,
	bridgeEnv bridge.Environment,
	service flow.Address,
	pause bool,
) (*flow.TransactionBody, error)

PauseBridgeTransaction returns the transaction body for the transaction to pause or unpause the VM bridge

func PendingExecutionEventType added in v0.43.0

func PendingExecutionEventType(env templates.Environment) flow.EventType

PendingExecutionEventType returns the event type for FlowCallbackScheduler PendingExecution event for the provided environment.

func ProcessCallbacksTransaction added in v0.43.0

func ProcessCallbacksTransaction(chain flow.Chain) (*flow.TransactionBody, error)

ProcessCallbacksTransaction constructs a transaction for processing callbacks, for the given callback. No errors are expected during normal operation.

func RegisterNodeTransaction added in v0.25.0

func RegisterNodeTransaction(
	service flow.Address,
	flowTokenAddress flow.Address,
	fungibleTokenAddress flow.Address,
	nodeAddress flow.Address,
	node bootstrap.NodeInfo,
) *flow.TransactionBody

RegisterNodeTransaction creates a new node struct object. Then, if the node is a collector node, creates a new account and adds a QC object to it If the node is a consensus node, it creates a new account and adds a DKG object to it

func SetContractDeploymentAuthorizersTransaction

func SetContractDeploymentAuthorizersTransaction(serviceAccount flow.Address, authorized []flow.Address) (*flow.TransactionBodyBuilder, error)

SetContractDeploymentAuthorizersTransaction returns a transaction for updating list of authorized accounts allowed to deploy/update contracts

func SetContractRemovalAuthorizersTransaction added in v0.26.0

func SetContractRemovalAuthorizersTransaction(serviceAccount flow.Address, authorized []flow.Address) (*flow.TransactionBodyBuilder, error)

SetContractRemovalAuthorizersTransaction returns a transaction for updating list of authorized accounts allowed to remove contracts

func SetDelegatedDeployerTransaction added in v0.41.0

func SetDelegatedDeployerTransaction(
	env templates.Environment,
	bridgeEnv bridge.Environment,
	service flow.Address,
	deployerAddress string,
) (*flow.TransactionBody, error)

SetDelegatedDeployerTransaction returns the transaction body for the transaction to set a delegated deployer for a particular token type

func SetDeploymentRegistryTransaction added in v0.41.0

func SetDeploymentRegistryTransaction(
	env templates.Environment,
	bridgeEnv bridge.Environment,
	service flow.Address,
	registryAddress string,
) (*flow.TransactionBody, error)

SetDeploymentRegistryTransaction returns the transaction body for the transaction to add the registry to the factory

func SetExecutionEffortWeightsTransaction added in v0.25.2

func SetExecutionEffortWeightsTransaction(
	parametersAccount flow.Address,
	weights map[uint]uint64,
) (*flow.TransactionBody, error)

SetExecutionEffortWeightsTransaction creates a transaction that sets up weights for the weighted Meter.

func SetExecutionMemoryLimitTransaction added in v0.26.2

func SetExecutionMemoryLimitTransaction(
	parametersAccount flow.Address,
	limit uint64,
) (*flow.TransactionBody, error)

func SetExecutionMemoryWeightsTransaction added in v0.26.0

func SetExecutionMemoryWeightsTransaction(
	parametersAccount flow.Address,
	weights map[uint]uint64,
) (*flow.TransactionBody, error)

SetExecutionMemoryWeightsTransaction creates a transaction that sets up weights for the weighted Meter.

func SetIsContractDeploymentRestrictedTransaction added in v0.26.0

func SetIsContractDeploymentRestrictedTransaction(serviceAccount flow.Address, restricted bool) (*flow.TransactionBody, error)

SetIsContractDeploymentRestrictedTransaction sets the restricted flag for contract deployment

func SetRegistrarTransaction added in v0.41.0

func SetRegistrarTransaction(
	env templates.Environment,
	bridgeEnv bridge.Environment,
	service flow.Address,
	registryAddress string,
) (*flow.TransactionBody, error)

SetRegistrarTransaction returns the transaction body for the transaction to set the factory as registrar

func SetStakingAllowlistTransaction added in v0.21.0

func SetStakingAllowlistTransaction(idTableStakingAddr flow.Address, allowedNodeIDs []flow.Identifier) (*flow.TransactionBody, error)

SetStakingAllowlistTransaction returns transaction body for set staking allowlist transaction

func SetStakingAllowlistTxArg added in v0.30.0

func SetStakingAllowlistTxArg(allowedNodeIDs []flow.Identifier) cadence.Value

SetStakingAllowlistTxArg returns the transaction argument for setting the staking allow-list.

func SetupAccountTransaction added in v0.25.0

func SetupAccountTransaction(
	fungibleToken flow.Address,
	flowToken flow.Address,
	accountAddress flow.Address,
) (*flow.TransactionBody, error)

SetupAccountTransaction returns the transaction body for the setup account transaction

func SetupFeesTransaction added in v0.17.6

func SetupFeesTransaction(
	service flow.Address,
	flowFees flow.Address,
	surgeFactor,
	inclusionEffortCost,
	executionEffortCost cadence.UFix64,
) (*flow.TransactionBody, error)

func SetupParametersTransaction added in v0.25.2

func SetupParametersTransaction(
	service flow.Address,
	addressCreationFee,
	minimumStorageReservation,
	storagePerFlow cadence.UFix64,
	restrictedAccountCreationEnabled cadence.Bool,
) (*flow.TransactionBody, error)

func SetupStorageForAccountTransaction added in v0.33.1

func SetupStorageForAccountTransaction(
	account, service, fungibleToken, flowToken flow.Address,
) (*flow.TransactionBody, error)

func SetupStorageForServiceAccountsTransaction added in v0.17.6

func SetupStorageForServiceAccountsTransaction(
	service, fungibleToken, flowToken, feeContract flow.Address,
) (*flow.TransactionBody, error)

func SystemChunkTransaction added in v0.17.6

func SystemChunkTransaction(chain flow.Chain) (*flow.TransactionBody, error)

SystemChunkTransaction creates and returns the transaction corresponding to the system chunk for the given chain.

func SystemCollection added in v0.43.0

func SystemCollection(chain flow.Chain, processEvents flow.EventsList) (*flow.Collection, error)

SystemCollection returns the re-created system collection after it has been already executed using the events from the process callback transaction.

func TransferFlowTokenTransaction added in v0.41.0

func TransferFlowTokenTransaction(
	env templates.Environment,
	from, to flow.Address,
	amount string,
) *flow.TransactionBodyBuilder

func UpdateBaseFeeTransaction added in v0.41.0

func UpdateBaseFeeTransaction(
	env templates.Environment,
	bridgeEnv bridge.Environment,
	service flow.Address,
	fee float64,
) (*flow.TransactionBody, error)

UpdateBaseFeeTransaction returns the transaction body for the transaction that updates the base fees for the bridge

func UpdateOnboardFeeTransaction added in v0.41.0

func UpdateOnboardFeeTransaction(
	env templates.Environment,
	bridgeEnv bridge.Environment,
	service flow.Address,
	fee float64,
) (*flow.TransactionBody, error)

UpdateOnboardFeeTransaction returns the transaction body for the transaction that updates the onboarding fees for the bridge

func UpsertContractCodeChunksTransaction added in v0.41.0

func UpsertContractCodeChunksTransaction(
	env templates.Environment,
	bridgeEnv bridge.Environment,
	service flow.Address,
	forTemplate string,
	newChunks []string,
) (*flow.TransactionBody, error)

UpsertContractCodeChunksTransaction returns the transaction body for the transaction that adds the code chunks for the FT or NFT templates to the bridge

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL