@cardano-sdk/e2e 0.16.6-patch.3 → 0.16.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +4 -6
- package/CHANGELOG.md +8 -18
- package/README.md +2 -18
- package/dist/cjs/environment.d.ts +1 -1
- package/dist/cjs/environment.d.ts.map +1 -1
- package/dist/cjs/environment.js +1 -15
- package/dist/cjs/environment.js.map +1 -1
- package/dist/cjs/factories.d.ts +0 -2
- package/dist/cjs/factories.d.ts.map +1 -1
- package/dist/cjs/factories.js +6 -12
- package/dist/cjs/factories.js.map +1 -1
- package/dist/cjs/index.d.ts +0 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +0 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/scripts/is-local-network-ready.js +5 -28
- package/dist/cjs/scripts/is-local-network-ready.js.map +1 -1
- package/dist/cjs/tools/multi-delegation-data-gen/index.js +13 -3
- package/dist/cjs/tools/multi-delegation-data-gen/index.js.map +1 -1
- package/dist/cjs/tools/multi-delegation-data-gen/utils/config.d.ts +1 -0
- package/dist/cjs/tools/multi-delegation-data-gen/utils/config.d.ts.map +1 -1
- package/dist/cjs/tools/multi-delegation-data-gen/utils/config.js +12 -0
- package/dist/cjs/tools/multi-delegation-data-gen/utils/config.js.map +1 -1
- package/dist/cjs/tools/multi-delegation-data-gen/utils/utils.d.ts +2 -5
- package/dist/cjs/tools/multi-delegation-data-gen/utils/utils.d.ts.map +1 -1
- package/dist/cjs/tools/multi-delegation-data-gen/utils/utils.js +12 -49
- package/dist/cjs/tools/multi-delegation-data-gen/utils/utils.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/cjs/util/util.d.ts +0 -1
- package/dist/cjs/util/util.d.ts.map +1 -1
- package/dist/cjs/util/util.js +2 -43
- package/dist/cjs/util/util.js.map +1 -1
- package/dist/esm/environment.d.ts +1 -1
- package/dist/esm/environment.d.ts.map +1 -1
- package/dist/esm/environment.js +1 -15
- package/dist/esm/environment.js.map +1 -1
- package/dist/esm/factories.d.ts +0 -2
- package/dist/esm/factories.d.ts.map +1 -1
- package/dist/esm/factories.js +6 -12
- package/dist/esm/factories.js.map +1 -1
- package/dist/esm/index.d.ts +0 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/scripts/is-local-network-ready.js +5 -5
- package/dist/esm/scripts/is-local-network-ready.js.map +1 -1
- package/dist/esm/tools/multi-delegation-data-gen/index.js +14 -4
- package/dist/esm/tools/multi-delegation-data-gen/index.js.map +1 -1
- package/dist/esm/tools/multi-delegation-data-gen/utils/config.d.ts +1 -0
- package/dist/esm/tools/multi-delegation-data-gen/utils/config.d.ts.map +1 -1
- package/dist/esm/tools/multi-delegation-data-gen/utils/config.js +12 -0
- package/dist/esm/tools/multi-delegation-data-gen/utils/config.js.map +1 -1
- package/dist/esm/tools/multi-delegation-data-gen/utils/utils.d.ts +2 -5
- package/dist/esm/tools/multi-delegation-data-gen/utils/utils.d.ts.map +1 -1
- package/dist/esm/tools/multi-delegation-data-gen/utils/utils.js +11 -45
- package/dist/esm/tools/multi-delegation-data-gen/utils/utils.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/util/util.d.ts +0 -1
- package/dist/esm/util/util.d.ts.map +1 -1
- package/dist/esm/util/util.js +3 -20
- package/dist/esm/util/util.js.map +1 -1
- package/docker-compose.yml +3 -21
- package/local-network/scripts/mint-handles.sh +108 -6
- package/local-network/scripts/mint-tokens.sh +21 -2
- package/local-network/scripts/mnemonic_keys.sh +14 -0
- package/local-network/scripts/setup-wallets.sh +18 -0
- package/local-network/scripts/start.sh +1 -2
- package/package.json +22 -20
- package/src/environment.ts +1 -19
- package/src/factories.ts +5 -13
- package/src/index.ts +0 -1
- package/src/scripts/is-local-network-ready.ts +6 -8
- package/src/tools/multi-delegation-data-gen/example.json +1 -0
- package/src/tools/multi-delegation-data-gen/index.ts +18 -8
- package/src/tools/multi-delegation-data-gen/utils/config.ts +13 -0
- package/src/tools/multi-delegation-data-gen/utils/utils.ts +13 -110
- package/src/util/util.ts +2 -29
- package/test/k6/endpoints/asset/get-asset.test.js +15 -14
- package/test/k6/endpoints/asset/get-assets.test.js +269 -269
- package/test/k6/endpoints/chain-history/blocks/by-hashes.test.js +12 -11
- package/test/k6/endpoints/chain-history/txs/by-addresses.test.js +18 -15
- package/test/k6/endpoints/chain-history/txs/by-hashes.test.js +12 -11
- package/test/k6/endpoints/network-info/era-summaries.test.js +11 -10
- package/test/k6/endpoints/network-info/genesis-parameters.test.js +11 -10
- package/test/k6/endpoints/network-info/ledger-tip.test.js +11 -10
- package/test/k6/endpoints/network-info/lovelace-supply.test.js +11 -10
- package/test/k6/endpoints/network-info/protocol-parameters.test.js +11 -10
- package/test/k6/endpoints/network-info/stake.test.js +11 -10
- package/test/k6/endpoints/rewards/account-balance.test.js +12 -11
- package/test/k6/endpoints/stake-pool/stats.test.js +11 -10
- package/test/k6/endpoints/utxo/utxo-by-addresses.test.js +16 -11
- package/test/k6/scenarios/tx-submission.test.js +47 -46
- package/test/k6/scenarios/wallet-creation.test.js +127 -120
- package/test/k6/scenarios/wallet-restoration.test.js +264 -126
- package/test/long-running/cache-invalidation.test.ts +64 -13
- package/test/providers/HandleProvider.test.ts +39 -0
- package/test/wallet/PersonalWallet/handle.test.ts +38 -16
- package/test/web-extension/webpack.config.base.js +0 -4
- package/dist/cjs/FaucetProvider/index.d.ts +0 -3
- package/dist/cjs/FaucetProvider/index.d.ts.map +0 -1
- package/dist/cjs/FaucetProvider/index.js +0 -19
- package/dist/cjs/FaucetProvider/index.js.map +0 -1
- package/dist/cjs/FaucetProvider/providers/cardanoWalletFaucetProvider.d.ts +0 -15
- package/dist/cjs/FaucetProvider/providers/cardanoWalletFaucetProvider.d.ts.map +0 -1
- package/dist/cjs/FaucetProvider/providers/cardanoWalletFaucetProvider.js +0 -148
- package/dist/cjs/FaucetProvider/providers/cardanoWalletFaucetProvider.js.map +0 -1
- package/dist/cjs/FaucetProvider/types.d.ts +0 -22
- package/dist/cjs/FaucetProvider/types.d.ts.map +0 -1
- package/dist/cjs/FaucetProvider/types.js +0 -14
- package/dist/cjs/FaucetProvider/types.js.map +0 -1
- package/dist/esm/FaucetProvider/index.d.ts +0 -3
- package/dist/esm/FaucetProvider/index.d.ts.map +0 -1
- package/dist/esm/FaucetProvider/index.js +0 -3
- package/dist/esm/FaucetProvider/index.js.map +0 -1
- package/dist/esm/FaucetProvider/providers/cardanoWalletFaucetProvider.d.ts +0 -15
- package/dist/esm/FaucetProvider/providers/cardanoWalletFaucetProvider.d.ts.map +0 -1
- package/dist/esm/FaucetProvider/providers/cardanoWalletFaucetProvider.js +0 -141
- package/dist/esm/FaucetProvider/providers/cardanoWalletFaucetProvider.js.map +0 -1
- package/dist/esm/FaucetProvider/types.d.ts +0 -22
- package/dist/esm/FaucetProvider/types.d.ts.map +0 -1
- package/dist/esm/FaucetProvider/types.js +0 -10
- package/dist/esm/FaucetProvider/types.js.map +0 -1
- package/local-network/faucet/README.md +0 -12
- package/local-network/faucet/faucet-addresses.json +0 -45
- package/local-network/faucet/faucet-mnemonic.json +0 -6
- package/local-network/faucet/faucet-send-funds.json +0 -23
- package/local-network/scripts/is-faucet-ready.sh +0 -29
- package/src/FaucetProvider/index.ts +0 -2
- package/src/FaucetProvider/providers/cardanoWalletFaucetProvider.ts +0 -233
- package/src/FaucetProvider/types.ts +0 -94
package/dist/esm/util/util.d.ts
CHANGED
|
@@ -17,7 +17,6 @@ export declare type RequestCoinsProps = {
|
|
|
17
17
|
wallet: ObservableWallet;
|
|
18
18
|
coins: Cardano.Lovelace;
|
|
19
19
|
};
|
|
20
|
-
export declare const requestCoins: ({ coins, wallet }: RequestCoinsProps) => Promise<void>;
|
|
21
20
|
export declare type TransferCoinsProps = {
|
|
22
21
|
fromWallet: ObservableWallet;
|
|
23
22
|
toWallet: ObservableWallet;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/util/util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/util/util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAuB,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAEL,UAAU,EAYX,MAAM,MAAM,CAAC;AAEd,OAAO,EAAmB,gBAAgB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAElF,OAAO,EAAE,UAAU,EAA8B,MAAM,cAAc,CAAC;AAOtE,eAAO,MAAM,mBAAmB,+FAO7B,CAAC;AAEJ,eAAO,MAAM,wBAAwB,WAAY,gBAAgB,gBAAe,MAAM,qBAKnF,CAAC;AAEJ,eAAO,MAAM,wBAAwB,YAC1B,QAAQ,cAAc,OAC1B,MAAM,UACH,MAAM,WAEuE,CAAC;AAExF,eAAO,MAAM,WAAW,WACd,gBAAgB,oDAGvB,QAAQ,CAAC,OAAO,EAAE,QAAQ,KAAK,CAAC,CAgBlC,CAAC;AAKF,eAAO,MAAM,eAAe,SAAU,QAAQ,cAAc,GAAG,QAAQ,MAAM,4CAO5E,CAAC;AAEF,eAAO,MAAM,WAAW,gEAOnB,gBAAgB,UACX,KAAK,QAAQ,EAAE,EAAE,IAAI,CAAC,2DA2B7B,CAAC;AAIJ,eAAO,MAAM,gBAAgB,WAAY,gBAAgB,MAAM,QAAQ,EAAE;;uBACjB,CAAC;AAEzD,oBAAY,iBAAiB,GAAG;IAC9B,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;CACzB,CAAC;AAEF,oBAAY,kBAAkB,GAAG;IAC/B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,aAAa,oCAA2C,kBAAkB,kBActF,CAAC;AAEF,eAAO,MAAM,YAAY,WAAY,KAAK,gBAAgB,EAAE,eAAe,CAAC,kBAAkB,MAAM;;EAUnG,CAAC;AAEF,eAAO,MAAM,0BAA0B,wBAetC,CAAC;AASF,eAAO,MAAM,sBAAsB,WAAkB,cAAc,MAAM,QAAQ,EAAE,CAAC,QAAQ,MAAM,CAAC,6BAMlG,CAAC;AAQF,eAAO,MAAM,iBAAiB,gBAAuB,QAAQ,WAAW,UAAU,UAAU,wCAa3F,CAAC;AAWF,eAAO,MAAM,wBAAwB,cACxB,MAAM,EAAE,WACV,QAAQ,cAAc,gBACjB,OAAO,YAAY,8BAShC,CAAC;AAQJ,eAAO,MAAM,UAAU;YAMb,cAAc;;aAEb,QAAQ,MAAM,EAAE;mBACV,iBAAiB,EAAE;mBA0BnC,CAAC"}
|
package/dist/esm/util/util.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import * as envalid from 'envalid';
|
|
2
1
|
import { Cardano, createSlotEpochCalc } from '@cardano-sdk/core';
|
|
3
|
-
import { EMPTY,
|
|
2
|
+
import { EMPTY, combineLatest, distinctUntilChanged, filter, firstValueFrom, map, merge, mergeMap, switchMap, tap, throwError, timeout } from 'rxjs';
|
|
4
3
|
import { FAST_OPERATION_TIMEOUT_DEFAULT, SYNC_TIMEOUT_DEFAULT } from '../defaults';
|
|
5
4
|
import { InMemoryKeyAgent } from '@cardano-sdk/key-management';
|
|
6
|
-
import {
|
|
5
|
+
import { networkInfoProviderFactory } from '../factories';
|
|
7
6
|
import { getEnv, walletVariables } from '../environment';
|
|
8
7
|
import { logger } from '@cardano-sdk/util-dev';
|
|
9
8
|
import sortBy from 'lodash/sortBy';
|
|
10
9
|
const env = getEnv(walletVariables);
|
|
11
|
-
export const firstValueFromTimed = (observable$, timeoutMessage = 'Timed out', timeoutAfter = FAST_OPERATION_TIMEOUT_DEFAULT) => firstValueFrom(observable$.pipe(timeout(timeoutAfter
|
|
10
|
+
export const firstValueFromTimed = (observable$, timeoutMessage = 'Timed out', timeoutAfter = FAST_OPERATION_TIMEOUT_DEFAULT) => firstValueFrom(observable$.pipe(timeout({ each: timeoutAfter, with: () => throwError(() => new Error(timeoutMessage)) })));
|
|
12
11
|
export const waitForWalletStateSettle = (wallet, syncTimeout = SYNC_TIMEOUT_DEFAULT) => firstValueFromTimed(wallet.syncStatus.isSettled$.pipe(filter((isSettled) => isSettled)), 'Took too long to settle', syncTimeout);
|
|
13
12
|
export const insufficientFundsMessage = (address, min, actual) => `Insufficient funds at ${address}. Expected ${min}, found ${actual} lovelace.
|
|
14
13
|
Please use a faucet to fund the address or another address with sufficient funds`;
|
|
@@ -41,22 +40,6 @@ export const txConfirmed = ({ tip$, transactions: { history$, outgoing: { failed
|
|
|
41
40
|
const submit = (wallet, tx) => wallet.submitTx(tx);
|
|
42
41
|
const confirm = (wallet, tx) => txConfirmed(wallet, tx);
|
|
43
42
|
export const submitAndConfirm = (wallet, tx) => Promise.all([submit(wallet, tx), confirm(wallet, tx)]);
|
|
44
|
-
export const requestCoins = async ({ coins, wallet }) => {
|
|
45
|
-
const [{ address }] = await firstValueFrom(wallet.addresses$);
|
|
46
|
-
logger.info(`Address ${address} will be funded with ${coins} tLovelace.`);
|
|
47
|
-
const { FAUCET_PROVIDER, FAUCET_PROVIDER_PARAMS } = envalid.cleanEnv(process.env, {
|
|
48
|
-
FAUCET_PROVIDER: envalid.str(),
|
|
49
|
-
FAUCET_PROVIDER_PARAMS: envalid.json({ default: {} })
|
|
50
|
-
});
|
|
51
|
-
const faucetProvider = await faucetProviderFactory.create(FAUCET_PROVIDER, FAUCET_PROVIDER_PARAMS, logger);
|
|
52
|
-
await faucetProvider.start();
|
|
53
|
-
const healthCheck = await faucetProvider.healthCheck();
|
|
54
|
-
if (!healthCheck.ok)
|
|
55
|
-
throw new Error('Faucet provider could not be started.');
|
|
56
|
-
const requestResult = await faucetProvider.request(address, Number.parseInt(coins.toString()), 3, 30000);
|
|
57
|
-
await txConfirmed(wallet, requestResult);
|
|
58
|
-
await faucetProvider.close();
|
|
59
|
-
};
|
|
60
43
|
export const transferCoins = async ({ fromWallet, toWallet, coins }) => {
|
|
61
44
|
const [{ address: sendingAddress }] = await firstValueFrom(fromWallet.addresses$);
|
|
62
45
|
const [{ address: receivingAddress }] = await firstValueFrom(toWallet.addresses$);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/util/util.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/util/util.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EACL,KAAK,EAEL,aAAa,EACb,oBAAoB,EACpB,MAAM,EACN,cAAc,EACd,GAAG,EACH,KAAK,EACL,QAAQ,EACR,SAAS,EACT,GAAG,EACH,UAAU,EACV,OAAO,EACR,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnF,OAAO,EAAE,gBAAgB,EAAqB,MAAM,6BAA6B,CAAC;AAElF,OAAO,EAAc,0BAA0B,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,MAAM,MAAM,eAAe,CAAC;AAEnC,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAEpC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,WAA0B,EAC1B,cAAc,GAAG,WAAW,EAC5B,YAAY,GAAG,8BAA8B,EAC7C,EAAE,CACF,cAAc,CACZ,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAC3G,CAAC;AAEJ,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,MAAwB,EAAE,cAAsB,oBAAoB,EAAE,EAAE,CAC/G,mBAAmB,CACjB,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EACnE,yBAAyB,EACzB,WAAW,CACZ,CAAC;AAEJ,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,OAA+B,EAC/B,GAAW,EACX,MAAc,EACd,EAAE,CAAC,yBAAyB,OAAO,cAAc,GAAG,WAAW,MAAM;uFACgB,CAAC;AAExF,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC9B,MAAwB,EACxB,cAAc,GAAG,EAAE,EACnB,WAAW,GAAG,oBAAoB,EACC,EAAE;IACrC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,MAAM,mBAAmB,CAC7D,aAAa,CAAC;QACZ,MAAM,CAAC,UAAU,CAAC,UAAU;QAC5B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM;QAC1B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;KACjE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EACvC,2BAA2B,EAC3B,WAAW,CACZ,CAAC;IAEF,IAAI,OAAO,CAAC,KAAK,GAAG,cAAc,EAAE;QAClC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;KACnF;IAED,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,cAA0C,EAAkB,EAAE,CAC9E,MAAM,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAE5C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAA6C,EAAE,EAAE;IAG/E,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACtD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,EACE,IAAI,EACJ,YAAY,EAAE,EACZ,QAAQ,EACR,QAAQ,EAAE,EAAE,OAAO,EAAE,EACtB,EACgB,EACnB,EAAE,EAAE,EAA0B,EAC9B,gBAAgB,GAAG,CAAC,EACpB,EAAE,CACF,mBAAmB,CACjB,KAAK,CACH,QAAQ,CAAC,IAAI,CACX,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;IAChB,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,IAAI,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IACtB,OAAO,IAAI,CAAC,IAAI,CACd,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,GAAG,gBAAgB,CAAC,CAAC,EAC9F,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CACd,CAAC;AACJ,CAAC,CAAC,CACH,EACD,OAAO,CAAC,IAAI,CACV,QAAQ,CAAC,CAAC,UAAU,EAAE,EAAE,CACtB,UAAU,CAAC,EAAE,KAAK,EAAE;IAClB,CAAC,CAAC,UAAU,CACR,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,qBAAqB,UAAU,CAAC,MAAM,MAAM,UAAU,CAAC,EAAE,EAAE,CAAC,CACjG;IACH,CAAC,CAAC,KAAK,CACV,CACF,CACF,EACD,4BAA4B,EAAE,EAAE,EAChC,oBAAoB,GAAG,CAAC,CACzB,CAAC;AAEJ,MAAM,MAAM,GAAG,CAAC,MAAwB,EAAE,EAAc,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACjF,MAAM,OAAO,GAAG,CAAC,MAAwB,EAAE,EAAc,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACtF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAwB,EAAE,EAAc,EAAE,EAAE,CAC3E,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAazD,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAsB,EAAE,EAAE;IAEzF,MAAM,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAClF,MAAM,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAClF,MAAM,CAAC,IAAI,CAAC,WAAW,cAAc,cAAc,KAAK,wBAAwB,gBAAgB,GAAG,CAAC,CAAC;IAIrG,MAAM,SAAS,GAAG,UAAU,CAAC,eAAe,EAAE,CAAC;IAC/C,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IAC1F,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;IAGzE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACtF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAA+C,EAAE,cAAsB,EAAE,EAAE;IACtG,MAAM,CAAC,IAAI,CAAC,sBAAsB,cAAc,EAAE,CAAC,CAAC;IACpD,OAAO,cAAc,CACnB,MAAM,CAAC,aAAa,CAAC,IAAI,CACvB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAC7B,oBAAoB,EAAE,EACtB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAC,EAC/D,MAAM,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,cAAc,IAAI,cAAc,CAAC,CAC7D,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,IAAI,EAAE;IACnD,MAAM,mBAAmB,GAAG,MAAM,0BAA0B,CAAC,MAAM,CACjE,GAAG,CAAC,qBAAqB,EACzB,GAAG,CAAC,4BAA4B,EAChC,MAAM,CACP,CAAC;IACF,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,mBAAmB,CAAC,iBAAiB,EAAE,CAAC;IAElF,MAAM,6BAA6B,GAAG,CAAC,CAAC;IACxC,MAAM,yBAAyB,GAAG,IAAI,GAAG,GAAG,CAAC;IAC7C,MAAM,qBAAqB,GAAG,WAAW,GAAG,UAAU,GAAG,6BAA6B,CAAC;IACvF,IAAI,qBAAqB,GAAG,yBAAyB,GAAG,6BAA6B,EAAE;QACrF,OAAO,KAAK,CAAC;KACd;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AASF,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,MAAsB,EAAE,EAA8B,EAAE,EAAE;IACrG,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACrH,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IAEtF,OAAO,aAAa,CAAC,UAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC,CAAC;AAQF,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,WAAgC,EAAE,MAAkB,EAAE,EAAE;IAC9F,MAAM,aAAa,GAAG,CAAC,MAAM,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAClF,MAAM,OAAO,GAAsB;QACjC,YAAY,EAAE,CAAC,WAAW,CAAC;QAC3B,OAAO,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,QAAU,EAAE,EAAE,CAAC,CAAC;KAC7E,CAAC;IAEF,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IAEpE,MAAM,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEhD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAWF,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAC3C,SAAmB,EACnB,OAA+B,EAC/B,YAAiC,EACjC,EAAE,CACF,MAAM,gBAAgB,CAAC,sBAAsB,CAC3C;IACE,OAAO,EAAE,OAAO;IAChB,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1C,aAAa,EAAE,SAAS;CACzB,EACD,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAC5E,CAAC;AAQJ,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,EAC/B,MAAM,EACN,MAAM,EACN,OAAO,EACP,aAAa,EAAE,YAAY,EAM5B,EAAE,EAAE;IACH,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,GAAG,CAAC,MAAM,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;KACxE;IAED,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE;QACjB,OAAO;KACR;IAED,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzF,MAAM,OAAO,GAAsB;QACjC,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE;KACnC,CAAC;IAEF,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAEtD,MAAM,aAAa,GAAoB;QACrC,EAAE,EAAE,UAAU;QACd,OAAO,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE;KACnC,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACxD,MAAM,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzC,MAAM,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACtC,CAAC,CAAC"}
|
package/docker-compose.yml
CHANGED
|
@@ -40,7 +40,7 @@ services:
|
|
|
40
40
|
timeout: 10s
|
|
41
41
|
|
|
42
42
|
cardano-node-ogmios:
|
|
43
|
-
entrypoint: [
|
|
43
|
+
entrypoint: ['/tini', '-g', '--', '/scripts/cardano-node-ogmios.sh']
|
|
44
44
|
image: cardanosolutions/cardano-node-ogmios:v${OGMIOS_VERSION:-5.6.0}_${CARDANO_NODE_VERSION:-1.35.5}
|
|
45
45
|
depends_on:
|
|
46
46
|
local-testnet:
|
|
@@ -57,25 +57,6 @@ services:
|
|
|
57
57
|
volumes:
|
|
58
58
|
- ./local-network/config/network:/config
|
|
59
59
|
|
|
60
|
-
cardano-wallet:
|
|
61
|
-
<<: *logging
|
|
62
|
-
image: inputoutput/cardano-wallet:2022.8.16
|
|
63
|
-
volumes:
|
|
64
|
-
- wallet-db:/wallet-db
|
|
65
|
-
- node-ipc:/ipc
|
|
66
|
-
- ./local-network/config:/config
|
|
67
|
-
ports:
|
|
68
|
-
- 8090:8090
|
|
69
|
-
entrypoint: []
|
|
70
|
-
command: bash -c "sleep 10 && ([[ $$NETWORK == \"mainnet\" ]] && $$CMD --mainnet) || ($$CMD --testnet /config/network/genesis/byron.json)"
|
|
71
|
-
environment:
|
|
72
|
-
CMD: 'cardano-wallet serve --node-socket /ipc/node.socket --database /wallet-db --listen-address 0.0.0.0'
|
|
73
|
-
NETWORK:
|
|
74
|
-
depends_on:
|
|
75
|
-
cardano-db-sync:
|
|
76
|
-
condition: service_healthy
|
|
77
|
-
restart: on-failure
|
|
78
|
-
|
|
79
60
|
handle-projector:
|
|
80
61
|
environment:
|
|
81
62
|
HANDLE_POLICY_IDS_FILE: /sdk-ipc/handle_policy_ids
|
|
@@ -84,9 +65,11 @@ services:
|
|
|
84
65
|
|
|
85
66
|
provider-server:
|
|
86
67
|
environment:
|
|
68
|
+
HANDLE_POLICY_IDS_FILE: /sdk-ipc/handle_policy_ids
|
|
87
69
|
TOKEN_METADATA_SERVER_URL: stub://
|
|
88
70
|
volumes:
|
|
89
71
|
- ./local-network/config/network:/config
|
|
72
|
+
- sdk-ipc:/sdk-ipc
|
|
90
73
|
|
|
91
74
|
volumes:
|
|
92
75
|
sdk-ipc:
|
|
@@ -95,4 +78,3 @@ volumes:
|
|
|
95
78
|
device: ./local-network/sdk-ipc
|
|
96
79
|
o: bind
|
|
97
80
|
type: none
|
|
98
|
-
wallet-db:
|
|
@@ -3,9 +3,30 @@
|
|
|
3
3
|
handleNames=("HelloHandle" "TestHandle" "DoubleHandle")
|
|
4
4
|
handleHexes=("48656c6c6f48616e646c65" "5465737448616e646c65" "446f75626c6548616e646c65")
|
|
5
5
|
|
|
6
|
+
# addr, payment.skey and payment.vkey are generated from mnemonic
|
|
7
|
+
# vacant violin soft weird deliver render brief always monitor general maid smart jelly core drastic erode echo there clump dizzy card filter option defense
|
|
8
|
+
# addr funded in setup-wallets.sh
|
|
9
|
+
# to update keys for new mnemonic use mnemonic_keys.sh
|
|
10
|
+
addr="addr_test1qpw0djgj0x59ngrjvqthn7enhvruxnsavsw5th63la3mjel3tkc974sr23jmlzgq5zda4gtv8k9cy38756r9y3qgmkqqjz6aa7"
|
|
11
|
+
cat >network-files/utxo-keys/payment.skey <<EOL
|
|
12
|
+
{
|
|
13
|
+
"type": "PaymentExtendedSigningKeyShelley_ed25519_bip32",
|
|
14
|
+
"description": "",
|
|
15
|
+
"cborHex": "5880101c0d1805fb4c54f3a9f2859de2f9665c66fdef51236d86c333469f127582500046245356898f5d18eb3999670b9d2ee7fe83d21127317bb2f59d64aafcf515368cf6a11ac7e29917568a366af62a596cb9cde8174bfe7f6e88393ecdb1dcc621141aa9593f01bd18d4694541b40a6442d81845f458c0002fb2f12c3d205cf2"
|
|
16
|
+
}
|
|
17
|
+
EOL
|
|
18
|
+
|
|
19
|
+
cat >network-files/utxo-keys/payment.vkey <<EOL
|
|
20
|
+
{
|
|
21
|
+
"type": "PaymentVerificationKeyShelley_ed25519",
|
|
22
|
+
"description": "",
|
|
23
|
+
"cborHex": "5820368cf6a11ac7e29917568a366af62a596cb9cde8174bfe7f6e88393ecdb1dcc6"
|
|
24
|
+
}
|
|
25
|
+
EOL
|
|
26
|
+
|
|
6
27
|
cat >network-files/utxo-keys/minting-policy.json <<EOL
|
|
7
28
|
{
|
|
8
|
-
"keyHash": "$(cardano-cli address key-hash --payment-verification-key-file network-files/utxo-keys/
|
|
29
|
+
"keyHash": "$(cardano-cli address key-hash --payment-verification-key-file network-files/utxo-keys/payment.vkey)",
|
|
9
30
|
"type": "sig"
|
|
10
31
|
}
|
|
11
32
|
EOL
|
|
@@ -25,10 +46,26 @@ cat >network-files/utxo-keys/handles-metadata.json <<EOL
|
|
|
25
46
|
}}
|
|
26
47
|
EOL
|
|
27
48
|
|
|
28
|
-
|
|
49
|
+
wait_tx_complete() {
|
|
50
|
+
utxo_to_check="$1"
|
|
51
|
+
timeout=0
|
|
52
|
+
max_timeout=10
|
|
53
|
+
while [ $timeout -lt $max_timeout ]; do
|
|
54
|
+
output=$(cardano-cli query utxo --tx-in "${utxo_to_check}" --testnet-magic 888)
|
|
55
|
+
line_count=$(echo "$output" | awk 'END {print NR}')
|
|
56
|
+
if [ $line_count -eq 2 ]; then
|
|
57
|
+
echo "Transaction completed"
|
|
58
|
+
return 0
|
|
59
|
+
fi
|
|
60
|
+
timeout=$((timeout + 1))
|
|
61
|
+
sleep 1
|
|
62
|
+
done
|
|
63
|
+
echo "Timeout: Transaction not completed in 10 sec."
|
|
64
|
+
return 1
|
|
65
|
+
}
|
|
29
66
|
|
|
30
|
-
|
|
31
|
-
|
|
67
|
+
echo $policyid > /sdk-ipc/handle_policy_ids
|
|
68
|
+
destAddr="addr_test1qr0c3frkem9cqn5f73dnvqpena27k2fgqew6wct9eaka03agfwkvzr0zyq7nqvcj24zehrshx63zzdxv24x3a4tcnfeq9zwmn7"
|
|
32
69
|
utxo=$(cardano-cli query utxo --address "$addr" --testnet-magic 888 | awk 'NR == 3 {printf("%s#%s", $1, $2)}')
|
|
33
70
|
|
|
34
71
|
tokenList="1 ${policyid}.${handleHexes[0]}+1 ${policyid}.${handleHexes[1]}+2 ${policyid}.${handleHexes[2]}"
|
|
@@ -37,7 +74,7 @@ cardano-cli transaction build \
|
|
|
37
74
|
--babbage-era \
|
|
38
75
|
--change-address "$addr" \
|
|
39
76
|
--tx-in "$utxo" \
|
|
40
|
-
--tx-out "$
|
|
77
|
+
--tx-out "$destAddr"+10000000+"$tokenList" \
|
|
41
78
|
--mint "$tokenList" \
|
|
42
79
|
--mint-script-file network-files/utxo-keys/minting-policy.json \
|
|
43
80
|
--metadata-json-file network-files/utxo-keys/handles-metadata.json \
|
|
@@ -46,8 +83,73 @@ cardano-cli transaction build \
|
|
|
46
83
|
|
|
47
84
|
cardano-cli transaction sign \
|
|
48
85
|
--tx-body-file handle-tx.raw \
|
|
49
|
-
--signing-key-file network-files/utxo-keys/
|
|
86
|
+
--signing-key-file network-files/utxo-keys/payment.skey \
|
|
50
87
|
--testnet-magic 888 \
|
|
51
88
|
--out-file handle-tx.signed
|
|
52
89
|
|
|
53
90
|
cardano-cli transaction submit --testnet-magic 888 --tx-file handle-tx.signed
|
|
91
|
+
wait_tx_complete $utxo
|
|
92
|
+
|
|
93
|
+
# CIP-68 Handle
|
|
94
|
+
utxo=$(cardano-cli query utxo --address "$addr" --testnet-magic 888 | awk 'NR == 3 {printf("%s#%s", $1, $2)}')
|
|
95
|
+
# {"constructor": 0,
|
|
96
|
+
# "fields": [
|
|
97
|
+
# {"map": [
|
|
98
|
+
# {"k": {"bytes": "core"}, "v": {"map": [
|
|
99
|
+
# {"k": {"bytes": "og"}, "v": {"int": 0}},
|
|
100
|
+
# {"k": {"bytes": "prefix"}, "v": {"bytes": "24"}},
|
|
101
|
+
# {"k": {"bytes": "version"}, "v": {"int": 0}},
|
|
102
|
+
# {"k": {"bytes": "termsofuse"}, "v": {"bytes": "https://cardanofoundation.org/en/terms-and-conditions/"}},
|
|
103
|
+
# {"k": {"bytes": "handleEncoding"}, "v": {"bytes": "utf-8"}}
|
|
104
|
+
# ]}},
|
|
105
|
+
# {"k": {"bytes": "name"}, "v": {"bytes": "(100)handle68"}},
|
|
106
|
+
# {"k": {"bytes": "image"}, "v": {"bytes": "ipfs://some-hash"}},
|
|
107
|
+
# {"k": {"bytes": "website"}, "v": {"bytes": "https://cardano.org/"}},
|
|
108
|
+
# {"k": {"bytes": "description"}, "v": {"bytes": "The Handle Standard"}},
|
|
109
|
+
# {"k": {"bytes": "augmentations"}, "v": {"list": []}}]
|
|
110
|
+
# },
|
|
111
|
+
# {"int": 1},
|
|
112
|
+
# {"map": []}
|
|
113
|
+
# ]}
|
|
114
|
+
cat >network-files/utxo-keys/handles68-datum.json <<EOL
|
|
115
|
+
{"constructor": 0,
|
|
116
|
+
"fields": [
|
|
117
|
+
{"map": [
|
|
118
|
+
{"k": {"bytes": "636f7265"}, "v": {"map": [
|
|
119
|
+
{"k": {"bytes": "6f67"}, "v": {"int": 0}},
|
|
120
|
+
{"k": {"bytes": "707265666978"}, "v": {"bytes": "24"}},
|
|
121
|
+
{"k": {"bytes": "76657273696f6e"}, "v": {"int": 0}},
|
|
122
|
+
{"k": {"bytes": "7465726d736f66757365"}, "v": {"bytes": "68747470733a2f2f63617264616e6f666f756e646174696f6e2e6f72672f656e2f7465726d732d616e642d636f6e646974696f6e732f"}},
|
|
123
|
+
{"k": {"bytes": "68616e646c65456e636f64696e67"}, "v": {"bytes": "7574662d38"}}
|
|
124
|
+
]}},
|
|
125
|
+
{"k": {"bytes": "6e616d65"}, "v": {"bytes": "283130302968616e646c653638"}},
|
|
126
|
+
{"k": {"bytes": "696d616765"}, "v": {"bytes": "697066733a2f2f736f6d652d68617368"}},
|
|
127
|
+
{"k": {"bytes": "77656273697465"}, "v": {"bytes": "68747470733a2f2f63617264616e6f2e6f72672f"}},
|
|
128
|
+
{"k": {"bytes": "6465736372697074696f6e"}, "v": {"bytes": "5468652048616e646c65205374616e64617264"}},
|
|
129
|
+
{"k": {"bytes": "6175676d656e746174696f6e73"}, "v": {"list": []}}]
|
|
130
|
+
},
|
|
131
|
+
{"int": 1},
|
|
132
|
+
{"map": []}
|
|
133
|
+
]}
|
|
134
|
+
EOL
|
|
135
|
+
# (222)handle68 -> 283232322968616e646c653638
|
|
136
|
+
handle68tokenList="1 ${policyid}.283232322968616e646c653638"
|
|
137
|
+
cardano-cli transaction build \
|
|
138
|
+
--babbage-era \
|
|
139
|
+
--change-address "$addr" \
|
|
140
|
+
--tx-in "$utxo" \
|
|
141
|
+
--tx-out "$destAddr"+10000000+"$handle68tokenList" \
|
|
142
|
+
--mint "$handle68tokenList" \
|
|
143
|
+
--mint-script-file network-files/utxo-keys/minting-policy.json \
|
|
144
|
+
--tx-out-inline-datum-file network-files/utxo-keys/handles68-datum.json \
|
|
145
|
+
--testnet-magic 888 \
|
|
146
|
+
--out-file handle68-tx.raw
|
|
147
|
+
|
|
148
|
+
cardano-cli transaction sign \
|
|
149
|
+
--tx-body-file handle68-tx.raw \
|
|
150
|
+
--signing-key-file network-files/utxo-keys/payment.skey \
|
|
151
|
+
--testnet-magic 888 \
|
|
152
|
+
--out-file handle68-tx.signed
|
|
153
|
+
|
|
154
|
+
cardano-cli transaction submit --testnet-magic 888 --tx-file handle68-tx.signed
|
|
155
|
+
wait_tx_complete $utxo
|
|
@@ -23,6 +23,24 @@ while [ ! -S "$CARDANO_NODE_SOCKET_PATH" ]; do
|
|
|
23
23
|
sleep 2
|
|
24
24
|
done
|
|
25
25
|
|
|
26
|
+
wait_tx_complete() {
|
|
27
|
+
utxo_to_check="$1"
|
|
28
|
+
timeout=0
|
|
29
|
+
max_timeout=10
|
|
30
|
+
while [ $timeout -lt $max_timeout ]; do
|
|
31
|
+
output=$(cardano-cli query utxo --tx-in "${utxo_to_check}" --testnet-magic 888)
|
|
32
|
+
line_count=$(echo "$output" | awk 'END {print NR}')
|
|
33
|
+
if [ $line_count -eq 2 ]; then
|
|
34
|
+
echo "Transaction completed"
|
|
35
|
+
return 0
|
|
36
|
+
fi
|
|
37
|
+
timeout=$((timeout + 1))
|
|
38
|
+
sleep 1
|
|
39
|
+
done
|
|
40
|
+
echo "Timeout: Transaction not completed in 10 sec."
|
|
41
|
+
return 1
|
|
42
|
+
}
|
|
43
|
+
|
|
26
44
|
echo "Create Mary-era minting policy"
|
|
27
45
|
cat >network-files/utxo-keys/minting-policy.json <<EOL
|
|
28
46
|
{
|
|
@@ -33,7 +51,7 @@ EOL
|
|
|
33
51
|
|
|
34
52
|
currencySymbol=$(cardano-cli transaction policyid --script-file network-files/utxo-keys/minting-policy.json)
|
|
35
53
|
addr=$(cardano-cli address build --payment-verification-key-file network-files/utxo-keys/utxo1.vkey --testnet-magic 888)
|
|
36
|
-
|
|
54
|
+
destAddr="addr_test1qr0c3frkem9cqn5f73dnvqpena27k2fgqew6wct9eaka03agfwkvzr0zyq7nqvcj24zehrshx63zzdxv24x3a4tcnfeq9zwmn7"
|
|
37
55
|
|
|
38
56
|
# Spend the first UTxO
|
|
39
57
|
utxo=$(cardano-cli query utxo --address "$addr" --testnet-magic 888 | awk 'NR == 3 {printf("%s#%s", $1, $2)}')
|
|
@@ -49,7 +67,7 @@ cardano-cli transaction build \
|
|
|
49
67
|
--babbage-era \
|
|
50
68
|
--change-address "$addr" \
|
|
51
69
|
--tx-in "$utxo" \
|
|
52
|
-
--tx-out "$
|
|
70
|
+
--tx-out "$destAddr"+10000000+"$tokenList" \
|
|
53
71
|
--mint "$tokenList" \
|
|
54
72
|
--mint-script-file network-files/utxo-keys/minting-policy.json \
|
|
55
73
|
--testnet-magic 888 \
|
|
@@ -62,3 +80,4 @@ cardano-cli transaction sign \
|
|
|
62
80
|
--out-file tx.signed
|
|
63
81
|
|
|
64
82
|
cardano-cli transaction submit --testnet-magic 888 --tx-file tx.signed
|
|
83
|
+
wait_tx_complete $utxo
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Generating pair of keys for provided mnemonic
|
|
3
|
+
|
|
4
|
+
echo "vacant violin soft weird deliver render brief always monitor general maid smart jelly core drastic erode echo there clump dizzy card filter option defense" > phrase.prv
|
|
5
|
+
cat phrase.prv | cardano-address key from-recovery-phrase Shelley > rootkey.prv
|
|
6
|
+
cat rootkey.prv | cardano-address key child 1852H/1815H/0H/0/0 > addr.prv
|
|
7
|
+
cat rootkey.prv | cardano-address key child 1852H/1815H/0H/2/0 > stake.prv
|
|
8
|
+
cat stake.prv | cardano-address key public --with-chain-code > stake.pub
|
|
9
|
+
cat addr.prv | cardano-address key public --with-chain-code | cardano-address address payment --network-tag testnet > payment.addr
|
|
10
|
+
cat payment.addr | cardano-address address delegation "$(cat stake.pub)" > base.addr
|
|
11
|
+
cardano-cli key convert-cardano-address-key --signing-key-file addr.prv --shelley-payment-key --out-file payment.skey
|
|
12
|
+
cardano-cli key verification-key --signing-key-file payment.skey --verification-key-file Ext_ShelleyPayment.vkey
|
|
13
|
+
cardano-cli key non-extended-key --extended-verification-key-file Ext_ShelleyPayment.vkey --verification-key-file payment.vkey
|
|
14
|
+
rm phrase.prv rootkey.prv addr.prv stake.prv stake.pub payment.addr Ext_ShelleyPayment.vkey
|
|
@@ -23,6 +23,23 @@ while [ ! -S "$CARDANO_NODE_SOCKET_PATH" ]; do
|
|
|
23
23
|
sleep 2
|
|
24
24
|
done
|
|
25
25
|
|
|
26
|
+
wait_tx_complete() {
|
|
27
|
+
utxo_to_check="$1"
|
|
28
|
+
timeout=0
|
|
29
|
+
max_timeout=10
|
|
30
|
+
while [ $timeout -lt $max_timeout ]; do
|
|
31
|
+
output=$(cardano-cli query utxo --tx-in "${utxo_to_check}" --testnet-magic 888)
|
|
32
|
+
line_count=$(echo "$output" | awk 'END {print NR}')
|
|
33
|
+
if [ $line_count -eq 2 ]; then
|
|
34
|
+
echo "Transaction completed"
|
|
35
|
+
return 0
|
|
36
|
+
fi
|
|
37
|
+
timeout=$((timeout + 1))
|
|
38
|
+
sleep 1
|
|
39
|
+
done
|
|
40
|
+
echo "Timeout: Transaction not completed in 10 sec."
|
|
41
|
+
return 1
|
|
42
|
+
}
|
|
26
43
|
genesisAddr=$(cardano-cli address build --payment-verification-key-file network-files/utxo-keys/utxo3.vkey --testnet-magic 888)
|
|
27
44
|
|
|
28
45
|
walletAddr1="addr_test1qpw0djgj0x59ngrjvqthn7enhvruxnsavsw5th63la3mjel3tkc974sr23jmlzgq5zda4gtv8k9cy38756r9y3qgmkqqjz6aa7"
|
|
@@ -53,3 +70,4 @@ cardano-cli transaction sign \
|
|
|
53
70
|
--out-file wallets-tx.signed
|
|
54
71
|
|
|
55
72
|
cardano-cli transaction submit --testnet-magic 888 --tx-file wallets-tx.signed
|
|
73
|
+
wait_tx_complete $utxo
|
|
@@ -32,8 +32,7 @@ done
|
|
|
32
32
|
CARDANO_NODE_SOCKET_PATH=$PWD/network-files/node-sp1/node.sock ./scripts/plutus-transaction.sh
|
|
33
33
|
CARDANO_NODE_SOCKET_PATH=$PWD/network-files/node-sp1/node.sock ./scripts/reference-input-transaction.sh
|
|
34
34
|
CARDANO_NODE_SOCKET_PATH=$PWD/network-files/node-sp1/node.sock ./scripts/mint-tokens.sh
|
|
35
|
-
sleep 10
|
|
36
|
-
CARDANO_NODE_SOCKET_PATH=$PWD/network-files/node-sp1/node.sock ./scripts/mint-handles.sh
|
|
37
35
|
CARDANO_NODE_SOCKET_PATH=$PWD/network-files/node-sp1/node.sock ./scripts/setup-wallets.sh
|
|
36
|
+
CARDANO_NODE_SOCKET_PATH=$PWD/network-files/node-sp1/node.sock ./scripts/mint-handles.sh
|
|
38
37
|
|
|
39
38
|
wait
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cardano-sdk/e2e",
|
|
3
|
-
"version": "0.16.6
|
|
3
|
+
"version": "0.16.6",
|
|
4
4
|
"description": "End to end tests for the cardano-js-sdk packages.",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=16.0"
|
|
@@ -81,22 +81,22 @@
|
|
|
81
81
|
"dependencies": {
|
|
82
82
|
"@cardano-foundation/ledgerjs-hw-app-cardano": "^6.0.0",
|
|
83
83
|
"@cardano-ogmios/client": "5.6.0",
|
|
84
|
-
"@cardano-sdk/cardano-services": "0.14.
|
|
85
|
-
"@cardano-sdk/cardano-services-client": "0.10.
|
|
86
|
-
"@cardano-sdk/core": "0.15.3
|
|
87
|
-
"@cardano-sdk/crypto": "0.1.9
|
|
88
|
-
"@cardano-sdk/hardware-ledger": "0.2.15
|
|
89
|
-
"@cardano-sdk/
|
|
90
|
-
"@cardano-sdk/
|
|
91
|
-
"@cardano-sdk/
|
|
92
|
-
"@cardano-sdk/
|
|
93
|
-
"@cardano-sdk/util
|
|
94
|
-
"@cardano-sdk/util-
|
|
95
|
-
"@cardano-sdk/
|
|
84
|
+
"@cardano-sdk/cardano-services": "~0.14.5",
|
|
85
|
+
"@cardano-sdk/cardano-services-client": "~0.10.5",
|
|
86
|
+
"@cardano-sdk/core": "~0.15.3",
|
|
87
|
+
"@cardano-sdk/crypto": "~0.1.9",
|
|
88
|
+
"@cardano-sdk/hardware-ledger": "~0.2.15",
|
|
89
|
+
"@cardano-sdk/input-selection": "~0.11.2",
|
|
90
|
+
"@cardano-sdk/key-management": "~0.8.1",
|
|
91
|
+
"@cardano-sdk/ogmios": "~0.12.11",
|
|
92
|
+
"@cardano-sdk/tx-construction": "~0.9.2",
|
|
93
|
+
"@cardano-sdk/util": "~0.13.0",
|
|
94
|
+
"@cardano-sdk/util-dev": "~0.13.8",
|
|
95
|
+
"@cardano-sdk/util-rxjs": "~0.5.4",
|
|
96
|
+
"@cardano-sdk/wallet": "~0.18.2",
|
|
96
97
|
"@vespaiach/axios-fetch-adapter": "^0.3.0",
|
|
97
98
|
"axios": "^0.27.2",
|
|
98
99
|
"bunyan": "^1.8.15",
|
|
99
|
-
"cardano-wallet-js": "^1.4.0",
|
|
100
100
|
"chalk": "4.1.2",
|
|
101
101
|
"cli-spinners": "^2.9.0",
|
|
102
102
|
"convict": "^6.2.4",
|
|
@@ -122,10 +122,10 @@
|
|
|
122
122
|
"@babel/core": "^7.18.2",
|
|
123
123
|
"@babel/preset-env": "^7.18.2",
|
|
124
124
|
"@babel/preset-typescript": "^7.17.12",
|
|
125
|
-
"@cardano-sdk/dapp-connector": "0.9.10
|
|
126
|
-
"@cardano-sdk/projection": "0.6.
|
|
127
|
-
"@cardano-sdk/projection-typeorm": "0.3.
|
|
128
|
-
"@cardano-sdk/web-extension": "0.13.7
|
|
125
|
+
"@cardano-sdk/dapp-connector": "~0.9.10",
|
|
126
|
+
"@cardano-sdk/projection": "~0.6.15",
|
|
127
|
+
"@cardano-sdk/projection-typeorm": "~0.3.11",
|
|
128
|
+
"@cardano-sdk/web-extension": "~0.13.7",
|
|
129
129
|
"@dcspark/cardano-multiplatform-lib-browser": "^3.1.1",
|
|
130
130
|
"@emurgo/cardano-message-signing-asmjs": "^1.0.1",
|
|
131
131
|
"@types/bunyan": "^1.8.8",
|
|
@@ -147,8 +147,10 @@
|
|
|
147
147
|
"babel-loader": "^8.2.5",
|
|
148
148
|
"blake2b-no-wasm": "2.1.4",
|
|
149
149
|
"buffer": "^6.0.3",
|
|
150
|
-
"chromedriver": "
|
|
150
|
+
"chromedriver": "114.0.1",
|
|
151
151
|
"copy-webpack-plugin": "^10.2.4",
|
|
152
|
+
"dockerode": "^3.3.1",
|
|
153
|
+
"dockerode-utils": "^0.0.7",
|
|
152
154
|
"eslint": "^7.32.0",
|
|
153
155
|
"events": "^3.3.0",
|
|
154
156
|
"expect-webdriverio": "^3.2.1",
|
|
@@ -174,5 +176,5 @@
|
|
|
174
176
|
"webpack-cli": "^4.9.2",
|
|
175
177
|
"webpack-merge": "^5.8.0"
|
|
176
178
|
},
|
|
177
|
-
"gitHead": "
|
|
179
|
+
"gitHead": "45678f5d27cd04acff4fc80e9810f38a9df38691"
|
|
178
180
|
}
|
package/src/environment.ts
CHANGED
|
@@ -75,24 +75,6 @@ const providerParams = makeValidator((value) => {
|
|
|
75
75
|
return validated;
|
|
76
76
|
});
|
|
77
77
|
|
|
78
|
-
const handleProviderParams = makeValidator((value) => {
|
|
79
|
-
const validated = baseValidator<HandleProviderParams>(value, {
|
|
80
|
-
properties: { policyId: { type: 'string' }, serverUrl: { type: 'string' } },
|
|
81
|
-
required: ['serverUrl'],
|
|
82
|
-
type: 'object'
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
try {
|
|
86
|
-
// eslint-disable-next-line no-new
|
|
87
|
-
new URL(validated.serverUrl);
|
|
88
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
89
|
-
} catch (error: any) {
|
|
90
|
-
throw new Error(`serverUrl: ${error.message}`);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
return validated;
|
|
94
|
-
});
|
|
95
|
-
|
|
96
78
|
/**
|
|
97
79
|
* Shared across all tests
|
|
98
80
|
*/
|
|
@@ -105,7 +87,7 @@ const validators = {
|
|
|
105
87
|
CHAIN_HISTORY_PROVIDER_PARAMS: providerParams(),
|
|
106
88
|
DB_SYNC_CONNECTION_STRING: str({ default: undefined }),
|
|
107
89
|
HANDLE_PROVIDER: str(),
|
|
108
|
-
HANDLE_PROVIDER_PARAMS:
|
|
90
|
+
HANDLE_PROVIDER_PARAMS: providerParams(),
|
|
109
91
|
KEY_MANAGEMENT_PARAMS: keyManagementParams(),
|
|
110
92
|
KEY_MANAGEMENT_PROVIDER: str(),
|
|
111
93
|
LOGGER_MIN_SEVERITY: str({ default: 'info' }),
|
package/src/factories.ts
CHANGED
|
@@ -33,11 +33,11 @@ import {
|
|
|
33
33
|
TrezorKeyAgent,
|
|
34
34
|
util
|
|
35
35
|
} from '@cardano-sdk/key-management';
|
|
36
|
-
import { CardanoWalletFaucetProvider, FaucetProvider } from './FaucetProvider';
|
|
37
36
|
import {
|
|
38
37
|
KoraLabsHandleProvider,
|
|
39
38
|
assetInfoHttpProvider,
|
|
40
39
|
chainHistoryHttpProvider,
|
|
40
|
+
handleHttpProvider,
|
|
41
41
|
networkInfoHttpProvider,
|
|
42
42
|
rewardsHttpProvider,
|
|
43
43
|
stakePoolHttpProvider,
|
|
@@ -61,10 +61,8 @@ const customHttpFetchAdapter = isNodeJs ? undefined : require('@vespaiach/axios-
|
|
|
61
61
|
const HTTP_PROVIDER = 'http';
|
|
62
62
|
const OGMIOS_PROVIDER = 'ogmios';
|
|
63
63
|
const STUB_PROVIDER = 'stub';
|
|
64
|
-
const HANDLE_PROVIDER = 'kora-labs';
|
|
65
64
|
const MISSING_URL_PARAM = 'Missing URL';
|
|
66
65
|
|
|
67
|
-
export const faucetProviderFactory = new ProviderFactory<FaucetProvider>();
|
|
68
66
|
export type CreateKeyAgent = (dependencies: KeyAgentDependencies) => Promise<AsyncKeyAgent>;
|
|
69
67
|
export const keyManagementFactory = new ProviderFactory<CreateKeyAgent>();
|
|
70
68
|
export const assetProviderFactory = new ProviderFactory<AssetProvider>();
|
|
@@ -90,10 +88,6 @@ addressDiscoveryFactory.register(
|
|
|
90
88
|
|
|
91
89
|
bip32Ed25519Factory.register('CML', async () => new Crypto.CmlBip32Ed25519(CML));
|
|
92
90
|
|
|
93
|
-
// Faucet providers
|
|
94
|
-
|
|
95
|
-
faucetProviderFactory.register('cardano-wallet', CardanoWalletFaucetProvider.create);
|
|
96
|
-
|
|
97
91
|
// Asset providers
|
|
98
92
|
|
|
99
93
|
assetProviderFactory.register(HTTP_PROVIDER, async (params: any, logger: Logger): Promise<AssetProvider> => {
|
|
@@ -170,13 +164,11 @@ utxoProviderFactory.register(HTTP_PROVIDER, async (params: any, logger: Logger):
|
|
|
170
164
|
});
|
|
171
165
|
});
|
|
172
166
|
|
|
173
|
-
handleProviderFactory.register(
|
|
174
|
-
if (params.
|
|
167
|
+
handleProviderFactory.register(HTTP_PROVIDER, async (params: any, logger: Logger): Promise<HandleProvider> => {
|
|
168
|
+
if (params.baseUrl === undefined) throw new Error(`${handleHttpProvider.name}: ${MISSING_URL_PARAM}`);
|
|
175
169
|
|
|
176
|
-
return new
|
|
177
|
-
adapter: customHttpFetchAdapter,
|
|
178
|
-
policyId: params.policyId,
|
|
179
|
-
serverUrl: params.serverUrl
|
|
170
|
+
return new Promise<HandleProvider>(async (resolve) => {
|
|
171
|
+
resolve(handleHttpProvider({ adapter: customHttpFetchAdapter, baseUrl: params.baseUrl, logger }));
|
|
180
172
|
});
|
|
181
173
|
});
|
|
182
174
|
|
package/src/index.ts
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
/* eslint-disable no-console */
|
|
2
|
-
/* eslint-disable @typescript-eslint/no-floating-promises */
|
|
3
|
-
import * as Process from 'process';
|
|
4
|
-
// This disable may not be require once https://github.com/import-js/eslint-plugin-import/pull/2543 is released.
|
|
5
|
-
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
6
2
|
import { Pool, QueryResult } from 'pg';
|
|
7
3
|
|
|
8
4
|
const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
@@ -11,14 +7,16 @@ const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
|
11
7
|
* Waits until the local network is ready or the wait time expires.
|
|
12
8
|
*/
|
|
13
9
|
(async () => {
|
|
14
|
-
|
|
10
|
+
const { DB_SYNC_CONNECTION_STRING, LOCAL_NETWORK_READY_WAIT_TIME } = process.env;
|
|
11
|
+
|
|
12
|
+
if (DB_SYNC_CONNECTION_STRING === undefined) {
|
|
15
13
|
console.error('The DB_SYNC_CONNECTION_STRING env variable must be defined');
|
|
16
14
|
return -1;
|
|
17
15
|
}
|
|
18
16
|
|
|
19
17
|
const start = Date.now() / 1000;
|
|
20
|
-
const waitTime =
|
|
21
|
-
const db: Pool = new Pool({ connectionString:
|
|
18
|
+
const waitTime = LOCAL_NETWORK_READY_WAIT_TIME ? Number.parseInt(LOCAL_NETWORK_READY_WAIT_TIME, 10) : 1200;
|
|
19
|
+
const db: Pool = new Pool({ connectionString: DB_SYNC_CONNECTION_STRING });
|
|
22
20
|
let isReady = false;
|
|
23
21
|
let currentElapsed = 0;
|
|
24
22
|
|
|
@@ -44,4 +42,4 @@ const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
|
44
42
|
}
|
|
45
43
|
|
|
46
44
|
console.log('Local network ready!');
|
|
47
|
-
})();
|
|
45
|
+
})().catch(console.log);
|