Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let accountShouldCreateUser =
- ftestCaseAsync "account should create user" $ async {
- let source = ContractSource.read "../../../build" "FileSyncContract"
- let password = "password"
- /// personal stuff
- let name = "karsten"
- let! personalAddress = Web3().Personal.NewAccount.SendRequestAsync(password)
- let personalAccount = ManagedAccount(personalAddress, password)
- let personalWeb3 = Web3 personalAccount
- let! receipt = Eth.prefundAddress personalAddress /// eth.coinbase giving me some money
- let! balance = Web3().Eth.GetBalance.SendRequestAsync(personalAddress)
- printfn "address: %A has: %A" personalAddress balance.Value
- /// admin stuff
- let adminAddress = "0x12890d2cce102216644c59dae5baed380d84830c"
- let adminAccount = ManagedAccount(adminAddress, password)
- let adminWeb3 = Web3 adminAccount
- let! receipt =
- adminWeb3.Eth.DeployContract.SendRequestAndWaitForReceiptAsync(
- source.Abi,
- source.Bin,
- adminAddress,
- HexBigInteger(BigInteger((1000000))),
- null)
- printfn "contract: %A" receipt.ContractAddress
- let contract = personalWeb3.Eth.GetContract(source.Abi, receipt.ContractAddress)
- let userEvent = contract.GetEvent("User")
- let createFunc = contract.GetFunction("createUser")
- let! receipt =
- createFunc.SendTransactionAndWaitForReceiptAsync(
- personalAddress,
- HexBigInteger(Numerics.BigInteger(4700000)),
- null,
- null,
- name)
- printfn "created user in: %A" receipt.TransactionHash
- let userEvents =
- userEvent.DecodeAllEventsForEvent<FileSync.UserEvent> receipt.Logs
- for ev in userEvents do
- printfn "user name: %A address: %A" ev.Event.Name ev.Event.Address
- }
Add Comment
Please, Sign In to add comment