Skip to content

Commit

Permalink
fix: android test
Browse files Browse the repository at this point in the history
  • Loading branch information
pedrxlz committed Jan 17, 2025
1 parent befcc82 commit cd2139a
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,11 @@ import org.junit.Assert.assertTrue
import org.junit.Test

class KOSTest {

@Test
fun testKOS() {

val dataToEncrypt = "Hello"
val password = "password"
val klvChainId = 38
val klvChainId = 38u
val mnemonic =
"abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about"
val klvPk0 = "8734062c1158f26a3ca8a4a0da87b527a7c168653f7f4c77045e5cf571497d9d"
Expand All @@ -27,10 +25,10 @@ class KOSTest {
validateMnemonic("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon klv")
assertFalse(isInvalidMnemonicValid)

val mnemonic12 = generateMnemonic(12)
val mnemonic12 = generateMnemonic(12u)
assertTrue(mnemonic12.split(" ").size == 12)

val mnemonic24 = generateMnemonic(24)
val mnemonic24 = generateMnemonic(24u)
assertTrue(mnemonic24.split(" ").size == 24)

val gmcEncryptedData = encryptWithGmc(dataToEncrypt, password)
Expand All @@ -51,7 +49,7 @@ class KOSTest {
val cfbDecryptedData = decrypt(cfbEncryptedData, password)
assertEquals(dataToEncrypt, cfbDecryptedData)

val walletFromMnemonic = generateWalletFromMnemonic(mnemonic, klvChainId, 0, false)
val walletFromMnemonic = generateWalletFromMnemonic(mnemonic, klvChainId, 0u, false)
assertEquals(klvChainId, walletFromMnemonic.chainId)
assertEquals(klvPk0, walletFromMnemonic.privateKey)
assertEquals(klvAddr0, walletFromMnemonic.address)
Expand Down
44 changes: 25 additions & 19 deletions packages/kos-mobile/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@ struct KOSTransaction {
enum TransactionChainOptions {
Evm {
chain_id: u32,
network_type: u32,
},
Btc {
prev_scripts: Vec<Vec<u8>>,
Expand All @@ -80,11 +79,8 @@ fn new_bitcoin_transaction_options(
}

#[uniffi::export]
fn new_evm_transaction_options(chain_id: u32, network_type: u32) -> TransactionChainOptions {
TransactionChainOptions::Evm {
chain_id,
network_type,
}
fn new_evm_transaction_options(chain_id: u32) -> TransactionChainOptions {
TransactionChainOptions::Evm { chain_id }
}

#[uniffi::export]
Expand Down Expand Up @@ -180,13 +176,7 @@ fn sign_transaction(
options: Option<TransactionChainOptions>,
) -> Result<KOSTransaction, KOSError> {
let options = match options {
Some(TransactionChainOptions::Evm {
chain_id,
network_type,
}) => Some(ChainOptions::EVM {
chain_id,
network_type,
}),
Some(TransactionChainOptions::Evm { chain_id }) => Some(ChainOptions::EVM { chain_id }),
Some(TransactionChainOptions::Btc {
prev_scripts,
input_amounts,
Expand All @@ -199,12 +189,8 @@ fn sign_transaction(

let mut chain = get_chain_by(account.chain_id)?;

if let Some(ChainOptions::EVM {
chain_id,
network_type,
}) = options
{
chain = create_custom_evm(chain_id, network_type).ok_or(KOSError::KOSDelegate(
if let Some(ChainOptions::EVM { chain_id }) = options {
chain = create_custom_evm(chain_id).ok_or(KOSError::KOSDelegate(
"Failed to create custom evm chain".to_string(),
))?;
}
Expand Down Expand Up @@ -465,6 +451,26 @@ mod tests {
);
}

#[test]
fn should_sign_transaction_with_options() {
let chain_id = 61;
let raw =
"b302f101819e84ae7937b285035f6cccc58252089498de4c83810b87f0e2cd92d80c9fac28c4ded4818568c696991f80c0808080";

let account = generate_wallet_from_mnemonic(
"abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about".to_string(),
chain_id,
0,
false,
)
.unwrap();

let options = new_evm_transaction_options(88888);
let transaction = sign_transaction(account, raw.to_string(), Some(options)).unwrap();

assert_eq!(transaction.raw, "02f87101819e84ae7937b285035f6cccc58252089498de4c83810b87f0e2cd92d80c9fac28c4ded4818568c696991f80c001a044c69f41bf47ad50dc98c74af68811384c9172055b01fcaa39e70f53df69b632a05e071cf1f9e12500b525f03a29f567520e1ea49a97e6a29d1fd432dc6303353e", "The raw doesn't match");
}

#[test]
fn should_sign_message() {
let chain_id = 38;
Expand Down
7 changes: 3 additions & 4 deletions packages/kos/src/chains/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,6 @@ pub struct Transaction {
pub enum ChainOptions {
EVM {
chain_id: u32,
network_type: u32,
},
BTC {
prev_scripts: Vec<Vec<u8>>,
Expand Down Expand Up @@ -704,7 +703,7 @@ impl ChainRegistry {
ids
}

fn create_custom_evm(&self, chain_id: u32, _network_type: u32) -> Option<Box<dyn Chain>> {
fn create_custom_evm(&self, chain_id: u32) -> Option<Box<dyn Chain>> {
Some(Box::new(eth::ETH::new_eth_based(
0,
chain_id,
Expand Down Expand Up @@ -755,6 +754,6 @@ pub fn get_supported_chains() -> Vec<u32> {
ChainRegistry::new().get_supported_chains()
}

pub fn create_custom_evm(chain_id: u32, network_type: u32) -> Option<Box<dyn Chain>> {
ChainRegistry::new().create_custom_evm(chain_id, network_type)
pub fn create_custom_evm(chain_id: u32) -> Option<Box<dyn Chain>> {
ChainRegistry::new().create_custom_evm(chain_id)
}

0 comments on commit cd2139a

Please sign in to comment.