Guest User

Untitled

a guest
Oct 19th, 2017
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.79 KB | None | 0 0
  1. let accountShouldCreateUser =
  2. ftestCaseAsync "account should create user" $ async {
  3. let source = ContractSource.read "../../../build" "FileSyncContract"
  4. let password = "password"
  5.  
  6. /// personal stuff
  7. let name = "karsten"
  8. let! personalAddress = Web3().Personal.NewAccount.SendRequestAsync(password)
  9. let personalAccount = ManagedAccount(personalAddress, password)
  10. let personalWeb3 = Web3 personalAccount
  11. let! receipt = Eth.prefundAddress personalAddress /// eth.coinbase giving me some money
  12. let! balance = Web3().Eth.GetBalance.SendRequestAsync(personalAddress)
  13. printfn "address: %A has: %A" personalAddress balance.Value
  14.  
  15. /// admin stuff
  16. let adminAddress = "0x12890d2cce102216644c59dae5baed380d84830c"
  17. let adminAccount = ManagedAccount(adminAddress, password)
  18. let adminWeb3 = Web3 adminAccount
  19.  
  20. let! receipt =
  21. adminWeb3.Eth.DeployContract.SendRequestAndWaitForReceiptAsync(
  22. source.Abi,
  23. source.Bin,
  24. adminAddress,
  25. HexBigInteger(BigInteger((1000000))),
  26. null)
  27.  
  28. printfn "contract: %A" receipt.ContractAddress
  29.  
  30. let contract = personalWeb3.Eth.GetContract(source.Abi, receipt.ContractAddress)
  31. let userEvent = contract.GetEvent("User")
  32. let createFunc = contract.GetFunction("createUser")
  33. let! receipt =
  34. createFunc.SendTransactionAndWaitForReceiptAsync(
  35. personalAddress,
  36. HexBigInteger(Numerics.BigInteger(4700000)),
  37. null,
  38. null,
  39. name)
  40.  
  41. printfn "created user in: %A" receipt.TransactionHash
  42.  
  43. let userEvents =
  44. userEvent.DecodeAllEventsForEvent<FileSync.UserEvent> receipt.Logs
  45.  
  46. for ev in userEvents do
  47. printfn "user name: %A address: %A" ev.Event.Name ev.Event.Address
  48. }
Add Comment
Please, Sign In to add comment