-
Notifications
You must be signed in to change notification settings - Fork 165
Expand file tree
/
Copy pathbuild.gradle.kts
More file actions
162 lines (140 loc) · 6.02 KB
/
build.gradle.kts
File metadata and controls
162 lines (140 loc) · 6.02 KB
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
plugins {
java
application
}
group = "com.coinbase.cdp.examples"
version = "0.1.0"
repositories {
mavenCentral()
mavenLocal()
maven { url = uri("https://jitpack.io") }
}
dependencies {
// CDP SDK - uses included build from settings.gradle.kts for local development
implementation("com.coinbase:cdp-sdk:0.1.0")
// web3j for transaction receipt polling
implementation("org.web3j:core:4.12.2")
// SolanaJ for Solana transaction building and RPC
implementation("com.github.skynetcap:solanaj:1.18.1")
}
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(21))
}
}
// Default main class for `./gradlew run`
application {
mainClass.set(
project.findProperty("mainClass") as String?
?: "com.coinbase.cdp.examples.quickstart.Quickstart"
)
}
// Convenience tasks for running specific examples
tasks.register<JavaExec>("runQuickstart") {
group = "examples"
description = "Run the quickstart example"
mainClass.set("com.coinbase.cdp.examples.quickstart.Quickstart")
classpath = sourceSets["main"].runtimeClasspath
}
tasks.register<JavaExec>("runCreateEvmAccount") {
group = "examples"
description = "Run the EVM create account example"
mainClass.set("com.coinbase.cdp.examples.evm.CreateAccount")
classpath = sourceSets["main"].runtimeClasspath
}
tasks.register<JavaExec>("runListEvmAccounts") {
group = "examples"
description = "Run the EVM list accounts example"
mainClass.set("com.coinbase.cdp.examples.evm.ListAccounts")
classpath = sourceSets["main"].runtimeClasspath
}
tasks.register<JavaExec>("runGetEvmAccount") {
group = "examples"
description = "Run the EVM get account example"
mainClass.set("com.coinbase.cdp.examples.evm.GetAccount")
classpath = sourceSets["main"].runtimeClasspath
}
tasks.register<JavaExec>("runSignMessage") {
group = "examples"
description = "Run the EVM sign message example"
mainClass.set("com.coinbase.cdp.examples.evm.SignMessage")
classpath = sourceSets["main"].runtimeClasspath
}
tasks.register<JavaExec>("runRequestFaucet") {
group = "examples"
description = "Run the EVM request faucet example"
mainClass.set("com.coinbase.cdp.examples.evm.RequestFaucet")
classpath = sourceSets["main"].runtimeClasspath
}
tasks.register<JavaExec>("runTransfer") {
group = "examples"
description = "Run the EVM transfer example"
mainClass.set("com.coinbase.cdp.examples.evm.Transfer")
classpath = sourceSets["main"].runtimeClasspath
}
tasks.register<JavaExec>("runSignTypedDataWithTokenProvider") {
group = "examples"
description = "Run the EVM sign typed data with custom TokenProvider example"
mainClass.set("com.coinbase.cdp.examples.evm.SignTypedDataWithTokenProvider")
classpath = sourceSets["main"].runtimeClasspath
}
tasks.register<JavaExec>("runSpendPermissions") {
group = "examples"
description = "Run the EVM spend permissions example"
mainClass.set("com.coinbase.cdp.examples.evm.SpendPermissions")
classpath = sourceSets["main"].runtimeClasspath
}
tasks.register<JavaExec>("runCreateSolanaAccount") {
group = "examples"
description = "Run the Solana create account example"
mainClass.set("com.coinbase.cdp.examples.solana.CreateAccount")
classpath = sourceSets["main"].runtimeClasspath
}
tasks.register<JavaExec>("runListSolanaAccounts") {
group = "examples"
description = "Run the Solana list accounts example"
mainClass.set("com.coinbase.cdp.examples.solana.ListAccounts")
classpath = sourceSets["main"].runtimeClasspath
}
tasks.register<JavaExec>("runSolanaTransfer") {
group = "examples"
description = "Run the Solana transfer example"
mainClass.set("com.coinbase.cdp.examples.solana.Transfer")
classpath = sourceSets["main"].runtimeClasspath
}
tasks.register<JavaExec>("runSolanaSignTransactionX402") {
group = "examples"
description = "Run the Solana x402 sign transaction example"
mainClass.set("com.coinbase.cdp.examples.solana.SignTransactionX402")
classpath = sourceSets["main"].runtimeClasspath
}
tasks.register<JavaExec>("runRetryConfiguration") {
group = "examples"
description = "Run the retry configuration example"
mainClass.set("com.coinbase.cdp.examples.config.RetryConfiguration")
classpath = sourceSets["main"].runtimeClasspath
}
// Task to list all available example tasks
tasks.register("listExamples") {
group = "examples"
description = "List all available example tasks"
doLast {
println("\nAvailable example tasks:")
println(" ./gradlew runQuickstart - Run the quickstart example")
println(" ./gradlew runCreateEvmAccount - Create an EVM account")
println(" ./gradlew runListEvmAccounts - List EVM accounts")
println(" ./gradlew runGetEvmAccount - Get an EVM account by address")
println(" ./gradlew runSignMessage - Sign a message with an EVM account")
println(" ./gradlew runRequestFaucet - Request testnet ETH from faucet")
println(" ./gradlew runTransfer - Transfer ETH between accounts")
println(" ./gradlew runSignTypedDataWithTokenProvider - Sign EIP-712 typed data using TokenProvider")
println(" ./gradlew runSpendPermissions - Create, list, and revoke spend permissions")
println(" ./gradlew runCreateSolanaAccount - Create a Solana account")
println(" ./gradlew runListSolanaAccounts - List Solana accounts")
println(" ./gradlew runSolanaTransfer - Transfer SOL between accounts")
println(" ./gradlew runSolanaSignTransactionX402 - Sign a Solana transaction for x402 payment")
println(" ./gradlew runRetryConfiguration - Configure HTTP retry behavior")
println("\nOr run any example directly:")
println(" ./gradlew run -PmainClass=com.coinbase.cdp.examples.evm.CreateAccount")
}
}