Skip to content

Commit 38417ad

Browse files
authored
Expose xdr types to register non-native assets (#820)
1 parent 135c3c8 commit 38417ad

2 files changed

Lines changed: 23 additions & 4 deletions

File tree

soroban-sdk/src/xdr.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,7 @@ pub use super::env::xdr::{
3838
};
3939

4040
// XDR for ledger entries.
41-
pub use super::env::xdr::{AccountEntry, AccountId, Asset};
41+
pub use super::env::xdr::{
42+
AccountEntry, AccountId, AlphaNum12, AlphaNum4, Asset, AssetCode12, AssetCode4, PublicKey,
43+
Uint256,
44+
};

soroban-token-spec/src/tests/use_token_contract.rs

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,19 +42,35 @@ impl TestContract {
4242

4343
#[test]
4444
fn test() {
45-
use soroban_sdk::xdr::Asset;
45+
use soroban_sdk::xdr::{
46+
AccountId, AlphaNum12, AlphaNum4, Asset, AssetCode12, AssetCode4, PublicKey, Uint256,
47+
};
4648

4749
let env = Env::default();
4850

49-
let token_contract_id = env.register_stellar_asset_contract(Asset::Native);
51+
let issuer = AccountId(PublicKey::PublicKeyTypeEd25519(Uint256([65u8; 32])));
52+
let asset4 = Asset::CreditAlphanum4(AlphaNum4 {
53+
asset_code: AssetCode4([66u8; 4]),
54+
issuer: issuer.clone(),
55+
});
56+
let asset12 = Asset::CreditAlphanum12(AlphaNum12 {
57+
asset_code: AssetCode12([1u8; 12]),
58+
issuer,
59+
});
60+
let token_contract_id = env.register_stellar_asset_contract(asset4);
61+
// We aren't using the asset12 contract. We just want to make sure the registration works.
62+
env.register_stellar_asset_contract(asset12);
5063

5164
let contract_id = BytesN::from_array(&env, &[0; 32]);
5265
env.register_contract(&contract_id, TestContract);
5366
let client = TestContractClient::new(&env, &contract_id);
5467
client.init(&token_contract_id);
5568

5669
let token_client = TokenClient::new(&env, &client.get_token());
57-
assert_eq!(token_client.name(), "native".into_val(&env));
70+
assert_eq!(
71+
token_client.name(),
72+
"BBBB:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA".into_val(&env)
73+
);
5874

5975
let (id, _signer) = generate(&env);
6076

0 commit comments

Comments
 (0)