Skip to content
This repository has been archived by the owner on Mar 16, 2023. It is now read-only.

Commit

Permalink
Merge pull request #469 from AztecProtocol/fix-sdk-data
Browse files Browse the repository at this point in the history
Fix issues in sdk
  • Loading branch information
Joe Andrews authored Feb 13, 2020
2 parents 6168b37 + ae79675 commit 30c0375
Show file tree
Hide file tree
Showing 96 changed files with 776 additions and 595 deletions.
8 changes: 4 additions & 4 deletions packages/extension/demo/1_apis-usage/asset.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
const zkAssetAddress = document.body.getAttribute('asset');
const {
address: accountAddress,
} = window.aztec.web3.account();
} = window.aztec.web3.getAccount();
let asset;
let allowanceStatus;
let depositStatus;
Expand Down Expand Up @@ -151,7 +151,7 @@

withdrawStatus.clear();

const account = window.aztec.web3.account();
const account = window.aztec.web3.getAccount();

try {
const resp = await asset.withdraw(
Expand Down Expand Up @@ -185,7 +185,7 @@

sendStatus.clear();

const account = window.aztec.web3.account();
const account = window.aztec.web3.getAccount();

try {
const resp = await asset.send(
Expand Down Expand Up @@ -231,7 +231,7 @@
}
}

const account = window.aztec.web3.account();
const account = window.aztec.web3.getAccount();

try {
const resp = await asset.createNoteFromBalance(
Expand Down
2 changes: 1 addition & 1 deletion packages/extension/demo/1_apis-usage/create-asset.js
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
addAssetStatus(`✓ zkAsset deployed - ${zkAssetAddress}`, true);

if (value) {
const account = window.aztec.web3.account();
const account = window.aztec.web3.getAccount();
addAssetStatus(`Minting ERC20 with amount = ${value}...`);
await window.aztec.web3
.useContract('ERC20')
Expand Down
16 changes: 12 additions & 4 deletions packages/extension/demo/1_apis-usage/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,16 @@
<div id="app" style="margin: 32px 0;"></div>
<script type="module" src="http://localhost:5555/sdk/aztec.js"></script>
<script>
function handleReload() {
document.getElementById('sdk-status').innerHTML = 'Signing in to AZTEC account...';
function handleReload(type, value) {
let message;
if (type === 'accountChanged') {
message = `Switching account to ${value}...`;
} else if (type === 'networkChanged') {
message = `Switching network to ${value}...`;
} else {
message = 'Signing in to AZTEC account...';
}
document.getElementById('sdk-status').innerHTML = message;
document.getElementById('app').innerHTML = '';
const assetScript = document.getElementById('create-asset-script');
if (assetScript) {
Expand All @@ -34,7 +42,7 @@
}

function handleLoadSuccess() {
const account = window.aztec.web3.account();
const account = window.aztec.web3.getAccount();
document.getElementById('sdk-status').innerHTML = `
<div>
AZTEC SDK loaded and enabled!<br/>
Expand All @@ -56,7 +64,7 @@
handleLoadError(error);
}
} else {
handleReload();
handleReload(type, value);
}
}

Expand Down
3 changes: 3 additions & 0 deletions packages/extension/jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ module.exports = {
'^~testHelpers/(.*)$': path.resolve(__dirname, 'tests/helpers/$1'),
'^~contracts/(.*)$': '@aztec/contract-artifacts/artifacts/$1',
},
modulePathIgnorePatterns: [
'__mocks__',
],
globals: {
SDK_VERSION: "'test'",
},
Expand Down
2 changes: 1 addition & 1 deletion packages/extension/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
"@aztec/contract-artifacts": "0.0.0-semantically-released",
"@aztec/contract-addresses": "1.16.1",
"@aztec/dev-utils": "0.0.0-semantically-released",
"@aztec/guacamole-ui": "1.1.3",
"@aztec/guacamole-ui": "1.2.0",
"@aztec/note-access": "0.0.0-semantically-released",
"@aztec/protocol": "0.0.0-semantically-released",
"@aztec/secp256k1": "^1.0.1",
Expand Down
5 changes: 4 additions & 1 deletion packages/extension/src/background/database/index.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
import Dexie from 'dexie';
import {
networkDbPrefix,
} from '~/config/database';

const dbs = {};
const registerModelsCallbacks = [];

const ensureDB = (networkId) => {
if (!dbs[networkId]) {
const db = new Dexie(`aztec_network_${networkId}`);
const db = new Dexie(`${networkDbPrefix}_${networkId}`);

dbs[networkId] = db;

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
const migrations = {};

export const clearMigrations = () => {
Object.keys(migrations).forEach((key) => {
delete migrations[key];
});
};

export const mockMigrations = (newMigrations) => {
clearMigrations();
Object.keys(newMigrations).forEach((key) => {
migrations[key] = newMigrations[key];
});
};

export default migrations;
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export default {};
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import Dexie from 'dexie';

export default async function deleteAllDBs() {
const names = await Dexie.getDatabaseNames();
await Promise.all(names.map((name) => {
const db = new Dexie(name);
return db.delete();
}));
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import Dexie from 'dexie';
import {
networkDbPrefix,
} from '~/config/database';

const networkDBNamePattern = new RegExp(`^${networkDbPrefix}_[0-9]+$`);

export default async function deleteAllNetworks() {
const names = await Dexie.getDatabaseNames();
const networkDbs = names.filter(name => name.match(networkDBNamePattern));
return Promise.all(networkDbs.map((name) => {
const db = new Dexie(name);
return db.delete();
}));
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ const registerExtension = async (request, connection) => {
let {
userPermission: { account = {} },
} = await query(request, userPermissionQuery(`
address
linkedPublicKey
blockNumber
`)) || {};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,7 @@ class Watcher {
onData,
onError,
} = await NoteSubscription.subscribe({
owner: address,
fromBlock: lastSyncedBlock + 1,
fromAssets,
networkId,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,6 @@ import AssetsSyncManagerFactory from './helpers/AssetsSyncManager/factory';
import {
START_EVENTS_SYNCING_BLOCK,
} from '~/config/constants';
import {
get,
} from '~/utils/storage';
import {
createAccount,
fetchAccount,
Expand All @@ -23,6 +20,7 @@ import {
import {
fetchNotes,
} from './utils/note';
import Web3Service from '~/helpers/Web3Service';
import Note from '~/background/database/models/note';
import Account from '~/background/database/models/account';
import Asset from '~/background/database/models/asset';
Expand Down Expand Up @@ -380,7 +378,7 @@ class EventService {
}) => {
const currentNetworkId = networkId !== null
? networkId
: await get('networkId');
: Web3Service.networkId;
let error = null;
let asset = await Asset.get(
{ networkId: currentNetworkId },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ export default {
value: async ({ viewingKey }) => {
const decryptedViewingKey = await decryptViewingKey(viewingKey);
if (!decryptedViewingKey) {
return null;
return 0;
}
return valueFromViewingKey(decryptedViewingKey);
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import noteModel from '~/database/models/note';
import assetModel from '~/database/models/asset';
import {
permissionError,
} from '~/utils/error';
import noteModel from '~/background/database/models/note';
import assetModel from '~/background/database/models/asset';
import AuthService from '~/background/services/AuthService';
import Web3Service from '~/helpers/Web3Service';

export default async function validateDomainAccess(_, args, ctx, info) {
const {
Expand All @@ -13,6 +14,9 @@ export default async function validateDomainAccess(_, args, ctx, info) {
let {
assetId,
} = args;
const {
networkId,
} = Web3Service;
let noteId;

const entityType = info.fieldName;
Expand All @@ -30,18 +34,20 @@ export default async function validateDomainAccess(_, args, ctx, info) {
}

if (noteId) {
const note = await noteModel.get({
id: noteId,
});
const note = await noteModel.get(
{ networkId },
noteId,
);
if (note) {
const {
asset: assetKey,
asset: registryOwner,
} = note;
({
id: assetId,
} = await assetModel.get({
key: assetKey,
}));
} = await assetModel.get(
{ networkId },
{ registryOwner },
));
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import {

jest.mock('~/utils/storage');

const version = randomInt();
const networkId = randomInt();
const owner = userAccount;
let assetManager;
Expand All @@ -28,6 +29,7 @@ beforeEach(() => {
storage.reset();

assetManager = new AssetManager({
version,
networkId,
owner,
});
Expand Down Expand Up @@ -69,6 +71,7 @@ describe('AssetManager.init', () => {

it('init Assets from previous summary data saved in storage', async () => {
await saveToStorage(
version,
networkId,
owner,
{
Expand Down Expand Up @@ -112,6 +115,7 @@ describe('AssetManager.init', () => {

it('will not override priority if it has been set', async () => {
await saveToStorage(
version,
networkId,
owner,
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,14 @@ beforeEach(() => {
});

describe('recoverAssetNotesFromStorage', () => {
const version = randomInt();
const networkId = randomInt();
const owner = userAccount;
const assetIds = Object.keys(assetSummary);

it('recover note values from storage for given asset', async () => {
await saveToStorage(
version,
networkId,
owner,
{
Expand All @@ -40,6 +42,7 @@ describe('recoverAssetNotesFromStorage', () => {
const targetAsset = assetIds[randomInt(0, assetIds.length - 1)];

const recovered = await recoverAssetNotesFromStorage(
version,
networkId,
owner,
targetAsset,
Expand All @@ -50,6 +53,7 @@ describe('recoverAssetNotesFromStorage', () => {

it('recover assetNotes for the given network', async () => {
await saveToStorage(
version,
networkId,
owner,
{
Expand All @@ -73,6 +77,7 @@ describe('recoverAssetNotesFromStorage', () => {
},
};
await saveToStorage(
version,
anotherNetwork,
owner,
{
Expand All @@ -86,13 +91,15 @@ describe('recoverAssetNotesFromStorage', () => {
expect(assetNotesB[targetAsset]).not.toEqual(assetNotes[targetAsset]);

const recoveredA = await recoverAssetNotesFromStorage(
version,
networkId,
owner,
targetAsset,
);
expect(recoveredA).toEqual(assetNotes[targetAsset]);

const recoveredB = await recoverAssetNotesFromStorage(
version,
anotherNetwork,
owner,
targetAsset,
Expand All @@ -102,6 +109,7 @@ describe('recoverAssetNotesFromStorage', () => {

it('recover assetNotes for the given owner', async () => {
await saveToStorage(
version,
networkId,
owner,
{
Expand All @@ -125,6 +133,7 @@ describe('recoverAssetNotesFromStorage', () => {
},
};
await saveToStorage(
version,
networkId,
anotherOwner,
{
Expand All @@ -138,13 +147,15 @@ describe('recoverAssetNotesFromStorage', () => {
expect(assetNotesB[targetAsset]).not.toEqual(assetNotes[targetAsset]);

const recoveredA = await recoverAssetNotesFromStorage(
version,
networkId,
owner,
targetAsset,
);
expect(recoveredA).toEqual(assetNotes[targetAsset]);

const recoveredB = await recoverAssetNotesFromStorage(
version,
networkId,
anotherOwner,
targetAsset,
Expand All @@ -155,6 +166,7 @@ describe('recoverAssetNotesFromStorage', () => {
it('return empty object if there is no data for given asset in storage', async () => {
const randomAsset = randomId();
const recovered = await recoverAssetNotesFromStorage(
version,
networkId,
owner,
randomAsset,
Expand Down
Loading

0 comments on commit 30c0375

Please sign in to comment.