buyer initiated flow

This commit is contained in:
thesn10
2026-05-26 21:33:32 +02:00
parent dd5ec25ff9
commit 9d9c7a8a43
19 changed files with 382 additions and 168 deletions

View File

@@ -1,4 +1,4 @@
#![allow(dead_code, unused_imports)]
#![allow(dead_code, unused_imports, clippy::too_many_arguments)]
pub use anchor_lang::prelude::Pubkey;
use {
@@ -6,7 +6,7 @@ use {
solana_program::{instruction::Instruction, system_program},
AccountDeserialize, InstructionData, ToAccountMetas,
},
descro_ext_resolvers::{ResolverEntry, ResolverType},
descro_ext_resolvers::{AcceptancePolicy, ResolverEntry, ResolverType},
litesvm::LiteSVM,
solana_keypair::Keypair,
solana_message::{Message, VersionedMessage},
@@ -51,6 +51,7 @@ pub fn try_send(svm: &mut LiteSVM, ix: Instruction, payer: &Keypair) -> bool {
pub fn ix_register(
authority: &Pubkey,
resolver_type: ResolverType,
acceptance_policy: AcceptancePolicy,
name: &str,
description: &str,
fee_bps: u16,
@@ -62,6 +63,7 @@ pub fn ix_register(
descro_ext_resolvers::id(),
&descro_ext_resolvers::instruction::RegisterResolver {
resolver_type,
acceptance_policy,
name: name.to_string(),
description: description.to_string(),
fee_bps,

View File

@@ -1,6 +1,6 @@
mod common;
use common::*;
use descro_ext_resolvers::ResolverType;
use descro_ext_resolvers::{AcceptancePolicy, ResolverType};
use solana_keypair::Keypair;
use solana_signer::Signer;
@@ -13,6 +13,7 @@ fn registers_entry_with_correct_state() {
ix_register(
&authority.pubkey(),
ResolverType::CentralAuthority,
AcceptancePolicy::Open,
"Acme Resolvers",
"Fast and fair dispute resolution",
100, // 1%
@@ -25,6 +26,7 @@ fn registers_entry_with_correct_state() {
let entry = read_entry(&svm, &authority.pubkey());
assert_eq!(entry.authority, authority.pubkey());
assert_eq!(entry.resolver_type, ResolverType::CentralAuthority);
assert_eq!(entry.acceptance_policy, AcceptancePolicy::Open);
assert_eq!(entry.name, "Acme Resolvers");
assert_eq!(entry.fee_bps, 100);
assert_eq!(entry.total_resolved, 0);
@@ -41,6 +43,7 @@ fn duplicate_register_fails() {
ix_register(
&authority.pubkey(),
ResolverType::CentralAuthority,
AcceptancePolicy::Open,
"Acme",
"",
0,
@@ -54,6 +57,7 @@ fn duplicate_register_fails() {
ix_register(
&authority.pubkey(),
ResolverType::CentralAuthority,
AcceptancePolicy::Open,
"Acme Again",
"",
0,
@@ -73,6 +77,7 @@ fn register_empty_name_fails() {
ix_register(
&authority.pubkey(),
ResolverType::CentralAuthority,
AcceptancePolicy::Open,
"",
"",
0,
@@ -92,6 +97,7 @@ fn register_invalid_fee_bps_fails() {
ix_register(
&authority.pubkey(),
ResolverType::CentralAuthority,
AcceptancePolicy::Open,
"Acme",
"",
10_001, // > 100%
@@ -110,12 +116,12 @@ fn different_authorities_have_separate_entries() {
send(
&mut svm,
ix_register(&auth1.pubkey(), ResolverType::CentralAuthority, "Auth1", "", 0, auth1.pubkey(), ""),
ix_register(&auth1.pubkey(), ResolverType::CentralAuthority, AcceptancePolicy::Open, "Auth1", "", 0, auth1.pubkey(), ""),
&auth1,
);
send(
&mut svm,
ix_register(&auth2.pubkey(), ResolverType::JuryDAO, "Auth2", "", 50, auth2.pubkey(), ""),
ix_register(&auth2.pubkey(), ResolverType::JuryDAO, AcceptancePolicy::Open, "Auth2", "", 50, auth2.pubkey(), ""),
&auth2,
);

View File

@@ -1,6 +1,6 @@
mod common;
use common::*;
use descro_ext_resolvers::ResolverType;
use descro_ext_resolvers::{AcceptancePolicy, ResolverType};
use solana_keypair::Keypair;
use solana_signer::Signer;
@@ -10,6 +10,7 @@ fn register_default(svm: &mut litesvm::LiteSVM, authority: &Keypair) {
ix_register(
&authority.pubkey(),
ResolverType::CentralAuthority,
AcceptancePolicy::Open,
"Original Name",
"Original description",
100,