Documentation
¶
Index ¶
- type BbAssetsLockedSubscription
- type BbDepositFinalizedSubscription
- type BbDepositInitializedSubscription
- type BbInitializedSubscription
- type BbMinTBTCAmountUpdatedSubscription
- type BbOwnershipTransferStartedSubscription
- type BbOwnershipTransferredSubscription
- type BitcoinBridge
- func (bb *BitcoinBridge) AcceptOwnership(transactionOptions ...chainutil.TransactionOptions) (*types.Transaction, error)
- func (bb *BitcoinBridge) AcceptOwnershipGasEstimate() (uint64, error)
- func (bb *BitcoinBridge) AssetsLockedEvent(opts *ethereum.SubscribeOpts, sequenceNumberFilter []*big.Int, ...) *BbAssetsLockedSubscription
- func (bb *BitcoinBridge) Bridge() (common.Address, error)
- func (bb *BitcoinBridge) BridgeAtBlock(blockNumber *big.Int) (common.Address, error)
- func (bb *BitcoinBridge) BridgeTBTC(arg_amount *big.Int, arg_recipient common.Address, ...) (*types.Transaction, error)
- func (bb *BitcoinBridge) BridgeTBTCGasEstimate(arg_amount *big.Int, arg_recipient common.Address) (uint64, error)
- func (bb *BitcoinBridge) BridgeTBTCWithPermit(arg_amount *big.Int, arg_recipient common.Address, arg_deadline *big.Int, ...) (*types.Transaction, error)
- func (bb *BitcoinBridge) BridgeTBTCWithPermitGasEstimate(arg_amount *big.Int, arg_recipient common.Address, arg_deadline *big.Int, ...) (uint64, error)
- func (bb *BitcoinBridge) CallAcceptOwnership(blockNumber *big.Int) error
- func (bb *BitcoinBridge) CallBridgeTBTC(arg_amount *big.Int, arg_recipient common.Address, blockNumber *big.Int) error
- func (bb *BitcoinBridge) CallBridgeTBTCWithPermit(arg_amount *big.Int, arg_recipient common.Address, arg_deadline *big.Int, ...) error
- func (bb *BitcoinBridge) CallFinalizeBTCBridging(arg_depositKey *big.Int, arg_recipient common.Address, blockNumber *big.Int) error
- func (bb *BitcoinBridge) CallInitialize(arg__bridge common.Address, arg__tbtcVault common.Address, ...) error
- func (bb *BitcoinBridge) CallInitializeBTCBridging(arg_fundingTx abi.IBridgeTypesBitcoinTxInfo, ...) error
- func (bb *BitcoinBridge) CallRenounceOwnership(blockNumber *big.Int) error
- func (bb *BitcoinBridge) CallTransferOwnership(arg_newOwner common.Address, blockNumber *big.Int) error
- func (bb *BitcoinBridge) CallUpdateMinTBTCAmount(arg_newMinTBTCAmount *big.Int, blockNumber *big.Int) error
- func (bb *BitcoinBridge) DepositFinalizedEvent(opts *ethereum.SubscribeOpts, depositKeyFilter []*big.Int) *BbDepositFinalizedSubscription
- func (bb *BitcoinBridge) DepositInitializedEvent(opts *ethereum.SubscribeOpts, depositKeyFilter []*big.Int, ...) *BbDepositInitializedSubscription
- func (bb *BitcoinBridge) Deposits(arg0 *big.Int) (uint8, error)
- func (bb *BitcoinBridge) DepositsAtBlock(arg0 *big.Int, blockNumber *big.Int) (uint8, error)
- func (bb *BitcoinBridge) FinalizeBTCBridging(arg_depositKey *big.Int, arg_recipient common.Address, ...) (*types.Transaction, error)
- func (bb *BitcoinBridge) FinalizeBTCBridgingGasEstimate(arg_depositKey *big.Int, arg_recipient common.Address) (uint64, error)
- func (bb *BitcoinBridge) Initialize(arg__bridge common.Address, arg__tbtcVault common.Address, ...) (*types.Transaction, error)
- func (bb *BitcoinBridge) InitializeBTCBridging(arg_fundingTx abi.IBridgeTypesBitcoinTxInfo, ...) (*types.Transaction, error)
- func (bb *BitcoinBridge) InitializeBTCBridgingGasEstimate(arg_fundingTx abi.IBridgeTypesBitcoinTxInfo, ...) (uint64, error)
- func (bb *BitcoinBridge) InitializeGasEstimate(arg__bridge common.Address, arg__tbtcVault common.Address, ...) (uint64, error)
- func (bb *BitcoinBridge) InitializedEvent(opts *ethereum.SubscribeOpts) *BbInitializedSubscription
- func (bb *BitcoinBridge) MinTBTCAmount() (*big.Int, error)
- func (bb *BitcoinBridge) MinTBTCAmountAtBlock(blockNumber *big.Int) (*big.Int, error)
- func (bb *BitcoinBridge) MinTBTCAmountUpdatedEvent(opts *ethereum.SubscribeOpts) *BbMinTBTCAmountUpdatedSubscription
- func (bb *BitcoinBridge) Owner() (common.Address, error)
- func (bb *BitcoinBridge) OwnerAtBlock(blockNumber *big.Int) (common.Address, error)
- func (bb *BitcoinBridge) OwnershipTransferStartedEvent(opts *ethereum.SubscribeOpts, previousOwnerFilter []common.Address, ...) *BbOwnershipTransferStartedSubscription
- func (bb *BitcoinBridge) OwnershipTransferredEvent(opts *ethereum.SubscribeOpts, previousOwnerFilter []common.Address, ...) *BbOwnershipTransferredSubscription
- func (bb *BitcoinBridge) PastAssetsLockedEvents(startBlock uint64, endBlock *uint64, sequenceNumberFilter []*big.Int, ...) ([]*abi.BitcoinBridgeAssetsLocked, error)
- func (bb *BitcoinBridge) PastDepositFinalizedEvents(startBlock uint64, endBlock *uint64, depositKeyFilter []*big.Int) ([]*abi.BitcoinBridgeDepositFinalized, error)
- func (bb *BitcoinBridge) PastDepositInitializedEvents(startBlock uint64, endBlock *uint64, depositKeyFilter []*big.Int, ...) ([]*abi.BitcoinBridgeDepositInitialized, error)
- func (bb *BitcoinBridge) PastInitializedEvents(startBlock uint64, endBlock *uint64) ([]*abi.BitcoinBridgeInitialized, error)
- func (bb *BitcoinBridge) PastMinTBTCAmountUpdatedEvents(startBlock uint64, endBlock *uint64) ([]*abi.BitcoinBridgeMinTBTCAmountUpdated, error)
- func (bb *BitcoinBridge) PastOwnershipTransferStartedEvents(startBlock uint64, endBlock *uint64, previousOwnerFilter []common.Address, ...) ([]*abi.BitcoinBridgeOwnershipTransferStarted, error)
- func (bb *BitcoinBridge) PastOwnershipTransferredEvents(startBlock uint64, endBlock *uint64, previousOwnerFilter []common.Address, ...) ([]*abi.BitcoinBridgeOwnershipTransferred, error)
- func (bb *BitcoinBridge) PendingOwner() (common.Address, error)
- func (bb *BitcoinBridge) PendingOwnerAtBlock(blockNumber *big.Int) (common.Address, error)
- func (bb *BitcoinBridge) RenounceOwnership(transactionOptions ...chainutil.TransactionOptions) (*types.Transaction, error)
- func (bb *BitcoinBridge) RenounceOwnershipGasEstimate() (uint64, error)
- func (bb *BitcoinBridge) SATOSHIMULTIPLIER() (*big.Int, error)
- func (bb *BitcoinBridge) SATOSHIMULTIPLIERAtBlock(blockNumber *big.Int) (*big.Int, error)
- func (bb *BitcoinBridge) Sequence() (*big.Int, error)
- func (bb *BitcoinBridge) SequenceAtBlock(blockNumber *big.Int) (*big.Int, error)
- func (bb *BitcoinBridge) TbtcToken() (common.Address, error)
- func (bb *BitcoinBridge) TbtcTokenAtBlock(blockNumber *big.Int) (common.Address, error)
- func (bb *BitcoinBridge) TbtcVault() (common.Address, error)
- func (bb *BitcoinBridge) TbtcVaultAtBlock(blockNumber *big.Int) (common.Address, error)
- func (bb *BitcoinBridge) TransferOwnership(arg_newOwner common.Address, ...) (*types.Transaction, error)
- func (bb *BitcoinBridge) TransferOwnershipGasEstimate(arg_newOwner common.Address) (uint64, error)
- func (bb *BitcoinBridge) UpdateMinTBTCAmount(arg_newMinTBTCAmount *big.Int, ...) (*types.Transaction, error)
- func (bb *BitcoinBridge) UpdateMinTBTCAmountGasEstimate(arg_newMinTBTCAmount *big.Int) (uint64, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BbAssetsLockedSubscription ¶
type BbAssetsLockedSubscription struct {
// contains filtered or unexported fields
}
func (*BbAssetsLockedSubscription) OnEvent ¶
func (als *BbAssetsLockedSubscription) OnEvent( handler bitcoinBridgeAssetsLockedFunc, ) subscription.EventSubscription
func (*BbAssetsLockedSubscription) Pipe ¶
func (als *BbAssetsLockedSubscription) Pipe( sink chan *abi.BitcoinBridgeAssetsLocked, ) subscription.EventSubscription
type BbDepositFinalizedSubscription ¶
type BbDepositFinalizedSubscription struct {
// contains filtered or unexported fields
}
func (*BbDepositFinalizedSubscription) OnEvent ¶
func (dfs *BbDepositFinalizedSubscription) OnEvent( handler bitcoinBridgeDepositFinalizedFunc, ) subscription.EventSubscription
func (*BbDepositFinalizedSubscription) Pipe ¶
func (dfs *BbDepositFinalizedSubscription) Pipe( sink chan *abi.BitcoinBridgeDepositFinalized, ) subscription.EventSubscription
type BbDepositInitializedSubscription ¶
type BbDepositInitializedSubscription struct {
// contains filtered or unexported fields
}
func (*BbDepositInitializedSubscription) OnEvent ¶
func (dis *BbDepositInitializedSubscription) OnEvent( handler bitcoinBridgeDepositInitializedFunc, ) subscription.EventSubscription
func (*BbDepositInitializedSubscription) Pipe ¶
func (dis *BbDepositInitializedSubscription) Pipe( sink chan *abi.BitcoinBridgeDepositInitialized, ) subscription.EventSubscription
type BbInitializedSubscription ¶
type BbInitializedSubscription struct {
// contains filtered or unexported fields
}
func (*BbInitializedSubscription) OnEvent ¶
func (is *BbInitializedSubscription) OnEvent( handler bitcoinBridgeInitializedFunc, ) subscription.EventSubscription
func (*BbInitializedSubscription) Pipe ¶
func (is *BbInitializedSubscription) Pipe( sink chan *abi.BitcoinBridgeInitialized, ) subscription.EventSubscription
type BbMinTBTCAmountUpdatedSubscription ¶
type BbMinTBTCAmountUpdatedSubscription struct {
// contains filtered or unexported fields
}
func (*BbMinTBTCAmountUpdatedSubscription) OnEvent ¶
func (mtbtcaus *BbMinTBTCAmountUpdatedSubscription) OnEvent( handler bitcoinBridgeMinTBTCAmountUpdatedFunc, ) subscription.EventSubscription
func (*BbMinTBTCAmountUpdatedSubscription) Pipe ¶
func (mtbtcaus *BbMinTBTCAmountUpdatedSubscription) Pipe( sink chan *abi.BitcoinBridgeMinTBTCAmountUpdated, ) subscription.EventSubscription
type BbOwnershipTransferStartedSubscription ¶
type BbOwnershipTransferStartedSubscription struct {
// contains filtered or unexported fields
}
func (*BbOwnershipTransferStartedSubscription) OnEvent ¶
func (otss *BbOwnershipTransferStartedSubscription) OnEvent( handler bitcoinBridgeOwnershipTransferStartedFunc, ) subscription.EventSubscription
func (*BbOwnershipTransferStartedSubscription) Pipe ¶
func (otss *BbOwnershipTransferStartedSubscription) Pipe( sink chan *abi.BitcoinBridgeOwnershipTransferStarted, ) subscription.EventSubscription
type BbOwnershipTransferredSubscription ¶
type BbOwnershipTransferredSubscription struct {
// contains filtered or unexported fields
}
func (*BbOwnershipTransferredSubscription) OnEvent ¶
func (ots *BbOwnershipTransferredSubscription) OnEvent( handler bitcoinBridgeOwnershipTransferredFunc, ) subscription.EventSubscription
func (*BbOwnershipTransferredSubscription) Pipe ¶
func (ots *BbOwnershipTransferredSubscription) Pipe( sink chan *abi.BitcoinBridgeOwnershipTransferred, ) subscription.EventSubscription
type BitcoinBridge ¶
type BitcoinBridge struct {
// contains filtered or unexported fields
}
func NewBitcoinBridge ¶
func NewBitcoinBridge( contractAddress common.Address, chainId *big.Int, accountKey *keystore.Key, backend bind.ContractBackend, nonceManager *ethereum.NonceManager, miningWaiter *chainutil.MiningWaiter, blockCounter *ethereum.BlockCounter, transactionMutex *sync.Mutex, ) (*BitcoinBridge, error)
func (*BitcoinBridge) AcceptOwnership ¶
func (bb *BitcoinBridge) AcceptOwnership( transactionOptions ...chainutil.TransactionOptions, ) (*types.Transaction, error)
Transaction submission.
func (*BitcoinBridge) AcceptOwnershipGasEstimate ¶
func (bb *BitcoinBridge) AcceptOwnershipGasEstimate() (uint64, error)
func (*BitcoinBridge) AssetsLockedEvent ¶
func (bb *BitcoinBridge) AssetsLockedEvent( opts *ethereum.SubscribeOpts, sequenceNumberFilter []*big.Int, recipientFilter []common.Address, ) *BbAssetsLockedSubscription
func (*BitcoinBridge) BridgeAtBlock ¶
func (*BitcoinBridge) BridgeTBTC ¶
func (bb *BitcoinBridge) BridgeTBTC( arg_amount *big.Int, arg_recipient common.Address, transactionOptions ...chainutil.TransactionOptions, ) (*types.Transaction, error)
Transaction submission.
func (*BitcoinBridge) BridgeTBTCGasEstimate ¶
func (*BitcoinBridge) BridgeTBTCWithPermit ¶
func (bb *BitcoinBridge) BridgeTBTCWithPermit( arg_amount *big.Int, arg_recipient common.Address, arg_deadline *big.Int, arg_v uint8, arg_r [32]byte, arg_s [32]byte, transactionOptions ...chainutil.TransactionOptions, ) (*types.Transaction, error)
Transaction submission.
func (*BitcoinBridge) BridgeTBTCWithPermitGasEstimate ¶
func (*BitcoinBridge) CallAcceptOwnership ¶
func (bb *BitcoinBridge) CallAcceptOwnership( blockNumber *big.Int, ) error
Non-mutating call, not a transaction submission.
func (*BitcoinBridge) CallBridgeTBTC ¶
func (bb *BitcoinBridge) CallBridgeTBTC( arg_amount *big.Int, arg_recipient common.Address, blockNumber *big.Int, ) error
Non-mutating call, not a transaction submission.
func (*BitcoinBridge) CallBridgeTBTCWithPermit ¶
func (bb *BitcoinBridge) CallBridgeTBTCWithPermit( arg_amount *big.Int, arg_recipient common.Address, arg_deadline *big.Int, arg_v uint8, arg_r [32]byte, arg_s [32]byte, blockNumber *big.Int, ) error
Non-mutating call, not a transaction submission.
func (*BitcoinBridge) CallFinalizeBTCBridging ¶
func (bb *BitcoinBridge) CallFinalizeBTCBridging( arg_depositKey *big.Int, arg_recipient common.Address, blockNumber *big.Int, ) error
Non-mutating call, not a transaction submission.
func (*BitcoinBridge) CallInitialize ¶
func (bb *BitcoinBridge) CallInitialize( arg__bridge common.Address, arg__tbtcVault common.Address, arg__tbtcToken common.Address, blockNumber *big.Int, ) error
Non-mutating call, not a transaction submission.
func (*BitcoinBridge) CallInitializeBTCBridging ¶
func (bb *BitcoinBridge) CallInitializeBTCBridging( arg_fundingTx abi.IBridgeTypesBitcoinTxInfo, arg_reveal abi.IBridgeTypesDepositRevealInfo, arg_recipient common.Address, blockNumber *big.Int, ) error
Non-mutating call, not a transaction submission.
func (*BitcoinBridge) CallRenounceOwnership ¶
func (bb *BitcoinBridge) CallRenounceOwnership( blockNumber *big.Int, ) error
Non-mutating call, not a transaction submission.
func (*BitcoinBridge) CallTransferOwnership ¶
func (bb *BitcoinBridge) CallTransferOwnership( arg_newOwner common.Address, blockNumber *big.Int, ) error
Non-mutating call, not a transaction submission.
func (*BitcoinBridge) CallUpdateMinTBTCAmount ¶
func (bb *BitcoinBridge) CallUpdateMinTBTCAmount( arg_newMinTBTCAmount *big.Int, blockNumber *big.Int, ) error
Non-mutating call, not a transaction submission.
func (*BitcoinBridge) DepositFinalizedEvent ¶
func (bb *BitcoinBridge) DepositFinalizedEvent( opts *ethereum.SubscribeOpts, depositKeyFilter []*big.Int, ) *BbDepositFinalizedSubscription
func (*BitcoinBridge) DepositInitializedEvent ¶
func (bb *BitcoinBridge) DepositInitializedEvent( opts *ethereum.SubscribeOpts, depositKeyFilter []*big.Int, recipientFilter []common.Address, ) *BbDepositInitializedSubscription
func (*BitcoinBridge) DepositsAtBlock ¶
func (*BitcoinBridge) FinalizeBTCBridging ¶
func (bb *BitcoinBridge) FinalizeBTCBridging( arg_depositKey *big.Int, arg_recipient common.Address, transactionOptions ...chainutil.TransactionOptions, ) (*types.Transaction, error)
Transaction submission.
func (*BitcoinBridge) FinalizeBTCBridgingGasEstimate ¶
func (*BitcoinBridge) Initialize ¶
func (bb *BitcoinBridge) Initialize( arg__bridge common.Address, arg__tbtcVault common.Address, arg__tbtcToken common.Address, transactionOptions ...chainutil.TransactionOptions, ) (*types.Transaction, error)
Transaction submission.
func (*BitcoinBridge) InitializeBTCBridging ¶
func (bb *BitcoinBridge) InitializeBTCBridging( arg_fundingTx abi.IBridgeTypesBitcoinTxInfo, arg_reveal abi.IBridgeTypesDepositRevealInfo, arg_recipient common.Address, transactionOptions ...chainutil.TransactionOptions, ) (*types.Transaction, error)
Transaction submission.
func (*BitcoinBridge) InitializeBTCBridgingGasEstimate ¶
func (bb *BitcoinBridge) InitializeBTCBridgingGasEstimate( arg_fundingTx abi.IBridgeTypesBitcoinTxInfo, arg_reveal abi.IBridgeTypesDepositRevealInfo, arg_recipient common.Address, ) (uint64, error)
func (*BitcoinBridge) InitializeGasEstimate ¶
func (*BitcoinBridge) InitializedEvent ¶
func (bb *BitcoinBridge) InitializedEvent( opts *ethereum.SubscribeOpts, ) *BbInitializedSubscription
func (*BitcoinBridge) MinTBTCAmount ¶
func (bb *BitcoinBridge) MinTBTCAmount() (*big.Int, error)
func (*BitcoinBridge) MinTBTCAmountAtBlock ¶
func (*BitcoinBridge) MinTBTCAmountUpdatedEvent ¶
func (bb *BitcoinBridge) MinTBTCAmountUpdatedEvent( opts *ethereum.SubscribeOpts, ) *BbMinTBTCAmountUpdatedSubscription
func (*BitcoinBridge) OwnerAtBlock ¶
func (*BitcoinBridge) OwnershipTransferStartedEvent ¶
func (bb *BitcoinBridge) OwnershipTransferStartedEvent( opts *ethereum.SubscribeOpts, previousOwnerFilter []common.Address, newOwnerFilter []common.Address, ) *BbOwnershipTransferStartedSubscription
func (*BitcoinBridge) OwnershipTransferredEvent ¶
func (bb *BitcoinBridge) OwnershipTransferredEvent( opts *ethereum.SubscribeOpts, previousOwnerFilter []common.Address, newOwnerFilter []common.Address, ) *BbOwnershipTransferredSubscription
func (*BitcoinBridge) PastAssetsLockedEvents ¶
func (bb *BitcoinBridge) PastAssetsLockedEvents( startBlock uint64, endBlock *uint64, sequenceNumberFilter []*big.Int, recipientFilter []common.Address, ) ([]*abi.BitcoinBridgeAssetsLocked, error)
func (*BitcoinBridge) PastDepositFinalizedEvents ¶
func (bb *BitcoinBridge) PastDepositFinalizedEvents( startBlock uint64, endBlock *uint64, depositKeyFilter []*big.Int, ) ([]*abi.BitcoinBridgeDepositFinalized, error)
func (*BitcoinBridge) PastDepositInitializedEvents ¶
func (bb *BitcoinBridge) PastDepositInitializedEvents( startBlock uint64, endBlock *uint64, depositKeyFilter []*big.Int, recipientFilter []common.Address, ) ([]*abi.BitcoinBridgeDepositInitialized, error)
func (*BitcoinBridge) PastInitializedEvents ¶
func (bb *BitcoinBridge) PastInitializedEvents( startBlock uint64, endBlock *uint64, ) ([]*abi.BitcoinBridgeInitialized, error)
func (*BitcoinBridge) PastMinTBTCAmountUpdatedEvents ¶
func (bb *BitcoinBridge) PastMinTBTCAmountUpdatedEvents( startBlock uint64, endBlock *uint64, ) ([]*abi.BitcoinBridgeMinTBTCAmountUpdated, error)
func (*BitcoinBridge) PastOwnershipTransferStartedEvents ¶
func (bb *BitcoinBridge) PastOwnershipTransferStartedEvents( startBlock uint64, endBlock *uint64, previousOwnerFilter []common.Address, newOwnerFilter []common.Address, ) ([]*abi.BitcoinBridgeOwnershipTransferStarted, error)
func (*BitcoinBridge) PastOwnershipTransferredEvents ¶
func (bb *BitcoinBridge) PastOwnershipTransferredEvents( startBlock uint64, endBlock *uint64, previousOwnerFilter []common.Address, newOwnerFilter []common.Address, ) ([]*abi.BitcoinBridgeOwnershipTransferred, error)
func (*BitcoinBridge) PendingOwner ¶
func (bb *BitcoinBridge) PendingOwner() (common.Address, error)
func (*BitcoinBridge) PendingOwnerAtBlock ¶
func (*BitcoinBridge) RenounceOwnership ¶
func (bb *BitcoinBridge) RenounceOwnership( transactionOptions ...chainutil.TransactionOptions, ) (*types.Transaction, error)
Transaction submission.
func (*BitcoinBridge) RenounceOwnershipGasEstimate ¶
func (bb *BitcoinBridge) RenounceOwnershipGasEstimate() (uint64, error)
func (*BitcoinBridge) SATOSHIMULTIPLIER ¶
func (bb *BitcoinBridge) SATOSHIMULTIPLIER() (*big.Int, error)
func (*BitcoinBridge) SATOSHIMULTIPLIERAtBlock ¶
func (*BitcoinBridge) SequenceAtBlock ¶
func (*BitcoinBridge) TbtcTokenAtBlock ¶
func (*BitcoinBridge) TbtcVaultAtBlock ¶
func (*BitcoinBridge) TransferOwnership ¶
func (bb *BitcoinBridge) TransferOwnership( arg_newOwner common.Address, transactionOptions ...chainutil.TransactionOptions, ) (*types.Transaction, error)
Transaction submission.
func (*BitcoinBridge) TransferOwnershipGasEstimate ¶
func (bb *BitcoinBridge) TransferOwnershipGasEstimate( arg_newOwner common.Address, ) (uint64, error)
func (*BitcoinBridge) UpdateMinTBTCAmount ¶
func (bb *BitcoinBridge) UpdateMinTBTCAmount( arg_newMinTBTCAmount *big.Int, transactionOptions ...chainutil.TransactionOptions, ) (*types.Transaction, error)
Transaction submission.
func (*BitcoinBridge) UpdateMinTBTCAmountGasEstimate ¶
func (bb *BitcoinBridge) UpdateMinTBTCAmountGasEstimate( arg_newMinTBTCAmount *big.Int, ) (uint64, error)