Greg Fitzgerald
26b99d3f85
Ensure witness and timestamp keys are signed
...
Before this patch, an attacker could point Budget instructions to
unsigned keys, and authorize a transaction from an unauthorized
party.
2018-10-19 10:06:59 -06:00
Greg Fitzgerald
2045091c4f
Add SystemProgram::Move ix to Budget tx
2018-10-18 08:46:02 -06:00
Greg Fitzgerald
03ac5a6eef
Move all source tokens into Budget account
...
Budget now assumes the source account holds all tokens the program
should spend.
Note: the static guarantees implied by verify_plan() are meaningless
under the new contract engine. The bank no longer calls it. This
serves as a nice example of where comparing code coverage between
integration tests and unit tests would have shown us where a
change rendered unit tests meaningless.
2018-10-18 08:46:02 -06:00
Greg Fitzgerald
32fadc9c30
Merge debits and credits
...
Debits no longer need to be applied before credits. Instead, we
lock any accounts we'd debit and so error out on the second attempt
to lock the same account.
2018-10-18 08:46:02 -06:00
Greg Fitzgerald
15a89d4f17
Boot Contract type from Budget
...
In the old bank (before the contract engine), Contract wasn't specific
to Budget. It provided the same service as what is now called
SystemProgram::Move, but without requiring a separate account.
2018-10-18 08:46:02 -06:00
Greg Fitzgerald
b508fdb62c
Cleanup field names
2018-10-04 16:51:05 -07:00
anatoly yakovenko
e7de7c32db
Transactions with multiple programs. ( #1381 )
...
Transactions contain a vector of instructions that are executed atomically.
Bench shows a 2.3x speed up when using 5 instructions per tx.
2018-09-28 16:16:35 -07:00
jackcmay
9c47e022dc
break dependency of programs on solana core ( #1371 )
...
* break dependency of programs on Solana core
2018-09-27 07:49:26 -07:00
Greg Fitzgerald
b7ae5b712a
Move Pubkey into its own module
2018-09-26 20:40:40 -06:00
Greg Fitzgerald
c6d7cd2d33
Move Account into its own module
...
Also use default Default generator, since system program ID is
[0; 32]. Bank should probably be the one to set this anyway.
2018-09-26 20:40:40 -06:00
Greg Fitzgerald
7292ece7ad
Free up term instruction for new multi-instruction feature
2018-09-26 14:17:15 -06:00
Greg Fitzgerald
df3b78c18c
Move BudgetTransaction into its own module
2018-09-26 14:17:15 -06:00
Greg Fitzgerald
be20c99758
Promote the one true transaction constructor
2018-09-26 14:17:15 -06:00
Greg Fitzgerald
694add9919
Move budget-specific and system-specific tx constructors into traits
...
These functions pull in budget-specific and system-specific
dependencies that aren't needed by the runtime.
2018-09-26 14:17:15 -06:00
Tyera Eulberg
f636408647
Fix timestamp and cancel functionality
...
- Also serialize and send helper fn
2018-09-25 16:38:51 -07:00
Tyera Eulberg
11ea9e7c4b
Add cancelable handling
2018-09-25 16:38:51 -07:00
Tyera Eulberg
5038e5ccd7
Preliminary Wallet-Budget functionality
2018-09-25 16:38:51 -07:00
Greg Fitzgerald
747ba6a8d3
Boot BudgetState::last_error
2018-09-24 17:14:23 -06:00
Greg Fitzgerald
e972d6639d
Return errors from BudgetProgram::process_transaction
2018-09-24 17:14:23 -06:00
Tyera Eulberg
c0e7e43e96
fixup! s/contract/program
2018-09-20 19:33:54 -07:00
Anatoly Yakovenko
9bfead2e01
s/contract/program
2018-09-20 19:33:54 -07:00