Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions docs/developers.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ The provider customizes few json-rpc methods like `eth_sendTransaction`, `eth_re

```typescript
const oldProvider = window.ethereum;
const provider = await import("provider");
const provider = await import("milkomeda-wsc-provider");
await provider.inject(oracleUrl, nodeUrl).setup();
```

Expand Down Expand Up @@ -45,7 +45,7 @@ If the application requires L1 assets it is necessary that they belong to the Ac
import { ethers } from "ethers";
import { Blockfrost, Lucid } from "lucid-cardano";

const milkomedaProvider = await import("provider");
const milkomedaProvider = await import("milkomeda-wsc-provider");
await milkomedaProvider.inject(oracleUrl, nodeUrl).setup();

const amount = 10;
Expand Down Expand Up @@ -78,7 +78,7 @@ const txHash = await signedTx.submit();
```typescript
import { ethers } from "ethers";

const milkomedaProvider = await import("provider");
const milkomedaProvider = await import("milkomeda-wsc-provider");
await milkomedaProvider.inject(oracleUrl, nodeUrl).setup();

const amount = 10;
Expand All @@ -102,7 +102,7 @@ const receipt = await tx.wait();
```typescript
import { ethers } from "ethers";

const milkomedaProvider = await import("provider");
const milkomedaProvider = await import("milkomeda-wsc-provider");
await milkomedaProvider.inject(oracleUrl, nodeUrl).setup();

const amount = 10;
Expand Down
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@
"quorum:start": "FORCE_ALLOW_SEND_RAW_TRANSACTION=true quorum --http --datadir quorum_data --dev --rpccorsdomain '*'"
},
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^5.38.0",
"@typescript-eslint/parser": "^5.38.0",
"eslint": "^8.23.1",
"@typescript-eslint/eslint-plugin": "^5.59.9",
"@typescript-eslint/parser": "^5.59.9",
"eslint": "^8.42.0",
"pre-commit": "^1.2.2",
"pre-push": "^0.1.4",
"prettier": "^2.7.1",
Expand Down
2 changes: 1 addition & 1 deletion packages/actor-webpage/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
"dotenv": "^16.3.1",
"ethers": "^5.7.2",
"lucid-cardano": "^0.10.1",
"milkomeda-wsc": "../milkomeda-wsc",
"milkomeda-wsc": "*",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router-dom": "^6.10.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/contracts/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Contracts

## Requirements
You need to have installed `solc` with version `0.8.0` or higher. If you don't have it, you can install it with following the instructions for `solc-select` [here](https://github.com/crytic/solc-select) (similar to nvm for Node.js).
You need to have installed `solc` with version `0.8.18` or higher. If you don't have it, you can install it with following the instructions for `solc-select` [here](https://github.com/crytic/solc-select) (similar to nvm for Node.js).

## Compiling

Expand Down
2 changes: 1 addition & 1 deletion packages/dapp-example/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
"dependencies": {
"ethers": "^5.7.2",
"lucid-cardano": "^0.10.1",
"milkomeda-wsc-provider": "^0.1.0",
"milkomeda-wsc-provider": "*",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router-dom": "^6.10.0"
Expand Down
10 changes: 10 additions & 0 deletions packages/milkomeda-wsc/.eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
module.exports = {
env: {
browser: true,
node: true,
jest: true,
},
rules: {
'no-constant-condition': 'off',
},
};
1 change: 1 addition & 0 deletions packages/milkomeda-wsc/.gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
build/
.env
3 changes: 3 additions & 0 deletions packages/milkomeda-wsc/babel.config.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
presets: [['@babel/preset-env', { targets: { node: 'current' } }]],
};
14 changes: 14 additions & 0 deletions packages/milkomeda-wsc/jest-resolver.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
module.exports = (request, options) => {
return options.defaultResolver(request, {
...options,
packageFilter: (pkg) => {
if (pkg.name === 'node-fetch') {
return { ...pkg, main: pkg.main };
}
return {
...pkg,
main: pkg.module || pkg.main,
};
},
});
};
15 changes: 15 additions & 0 deletions packages/milkomeda-wsc/jest.condig.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
/** @type {import('@ts-jest/dist/types').InitialOptionsTsJest} */
module.exports = {
verbose: true,
preset: 'ts-jest/presets/default-esm',
testEnvironment: 'node',
transform: {
'^.+\\.(t)s$': ['ts-jest', { useESM: true, }],
'^.+\\.(j)s$': 'babel-jest',
},
resolver: '<rootDir>/jest-resolver.cjs',
transformIgnorePatterns: [
'<rootDir>/node_modules/',
],
modulePathIgnorePatterns: ['<rootDir>/build/']
};
7 changes: 7 additions & 0 deletions packages/milkomeda-wsc/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,18 @@
],
"scripts": {
"build": "tsc",
"test": "node --experimental-vm-modules --experimental-wasm-modules --experimental-wasm-threads ../../node_modules/jest/bin/jest.js",
"prepublish": "npm run build"
},
"devDependencies": {
"@babel/preset-env": "^7.22.4",
"@babel/preset-typescript": "^7.21.5",
"@types/lodash": "^4.14.190",
"@types/node": "^18.11.9",
"@typescript-eslint/eslint-plugin": "^5.59.9",
"@typescript-eslint/parser": "^5.59.9",
"jest": "^29.5.0",
"ts-jest": "^29.1.0",
"@types/react": "^18.0.25",
"@types/react-dom": "^18.0.9",
"ts-loader": "^9.4.1",
Expand Down
2 changes: 1 addition & 1 deletion packages/milkomeda-wsc/src/utils.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import AssetFingerprint from "@emurgo/cip14-js";
import { bech32 } from "bech32";
import Buffer from "buffer/";
import Buffer from "buffer";
import { BridgeRequest } from "./MilkomedaNetwork";

export async function getFingerprintFromBlockfrost(blockfrostId: string): Promise<string> {
Expand Down
42 changes: 42 additions & 0 deletions packages/milkomeda-wsc/test/simple.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import { expect, jest } from "@jest/globals";
import { BigNumber } from "bignumber.js";
import WSCLib from "../src/wscLib";
import { MilkomedaNetworkName } from "../src/WSCLibTypes";
import BridgeActions from "../src/BridgeActions";

describe("WSCLib", () => {
let lib: WSCLib;

beforeEach(async () => {
lib = new WSCLib(MilkomedaNetworkName.C1Devnet, "flint", {
oracleUrl: process.env.REACT_APP_WSC_ORACLE,
blockfrostKey: "preprodliMqEQ9cvQgAFuV7b6dhA4lkjTX1eBLb",
jsonRpcProviderUrl: undefined,
});
await lib.loadLucid();
});

it("should return token balances", async () => {
const balances = await lib.origin_getTokenBalances();
expect(balances).toHaveLength(2);
expect(balances[0]).toHaveProperty("unit", "microAlgo");
expect(balances[1]).toHaveProperty("unit", "lovelace");
});

it("should unwrap tokens", async () => {
// Mock necessary methods
const mockGetAddress = jest.spyOn(lib, "origin_getAddress").mockResolvedValue("testAddress");
const mockUnwrap = jest.spyOn(BridgeActions.prototype, "unwrap").mockResolvedValue();

const assetId = "assetId";
const amount = new BigNumber(100);

await lib.unwrap(undefined, assetId, amount);

expect(mockGetAddress).toBeCalledTimes(1);
expect(mockUnwrap).toBeCalledWith("testAddress", assetId, amount);
// Remember to restore mocks after test
mockGetAddress.mockRestore();
mockUnwrap.mockRestore();
});
});
5 changes: 3 additions & 2 deletions packages/milkomeda-wsc/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,9 @@
"strict": true,
"sourceMap": true,
"declarationMap": true,
"esModuleInterop": true
},
"include": [
"**/*.ts"
"src/**/*"
]
}
}
22 changes: 22 additions & 0 deletions packages/oracle/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,25 @@ npm start
```bash
cp .example.env .env
```

## Config

To set the config either export environment variables or edit the `.env` file.

```bash
# account that will be signing transactions to the actor and actor factory
# it needs to have some funds in native asset to pay for the gas
SIGNER_PRIVATE_KEY=

# node environment
NODE_ENV=development

# port on which the server will be running
PORT=8080

# address of the deployed actor factory
ACTOR_FACTORY_ADDRESS=0xE1FaA7777E8d76Cf2F7fd26eD93790d58c644b82

# url of the corresponding chain provider
JSON_RPC_PROVIDER_URL=https://rpc-devnet-cardano-evm.c1.milkomeda.com
```