diff --git a/src/blockchain/abi.js b/src/blockchain/abi.js index 6c7c7b4..54a9379 100644 --- a/src/blockchain/abi.js +++ b/src/blockchain/abi.js @@ -53,10 +53,11 @@ const Tranche = `(uint64,${Constraint}[])` const SwapOrder = `(address,address,${Route},uint256,bool,bool,uint64,${Tranche}[])` export const vaultAbi = [ - 'function withdraw(uint256) public', - 'function withdrawTo(address payable,uint256) public', - 'function withdraw(address,uint256) public', - 'function withdrawTo(address,address,uint256) public', - 'function placeOrder((address,address,(uint8,uint24),uint256,bool,bool,uint64,(uint16,(uint8,bytes)[])[])) public', - 'function placeOrders((address,address,(uint8,uint24),uint256,bool,bool,uint64,(uint16,(uint8,bytes)[])[])[],uint8) public', + 'function withdraw(uint256)', + 'function withdrawTo(address payable,uint256)', + 'function withdraw(address,uint256)', + 'function withdrawTo(address,address,uint256)', + 'function placeOrder((address,address,(uint8,uint24),uint256,bool,bool,uint64,(uint16,(uint8,bytes)[])[]))', + 'function placeOrders((address,address,(uint8,uint24),uint256,bool,bool,uint64,(uint16,(uint8,bytes)[])[])[],uint8)', + 'function cancelOrder(uint64)', ] diff --git a/src/blockchain/wallet.js b/src/blockchain/wallet.js index 67fa663..2b40fe5 100644 --- a/src/blockchain/wallet.js +++ b/src/blockchain/wallet.js @@ -157,6 +157,18 @@ export async function pendOrder(order) { } +export async function cancelOrder(vault, orderIndex) { + pendTransaction(async (signer)=> { + const contract = contractOrNull(vault, vaultAbi, signer) + if( contract === null ) { + console.error('vault contract was null while canceling order', vault, orderIndex) + return null + } + return await contract.cancelOrder(orderIndex) + }) +} + + export function flushOrders(vault) { for( const order of pendingOrders ) pendOrderAsTransaction(vault, order) diff --git a/src/components/Btn.vue b/src/components/Btn.vue index ade9d3f..1c04d4f 100644 --- a/src/components/Btn.vue +++ b/src/components/Btn.vue @@ -1,6 +1,6 @@ diff --git a/src/components/Orders.vue b/src/components/Orders.vue index 08d1635..2945717 100644 --- a/src/components/Orders.vue +++ b/src/components/Orders.vue @@ -24,6 +24,7 @@ {{pairPrice(inTokenAddr, outTokenAddr, vaultAddr, index, avgPrice)}} {{pair(inTokenAddr, outTokenAddr, vaultAddr,index)}} @@ -31,10 +32,13 @@ Signing Open - Canceled + Canceled Completed Expired + + Cancel + @@ -46,6 +50,7 @@ import {useStore} from "@/store/store"; import {computed, reactive} from "vue"; import {token} from "@/blockchain/token.js"; import Btn from "@/components/Btn.vue" +import {cancelOrder} from "@/blockchain/wallet.js"; const s = useStore() const props = defineProps(['vault']) diff --git a/src/components/TokenRow.vue b/src/components/TokenRow.vue index 2331266..1ab16a2 100644 --- a/src/components/TokenRow.vue +++ b/src/components/TokenRow.vue @@ -10,7 +10,7 @@ diff --git a/src/views/OrdersView.vue b/src/views/OrdersView.vue index d1475d7..7035e41 100644 --- a/src/views/OrdersView.vue +++ b/src/views/OrdersView.vue @@ -1,8 +1,12 @@ @@ -12,6 +16,7 @@ import Orders from "@/components/Orders.vue"; import NeedsSigner from "@/components/NeedsSigner.vue"; import NeedsProvider from "@/components/NeedsProvider.vue"; import Btn from "@/components/Btn.vue"; +import PhoneCard from "@/components/PhoneCard.vue";