收币合约

BlockATM 收币合约分为两类:Web3收币合约、扫码收币合约

Web3收币合约

Web3收币合约提供安全可靠的收币支付方式,用户通过连接钱包并授权智能合约自动执行交易完成支付,用户支付的加密货币直接转入Web3收币合约,有且只有合约中指定的"授权签名地址"有权限提币,并且只能提到合约中指定的"资产接收地址"。

创建收币合约时,需指定授权签名地址和资产接收地址,一旦指定并成功创建合约后,无法修改,以此保证合约资产的安全性。

扫码收币合约

扫码收币合约提供方便快捷的收币支付方式,用户通过手机钱包扫描接收地址的二维码进行转账支付,有且只有合约中指定的"授权签名地址"有权限提币,并且只能提到合约中指定的"资产接收地址"。

创建扫码收币合约时,需指定授权签名地址和资产接收地址,但扫码收币合约的资产接收地址必须是Web3收币合约地址,即创建扫码收币合约的前提是先创建Web3收币合约。

合约权限说明

地址类型
说明
权限

管理员地址

创建收币合约的钱包地址

管理收币合约

授权签名地址

有权限提取收币合约资产的钱包地址

提取合约资产

资产接收地址

有权限接收收币合约资产的钱包地址

接收合约资产

收币智能合约代码

/**
函数:constructor
功能:商户在部署收款合约时,在合约部署时设定提现地址、财务人员地址、管理员等
@param newWithdrawList 提现地址列表,在合约部署时写入后不可修改
@param newFinanceList 财务人员地址列表,在合约部署时写入后不可修改
@notice 该构造函数用于初始化合约的关键参数和权限设置。
@notice 提现地址列表和财务地址列表不能为空,确保合约初始化时具备必要的权限配置。
@notice 手续费网关地址用于处理与费用相关的逻辑,确保系统收益和费用扣除的透明性。
*/
constructor(
bool safe,
uint256 id,
address[] memory newWithdrawList,
address[] memory newFinanceList,
address newFeeGateway
) {
//参数安全性检查
...
// 设置提币地址
processList(newWithdrawList, withdrawMap);
withdrawList = newWithdrawList;
// 设置财务地址
processList(newFinanceList, financeMap);
financeList = newFinanceList;
 //其他参数设置
....
// 设置合约owner
owner = msg.sender;
}

历史合约版本

V2

2025 年 4 月 17 日

  • 独立收银台主体,解藕收币合约与收银台,实现由企业自主决定收银台关联的收币合约

  • 更改收币手续费规则:从押金抵扣方式改为从收币合约余额中收取,降低企业展业成本

V1

2023 年 7 月 10 日

  • 收币合约指定了授权签名地址和资产接收地址,只有授权签名地址有权限提取合约资产到资产接收地址

Last updated