Skip to content

Commit e87ca23

Browse files
committed
fix sdk initialization
1 parent c9243cb commit e87ca23

File tree

4 files changed

+36
-39
lines changed

4 files changed

+36
-39
lines changed

Cargo.toml

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -51,16 +51,4 @@ zeroize = "1.6.0"
5151
axum-macros = "0.3.8"
5252

5353
[build-dependencies]
54-
vergen = { version = "8.0.0", features = ["build", "git", "gitcl"] }
55-
56-
[profile.ephemeral-build]
57-
inherits = "release"
58-
incremental = false
59-
lto = "thin"
60-
opt-level = 2
61-
codegen-units = 64
62-
strip = "symbols"
63-
debug = false
64-
65-
[profile.release]
66-
incremental = false
54+
vergen = { version = "8.0.0", features = ["build", "git", "gitcl"] }

scripts/faucet.py

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,16 @@
22
from hashlib import sha256
33
import argparse
44

5-
DEFAULT_URL = "http://0.0.0.0:5000/api/v1/faucet"
5+
DEFAULT_URL = "http://0.0.0.0:5000"
6+
7+
def request_settings(url):
8+
return get("{}/api/v1/faucet/setting".format(url)).json()
69

710
def request_challenge(url):
8-
return get(url).json()
11+
return get("{}/api/v1/faucet".format(url)).json()
912

1013
def request_transfer(url, data):
11-
return post(url, json=data)
14+
return post("{}/api/v1/faucet".format(url), json=data)
1215

1316
def is_valid_pow(solution, difficulty):
1417
for i in range(0, difficulty):
@@ -32,24 +35,28 @@ def compute_pow_solution(challenge, difficulty):
3235

3336
if __name__ == '__main__':
3437
parser = argparse.ArgumentParser(description='Request from an amount of token from faucet.')
35-
parser.add_argument('url', action='store', type=str, required=False, default=DEFAULT_URL, help='The faucet url.')
36-
parser.add_argument('token', action='store', type=int, required=False, help='The token address.')
37-
parser.add_argument('amount', action='store', type=int, required=False, default=1000, help='The token amount.')
38-
parser.add_argument('target', action='store', type=str, required=True, help='The target address.')
38+
parser.add_argument('url', action='store', type=str, default=DEFAULT_URL, help='The faucet url.')
39+
parser.add_argument('token', action='store', type=str, help='The token address.')
40+
parser.add_argument('amount', action='store', type=int, default=1000, help='The token amount.')
41+
parser.add_argument('target', action='store', type=str, help='The target address.')
3942

4043
args = parser.parse_args()
4144

45+
response = request_settings(args.url)
46+
difficulty = int(response['difficulty'])
47+
4248
response = request_challenge(args.url)
43-
solution = compute_pow_solution(args.url, response['challenge'], 2)
44-
response = request_transfer({
49+
solution = compute_pow_solution(response['challenge'], difficulty)
50+
51+
response = request_transfer(args.url, {
4552
'solution': solution,
4653
'tag': response['tag'],
4754
'challenge': response['challenge'],
4855
'transfer': {
4956
'target': args.target,
5057
'token': args.token,
51-
'amount': args.amounr * 10**6
58+
'amount': args.amount * 10**6
5259
}
5360
})
5461

55-
print(response.json())
62+
# print(response.json())

src/app.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ use axum::{
1616
};
1717
use lazy_static::lazy_static;
1818
use namada_sdk::{
19-
address::Address, io::NullIo, key::RefTo, masp::fs::FsShieldedUtils, wallet::fs::FsWalletUtils,
20-
NamadaImpl,
19+
address::Address, args::TxBuilder, chain::ChainId, io::NullIo, key::RefTo,
20+
masp::fs::FsShieldedUtils, wallet::fs::FsWalletUtils, NamadaImpl,
2121
};
2222
use rand::{distributions::Alphanumeric, thread_rng, Rng};
2323
use serde_json::json;
@@ -82,7 +82,10 @@ impl ApplicationServer {
8282
let null_io = NullIo;
8383

8484
match NamadaImpl::new(http_client.clone(), wallet, shielded_ctx, null_io).await {
85-
Ok(sdk) => break sdk,
85+
Ok(mut sdk) => {
86+
sdk = sdk.chain_id(ChainId(chain_id.clone()));
87+
break sdk;
88+
}
8689
Err(_) => {
8790
tracing::warn!("Retrying to connect to the RPC at {url} in 10s...");
8891
sleep(Duration::from_secs(10)).await;

src/handler/faucet.rs

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use axum::{extract::State, Json};
44
use axum_macros::debug_handler;
55
use namada_sdk::{
66
address::Address,
7-
args::{InputAmount, TxTransparentSource, TxTransparentTarget},
7+
args::{InputAmount, TxBuilder, TxTransparentSource, TxTransparentTarget},
88
io::NullIo,
99
rpc,
1010
signing::default_sign,
@@ -202,17 +202,16 @@ pub async fn request_transfer(
202202
}];
203203

204204
let mut transfer_tx_builder = state.sdk.new_transparent_transfer(sources, targets);
205-
206-
transfer_tx_builder.tx.memo = Some("Transfer from faucet".to_string().as_bytes().to_vec());
207-
208-
let tx_result = transfer_tx_builder.build(&*state.sdk).await;
209-
210-
let (mut transfer_tx, signing_data) = match tx_result {
211-
Ok(res) => res,
212-
Err(e) => {
213-
return Err(FaucetError::SdkError(format!("unable to build transfer tx: {}", e)).into())
214-
}
215-
};
205+
transfer_tx_builder =
206+
transfer_tx_builder.memo("Transfer from faucet".to_string().as_bytes().to_vec());
207+
208+
let (mut transfer_tx, signing_data) = match transfer_tx_builder.build(&*state.sdk).await {
209+
Ok(res) => Ok(res),
210+
Err(e) => Err(FaucetError::SdkError(format!(
211+
"unable to build transfer tx: {}",
212+
e
213+
))),
214+
}?;
216215

217216
state
218217
.sdk

0 commit comments

Comments
 (0)