diff options
author | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-03-25 20:55:46 +0800 |
---|---|---|
committer | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-03-25 20:55:46 +0800 |
commit | aa1eae67ecd8a85a043f49e36e33bd3c44a1d94c (patch) | |
tree | 836fbfcb33ee385a19f0e5e529262efb0a905995 /xeth/frontend.go | |
parent | 7f0c2545a91fd2dce0fea8078222a80dccd8b42b (diff) | |
parent | 2b93843d86532db3d6b530daf15c04fde0b73eba (diff) | |
download | dexon-aa1eae67ecd8a85a043f49e36e33bd3c44a1d94c.tar dexon-aa1eae67ecd8a85a043f49e36e33bd3c44a1d94c.tar.gz dexon-aa1eae67ecd8a85a043f49e36e33bd3c44a1d94c.tar.bz2 dexon-aa1eae67ecd8a85a043f49e36e33bd3c44a1d94c.tar.lz dexon-aa1eae67ecd8a85a043f49e36e33bd3c44a1d94c.tar.xz dexon-aa1eae67ecd8a85a043f49e36e33bd3c44a1d94c.tar.zst dexon-aa1eae67ecd8a85a043f49e36e33bd3c44a1d94c.zip |
Merge pull request #560 from tgerring/xethcleanup
XEth cleanup
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 } |