Browse Source

add chainID to Sign funcs in permisions_test

pull/102/head
Ethan Buchman 9 years ago
committed by Jae Kwon
parent
commit
7e1412dbc2
1 changed files with 49 additions and 47 deletions
  1. +49
    -47
      state/permissions_test.go

+ 49
- 47
state/permissions_test.go View File

@ -75,6 +75,7 @@ x - roles: has, add, rm
// keys
var user = makeUsers(10)
var chainID = "testchain"
func makeUsers(n int) []*account.PrivAccount {
accounts := []*account.PrivAccount{}
@ -102,6 +103,7 @@ func newBaseGenDoc(globalPerm, accountPerm *ptypes.AccountPermissions) GenesisDo
return GenesisDoc{
GenesisTime: time.Now(),
ChainID: chainID,
Params: &GenesisParams{
GlobalPermissions: globalPerm,
},
@ -138,7 +140,7 @@ func TestSendFails(t *testing.T) {
t.Fatal(err)
}
tx.AddOutput(user[1].Address, 5)
tx.SignInput(0, user[0])
tx.SignInput(chainID, 0, user[0])
if err := ExecTx(blockCache, tx, true, nil); err == nil {
t.Fatal("Expected error")
} else {
@ -151,7 +153,7 @@ func TestSendFails(t *testing.T) {
t.Fatal(err)
}
tx.AddOutput(user[4].Address, 5)
tx.SignInput(0, user[2])
tx.SignInput(chainID, 0, user[2])
if err := ExecTx(blockCache, tx, true, nil); err == nil {
t.Fatal("Expected error")
} else {
@ -164,7 +166,7 @@ func TestSendFails(t *testing.T) {
t.Fatal(err)
}
tx.AddOutput(user[4].Address, 5)
tx.SignInput(0, user[3])
tx.SignInput(chainID, 0, user[3])
if err := ExecTx(blockCache, tx, true, nil); err == nil {
t.Fatal("Expected error")
} else {
@ -180,7 +182,7 @@ func TestSendFails(t *testing.T) {
t.Fatal(err)
}
tx.AddOutput(user[6].Address, 5)
tx.SignInput(0, user[3])
tx.SignInput(chainID, 0, user[3])
if err := ExecTx(blockCache, tx, true, nil); err == nil {
t.Fatal("Expected error")
} else {
@ -202,7 +204,7 @@ func TestCallFails(t *testing.T) {
// simple call tx should fail
tx, _ := types.NewCallTx(blockCache, user[0].PubKey, user[4].Address, nil, 100, 100, 100)
tx.Sign(user[0])
tx.Sign(chainID, user[0])
if err := ExecTx(blockCache, tx, true, nil); err == nil {
t.Fatal("Expected error")
} else {
@ -211,7 +213,7 @@ func TestCallFails(t *testing.T) {
// simple call tx with send permission should fail
tx, _ = types.NewCallTx(blockCache, user[1].PubKey, user[4].Address, nil, 100, 100, 100)
tx.Sign(user[1])
tx.Sign(chainID, user[1])
if err := ExecTx(blockCache, tx, true, nil); err == nil {
t.Fatal("Expected error")
} else {
@ -220,7 +222,7 @@ func TestCallFails(t *testing.T) {
// simple call tx with create permission should fail
tx, _ = types.NewCallTx(blockCache, user[3].PubKey, user[4].Address, nil, 100, 100, 100)
tx.Sign(user[3])
tx.Sign(chainID, user[3])
if err := ExecTx(blockCache, tx, true, nil); err == nil {
t.Fatal("Expected error")
} else {
@ -232,7 +234,7 @@ func TestCallFails(t *testing.T) {
// simple call create tx should fail
tx, _ = types.NewCallTx(blockCache, user[0].PubKey, nil, nil, 100, 100, 100)
tx.Sign(user[0])
tx.Sign(chainID, user[0])
if err := ExecTx(blockCache, tx, true, nil); err == nil {
t.Fatal("Expected error")
} else {
@ -241,7 +243,7 @@ func TestCallFails(t *testing.T) {
// simple call create tx with send perm should fail
tx, _ = types.NewCallTx(blockCache, user[1].PubKey, nil, nil, 100, 100, 100)
tx.Sign(user[1])
tx.Sign(chainID, user[1])
if err := ExecTx(blockCache, tx, true, nil); err == nil {
t.Fatal("Expected error")
} else {
@ -250,7 +252,7 @@ func TestCallFails(t *testing.T) {
// simple call create tx with call perm should fail
tx, _ = types.NewCallTx(blockCache, user[2].PubKey, nil, nil, 100, 100, 100)
tx.Sign(user[2])
tx.Sign(chainID, user[2])
if err := ExecTx(blockCache, tx, true, nil); err == nil {
t.Fatal("Expected error")
} else {
@ -271,7 +273,7 @@ func TestSendPermission(t *testing.T) {
t.Fatal(err)
}
tx.AddOutput(user[1].Address, 5)
tx.SignInput(0, user[0])
tx.SignInput(chainID, 0, user[0])
if err := ExecTx(blockCache, tx, true, nil); err != nil {
t.Fatal("Transaction failed", err)
}
@ -285,8 +287,8 @@ func TestSendPermission(t *testing.T) {
t.Fatal(err)
}
tx.AddOutput(user[2].Address, 10)
tx.SignInput(0, user[0])
tx.SignInput(1, user[1])
tx.SignInput(chainID, 0, user[0])
tx.SignInput(chainID, 1, user[1])
if err := ExecTx(blockCache, tx, true, nil); err == nil {
t.Fatal("Expected error")
} else {
@ -319,7 +321,7 @@ func TestCallPermission(t *testing.T) {
// A single input, having the permission, should succeed
tx, _ := types.NewCallTx(blockCache, user[0].PubKey, simpleContractAddr, nil, 100, 100, 100)
tx.Sign(user[0])
tx.Sign(chainID, user[0])
if err := ExecTx(blockCache, tx, true, nil); err != nil {
t.Fatal("Transaction failed", err)
}
@ -343,7 +345,7 @@ func TestCallPermission(t *testing.T) {
// A single input, having the permission, but the contract doesn't have permission
tx, _ = types.NewCallTx(blockCache, user[0].PubKey, caller1ContractAddr, nil, 100, 10000, 100)
tx.Sign(user[0])
tx.Sign(chainID, user[0])
// we need to subscribe to the Receive event to detect the exception
_, exception := execTxWaitEvent(t, blockCache, tx, types.EventStringAccReceive(caller1ContractAddr)) //
@ -359,7 +361,7 @@ func TestCallPermission(t *testing.T) {
caller1Acc.Permissions.Base.Set(ptypes.Call, true)
blockCache.UpdateAccount(caller1Acc)
tx, _ = types.NewCallTx(blockCache, user[0].PubKey, caller1ContractAddr, nil, 100, 10000, 100)
tx.Sign(user[0])
tx.Sign(chainID, user[0])
// we need to subscribe to the Receive event to detect the exception
_, exception = execTxWaitEvent(t, blockCache, tx, types.EventStringAccReceive(caller1ContractAddr)) //
@ -389,7 +391,7 @@ func TestCallPermission(t *testing.T) {
blockCache.UpdateAccount(caller2Acc)
tx, _ = types.NewCallTx(blockCache, user[0].PubKey, caller2ContractAddr, nil, 100, 10000, 100)
tx.Sign(user[0])
tx.Sign(chainID, user[0])
// we need to subscribe to the Receive event to detect the exception
_, exception = execTxWaitEvent(t, blockCache, tx, types.EventStringAccReceive(caller1ContractAddr)) //
@ -407,7 +409,7 @@ func TestCallPermission(t *testing.T) {
blockCache.UpdateAccount(caller1Acc)
tx, _ = types.NewCallTx(blockCache, user[0].PubKey, caller2ContractAddr, nil, 100, 10000, 100)
tx.Sign(user[0])
tx.Sign(chainID, user[0])
// we need to subscribe to the Receive event to detect the exception
_, exception = execTxWaitEvent(t, blockCache, tx, types.EventStringAccReceive(caller1ContractAddr)) //
@ -433,7 +435,7 @@ func TestCreatePermission(t *testing.T) {
// A single input, having the permission, should succeed
tx, _ := types.NewCallTx(blockCache, user[0].PubKey, nil, createCode, 100, 100, 100)
tx.Sign(user[0])
tx.Sign(chainID, user[0])
if err := ExecTx(blockCache, tx, true, nil); err != nil {
t.Fatal("Transaction failed", err)
}
@ -458,7 +460,7 @@ func TestCreatePermission(t *testing.T) {
// A single input, having the permission, should succeed
tx, _ = types.NewCallTx(blockCache, user[0].PubKey, nil, createFactoryCode, 100, 100, 100)
tx.Sign(user[0])
tx.Sign(chainID, user[0])
if err := ExecTx(blockCache, tx, true, nil); err != nil {
t.Fatal("Transaction failed", err)
}
@ -478,7 +480,7 @@ func TestCreatePermission(t *testing.T) {
// A single input, having the permission, should succeed
tx, _ = types.NewCallTx(blockCache, user[0].PubKey, contractAddr, createCode, 100, 100, 100)
tx.Sign(user[0])
tx.Sign(chainID, user[0])
// we need to subscribe to the Receive event to detect the exception
_, exception := execTxWaitEvent(t, blockCache, tx, types.EventStringAccReceive(contractAddr)) //
if exception == "" {
@ -494,7 +496,7 @@ func TestCreatePermission(t *testing.T) {
// A single input, having the permission, should succeed
tx, _ = types.NewCallTx(blockCache, user[0].PubKey, contractAddr, createCode, 100, 100, 100)
tx.Sign(user[0])
tx.Sign(chainID, user[0])
// we need to subscribe to the Receive event to detect the exception
_, exception = execTxWaitEvent(t, blockCache, tx, types.EventStringAccReceive(contractAddr)) //
if exception != "" {
@ -521,7 +523,7 @@ func TestCreatePermission(t *testing.T) {
// this should call the 0 address but not create ...
tx, _ = types.NewCallTx(blockCache, user[0].PubKey, contractAddr, createCode, 100, 10000, 100)
tx.Sign(user[0])
tx.Sign(chainID, user[0])
// we need to subscribe to the Receive event to detect the exception
_, exception = execTxWaitEvent(t, blockCache, tx, types.EventStringAccReceive(zeroAddr)) //
if exception != "" {
@ -547,8 +549,8 @@ func TestBondPermission(t *testing.T) {
t.Fatal(err)
}
tx.AddOutput(user[1].Address, 5)
tx.SignInput(0, user[1])
tx.SignBond(user[1])
tx.SignInput(chainID, 0, user[1])
tx.SignBond(chainID, user[1])
if err := ExecTx(blockCache, tx, true, nil); err == nil {
t.Fatal("Expected error")
} else {
@ -578,8 +580,8 @@ func TestBondPermission(t *testing.T) {
t.Fatal(err)
}
tx.AddOutput(user[1].Address, 5)
tx.SignInput(0, user[2])
tx.SignBond(user[1])
tx.SignInput(chainID, 0, user[2])
tx.SignBond(chainID, user[1])
if err := ExecTx(blockCache, tx, true, nil); err == nil {
t.Fatal("Expected error")
} else {
@ -603,8 +605,8 @@ func TestBondPermission(t *testing.T) {
t.Fatal(err)
}
tx.AddOutput(user[1].Address, 5)
tx.SignInput(0, user[2])
tx.SignBond(user[1])
tx.SignInput(chainID, 0, user[2])
tx.SignBond(chainID, user[1])
if err := ExecTx(blockCache, tx, true, nil); err != nil {
t.Fatal("Unexpected error", err)
}
@ -625,8 +627,8 @@ func TestBondPermission(t *testing.T) {
t.Fatal(err)
}
tx.AddOutput(user[1].Address, 5)
tx.SignInput(0, user[2])
tx.SignBond(user[1])
tx.SignInput(chainID, 0, user[2])
tx.SignBond(chainID, user[1])
if err := ExecTx(blockCache, tx, true, nil); err != nil {
t.Fatal("Unexpected error", err)
}
@ -648,9 +650,9 @@ func TestBondPermission(t *testing.T) {
t.Fatal(err)
}
tx.AddOutput(user[1].Address, 5)
tx.SignInput(0, user[1])
tx.SignInput(1, user[2])
tx.SignBond(user[1])
tx.SignInput(chainID, 0, user[1])
tx.SignInput(chainID, 1, user[2])
tx.SignBond(chainID, user[1])
if err := ExecTx(blockCache, tx, true, nil); err == nil {
t.Fatal("Expected error")
}
@ -674,7 +676,7 @@ func TestCreateAccountPermission(t *testing.T) {
t.Fatal(err)
}
tx.AddOutput(user[6].Address, 5)
tx.SignInput(0, user[0])
tx.SignInput(chainID, 0, user[0])
if err := ExecTx(blockCache, tx, true, nil); err != nil {
t.Fatal("Transaction failed", err)
}
@ -688,8 +690,8 @@ func TestCreateAccountPermission(t *testing.T) {
t.Fatal(err)
}
tx.AddOutput(user[7].Address, 10)
tx.SignInput(0, user[0])
tx.SignInput(1, user[1])
tx.SignInput(chainID, 0, user[0])
tx.SignInput(chainID, 1, user[1])
if err := ExecTx(blockCache, tx, true, nil); err == nil {
t.Fatal("Expected error")
} else {
@ -706,8 +708,8 @@ func TestCreateAccountPermission(t *testing.T) {
}
tx.AddOutput(user[7].Address, 4)
tx.AddOutput(user[4].Address, 6)
tx.SignInput(0, user[0])
tx.SignInput(1, user[1])
tx.SignInput(chainID, 0, user[0])
tx.SignInput(chainID, 1, user[1])
if err := ExecTx(blockCache, tx, true, nil); err == nil {
t.Fatal("Expected error")
} else {
@ -726,8 +728,8 @@ func TestCreateAccountPermission(t *testing.T) {
t.Fatal(err)
}
tx.AddOutput(user[7].Address, 10)
tx.SignInput(0, user[0])
tx.SignInput(1, user[1])
tx.SignInput(chainID, 0, user[0])
tx.SignInput(chainID, 1, user[1])
if err := ExecTx(blockCache, tx, true, nil); err != nil {
t.Fatal("Unexpected error", err)
}
@ -742,8 +744,8 @@ func TestCreateAccountPermission(t *testing.T) {
}
tx.AddOutput(user[7].Address, 7)
tx.AddOutput(user[4].Address, 3)
tx.SignInput(0, user[0])
tx.SignInput(1, user[1])
tx.SignInput(chainID, 0, user[0])
tx.SignInput(chainID, 1, user[1])
if err := ExecTx(blockCache, tx, true, nil); err != nil {
t.Fatal("Unexpected error", err)
}
@ -771,7 +773,7 @@ func TestCreateAccountPermission(t *testing.T) {
// A single input, having the permission, but the contract doesn't have permission
txCall, _ := types.NewCallTx(blockCache, user[0].PubKey, caller1ContractAddr, nil, 100, 10000, 100)
txCall.Sign(user[0])
txCall.Sign(chainID, user[0])
// we need to subscribe to the Receive event to detect the exception
_, exception := execTxWaitEvent(t, blockCache, txCall, types.EventStringAccReceive(caller1ContractAddr)) //
@ -786,7 +788,7 @@ func TestCreateAccountPermission(t *testing.T) {
blockCache.UpdateAccount(caller1Acc)
// A single input, having the permission, but the contract doesn't have permission
txCall, _ = types.NewCallTx(blockCache, user[0].PubKey, caller1ContractAddr, nil, 100, 10000, 100)
txCall.Sign(user[0])
txCall.Sign(chainID, user[0])
// we need to subscribe to the Receive event to detect the exception
_, exception = execTxWaitEvent(t, blockCache, txCall, types.EventStringAccReceive(caller1ContractAddr)) //
@ -1106,7 +1108,7 @@ func testSNativeCALLExpectPass(t *testing.T, blockCache *BlockCache, doug *accou
addr = snativeAddress
}
tx, _ := types.NewCallTx(blockCache, user[0].PubKey, addr, data, 100, 10000, 100)
tx.Sign(user[0])
tx.Sign(chainID, user[0])
ev, exception := execTxWaitEvent(t, blockCache, tx, types.EventStringAccReceive(snativeAddress)) //
if exception != "" {
t.Fatal("Unexpected exception", exception)
@ -1130,7 +1132,7 @@ func testSNativeCALLExpectFail(t *testing.T, blockCache *BlockCache, doug *accou
addr = snativeAddress
}
tx, _ := types.NewCallTx(blockCache, user[0].PubKey, addr, data, 100, 10000, 100)
tx.Sign(user[0])
tx.Sign(chainID, user[0])
fmt.Println("subscribing to", types.EventStringAccReceive(snativeAddress))
_, exception := execTxWaitEvent(t, blockCache, tx, types.EventStringAccReceive(snativeAddress))
if exception == "" {


Loading…
Cancel
Save