什么是智能合约?
智能合约,又称智能合同,是事件驱动的、有状态的、多方认可的、运行在链上的、能够根据预设条件自动处理资产的契约。智能合约的最大优点是使用程序算法代替仲裁和合同执行。
简单地说,智能合约是一种使用计算机语言而不是法律语言来记录术语的合同。智能合约可以由计算系统自动执行。简言之,智能合约是传统合同的数字版本。
作为智能合约码
区块链可以运行代码。尽管最初的区块链用于简单的程序,主要是令牌事务,但是技术的进步使它能够执行更复杂的事务并识别出开发良好的编程语言。
因为这些程序在区块链上运行,所以它们的特性不同于其他软件。首先,程序本身被记录在块链上,因此具有区块链的永久性和非审计性;其次,程序可以控制区块链资产,例如可以存储和传输加密货币;第三,程序由区块链执行。这意味着没有人可以按照预先编写的内容执行,干扰其操作。
add liqudity
增加流动性,就是同时提供两种代币。因为代币有可能是ETH,针对不同情况有不同的接口。逻辑类似。
function addLiquidity(
address tokenA,
address tokenB,
uint amountADesired,
uint amountBDesired,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
)external virtual override ensure(deadline)returns(uint amountA,uint amountB,uint liquidity)
add liqudity查看之前有没有创建相应的交易对。如果有相应的交易对,确定目前的兑换比例在希望的范围内(期望amountDesired和不低于amountMin)。如果兑换比例OK,将相应的代币转入对应的交易对池子,并调用其的mint函数。
remove liqudity
提供流动性的相反的操作就是抽取流动性。也就是说,流动性提供者不再提供相应的流动性:
function removeLiquidity(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
)public virtual override ensure(deadline)returns(uint amountA,uint amountB){