Contract b627c2ac57a01b522c79c26beaaad13ec427e4e2c15c378056e7d5a68986fe3e

← Back to Index 📥 Download WASM

Meta

Description DobProtocol Crowdfunding V1 - Fixed price per share, on-chain escrow
cliver 23.4.1#a152ec2488c25136808ad28277c24b3a0765ffd4
rssdkver 23.4.0#673d6c4f2368d282d25da29bda55c21b8be69ca6
rsver 1.92.0

Instances

  • CBX4IZQMJHGS35PVBVJQJE3JXRT2ZVJ3WE337BWSAWKZ5WKTRZF2F2V7
  • CDPNBREDVEXZENIYLBVKGGNZNJ67SXDBHUTX4UIUOUA5KVR2HQM2RWGO

Interface

Initialise the campaign.

  • price_per_share: payment_token units for 1 share out of 10 000.
  • soft_cap_shares: minimum shares sold to mark campaign Succeeded [1, 10 000].
  • hard_cap_shares: maximum shares available [soft_cap, 10 000]. Pass 10 000 for no effective hard cap.
  • deadline: unix timestamp after which finalize() can be called.
  • payout_mode: 0 = Escrow (funds → splitter on activate, default), 1 = DirectToOwner (funds → admin on activate, resell mode).
fn init(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    payment_token: soroban_sdk::Address,
    price_per_share: i128,
    soft_cap_shares: i128,
    hard_cap_shares: i128,
    deadline: u64,
    payout_mode: u32,
) -> Result<(), soroban_sdk::Error>

Claim a refund after a Failed campaign. Returns payment_token to the investor proportional to their contribution.

fn refund(
    env: soroban_sdk::Env,
    investor: soroban_sdk::Address,
) -> Result

Transfer all raised funds to the splitter contract after a successful campaign. Admin must deploy the V1 splitter externally first, then call this. The splitter should be initialised with shares proportional to contributions.

fn activate(
    env: soroban_sdk::Env,
    splitter_address: soroban_sdk::Address,
) -> Result

Evaluate success/failure after deadline (callable by anyone). Sets status to Succeeded if total_shares_sold >= soft_cap_shares, else Failed.

fn finalize(env: soroban_sdk::Env) -> Result

Buy shares_amount shares during the fundraising period. Transfers shares_amount × price_per_share payment_token from investor to contract. Returns the total payment amount transferred.

fn contribute(
    env: soroban_sdk::Env,
    investor: soroban_sdk::Address,
    shares_amount: i128,
) -> Result
fn get_config(env: soroban_sdk::Env) -> Result
fn get_status(env: soroban_sdk::Env) -> Result
fn get_splitter(env: soroban_sdk::Env) -> Option
fn get_contribution(env: soroban_sdk::Env, investor: soroban_sdk::Address) -> i128
fn get_total_raised(env: soroban_sdk::Env) -> i128

Imports

WebAssembly Text (WAT) ▶