Contract 18051456816b66f12e773a56f77c5794fac1b1fb7ab6e22d4fad5a412770f73e

← Back to Index 📥 Download WASM

Meta

Description Soroswap.Finance Protocol - Constant product AMM with a .3% swap fee
rssdkver 20.2.0#6e198b79a51c48ccc8f22b02dcc4046d8cb7a887
rsver 1.75.0

Instances

  • CA2GDZI6CSRMKA65WDVN37WESKK4DBU72SGXGQ27S5XWFPAPJLQHLUVM
  • CA2TZIB56KYKD46F7IFBF6XPO5TDNK6N2U6BRTGZ5AF4WUSBN6BKZMGF
  • CA4VTJFKCIXVH3G2MEYAGA4U5A7IBWFFDODTSR3KUAQ4KZMI37J75CYX
  • CA53URIS7E2LIWASEH7IACBU6FB3EBUYPNW5IRKZBHALRNXLZ3DE7XTP
  • CA5JJHF5LKBB6LKFKOVVTOO5QE4ZPFIHULSBC5AB5PZXKX2J543HZQJX
  • CABIXKWFCRM6VYUPNKF5C24O5LRCINE4XGB7SRUK67T6EVYMQSRUROKH
  • CABJYKXLX5PIXGUAHJS7VG7XVMGFEPRGI5KH37F45H37YIJNEHDBVXCN
  • CAC7CX77YKAXS2LES3W54KTY6KDDMDBXRJ5TWK7UX2N4OFBY2OJEUJQW
  • CACTIOUW5FHYD3Q6ENKAU2IBLO2YFRWST4OGPDB4H32OGFMMJQF6SAJ5
  • CACXB6KH5DQVQKQGXKHF2M5TEKFY5KIDCKSEXZYJ27Z5465V2SSALCBW
  • CADMFEOU6YZBJ3RTRBU4SXLHKTTQ32YD2YVABBYERKDWP5TVFGWKFADH
  • CADRWHW2ASLZYF7C4UL4IGGXQGL3ERHBNYYYYTZFRIM36U4CNTS7C3SA
  • CAEMZ5U5PFDFYCMRE5KRLEP5OTTMNN6U3UFEFBXKSQDDB3BNZMDKFYQK
  • CAF65BIHBIHC44QPWIFZRL46BDDH4FN3VSRBB2DZJFPWQRAOSRPKRRQZ
  • CAFRE2UJJFZ557VWRBU5MFRCW2TWJWXMZLZLEVPIX2MDOV3KRICOL5N2
  • CAHSKDP66SYCGYQZ3NULGZMEUSN5Z67UFBYADJVCNXVKV3E7PKYR5PQ4
  • CAI7B3M2EPGDA2GMHCHUD5JS7MEJ7HA7U7GP5L2IOJWWAE7VRTMTJPNX
  • CAKDLJC6ZWZYUZXN6DRP77TNKEES37ROVKZEOGFVVR2Q2LPHN72G7SJZ
  • CAKST7SVAVUZPYCDJ7QIUFLHHDAZV6HOY74F3PSVN5EKBMAGEZDR5D3I
  • CAM7DY53G63XA4AJRS24Z6VFYAFSSF76C3RZ45BE5YU3FQS5255OOABP
  • CAMHJADKHNVEPATAGWR64WJELSXQHMG7V2XDMZUW4B2NF7L4OSZNAUDZ
  • CAMWIRFQPL7QPXC4ZJ7PZWGMQ4Y24ZLBWLIB762ARZNOC6NSSJXGSBZE
  • CANWE5SKHS37QAOXVF4DEKXOZBWXYUOYJFLKLWTV72BZSSSKEZ44NUMY
  • CAOIY7HEWKR727Q7W46F2AGJG5MY42JRETE4MNSQRZ3LWUPJOLPKMHXI
  • CAQJUHO6KIBTEDT53DKDPHFMQ32KDWU5MDCAZE2MXT4ECBMTDQQF5FGB
  • CARKJEC7JDF2NNYME3M3BTKX3NAHD7F4AH3NJWF3UVLLC26KVGEUEGXW
  • CARXFUVRVZAFWLARBP4PPUM6PF44G4D74WDOBW5ZQYP4XC2QW7SGPGAL
  • CATLGF6NNXFSU4TGBKT3GNQHOM63YTRTSX36DWCT2DNEEH5OOOEHKQSO
  • CATUJXDUO7SSSTAKSUV5YU6RSTB4B5AVIHQDV26QTCXOB46T6SLMWNMY
  • CAURS6NIANW7PQEZX35NBZZFGQFTULHREJFP44YWNBR33KGKJLOASZIW
  • CAURSSRGHMADWILZMM3RATEXUMFENZ6WQY2MFP33NSDSBRLZZ633NYKD
  • CAX57ZNIZKVBDZ36OFH5IAMBTDDCJ4F54KUKCJRUKG5POIISYWL46P3U
  • CAX7KGAVK4YBJJWLNV22DFEWC53LKQG3TNSUORMYEDGRT57PTW5K7BZ2
  • CAYFEOB7X3O5VVGCQPQ4CDURGNGPBAJ6XNXFVW7G4ETLL4K2KNHYP5QZ
  • CAYHG44QUYSMQOXLZUMAI5VC7YHU7F4RQJ4NVGX4IY7OT77KPRU5RFIP
  • CAYSBVJOBO34WZHGAG2RNQZ52ZUBZRUHOTSIUIBJ2ZFSAZQPY73FPQNI
  • CAZPU5HGCUBXFCMSUIYM2TW6KPDALHOVQN4UBTLQU6EH637J3UADSISO
  • CB2IMINSODLFTKXG6AAS7DZNETFRTJ4ES5WRBO4ROY4ANFQJTKOC6SS6
  • CB3CBFWCLES4VUFXDYKH3KW6SO2XJEH3SJSPX36FHLV4I544M2CI4L63
  • CB3SSAVMNLM7LARX7Q6KCBGGHIEODG3LKDY4PHZZNO2CLD5WMY4ARCVO
  • CB46LMGJC7SYSH4C7SBNLV635OX5BSNQDGRR32NRXAV7N2AVNZMQUJ3A
  • CB4LVW7XBXM4YMKREJK7ZLMI6H44FEEFZVRUTOYEZ5DOLS44KDS6J6XV
  • CB4UVMNV25WS24YN3RCFK2DYQXHAZWAWT7LLB2NLTRXTVTHMJ52YHNGS
  • CB52TO4URN5Z4XLLB5ET6WFR4NJZ4K5RDUPUHAULHOUJKYF3E5FE5XO6
  • CB63RYTOXPVHXJAM7BGN7AUKFGHUCT5KVCK4H2BV4CHPEWIV4J3WDY3W
  • CBC77SIWYS42WTCCH44ZVQHASSIWOCHGVNXEO52AWCBX3QGGB2GG3FUD
  • CBCR5DFY4WFU7GJL474NOTY7MRO65VQ3U3SICX3JMEZCQSR5HC5CFVCS
  • CBDAIZSNXOEKPJRDD56HFED5LKA2PUDAZANIHRRSMMSCH37P2I4W4CI4
  • CBDWBXGAP5JECCTYBDZXYIGZCWR253Y2DUKXHQRVC24ZWJAXASJZL2DW
  • CBDZFSENKL4LL73OUMEPCJOLGGLWNE4SWN6NC6VVG772ISA5M6ITATMO
  • CBFGP42OT2EHAQB55WE6N4JS3U5FAPT3RNFQYYORWT7VE7GQI4PEE7TF
  • CBH4R4A7CU3NQGD3FM25LQ2Y2OB7LWEXQ4EKAXQRFMHCW3FQYX6S6T4D
  • CBIQ5MND5I4AXWFSSDPDVN2X3DPR366YMBXUL6TABGUKMKVGOM2IAZJF
  • CBJ3WO7M3H7EI7ATEBYHLZBJCW4OXHU3FRG7LK6ZTRHLKKLFW5NHY4Q6
  • CBJYBRJAAI4NMALSD6S3FNOKKDJR463CXYIGW7A7FCHOZIBAC4HIJEB7
  • CBKG7Y3LSLTSK76LCKM52EQP3I7GMGL2VOR6S46ZEJZW62WFPAKP4NIG
  • CBKOLOPL2K34UKBEKEW6H3GWBJKCYC77MWR6OZLNWMEIH6DLTUXEG75M
  • CBLMYCEG52NRGDVLNJZB4FM3NGPUCYF7LH6VIV4JVZ6SEDP6FV6F7HVH
  • CBM57KNFJGVXBCZWBZZRDAOBZVSCOTSEWWQ4RIIAM2GCX3LHCVMFWCHI
  • CBOGW2GXIAHKYLQEX6DSM7325BNGBZ7W5G6ME4ACADZPWTSIJGU3XOSA
  • CBV3S4KL67WUJNR345NIQP6PVEEZI5V23NWLAUPNNOYVKWB4MQBC2AAT
  • CBVCMXUCN4TXJAIBB6G3QTUZ2LNEXXJKLCBQVDFH77CBV43NK6XC44TL
  • CBVOZM3YLSK3IEKTL3XB3V7CMRU2JNTC3MISPEDMMU4XEUIXDQT6FP6T
  • CC2MSLNFYG63SKXLUTOJJOJWBORZ7NKH4IC66MG5SITKSN5MMFYH6FPE
  • CC3YA62KSG4FJGH3FHW6NMVZBC5KMYPJUBIAX45AYNVOU573YJAC3H4A
  • CC47XJBL5LSZBUONNXBWUIBEUSQLOWTVBFXZGHS74DON3JBIJM6EJKSW
  • CC4S3VFV4UHIBAKUUBRLSIQTGA33NY4DF36A6ZT7GNJWJFUDZBZNPNUS
  • CC4SWJHU3YZMI2QBYCXUS4E5SVE744AGF4HP3VQMXZ3WKZ5OGYNKL7H6
  • CC7CDFY2VGDODJ7WPO3JIK2MXLOAXL4LRQCC43UJDBAIJ4SVFO3HNPOC
  • CC7Z3FQD2FRBN2QQMN5R335YGSS7QO7YLYTJZV3HGPPS6GI373O5UZDI
  • CCB6AP3L24Q7KW3LTMO6D3KLNV6MAFTK2TDTJ3XP7BRI2OP4O6SWQM53
  • CCCCPI3YRYE6B6REIZLRYT37CTN5PSGQTLGV7XSWNKQXGYNGKFOIDJRW
  • CCCDU62TWI744KFK6COAW2PARPVPXKKE3DBVBUZCFWZOGGD7HZ5YEY3X
  • CCH3CJZWG6UMW522ESP3UHL4DCZLNXZLUHKYG5GCGNG5HXRL4A6O4A23
  • CCHAZKZPWUN7YFY5Y2TABRKJ2REEMW4QSU6HGKWPIKO7KGU3VAW2K5SL
  • CCLDFW5AQDW7I4POMYMQ52AX5JCPL6THF7JUB6HIEEPKXE6CP5KCP5DO
  • CCMQKALAUH4Z35G4UZBDUTHJFVA2X3QHLGXY7BTEVNEOMRX6DUHDD6CC
  • CCMZEUIBSKFPPATVZJDSJE4R5AXZWHG4W3CQSBXZNPEDUWAVMEBPSZR2
  • CCOGGZBP22NP2NPNGU4IA44AUPD7BAOVU42XGLMK4IA4SVSSDC3375PU
  • CCPFMEMWFD6BEQYZAE3J2O7H3PZMDQVHYQMTH3YVVCAMQEAVQGI5RP6X
  • CCPZ3DPINLAJZ7RLMVKZY77FZDTN3DXNSLF5TYC5CUYGGJ35OF5KJ47U
  • CCRCDZFUKKJLFIK22FHG77VEWWY2AWZFACFI5IZY465ZWALZPP765N2G
  • CCRF4YDURHCHURPZDEF32RAIIDXWGQFXYLRX3Z64U6DKC4AJBLISVKWI
  • CCSJOTOGCEBGAXBJKLG3ETD644XI264U54N54W74K4TYUFAKPNBQ6VDI
  • CCUXNMGJHJCESBYTBK55THNKAJJXSHTIP5Y7C4NA6OS4P7VCZXFYVPKG
  • CCWHGNBIQ67FQ4Y64UPTRZR3DSZBZ7CZPQ3NK3EIMNR7WWUVBYX4RCAU
  • CCWSFAZM5GRH4TPJKPUZC3KEB757T3QEFP3JUXUDDBJVAHZFPIBNMOG5
  • CCXCD5BD576T7DUQ7VMKMZLOQWWDQRDCKCKCN6SJBRYWIQ3Q2OEKXHWQ
  • CCXOKQBBNRJ7YKY4Y6HTXAU5ZLV7PKENA7ZT74UAAXZ6XUEE22YQGBCS
  • CCYPLDHUEYWJEOIZJTXUH56NLIQLKYGR5H2BEFQMBYG5IC3G52QF4WVD
  • CD2A3X2D5ITHYA4DQ5TANYWAUAUP4G5QCMQILCMKXCXSR76OGNIC3C6N
  • CD2VHT23WGUKG7RWOSFCQLWDLGNPCTTKHO6LVBYYO2CVG3KZKHDIJTAA
  • CD3XW7RGZIQMSVCTLK2NOFAGPTCBKXAVXIXN6QAMEPTJRY45325BZT67
  • CD3ZXYEAE5JC6G2VTFEAF4SQ6GOURE5AX7GYSKKO74IR2KSUDPXZNRWS
  • CDB4Y3T3TALVQ6O7ICAPN6ZPIBAYW3ORYPP3OYFVQMSA3IYI4ZC246XY
  • CDBBBNMCWRMWEIFHUD5BXBCRTW6QM33ZEXIOBGKKQNDSH3WEF7WVBGMI
  • CDDEKHF7HRD3JSTIK2BQ4IHJQI64V3SO3HPR2DZBP3OBDBQBKOJNNQU7
  • CDFD72XQSA6AHBRUHCVIMSOUXQCXKLMCFHYS2RIEGZAD64PFTYV22DMH
  • CDGLVQDF2QUD6P4XJXBATP3HT2MSBEV3NH246ZDQPP6JPNPFAYO44P5E
  • CDHDOLTPRPJ5OBLM6PBMTZTM6M4UHEDLHK7DDPR5YX3XZWXZNHN2OYCT
  • CDIXSYDR7S5OLT56JM7G5Y5LHH6NEFINZOE2YG2TJEXHHYWKLV3FDCCU
  • CDJDRGUCHANJDXALZVJ5IZVB76HX4MWCON5SHF4DE5HB64CBBR7W2ZCD
  • CDJXIUCWP3BWZWNPPL52YRG7FHG6LWAHN5RTYR4FLY7A3PJKSZ7LGCSC
  • CDLJHWJZS3KZDIFLGEFTXUOULRAZ3Z437JTEZLGHMUZEX4DFBFYWXRFR
  • CDLMAKG5TSJA6FGP7LLC2FKJRQW6DQYMEPP6FURFVULDEQMP3PRZ4ISI
  • CDMC44BMEGF5GMJHNP6NQA3LLBMWLONQFV37E2J5NWYYBBEXNMYMKRBO
  • CDMRH3WFVDJMZWQBWCHJXFJTGDBDUTFBYQ5Q6JR2TIKN5RB7Q2SIICO4
  • CDOS7DHTHUNENP6X32SFDN76JAWTU7IFSEDBJEJPDWZ4PQCSTJFUSZ56
  • CDQ4UKVWHJKR465B3NN2YP3IMWBEZ77YYJYTHYZA3BWNTPRHFOJ4OY57
  • CDQE2IR23YR56HCQMCXXTQLE63DZX6ZKBB7OHBHATFTINLMS3PBTD3SR
  • CDQZ5GGV5GHWSJXU2HF5SRDQ2R7ITVQCD6JJUBZ5MUOBRN4ZWGITWMHG
  • CDRS7NJPAX2HLYNENMUH3USUV6LP6KYSLZZ4ULY27RQLKIVC5DGLEVKI
  • CDUVR3BIIXKGZ7ABHYGCZUJ2PKZ5G5OJ464GCHDPPOAQ22HVODFLQLTV
  • CDWHORYUN7H3WOZDUHYYADZ7XA4AYY4AO6SM3A3CEZ4T52I4GZ7PRBED
  • CDWUJKZ6OVA5LO3VDWU54WY5DM2XD2O4D2VV7P3ZPK7PLADIYV66GIFC
  • CDX62LEBSX3UI6U6HNBJIIWQRGOCXKYKQ5MA6TRZMM4DSK2U7AECS4NO
  • CDXADLBNIQK5STJVEBOK2CMJPCN6EUUZ3MYPUOMXQ5VBNREGFEIF3PT5
  • CDZF6KASJFUZEQDUHWOAK32YAGH3CWCU5RHQABGNAGV66LLOYAE7TNBS

Interface

fn total_supply(env: soroban_sdk::Env) -> i128
fn allowance(
    env: soroban_sdk::Env,
    from: soroban_sdk::Address,
    spender: soroban_sdk::Address,
) -> i128
fn approve(
    env: soroban_sdk::Env,
    from: soroban_sdk::Address,
    spender: soroban_sdk::Address,
    amount: i128,
    expiration_ledger: u32,
)
fn balance(env: soroban_sdk::Env, id: soroban_sdk::Address) -> i128
fn transfer(
    env: soroban_sdk::Env,
    from: soroban_sdk::Address,
    to: soroban_sdk::Address,
    amount: i128,
)
fn transfer_from(
    env: soroban_sdk::Env,
    spender: soroban_sdk::Address,
    from: soroban_sdk::Address,
    to: soroban_sdk::Address,
    amount: i128,
)
fn burn(env: soroban_sdk::Env, from: soroban_sdk::Address, amount: i128)
fn burn_from(
    env: soroban_sdk::Env,
    spender: soroban_sdk::Address,
    from: soroban_sdk::Address,
    amount: i128,
)
fn decimals(env: soroban_sdk::Env) -> u32
fn name(env: soroban_sdk::Env) -> soroban_sdk::String
fn symbol(env: soroban_sdk::Env) -> soroban_sdk::String

Initializes a new Soroswap pair by setting token addresses, factory, and initial reserves.

Arguments

  • e - The runtime environment.
  • factory - The address of the Soroswap factory contract.
  • token_0 - The address of the first token in the pair.
  • token_1 - The address of the second token in the pair.
fn initialize(
    env: soroban_sdk::Env,
    factory: soroban_sdk::Address,
    token_0: soroban_sdk::Address,
    token_1: soroban_sdk::Address,
) -> Result<(), SoroswapPairError>

Returns the address of the first token in the Soroswap pair.

fn token_0(env: soroban_sdk::Env) -> soroban_sdk::Address

Returns the address of the second token in the Soroswap pair.

fn token_1(env: soroban_sdk::Env) -> soroban_sdk::Address

Returns the address of the Soroswap factory contract.

fn factory(env: soroban_sdk::Env) -> soroban_sdk::Address

Deposits tokens into the Soroswap pair and mints LP tokens in return.

Arguments

  • e - The runtime environment.
  • to - The address where the minted LP tokens will be sent.

Returns

The amount of minted LP tokens. Possible errors:

  • SoroswapPairError::NotInitialized: The Soroswap pair has not been initialized.
  • SoroswapPairError::DepositInsufficientAmountToken0: Insufficient amount of token 0 sent.
  • SoroswapPairError::DepositInsufficientAmountToken1: Insufficient amount of token 1 sent.
  • SoroswapPairError::DepositInsufficientFirstLiquidity: Insufficient first liquidity minted.
  • SoroswapPairError::DepositInsufficientLiquidityMinted: Insufficient liquidity minted.
  • SoroswapPairError::UpdateOverflow: Overflow occurred during update.
fn deposit(
    env: soroban_sdk::Env,
    to: soroban_sdk::Address,
) -> Result

Executes a token swap within the Soroswap pair.

Arguments

  • e - The runtime environment.
  • amount_0_out - The desired amount of the first token to receive.
  • amount_1_out - The desired amount of the second token to receive.
  • to - The address where the swapped tokens will be sent. Returns an error if the swap cannot be executed. Possible errors include:
  • SoroswapPairError::NotInitialized
  • SoroswapPairError::SwapInsufficientOutputAmount
  • SoroswapPairError::SwapNegativesOutNotSupported
  • SoroswapPairError::SwapInsufficientLiquidity
  • SoroswapPairError::SwapInvalidTo
  • SoroswapPairError::SwapInsufficientInputAmount
  • SoroswapPairError::SwapNegativesInNotSupported
  • SoroswapPairError::SwapKConstantNotMet: If the K constant condition is not met after the swap.
fn swap(
    env: soroban_sdk::Env,
    amount_0_out: i128,
    amount_1_out: i128,
    to: soroban_sdk::Address,
) -> Result<(), SoroswapPairError>

Withdraws liquidity from the Soroswap pair, burning LP tokens and returning the corresponding tokens to the user.

Arguments

  • e - The runtime environment.
  • to - The address where the withdrawn tokens will be sent.

Returns

A tuple containing the amounts of token 0 and token 1 withdrawn from the pair.

fn withdraw(
    env: soroban_sdk::Env,
    to: soroban_sdk::Address,
) -> Result<(i128, i128), SoroswapPairError>

Skims excess tokens from reserves and sends them to the specified address.

Arguments

  • e - The runtime environment.
  • to - The address where the excess tokens will be sent.
fn skim(env: soroban_sdk::Env, to: soroban_sdk::Address)

Forces reserves to match current balances.

Arguments

  • e - The runtime environment.
fn sync(env: soroban_sdk::Env)

Returns the current reserves and the last block timestamp.

Arguments

  • e - The runtime environment.

Returns

A tuple containing the reserves of token 0 and token 1.

fn get_reserves(env: soroban_sdk::Env) -> (i128, i128)

Returns the value of the last product of reserves (K) stored in the contract.

Arguments

  • e - The runtime environment.

Returns

The value of the last product of reserves (K).

fn k_last(env: soroban_sdk::Env) -> i128

Imports

WebAssembly Text (WAT) ▶