Skip to content

Commit

Permalink
token standard
Browse files Browse the repository at this point in the history
  • Loading branch information
tahsintunan committed Oct 18, 2023
1 parent d802246 commit 59aeabb
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 68 deletions.
4 changes: 4 additions & 0 deletions digital_asset_types/src/dapi/common/asset.rs
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,10 @@ pub fn v1_content_from_json(
meta.set_item("symbol", symbol.clone());
}
}
let token_standard = safe_select(chain_data_selector, "$.token_standard");
if let Some(token_standard) = token_standard {
meta.set_item("token_standard", token_standard.clone());
}
let desc = safe_select(selector, "$.description");
if let Some(desc) = desc {
meta.set_item("description", desc.clone());
Expand Down
45 changes: 21 additions & 24 deletions digital_asset_types/tests/json_parsing.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ use digital_asset_types::dao::asset_data;
use digital_asset_types::dao::sea_orm_active_enums::{ChainMutability, Mutability};
use digital_asset_types::dapi::common::v1_content_from_json;
use digital_asset_types::json::ChainDataV1;
use digital_asset_types::rpc::display_options::DisplayOptions;
use digital_asset_types::rpc::Content;
use digital_asset_types::rpc::File;
use solana_sdk::signature::Keypair;
Expand All @@ -18,8 +19,7 @@ pub async fn load_test_json(file_name: &str) -> serde_json::Value {

pub async fn parse_onchain_json(
json: serde_json::Value,
cdn_prefix: Option<String>,
raw_data: Option<bool>,
display_options: &DisplayOptions,
) -> Content {
let asset_data = asset_data::Model {
id: Keypair::new().pubkey().to_bytes().to_vec(),
Expand All @@ -42,14 +42,17 @@ pub async fn parse_onchain_json(
raw_symbol: Some(String::from(" ").into_bytes().to_vec()),
};

v1_content_from_json(&asset_data, cdn_prefix, raw_data).unwrap()
v1_content_from_json(&asset_data, display_options).unwrap()
}

#[tokio::test]
async fn simple_content() {
let cdn_prefix = None;
let mut display_options = DisplayOptions::default();

display_options.cdn_prefix = None;
display_options.show_raw_data = true;
let j = load_test_json("mad_lad.json").await;
let mut parsed = parse_onchain_json(j.clone(), cdn_prefix.clone(), Some(true)).await;
let mut parsed = parse_onchain_json(j.clone(), &display_options).await;
assert_eq!(
parsed.files,
Some(vec![
Expand Down Expand Up @@ -83,19 +86,9 @@ async fn simple_content() {
_ => panic!("symbol key not found or not a string"),
}

parsed = parse_onchain_json(j.clone(), cdn_prefix.clone(), Some(false)).await;

match parsed.metadata.get_item("name") {
Some(serde_json::Value::String(name)) => assert_eq!(name, "Handalf"),
_ => panic!("name key not found or not a string"),
}

match parsed.metadata.get_item("symbol") {
Some(serde_json::Value::String(symbol)) => assert_eq!(symbol, ""),
_ => panic!("symbol key not found or not a string"),
}

parsed = parse_onchain_json(j, cdn_prefix, None).await;
display_options.cdn_prefix = None;
display_options.show_raw_data = false;
parsed = parse_onchain_json(j.clone(), &display_options).await;

match parsed.metadata.get_item("name") {
Some(serde_json::Value::String(name)) => assert_eq!(name, "Handalf"),
Expand Down Expand Up @@ -133,9 +126,11 @@ async fn simple_content() {

#[tokio::test]
async fn simple_content_with_cdn() {
let cdn_prefix = Some("https://cdn.foobar.blah".to_string());
let mut display_options = DisplayOptions::default();
display_options.cdn_prefix = Some("https://cdn.foobar.blah".to_string());

let j = load_test_json("mad_lad.json").await;
let parsed = parse_onchain_json(j, cdn_prefix, None).await;
let parsed = parse_onchain_json(j, &display_options).await;
assert_eq!(
parsed.files,
Some(vec![
Expand All @@ -162,9 +157,10 @@ async fn simple_content_with_cdn() {

#[tokio::test]
async fn complex_content() {
let cdn_prefix = None;
let mut display_options = DisplayOptions::default();
display_options.cdn_prefix = None;
let j = load_test_json("infinite_fungi.json").await;
let parsed = parse_onchain_json(j, cdn_prefix, None).await;
let parsed = parse_onchain_json(j, &display_options).await;
assert_eq!(
parsed.files,
Some(vec![
Expand Down Expand Up @@ -216,9 +212,10 @@ async fn complex_content() {

#[tokio::test]
async fn complex_content_with_cdn() {
let cdn_prefix = Some("https://cdn.foobar.blah".to_string());
let mut display_options = DisplayOptions::default();
display_options.cdn_prefix = Some("https://cdn.foobar.blah".to_string());
let j = load_test_json("infinite_fungi.json").await;
let parsed = parse_onchain_json(j, cdn_prefix, None).await;
let parsed = parse_onchain_json(j, &display_options).await;
assert_eq!(
parsed.files,
Some(vec![
Expand Down
30 changes: 0 additions & 30 deletions migration/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 6 additions & 14 deletions migration/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,14 @@ name = "migration"
path = "src/lib.rs"

[dependencies]
async-std = { version = "^1", features = ["attributes", "tokio1", ] }
digital_asset_types = { path = "../digital_asset_types", features = ["json_types", "sql_types"] }
async-std = { version = "^1", features = ["attributes", "tokio1"] }
digital_asset_types = { path = "../digital_asset_types", features = [
"json_types",
"sql_types",
] }
enum-iterator = "1.2.0"
enum-iterator-derive = "1.1.0"

[dependencies.sea-orm-migration]
version = "0.10.6"
features = [
"runtime-tokio-rustls",
"sqlx-postgres",
]

[patch.crates-io]
blockbuster = { git = "https://github.com/metaplex-foundation/blockbuster", branch="1.14" }
anchor-lang = { git="https://github.com/metaplex-foundation/anchor" }
mpl-token-metadata = { git="https://github.com/metaplex-foundation/metaplex-program-library", branch="update-deps"}
mpl-candy-machine-core = { git="https://github.com/metaplex-foundation/metaplex-program-library", branch="update-deps"}
mpl-candy-guard = { git="https://github.com/metaplex-foundation/mpl-candy-guard", branch="update-deps"}
mpl-bubblegum = "=1.0.1-beta.2"
features = ["runtime-tokio-rustls", "sqlx-postgres"]

0 comments on commit 59aeabb

Please sign in to comment.