vault fixes; order total fill reactivity fix; provider fix
This commit is contained in:
@@ -117,7 +117,7 @@ export function isOpen(state) {
|
||||
return state >= 1 && state < 3
|
||||
}
|
||||
|
||||
export function parseOrderStatus(status) {
|
||||
export function parseOrderStatus(chainId, status) {
|
||||
let [
|
||||
order,
|
||||
fillFeeBP,
|
||||
@@ -135,7 +135,7 @@ export function parseOrderStatus(status) {
|
||||
trancheFilledIn = trancheFilledIn.map((f)=>BigInt(f))
|
||||
trancheFilledOut = trancheFilledOut.map((f)=>BigInt(f))
|
||||
return {
|
||||
order, fillFeeBP, state, start, ocoGroup, filledIn, filledOut, trancheFilledIn, trancheFilledOut,
|
||||
chainId, order, fillFeeBP, state, start, ocoGroup, filledIn, filledOut, trancheFilledIn, trancheFilledOut,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -6,8 +6,7 @@ import {vaultAbi} from "@/blockchain/abi.js";
|
||||
import {SingletonCoroutine, uuid} from "@/misc.js";
|
||||
import {defineStore} from "pinia";
|
||||
import {ref} from "vue";
|
||||
import {metadata, metadataMap} from "@/version.js";
|
||||
import {OrderState} from "@/blockchain/orderlib.js";
|
||||
import {metadataMap} from "@/version.js";
|
||||
|
||||
|
||||
export const useWalletStore = defineStore('wallet', ()=>{
|
||||
@@ -36,13 +35,16 @@ export function onChainChanged(chainId) {
|
||||
const store = useStore()
|
||||
const ws = useWalletStore()
|
||||
if( chainId !== ws.chainId ) {
|
||||
console.log('chain changed', chainId)
|
||||
console.log('wallet chain changed', chainId)
|
||||
ws.chainId = chainId
|
||||
if (chainId.toString() in metadataMap) {
|
||||
console.log('app chain changed', chainId)
|
||||
store.chainId = chainId
|
||||
store.account = null
|
||||
}
|
||||
else {
|
||||
console.log('app chain NOT changed')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -124,7 +126,7 @@ const errorHandlingProxy = {
|
||||
|
||||
|
||||
export async function connectProvider(chainId) {
|
||||
console.log('connecting provider to chainId', chainId)
|
||||
console.log('connectProvider', chainId)
|
||||
try {
|
||||
return new ethers.BrowserProvider(window.ethereum, chainId)
|
||||
}
|
||||
@@ -143,6 +145,7 @@ export async function connectWallet(chainId) {
|
||||
const p = await connectProvider(chainId)
|
||||
if (p!==null) {
|
||||
try {
|
||||
console.log('getSigner')
|
||||
return await p.getSigner();
|
||||
}
|
||||
catch (e) {
|
||||
@@ -195,7 +198,12 @@ async function _discoverVaults(owner) {
|
||||
s.vaults = []
|
||||
return
|
||||
}
|
||||
const vault = new ethers.Contract(addr, vaultAbi, s.provider)
|
||||
const provider = s.provider;
|
||||
if (!provider) {
|
||||
console.log('No provider')
|
||||
return // do not change whatever was already found
|
||||
}
|
||||
const vault = new ethers.Contract(addr, vaultAbi, provider)
|
||||
let version = -1
|
||||
try {
|
||||
version = await vault.version();
|
||||
@@ -211,6 +219,7 @@ async function _discoverVaults(owner) {
|
||||
console.log(`no vault ${num} at ${addr}`)
|
||||
else
|
||||
console.error(`discoverVaults failed`, e)
|
||||
return // do not change what was already found todo is this correct?
|
||||
}
|
||||
if( s.account === owner ) { // double-check the account since it could have changed during our await
|
||||
s.vaults = result
|
||||
|
||||
Reference in New Issue
Block a user