-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.go
85 lines (60 loc) · 2.05 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package main
import (
"fmt"
"kickstart/client"
"kickstart/entity"
"kickstart/helper"
"kickstart/service/account"
"kickstart/service/campaign"
"math/big"
"github.com/joho/godotenv"
)
func main() {
// Load the .env file in the current directory
godotenv.Load()
address := helper.GetEnvVariable("ADDRESS")
client := client.NewClient(address)
defer client.Client.Close()
campaign := campaign.NewCampaign(big.NewInt(1000), client.Client)
manager := account.NewAccount(
helper.GetEnvVariable("MANAGER_ADDRESS"),
helper.GetEnvVariable("MANAGER_PRIVATE_ADDRESS"),
client)
provider := account.NewAccount(
helper.GetEnvVariable("PROVIDER_ADDRESS"),
helper.GetEnvVariable("PROVIDER_PRIVATE_ADDRESS"),
client)
contributor := account.NewAccount(
helper.GetEnvVariable("CONTRIBUTOR_ADDRESS"),
helper.GetEnvVariable("CONTRIBUTOR_PRIVATE_ADDRESS"),
client)
manager.GetDataFromBlock(manager.GetHeader())
PrintBalances(manager, provider, contributor)
fmt.Println("deploying contract ... ")
campaign.Deploy(manager)
PrintBalances(manager, provider, contributor)
fmt.Println("contribute ...")
campaign.Contribute(contributor)
PrintBalances(manager, provider, contributor)
campaign.IsPaid(contributor)
campaign.GetBalance()
request := entity.Request{
ProviderAddress: provider.PublicAddress,
Value: big.NewInt(100),
Description: "water",
}
fmt.Println("create request ...")
campaign.AddRequest(request, manager)
PrintBalances(manager, provider, contributor)
campaign.GetNumberOfRequests()
campaign.ApproveRequest(contributor, big.NewInt(0))
campaign.GetBalance()
campaign.FinalizeRequest(manager, big.NewInt(0))
}
func PrintBalances(manager *account.Account, provider *account.Account, contributor *account.Account) {
fmt.Println(">>>>>>>>>>>>>>>>>>>>>>Balance>>>>>>>>>>>>>>>>")
fmt.Println("balance manager :", manager.GetBalance())
fmt.Println("balance provider :", provider.GetBalance())
fmt.Println("balance contributor :", contributor.GetBalance())
fmt.Println("<<<<<<<<<<<<<<<<<<<<<<Balance<<<<<<<<<<<<<<<<<")
}