diff options
author | Taylor Gerring <taylor.gerring@gmail.com> | 2015-03-24 23:42:33 +0800 |
---|---|---|
committer | Taylor Gerring <taylor.gerring@gmail.com> | 2015-03-24 23:42:33 +0800 |
commit | 2106a63d60e261608dc71a30f07b6b905fc78f2f (patch) | |
tree | f095857f3a2a074592b6ddd5118c52bd7d797ae9 /xeth/frontend.go | |
parent | 65d553d367d698b26a9586bd709d561d00b4f5a8 (diff) | |
download | dexon-2106a63d60e261608dc71a30f07b6b905fc78f2f.tar.gz dexon-2106a63d60e261608dc71a30f07b6b905fc78f2f.tar.zst dexon-2106a63d60e261608dc71a30f07b6b905fc78f2f.zip |
Move Frontend interface to separate file
Diffstat (limited to 'xeth/frontend.go')
-rw-r--r-- | xeth/frontend.go | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/xeth/frontend.go b/xeth/frontend.go new file mode 100644 index 000000000..8deb5c98c --- /dev/null +++ b/xeth/frontend.go @@ -0,0 +1,32 @@ +package xeth + +import ( + "github.com/ethereum/go-ethereum/core/types" +) + +// Frontend should be implemented by users of XEth. Its methods are +// called whenever XEth makes a decision that requires user input. +type Frontend interface { + // UnlockAccount is called when a transaction needs to be signed + // but the key corresponding to the transaction's sender is + // locked. + // + // It should unlock the account with the given address and return + // true if unlocking succeeded. + UnlockAccount(address []byte) bool + + // This is called for all transactions inititated through + // Transact. It should prompt the user to confirm the transaction + // and return true if the transaction was acknowledged. + // + // ConfirmTransaction is not used for Call transactions + // because they cannot change any state. + ConfirmTransaction(tx *types.Transaction) bool +} + +// dummyFrontend is a non-interactive frontend that allows all +// transactions but cannot not unlock any keys. +type dummyFrontend struct{} + +func (dummyFrontend) UnlockAccount([]byte) bool { return false } +func (dummyFrontend) ConfirmTransaction(*types.Transaction) bool { return true } |