blueprints

package
v0.41.1-data-migration... Latest Latest
Warning

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

Go to latest
Published: May 21, 2025 License: AGPL-3.0 Imports: 16 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

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.TransactionBody

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.TransactionBody

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.TransactionBody

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.TransactionBody

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.TransactionBody

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

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

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.TransactionBody

func DeployContractTransaction added in v0.17.6

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

TODO (ramtin) get rid of authorizers

func DeployCrossVMMetadataViewsContractTransaction added in v0.41.0

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

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

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

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

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

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

func DeployFungibleTokenContractTransaction added in v0.17.6

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

func DeployFungibleTokenMetadataViewsContractTransaction added in v0.32.0

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

func DeployFungibleTokenSwitchboardContractTransaction added in v0.33.30

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

func DeployIDTableStakingTransaction added in v0.25.0

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

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

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.TransactionBody

func DeployNodeVersionBeaconTransaction added in v0.30.5

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

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.TransactionBody

func DeployRandomBeaconHistoryTransaction added in v0.32.2

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

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.TransactionBody

func DeployTxFeesContractTransaction added in v0.17.6

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

func DeployViewResolverContractTransaction added in v0.32.0

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

func EnableWFLOWTokenHandlerTransaction added in v0.41.0

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

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

func FundAccountTransaction added in v0.25.0

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

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

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

func OnboardToBridgeByTypeIDTransaction added in v0.41.0

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

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

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

func RegisterNodeTransaction added in v0.25.0

func RegisterNodeTransaction(
	service flow.Address,
	flowTokenAddress flow.Address,
	fungibleTokenAddress flow.Address,
	nodeAddress flow.Address,
	id *flow.Identity,
) *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.TransactionBody, 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.TransactionBody, 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

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

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

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

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

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

func SetupParametersTransaction added in v0.25.2

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

func SetupStorageForAccountTransaction added in v0.33.1

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

func SetupStorageForServiceAccountsTransaction added in v0.17.6

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

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 TransferFlowTokenTransaction added in v0.41.0

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

func UpdateBaseFeeTransaction added in v0.41.0

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

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

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

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