ethereum - 只有在以太坊收到一定的付款金额后才能签订合同
问题描述
我创建了一个智能合约模板,作为投诉的提交表单,例如。第三街的坑洼。
用户将只填写智能合约中的基本字段,例如姓名、地址等(当然只是散列)和问题的严重性。提交时,如果问题对严重性级别有效,将调用模板智能合约请求付款。然后,负责维护的机构只有在支付与严重程度相关的金额时才能签署和验证合同。
我还没有创建支付处理,因为根据我对以太坊智能合约的理解,不可能直接在智能合约中请求资金。有没有一种解决方法可以让我不必起草数百个带有硬编码金额的智能合约?
我想知道是否有某种方法可以强制维护方在他们的合同签名上移动预定数量的以太币。这同时保留了一个不包含 Ether 的智能合约模板,并且在支付金额方面也很灵活,但强制规定了一个预定的金额。
这是一个真实世界的例子。Susan 向维护部门报告了 5 级问题,广告上说支付 20 美元。智能合约是从模板创建的,价格为 20 美元。维护人员认为这些问题是有效的并接受了合同,并且必须准确支付 20 美元。
解决方案
从您的示例中,您需要制作一个分布式应用程序并使用 web3 Libraray 与智能合约进行交互。因此,在您的场景中,Susan 报告问题并提供要收取的总金额。对于更通用的方法,您还可以在付款中附加以太坊帐户地址,这样当该特定帐户与智能合约交互时,它只会显示要支付的相关金额,并且维护将通过分布式应用程序启动交易。
推荐阅读
- javascript - 如何将自定义 td 附加到从二维数组生成的表中?
- scheme - 如何从列表中提取和返回变量?
- mysql - 如何设置触发器以将 user_id 复制到另一个表
- user-agent - 如果用户日志指示没有用户代理,这意味着什么?
- java - selectionSort 方法,将按类型对 ArrayList 进行排序
- python - python中的字典数组检查
- c++ - 索引和替换的计算成本
- c# - 不同大小的游戏对象之间的 2d 跑步者相同的间距
- spring-boot - 在 spring-boot-starter-web 项目中实现 HATEOAS 的最佳方法是什么?
- reactjs - React Router V4 - 如何只有参数?