diff --git a/Cargo.lock b/Cargo.lock index 54ae89afe..2e6f18124 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2081,6 +2081,7 @@ dependencies = [ "darkfi-serial", "getrandom 0.2.12", "halo2_proofs", + "lazy_static", "log", "rand 0.8.5", "simplelog", @@ -8184,6 +8185,7 @@ dependencies = [ "ctrlc", "darkfi", "darkfi-sdk", + "darkfi_money_contract", "rand 0.8.5", "rayon", ] diff --git a/bin/drk/src/cli_util.rs b/bin/drk/src/cli_util.rs index aaf2fcc2e..4b2c6c34e 100644 --- a/bin/drk/src/cli_util.rs +++ b/bin/drk/src/cli_util.rs @@ -21,7 +21,7 @@ use rodio::{source::Source, Decoder, OutputStream}; use structopt_toml::clap::{App, Arg, Shell, SubCommand}; use darkfi::{cli_desc, system::sleep, util::parse::decode_base10, Error, Result}; -use darkfi_sdk::crypto::TokenId; +use darkfi_money_contract::model::TokenId; use crate::{money::BALANCE_BASE10_DECIMALS, Drk}; diff --git a/bin/drk/src/dao.rs b/bin/drk/src/dao.rs index 7546081a1..2d29b469b 100644 --- a/bin/drk/src/dao.rs +++ b/bin/drk/src/dao.rs @@ -36,14 +36,14 @@ use darkfi_dao_contract::{ DAO_CONTRACT_ZKAS_DAO_PROPOSE_MAIN_NS, DAO_CONTRACT_ZKAS_DAO_VOTE_INPUT_NS, DAO_CONTRACT_ZKAS_DAO_VOTE_MAIN_NS, }; -use darkfi_money_contract::{client::OwnCoin, MoneyFunction}; +use darkfi_money_contract::{client::OwnCoin, model::TokenId, MoneyFunction}; use darkfi_sdk::{ bridgetree, crypto::{ poseidon_hash, util::{fp_mod_fv, fp_to_u64}, - FuncId, FuncRef, Keypair, MerkleNode, MerkleTree, PublicKey, SecretKey, TokenId, - DAO_CONTRACT_ID, MONEY_CONTRACT_ID, + FuncId, FuncRef, Keypair, MerkleNode, MerkleTree, PublicKey, SecretKey, DAO_CONTRACT_ID, + MONEY_CONTRACT_ID, }, pasta::pallas, ContractCall, diff --git a/bin/drk/src/main.rs b/bin/drk/src/main.rs index 4003c83a2..245e8199f 100644 --- a/bin/drk/src/main.rs +++ b/bin/drk/src/main.rs @@ -42,9 +42,9 @@ use darkfi::{ zk::halo2::Field, Result, }; -use darkfi_money_contract::model::Coin; +use darkfi_money_contract::model::{Coin, TokenId}; use darkfi_sdk::{ - crypto::{FuncId, PublicKey, SecretKey, TokenId}, + crypto::{FuncId, PublicKey, SecretKey}, pasta::{group::ff::PrimeField, pallas}, }; use darkfi_serial::{deserialize, serialize}; diff --git a/bin/drk/src/money.rs b/bin/drk/src/money.rs index 701f76644..fa4f593a7 100644 --- a/bin/drk/src/money.rs +++ b/bin/drk/src/money.rs @@ -25,14 +25,16 @@ use rusqlite::types::Value; use darkfi::{tx::Transaction, zk::halo2::Field, Error, Result}; use darkfi_money_contract::{ client::{MoneyNote, OwnCoin}, - model::{Coin, MoneyTokenFreezeParamsV1, MoneyTokenMintParamsV1, MoneyTransferParamsV1}, + model::{ + Coin, MoneyTokenFreezeParamsV1, MoneyTokenMintParamsV1, MoneyTransferParamsV1, TokenId, + }, MoneyFunction, }; use darkfi_sdk::{ bridgetree, crypto::{ note::AeadEncryptedNote, poseidon_hash, FuncId, Keypair, MerkleNode, MerkleTree, Nullifier, - PublicKey, SecretKey, TokenId, MONEY_CONTRACT_ID, + PublicKey, SecretKey, MONEY_CONTRACT_ID, }, pasta::pallas, }; diff --git a/bin/drk/src/swap.rs b/bin/drk/src/swap.rs index facde4909..023cab0b2 100644 --- a/bin/drk/src/swap.rs +++ b/bin/drk/src/swap.rs @@ -28,13 +28,13 @@ use darkfi::{ }; use darkfi_money_contract::{ client::{swap_v1::SwapCallBuilder, MoneyNote}, - model::{Coin, MoneyTransferParamsV1}, + model::{Coin, MoneyTransferParamsV1, TokenId}, MoneyFunction, MONEY_CONTRACT_ZKAS_BURN_NS_V1, MONEY_CONTRACT_ZKAS_MINT_NS_V1, }; use darkfi_sdk::{ crypto::{ contract_id::MONEY_CONTRACT_ID, pedersen::pedersen_commitment_u64, poseidon_hash, FuncId, - PublicKey, SecretKey, TokenId, + PublicKey, SecretKey, }, pasta::pallas, tx::ContractCall, diff --git a/bin/drk/src/token.rs b/bin/drk/src/token.rs index 743bae01c..399a39d6f 100644 --- a/bin/drk/src/token.rs +++ b/bin/drk/src/token.rs @@ -31,14 +31,14 @@ use darkfi_money_contract::{ auth_token_mint_v1::AuthTokenMintCallBuilder, token_freeze_v1::TokenFreezeCallBuilder, token_mint_v1::TokenMintCallBuilder, }, - model::{CoinAttributes, TokenAttributes}, + model::{CoinAttributes, TokenAttributes, TokenId}, MoneyFunction, MONEY_CONTRACT_ZKAS_AUTH_TOKEN_MINT_NS_V1, MONEY_CONTRACT_ZKAS_TOKEN_FRZ_NS_V1, MONEY_CONTRACT_ZKAS_TOKEN_MINT_NS_V1, }; use darkfi_sdk::{ crypto::{ contract_id::MONEY_CONTRACT_ID, pasta_prelude::*, FuncId, FuncRef, Keypair, PublicKey, - SecretKey, TokenId, + SecretKey, }, dark_tree::DarkLeaf, pasta::pallas, diff --git a/bin/drk/src/transfer.rs b/bin/drk/src/transfer.rs index e6b3965f6..263fa9e3e 100644 --- a/bin/drk/src/transfer.rs +++ b/bin/drk/src/transfer.rs @@ -27,10 +27,11 @@ use darkfi::{ }; use darkfi_money_contract::{ client::{transfer_v1::make_transfer_call, OwnCoin}, + model::TokenId, MoneyFunction, MONEY_CONTRACT_ZKAS_BURN_NS_V1, MONEY_CONTRACT_ZKAS_MINT_NS_V1, }; use darkfi_sdk::{ - crypto::{contract_id::MONEY_CONTRACT_ID, FuncId, Keypair, PublicKey, TokenId}, + crypto::{contract_id::MONEY_CONTRACT_ID, FuncId, Keypair, PublicKey}, tx::ContractCall, }; use darkfi_serial::Encodable; diff --git a/bin/vanityaddr/Cargo.toml b/bin/vanityaddr/Cargo.toml index c2346f628..adf5a19cb 100644 --- a/bin/vanityaddr/Cargo.toml +++ b/bin/vanityaddr/Cargo.toml @@ -14,5 +14,6 @@ bs58 = "0.5.0" ctrlc = "3.4.2" darkfi = {path = "../../", features = ["util"]} darkfi-sdk = {path = "../../src/sdk"} +darkfi_money_contract = {path = "../../src/contract/money", features = ["no-entrypoint", "client"]} rand = "0.8.5" rayon = "1.8.0" diff --git a/bin/vanityaddr/src/main.rs b/bin/vanityaddr/src/main.rs index 0591ff300..495a2d8ef 100644 --- a/bin/vanityaddr/src/main.rs +++ b/bin/vanityaddr/src/main.rs @@ -24,7 +24,8 @@ use std::{ use arg::Args; use darkfi::{util::cli::ProgressInc, ANSI_LOGO}; -use darkfi_sdk::crypto::{ContractId, PublicKey, SecretKey, TokenId}; +use darkfi_money_contract::model::TokenId; +use darkfi_sdk::crypto::{ContractId, PublicKey, SecretKey}; use rand::rngs::OsRng; use rayon::iter::ParallelIterator; diff --git a/src/contract/dao/src/client/mint.rs b/src/contract/dao/src/client/mint.rs index 3d9fc275b..5356e714b 100644 --- a/src/contract/dao/src/client/mint.rs +++ b/src/contract/dao/src/client/mint.rs @@ -22,12 +22,14 @@ use darkfi::{ Result, }; use darkfi_sdk::{ - crypto::{PublicKey, SecretKey, TokenId}, + crypto::{PublicKey, SecretKey}, pasta::pallas, }; use log::debug; use rand::rngs::OsRng; +use darkfi_money_contract::model::TokenId; + use crate::model::{Dao, DaoMintParams}; #[derive(Clone)] diff --git a/src/contract/dao/src/model.rs b/src/contract/dao/src/model.rs index ab24f7f45..1f869f1b6 100644 --- a/src/contract/dao/src/model.rs +++ b/src/contract/dao/src/model.rs @@ -18,11 +18,12 @@ use core::str::FromStr; +use darkfi_money_contract::model::TokenId; use darkfi_sdk::{ crypto::{ note::{AeadEncryptedNote, ElGamalEncryptedNote}, pasta_prelude::*, - poseidon_hash, MerkleNode, Nullifier, PublicKey, TokenId, + poseidon_hash, MerkleNode, Nullifier, PublicKey, }, error::ContractError, pasta::pallas, diff --git a/src/contract/dao/tests/integration.rs b/src/contract/dao/tests/integration.rs index 644774e39..461a2c6c7 100644 --- a/src/contract/dao/tests/integration.rs +++ b/src/contract/dao/tests/integration.rs @@ -23,7 +23,7 @@ use darkfi_dao_contract::{ DaoFunction, }; use darkfi_money_contract::{ - model::{CoinAttributes, TokenAttributes}, + model::{CoinAttributes, TokenAttributes, DARK_TOKEN_ID}, MoneyFunction, }; use darkfi_sdk::{ @@ -31,7 +31,7 @@ use darkfi_sdk::{ pasta_prelude::*, pedersen_commitment_u64, poseidon_hash, util::{fp_mod_fv, fp_to_u64}, - FuncId, FuncRef, DAO_CONTRACT_ID, DARK_TOKEN_ID, MONEY_CONTRACT_ID, + FuncId, FuncRef, DAO_CONTRACT_ID, MONEY_CONTRACT_ID, }, pasta::pallas, }; diff --git a/src/contract/money/Cargo.toml b/src/contract/money/Cargo.toml index 9b8dad45a..1f721bec0 100644 --- a/src/contract/money/Cargo.toml +++ b/src/contract/money/Cargo.toml @@ -23,6 +23,9 @@ halo2_proofs = { version = "0.3.0", optional = true } log = { version = "0.4.20", optional = true } rand = { version = "0.8.5", optional = true } +# Misc +lazy_static = "1.4.0" + # These are used just for the integration tests [dev-dependencies] smol = "1.3.0" diff --git a/src/contract/money/src/client/fee_v1.rs b/src/contract/money/src/client/fee_v1.rs index 4e989d35e..ca47fb6a4 100644 --- a/src/contract/money/src/client/fee_v1.rs +++ b/src/contract/money/src/client/fee_v1.rs @@ -32,7 +32,7 @@ use darkfi_sdk::{ note::AeadEncryptedNote, pasta_prelude::{Curve, CurveAffine, Field}, pedersen_commitment_u64, poseidon_hash, FuncId, Keypair, MerkleNode, MerkleTree, Nullifier, - PublicKey, SecretKey, DARK_TOKEN_ID, + PublicKey, SecretKey, }, pasta::pallas, }; @@ -41,7 +41,7 @@ use rand::rngs::OsRng; use crate::{ client::{compute_remainder_blind, Coin, MoneyNote, OwnCoin}, - model::{CoinAttributes, Input, MoneyFeeParamsV1, NullifierAttributes, Output}, + model::{CoinAttributes, Input, MoneyFeeParamsV1, NullifierAttributes, Output, DARK_TOKEN_ID}, }; /// Append a fee-paying call to the given `TransactionBuilder`. diff --git a/src/contract/money/src/client/genesis_mint_v1.rs b/src/contract/money/src/client/genesis_mint_v1.rs index dd4b05df6..e55de5121 100644 --- a/src/contract/money/src/client/genesis_mint_v1.rs +++ b/src/contract/money/src/client/genesis_mint_v1.rs @@ -22,9 +22,7 @@ use darkfi::{ Result, }; use darkfi_sdk::{ - crypto::{ - note::AeadEncryptedNote, pasta_prelude::*, FuncId, Keypair, PublicKey, DARK_TOKEN_ID, - }, + crypto::{note::AeadEncryptedNote, pasta_prelude::*, FuncId, Keypair, PublicKey}, pasta::pallas, }; use log::{debug, info}; @@ -37,7 +35,7 @@ use crate::{ }, MoneyNote, }, - model::{ClearInput, Coin, MoneyGenesisMintParamsV1, Output}, + model::{ClearInput, Coin, MoneyGenesisMintParamsV1, Output, DARK_TOKEN_ID}, }; pub struct GenesisMintCallDebris { diff --git a/src/contract/money/src/client/mod.rs b/src/contract/money/src/client/mod.rs index 6bbd74c81..f94eefc15 100644 --- a/src/contract/money/src/client/mod.rs +++ b/src/contract/money/src/client/mod.rs @@ -28,12 +28,12 @@ use darkfi_sdk::{ bridgetree, - crypto::{FuncId, Nullifier, SecretKey, TokenId}, + crypto::{FuncId, Nullifier, SecretKey}, pasta::pallas, }; use darkfi_serial::{async_trait, SerialDecodable, SerialEncodable}; -use crate::model::Coin; +use crate::model::{Coin, TokenId}; /// `Money::FeeV1` API pub mod fee_v1; diff --git a/src/contract/money/src/client/pow_reward_v1.rs b/src/contract/money/src/client/pow_reward_v1.rs index 39023b39d..a587b1fcd 100644 --- a/src/contract/money/src/client/pow_reward_v1.rs +++ b/src/contract/money/src/client/pow_reward_v1.rs @@ -25,7 +25,6 @@ use darkfi_sdk::{ blockchain::expected_reward, crypto::{ ecvrf::VrfProof, note::AeadEncryptedNote, pasta_prelude::*, FuncId, PublicKey, SecretKey, - DARK_TOKEN_ID, }, pasta::pallas, }; @@ -39,7 +38,7 @@ use crate::{ }, MoneyNote, }, - model::{ClearInput, Coin, MoneyPoWRewardParamsV1, Output}, + model::{ClearInput, Coin, MoneyPoWRewardParamsV1, Output, DARK_TOKEN_ID}, }; pub struct PoWRewardCallDebris { diff --git a/src/contract/money/src/client/swap_v1.rs b/src/contract/money/src/client/swap_v1.rs index ddb00e42e..2c78ceb67 100644 --- a/src/contract/money/src/client/swap_v1.rs +++ b/src/contract/money/src/client/swap_v1.rs @@ -24,10 +24,7 @@ use darkfi::{ ClientFailed, Result, }; use darkfi_sdk::{ - crypto::{ - note::AeadEncryptedNote, pasta_prelude::*, FuncId, MerkleTree, PublicKey, SecretKey, - TokenId, - }, + crypto::{note::AeadEncryptedNote, pasta_prelude::*, FuncId, MerkleTree, PublicKey, SecretKey}, pasta::pallas, }; use darkfi_serial::serialize; @@ -42,7 +39,7 @@ use crate::{ }, MoneyNote, OwnCoin, }, - model::{Input, MoneyTransferParamsV1, Output}, + model::{Input, MoneyTransferParamsV1, Output, TokenId}, }; pub struct SwapCallDebris { diff --git a/src/contract/money/src/client/transfer_v1/builder.rs b/src/contract/money/src/client/transfer_v1/builder.rs index 828fcb860..4d757bdfb 100644 --- a/src/contract/money/src/client/transfer_v1/builder.rs +++ b/src/contract/money/src/client/transfer_v1/builder.rs @@ -24,7 +24,6 @@ use darkfi_sdk::{ bridgetree, crypto::{ note::AeadEncryptedNote, pasta_prelude::*, MerkleNode, Nullifier, PublicKey, SecretKey, - TokenId, }, pasta::pallas, }; @@ -34,7 +33,7 @@ use rand::rngs::OsRng; use super::proof::{create_transfer_burn_proof, create_transfer_mint_proof}; use crate::{ client::{compute_remainder_blind, MoneyNote, OwnCoin}, - model::{ClearInput, CoinAttributes, Input, MoneyTransferParamsV1, Output}, + model::{ClearInput, CoinAttributes, Input, MoneyTransferParamsV1, Output, TokenId}, }; /// Struct holding necessary information to build a `Money::TransferV1` contract call. diff --git a/src/contract/money/src/client/transfer_v1/mod.rs b/src/contract/money/src/client/transfer_v1/mod.rs index b2e5505bf..60937b147 100644 --- a/src/contract/money/src/client/transfer_v1/mod.rs +++ b/src/contract/money/src/client/transfer_v1/mod.rs @@ -17,13 +17,16 @@ */ use darkfi::{zk::ProvingKey, zkas::ZkBinary, ClientFailed, Result}; use darkfi_sdk::{ - crypto::{pasta_prelude::*, FuncId, Keypair, MerkleTree, PublicKey, TokenId}, + crypto::{pasta_prelude::*, FuncId, Keypair, MerkleTree, PublicKey}, pasta::pallas, }; use log::{debug, error}; use rand::rngs::OsRng; -use crate::{client::OwnCoin, model::MoneyTransferParamsV1}; +use crate::{ + client::OwnCoin, + model::{MoneyTransferParamsV1, TokenId}, +}; mod builder; pub use builder::{ diff --git a/src/contract/money/src/entrypoint/fee_v1.rs b/src/contract/money/src/entrypoint/fee_v1.rs index 5635d60cf..96bafef9d 100644 --- a/src/contract/money/src/entrypoint/fee_v1.rs +++ b/src/contract/money/src/entrypoint/fee_v1.rs @@ -18,8 +18,7 @@ use darkfi_sdk::{ crypto::{ - pasta_prelude::*, pedersen_commitment_u64, poseidon_hash, ContractId, MerkleNode, - PublicKey, DARK_TOKEN_ID, + pasta_prelude::*, pedersen_commitment_u64, poseidon_hash, ContractId, MerkleNode, PublicKey, }, dark_tree::DarkLeaf, db::{db_contains_key, db_get, db_lookup, db_set}, @@ -32,7 +31,7 @@ use darkfi_serial::{deserialize, serialize, Encodable, WriteExt}; use crate::{ error::MoneyError, - model::{MoneyFeeParamsV1, MoneyFeeUpdateV1}, + model::{MoneyFeeParamsV1, MoneyFeeUpdateV1, DARK_TOKEN_ID}, MoneyFunction, MONEY_CONTRACT_COINS_TREE, MONEY_CONTRACT_COIN_MERKLE_TREE, MONEY_CONTRACT_COIN_ROOTS_TREE, MONEY_CONTRACT_INFO_TREE, MONEY_CONTRACT_LATEST_COIN_ROOT, MONEY_CONTRACT_NULLIFIERS_TREE, MONEY_CONTRACT_TOTAL_FEES_PAID, MONEY_CONTRACT_ZKAS_FEE_NS_V1, diff --git a/src/contract/money/src/entrypoint/genesis_mint_v1.rs b/src/contract/money/src/entrypoint/genesis_mint_v1.rs index 17913e4ce..e00d573b2 100644 --- a/src/contract/money/src/entrypoint/genesis_mint_v1.rs +++ b/src/contract/money/src/entrypoint/genesis_mint_v1.rs @@ -17,10 +17,7 @@ */ use darkfi_sdk::{ - crypto::{ - pasta_prelude::*, pedersen_commitment_u64, poseidon_hash, ContractId, MerkleNode, - DARK_TOKEN_ID, - }, + crypto::{pasta_prelude::*, pedersen_commitment_u64, poseidon_hash, ContractId, MerkleNode}, dark_tree::DarkLeaf, db::{db_contains_key, db_lookup, db_set}, error::{ContractError, ContractResult}, @@ -33,7 +30,7 @@ use darkfi_serial::{deserialize, serialize, Encodable, WriteExt}; use crate::{ error::MoneyError, - model::{MoneyGenesisMintParamsV1, MoneyGenesisMintUpdateV1}, + model::{MoneyGenesisMintParamsV1, MoneyGenesisMintUpdateV1, DARK_TOKEN_ID}, MoneyFunction, MONEY_CONTRACT_COINS_TREE, MONEY_CONTRACT_COIN_MERKLE_TREE, MONEY_CONTRACT_COIN_ROOTS_TREE, MONEY_CONTRACT_INFO_TREE, MONEY_CONTRACT_LATEST_COIN_ROOT, MONEY_CONTRACT_ZKAS_MINT_NS_V1, diff --git a/src/contract/money/src/entrypoint/pow_reward_v1.rs b/src/contract/money/src/entrypoint/pow_reward_v1.rs index 2617d5218..79f16cab2 100644 --- a/src/contract/money/src/entrypoint/pow_reward_v1.rs +++ b/src/contract/money/src/entrypoint/pow_reward_v1.rs @@ -18,10 +18,7 @@ use darkfi_sdk::{ blockchain::expected_reward, - crypto::{ - pasta_prelude::*, pedersen_commitment_u64, poseidon_hash, ContractId, MerkleNode, - DARK_TOKEN_ID, - }, + crypto::{pasta_prelude::*, pedersen_commitment_u64, poseidon_hash, ContractId, MerkleNode}, dark_tree::DarkLeaf, db::{db_contains_key, db_lookup, db_set}, error::{ContractError, ContractResult}, @@ -34,7 +31,7 @@ use darkfi_serial::{deserialize, serialize, Encodable, WriteExt}; use crate::{ error::MoneyError, - model::{MoneyPoWRewardParamsV1, MoneyPoWRewardUpdateV1}, + model::{MoneyPoWRewardParamsV1, MoneyPoWRewardUpdateV1, DARK_TOKEN_ID}, MoneyFunction, MONEY_CONTRACT_COINS_TREE, MONEY_CONTRACT_COIN_MERKLE_TREE, MONEY_CONTRACT_COIN_ROOTS_TREE, MONEY_CONTRACT_INFO_TREE, MONEY_CONTRACT_LATEST_COIN_ROOT, MONEY_CONTRACT_ZKAS_MINT_NS_V1, diff --git a/src/contract/money/src/entrypoint/transfer_v1.rs b/src/contract/money/src/entrypoint/transfer_v1.rs index 7e53754cc..704edd0fe 100644 --- a/src/contract/money/src/entrypoint/transfer_v1.rs +++ b/src/contract/money/src/entrypoint/transfer_v1.rs @@ -19,7 +19,7 @@ use darkfi_sdk::{ crypto::{ pasta_prelude::*, pedersen_commitment_u64, poseidon_hash, ContractId, FuncId, FuncRef, - MerkleNode, PublicKey, DARK_TOKEN_ID, + MerkleNode, PublicKey, }, dark_tree::DarkLeaf, db::{db_contains_key, db_get, db_lookup, db_set}, @@ -32,7 +32,7 @@ use darkfi_serial::{deserialize, serialize, Encodable, WriteExt}; use crate::{ error::MoneyError, - model::{MoneyTransferParamsV1, MoneyTransferUpdateV1}, + model::{MoneyTransferParamsV1, MoneyTransferUpdateV1, DARK_TOKEN_ID}, MoneyFunction, MONEY_CONTRACT_COINS_TREE, MONEY_CONTRACT_COIN_MERKLE_TREE, MONEY_CONTRACT_COIN_ROOTS_TREE, MONEY_CONTRACT_FAUCET_PUBKEYS, MONEY_CONTRACT_INFO_TREE, MONEY_CONTRACT_LATEST_COIN_ROOT, MONEY_CONTRACT_NULLIFIERS_TREE, diff --git a/src/contract/money/src/model.rs b/src/contract/money/src/model/mod.rs similarity index 98% rename from src/contract/money/src/model.rs rename to src/contract/money/src/model/mod.rs index 316e5f9b9..b85bf71c7 100644 --- a/src/contract/money/src/model.rs +++ b/src/contract/money/src/model/mod.rs @@ -19,7 +19,7 @@ use darkfi_sdk::{ crypto::{ ecvrf::VrfProof, note::AeadEncryptedNote, pasta_prelude::PrimeField, poseidon_hash, FuncId, - MerkleNode, Nullifier, PublicKey, SecretKey, TokenId, + MerkleNode, Nullifier, PublicKey, SecretKey, }, error::ContractError, pasta::pallas, @@ -29,6 +29,10 @@ use darkfi_serial::{SerialDecodable, SerialEncodable}; #[cfg(feature = "client")] use darkfi_serial::async_trait; +/// Token ID definitions and methods +pub mod token_id; +pub use token_id::{TokenId, DARK_TOKEN_ID}; + /// A `Coin` represented in the Money state #[derive(Debug, Clone, Copy, Eq, PartialEq, SerialEncodable, SerialDecodable)] pub struct Coin(pallas::Base); diff --git a/src/sdk/src/crypto/token_id.rs b/src/contract/money/src/model/token_id.rs similarity index 93% rename from src/sdk/src/crypto/token_id.rs rename to src/contract/money/src/model/token_id.rs index b7dcccfea..f01fda6b7 100644 --- a/src/sdk/src/crypto/token_id.rs +++ b/src/contract/money/src/model/token_id.rs @@ -16,14 +16,14 @@ * along with this program. If not, see . */ -#[cfg(feature = "async")] -use darkfi_serial::async_trait; +use darkfi_sdk::{crypto::pasta_prelude::PrimeField, error::ContractError, pasta::pallas}; use darkfi_serial::{SerialDecodable, SerialEncodable}; use lazy_static::lazy_static; -use pasta_curves::{group::ff::PrimeField, pallas}; + +#[cfg(feature = "client")] +use darkfi_serial::async_trait; use super::{poseidon_hash, PublicKey, SecretKey}; -use crate::error::ContractError; lazy_static! { // The idea here is that 0 is not a valid x coordinate for any pallas point, @@ -93,6 +93,6 @@ impl TokenId { } use core::str::FromStr; -crate::fp_from_bs58!(TokenId); -crate::fp_to_bs58!(TokenId); -crate::ty_from_fp!(TokenId); +darkfi_sdk::fp_from_bs58!(TokenId); +darkfi_sdk::fp_to_bs58!(TokenId); +darkfi_sdk::ty_from_fp!(TokenId); diff --git a/src/contract/money/tests/genesis_mint.rs b/src/contract/money/tests/genesis_mint.rs index 1909fb385..597bfd935 100644 --- a/src/contract/money/tests/genesis_mint.rs +++ b/src/contract/money/tests/genesis_mint.rs @@ -27,7 +27,7 @@ use darkfi::Result; use darkfi_contract_test_harness::{init_logger, Holder, TestHarness, TxAction}; -use darkfi_sdk::crypto::DARK_TOKEN_ID; +use darkfi_money_contract::model::DARK_TOKEN_ID; use log::info; #[test] diff --git a/src/contract/money/tests/pow_reward.rs b/src/contract/money/tests/pow_reward.rs index e36e73434..ea9d06fcd 100644 --- a/src/contract/money/tests/pow_reward.rs +++ b/src/contract/money/tests/pow_reward.rs @@ -26,7 +26,8 @@ use darkfi::Result; use darkfi_contract_test_harness::{init_logger, Holder, TestHarness}; -use darkfi_sdk::{blockchain::expected_reward, crypto::DARK_TOKEN_ID}; +use darkfi_money_contract::model::DARK_TOKEN_ID; +use darkfi_sdk::blockchain::expected_reward; use log::info; #[test] diff --git a/src/contract/test-harness/src/money_airdrop.rs b/src/contract/test-harness/src/money_airdrop.rs index 7abd353ff..e47cadf43 100644 --- a/src/contract/test-harness/src/money_airdrop.rs +++ b/src/contract/test-harness/src/money_airdrop.rs @@ -25,11 +25,11 @@ use darkfi::{ }; use darkfi_money_contract::{ client::{transfer_v1 as xfer, OwnCoin}, - model::MoneyTransferParamsV1, + model::{MoneyTransferParamsV1, DARK_TOKEN_ID}, MoneyFunction, MONEY_CONTRACT_ZKAS_BURN_NS_V1, MONEY_CONTRACT_ZKAS_MINT_NS_V1, }; use darkfi_sdk::{ - crypto::{FuncId, MerkleNode, DARK_TOKEN_ID, MONEY_CONTRACT_ID}, + crypto::{FuncId, MerkleNode, MONEY_CONTRACT_ID}, pasta::pallas, ContractCall, }; diff --git a/src/contract/test-harness/src/money_transfer.rs b/src/contract/test-harness/src/money_transfer.rs index ad9472689..4df5f864f 100644 --- a/src/contract/test-harness/src/money_transfer.rs +++ b/src/contract/test-harness/src/money_transfer.rs @@ -24,11 +24,11 @@ use darkfi::{ }; use darkfi_money_contract::{ client::{transfer_v1::make_transfer_call, OwnCoin}, - model::MoneyTransferParamsV1, + model::{MoneyTransferParamsV1, TokenId}, MoneyFunction, MONEY_CONTRACT_ZKAS_BURN_NS_V1, MONEY_CONTRACT_ZKAS_MINT_NS_V1, }; use darkfi_sdk::{ - crypto::{MerkleNode, TokenId, MONEY_CONTRACT_ID}, + crypto::{MerkleNode, MONEY_CONTRACT_ID}, ContractCall, }; use darkfi_serial::{serialize, Encodable}; diff --git a/src/sdk/src/crypto/mod.rs b/src/sdk/src/crypto/mod.rs index ec6aa3ba5..84dd78024 100644 --- a/src/sdk/src/crypto/mod.rs +++ b/src/sdk/src/crypto/mod.rs @@ -38,10 +38,6 @@ pub use contract_id::{ContractId, DAO_CONTRACT_ID, DEPLOYOOOR_CONTRACT_ID, MONEY pub mod func_ref; pub use func_ref::{FuncId, FuncRef}; -/// Token ID definitions and methods -pub mod token_id; -pub use token_id::{TokenId, DARK_TOKEN_ID}; - /// Merkle node definitions pub mod merkle_node; pub use merkle_node::{MerkleNode, MerkleTree};