@ocap/client 1.6.5 → 1.6.10
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/README.md +1 -1
- package/dist/base.js +36 -22
- package/dist/base.js.map +1 -1
- package/dist/browser.d.ts +974 -567
- package/dist/browser.js +1 -8
- package/dist/browser.js.map +1 -1
- package/dist/bundle.js +3 -3
- package/dist/client.js +11 -7
- package/dist/client.js.map +1 -1
- package/dist/extension.js +502 -462
- package/dist/extension.js.map +1 -1
- package/dist/methods.js +0 -142
- package/dist/methods.js.map +1 -1
- package/dist/report.html +2 -2
- package/dist/schema/graphql.json +9447 -4831
- package/dist/schema/graphql.txt +2 -2
- package/dist/types.js +2137 -1918
- package/dist/types.js.map +1 -1
- package/docs/QUERIES.md +1547 -1494
- package/docs/README.md +4386 -4937
- package/examples/asset.js +7 -7
- package/examples/create-secondary-token.js +44 -0
- package/examples/declare.js +9 -9
- package/examples/{delegate_exchange_both.js → delegate-exchange-both.js} +12 -8
- package/examples/{delegate_exchange.js → delegate-exchange.js} +11 -7
- package/examples/{delegate_transfer.js → delegate-transfer.js} +12 -6
- package/examples/exchange-secondary-token.js +100 -0
- package/examples/exchange.js +9 -9
- package/examples/{migrate_account.js → migrate-account.js} +5 -5
- package/examples/run-no-debug.sh +8 -8
- package/examples/run.sh +8 -8
- package/examples/subscribe.js +16 -0
- package/examples/{transfer_asset.js → transfer-asset.js} +11 -11
- package/examples/{transfer_token.js → transfer-primary-token.js} +10 -10
- package/examples/transfer-secondary-token.js +62 -0
- package/lib/base.js +36 -22
- package/lib/base.js.map +1 -1
- package/lib/client.js +11 -7
- package/lib/client.js.map +1 -1
- package/lib/extension.js +502 -462
- package/lib/extension.js.map +1 -1
- package/lib/methods.js +0 -142
- package/lib/methods.js.map +1 -1
- package/lib/node.d.ts +974 -567
- package/lib/node.js +0 -6
- package/lib/node.js.map +1 -1
- package/lib/schema/graphql.json +9447 -4831
- package/lib/schema/graphql.txt +2 -2
- package/lib/types.js +2137 -1918
- package/lib/types.js.map +1 -1
- package/package.json +30 -32
- package/examples/atomic_swap.js +0 -145
- package/examples/consume_asset_gatekeeper.js +0 -105
- package/examples/consume_asset_simple.js +0 -91
- package/examples/declare_forgeweb.js +0 -60
- package/examples/declare_restricted.js +0 -47
- package/examples/delegate_atomic_swap.js +0 -177
- package/examples/get_free_token.js +0 -33
- package/examples/subscribe_new_block.js +0 -36
- package/examples/subscribe_transfer.js +0 -80
package/examples/asset.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
const GraphqlClient = require('@ocap/client');
|
|
11
11
|
const { fromRandom } = require('@ocap/wallet');
|
|
12
12
|
|
|
13
|
-
const endpoint = process.env.
|
|
13
|
+
const endpoint = process.env.OCAP_API_HOST || 'http://127.0.0.1:4000'; // testnet
|
|
14
14
|
|
|
15
15
|
const client = new GraphqlClient(`${endpoint}/api`);
|
|
16
16
|
const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout));
|
|
@@ -18,12 +18,12 @@ const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout)
|
|
|
18
18
|
(async () => {
|
|
19
19
|
try {
|
|
20
20
|
const owner = fromRandom();
|
|
21
|
-
console.log({ owner: owner.
|
|
21
|
+
console.log({ owner: owner.address });
|
|
22
22
|
|
|
23
23
|
// 1. declare owner
|
|
24
24
|
let hash = await client.declare({ moniker: 'owner', wallet: owner });
|
|
25
25
|
console.log('declare.owner.result', hash);
|
|
26
|
-
console.log('view owner account', `${endpoint}/
|
|
26
|
+
console.log('view owner account', `${endpoint}/explorer/accounts/${owner.address}`);
|
|
27
27
|
|
|
28
28
|
// 2. create asset for owner
|
|
29
29
|
let assetAddress;
|
|
@@ -41,8 +41,8 @@ const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout)
|
|
|
41
41
|
},
|
|
42
42
|
wallet: owner,
|
|
43
43
|
});
|
|
44
|
-
console.log('view asset state', `${endpoint}/
|
|
45
|
-
console.log('create asset tx', `${endpoint}/
|
|
44
|
+
console.log('view asset state', `${endpoint}/explorer/assets/${assetAddress}`);
|
|
45
|
+
console.log('create asset tx', `${endpoint}/explorer/txs/${hash}`);
|
|
46
46
|
|
|
47
47
|
// wait for asset state consolidates
|
|
48
48
|
await sleep(5000);
|
|
@@ -64,8 +64,8 @@ const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout)
|
|
|
64
64
|
},
|
|
65
65
|
wallet: owner,
|
|
66
66
|
});
|
|
67
|
-
console.log('view asset state', `${endpoint}/
|
|
68
|
-
console.log('update asset tx', `${endpoint}/
|
|
67
|
+
console.log('view asset state', `${endpoint}/explorer/assets/${assetAddress}`);
|
|
68
|
+
console.log('update asset tx', `${endpoint}/explorer/txs/${hash}`);
|
|
69
69
|
} catch (err) {
|
|
70
70
|
console.error(err);
|
|
71
71
|
console.log(JSON.stringify(err.errors));
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/* eslint-disable import/no-extraneous-dependencies */
|
|
2
|
+
/* eslint no-console:"off" */
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* This script demonstrates how to create and update asset
|
|
6
|
+
*
|
|
7
|
+
* Run script with: `DEBUG=@ocap/client node examples/asset.js`
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
const GraphqlClient = require('@ocap/client');
|
|
11
|
+
const { fromRandom } = require('@ocap/wallet');
|
|
12
|
+
|
|
13
|
+
const endpoint = process.env.OCAP_API_HOST || 'http://127.0.0.1:4000'; // testnet
|
|
14
|
+
|
|
15
|
+
const client = new GraphqlClient(`${endpoint}/api`);
|
|
16
|
+
// const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout));
|
|
17
|
+
|
|
18
|
+
(async () => {
|
|
19
|
+
try {
|
|
20
|
+
const owner = fromRandom();
|
|
21
|
+
console.log({ owner: owner.address });
|
|
22
|
+
|
|
23
|
+
// 1. declare owner
|
|
24
|
+
const hash = await client.declare({ moniker: 'owner', wallet: owner });
|
|
25
|
+
console.log('declare.owner.result', hash);
|
|
26
|
+
console.log('view owner account', `${endpoint}/explorer/accounts/${owner.address}`);
|
|
27
|
+
|
|
28
|
+
// eslint-disable-next-line prefer-const
|
|
29
|
+
const createResult = await client.createToken({
|
|
30
|
+
name: 'demo token',
|
|
31
|
+
description: 'demo token',
|
|
32
|
+
symbol: `DT_${Date.now()}`,
|
|
33
|
+
decimal: 10,
|
|
34
|
+
unit: 'D',
|
|
35
|
+
totalSupply: 1000000000000,
|
|
36
|
+
wallet: owner,
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
console.log('create result', createResult);
|
|
40
|
+
} catch (err) {
|
|
41
|
+
console.error(err);
|
|
42
|
+
console.log(JSON.stringify(err.errors));
|
|
43
|
+
}
|
|
44
|
+
})();
|
package/examples/declare.js
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
const GraphqlClient = require('@ocap/client');
|
|
12
12
|
const { fromRandom } = require('@ocap/wallet');
|
|
13
13
|
|
|
14
|
-
const endpoint = process.env.
|
|
14
|
+
const endpoint = process.env.OCAP_API_HOST || 'http://127.0.0.1:4000'; // testnet
|
|
15
15
|
|
|
16
16
|
const client = new GraphqlClient(`${endpoint}/api`);
|
|
17
17
|
|
|
@@ -25,8 +25,8 @@ const client = new GraphqlClient(`${endpoint}/api`);
|
|
|
25
25
|
wallet: user1,
|
|
26
26
|
});
|
|
27
27
|
|
|
28
|
-
console.log('view user1 account', `${endpoint}/
|
|
29
|
-
console.log('view user1 tx', `${endpoint}/
|
|
28
|
+
console.log('view user1 account', `${endpoint}/explorer/accounts/${user1.address}`);
|
|
29
|
+
console.log('view user1 tx', `${endpoint}/explorer/txs/${hash1}`);
|
|
30
30
|
|
|
31
31
|
// Sign and then send: sendDeclareTx
|
|
32
32
|
const user2 = fromRandom();
|
|
@@ -40,8 +40,8 @@ const client = new GraphqlClient(`${endpoint}/api`);
|
|
|
40
40
|
wallet: user2,
|
|
41
41
|
});
|
|
42
42
|
const hash2 = await client.sendDeclareTx({ tx: signed, wallet: user2 });
|
|
43
|
-
console.log('view user2 account', `${endpoint}/
|
|
44
|
-
console.log('view user2 tx', `${endpoint}/
|
|
43
|
+
console.log('view user2 account', `${endpoint}/explorer/accounts/${user2.address}`);
|
|
44
|
+
console.log('view user2 tx', `${endpoint}/explorer/txs/${hash2}`);
|
|
45
45
|
|
|
46
46
|
// Sign and then send: sendTx
|
|
47
47
|
const user3 = fromRandom();
|
|
@@ -56,16 +56,16 @@ const client = new GraphqlClient(`${endpoint}/api`);
|
|
|
56
56
|
encoding: 'base64',
|
|
57
57
|
});
|
|
58
58
|
const hash3 = await client.sendTx({ tx: signed3 });
|
|
59
|
-
console.log('view user3 account', `${endpoint}/
|
|
60
|
-
console.log('view user3 tx', `${endpoint}/
|
|
59
|
+
console.log('view user3 account', `${endpoint}/explorer/accounts/${user3.address}`);
|
|
60
|
+
console.log('view user3 tx', `${endpoint}/explorer/txs/${hash3.hash}`);
|
|
61
61
|
|
|
62
62
|
const user4 = fromRandom('eth');
|
|
63
63
|
const hash4 = await client.declare({
|
|
64
64
|
moniker: `poke_user_${Math.round(Math.random() * 10000)}`,
|
|
65
65
|
wallet: user4,
|
|
66
66
|
});
|
|
67
|
-
console.log('view user4 account', `${endpoint}/
|
|
68
|
-
console.log('view user4 tx', `${endpoint}/
|
|
67
|
+
console.log('view user4 account', `${endpoint}/explorer/accounts/${user4.address}`);
|
|
68
|
+
console.log('view user4 tx', `${endpoint}/explorer/txs/${hash4.hash}`);
|
|
69
69
|
} catch (err) {
|
|
70
70
|
console.error(err);
|
|
71
71
|
console.log(JSON.stringify(err.errors));
|
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
const GraphQLClient = require('@ocap/client');
|
|
11
11
|
const { fromRandom } = require('@ocap/wallet');
|
|
12
12
|
|
|
13
|
-
const endpoint = process.env.
|
|
13
|
+
const endpoint = process.env.OCAP_API_HOST || 'http://127.0.0.1:4000'; // testnet
|
|
14
14
|
|
|
15
|
-
const client = new GraphQLClient(
|
|
15
|
+
const client = new GraphQLClient(`${endpoint}/api`);
|
|
16
16
|
const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout));
|
|
17
17
|
|
|
18
18
|
(async () => {
|
|
@@ -31,7 +31,7 @@ const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout)
|
|
|
31
31
|
const declare = async (wallet, moniker) => {
|
|
32
32
|
const hash = await client.declare({ moniker: `user_${moniker}`, wallet });
|
|
33
33
|
console.log(`${moniker}.declare.result`, hash);
|
|
34
|
-
console.log(`${moniker}.account.detail`, `${endpoint}/
|
|
34
|
+
console.log(`${moniker}.account.detail`, `${endpoint}/explorer/accounts/${wallet.address}`);
|
|
35
35
|
};
|
|
36
36
|
|
|
37
37
|
const checkin = async (wallet, moniker) => {
|
|
@@ -49,6 +49,10 @@ const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout)
|
|
|
49
49
|
typeUrl: 'fg:t:exchange',
|
|
50
50
|
rules: [],
|
|
51
51
|
},
|
|
52
|
+
{
|
|
53
|
+
typeUrl: 'fg:t:exchange_v2',
|
|
54
|
+
rules: [],
|
|
55
|
+
},
|
|
52
56
|
],
|
|
53
57
|
});
|
|
54
58
|
console.log(`${label}.delegate.hash`, hash);
|
|
@@ -88,16 +92,16 @@ const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout)
|
|
|
88
92
|
wallet: bob,
|
|
89
93
|
});
|
|
90
94
|
console.log('create_asset.result', hash, assetAddress);
|
|
91
|
-
console.log('view asset', `${endpoint}/
|
|
95
|
+
console.log('view asset', `${endpoint}/explorer/assets/${assetAddress}`);
|
|
92
96
|
await sleep(3000);
|
|
93
97
|
|
|
94
98
|
// 4.1 Sender: encode and sign the transaction
|
|
95
99
|
const tx1 = await client.prepareExchange({
|
|
96
|
-
receiver: bob.
|
|
100
|
+
receiver: bob.address,
|
|
97
101
|
offerToken: 5,
|
|
98
102
|
demandAssets: [assetAddress],
|
|
99
103
|
wallet: betty,
|
|
100
|
-
delegator: alice.
|
|
104
|
+
delegator: alice.address,
|
|
101
105
|
});
|
|
102
106
|
console.log('tx1', tx1);
|
|
103
107
|
|
|
@@ -105,7 +109,7 @@ const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout)
|
|
|
105
109
|
const tx2 = await client.finalizeExchange({
|
|
106
110
|
tx: tx1,
|
|
107
111
|
wallet: lily,
|
|
108
|
-
delegator: bob.
|
|
112
|
+
delegator: bob.address,
|
|
109
113
|
});
|
|
110
114
|
|
|
111
115
|
console.log('tx2', tx2);
|
|
@@ -118,7 +122,7 @@ const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout)
|
|
|
118
122
|
});
|
|
119
123
|
|
|
120
124
|
console.log('exchange hash', hashExchange);
|
|
121
|
-
console.log('view exchange', `${endpoint}/
|
|
125
|
+
console.log('view exchange', `${endpoint}/explorer/txs/${hashExchange}`);
|
|
122
126
|
} catch (err) {
|
|
123
127
|
console.error(err);
|
|
124
128
|
console.log(JSON.stringify(err.errors));
|
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
const GraphQLClient = require('@ocap/client');
|
|
11
11
|
const { fromRandom } = require('@ocap/wallet');
|
|
12
12
|
|
|
13
|
-
const endpoint = process.env.
|
|
13
|
+
const endpoint = process.env.OCAP_API_HOST || 'http://127.0.0.1:4000'; // testnet
|
|
14
14
|
|
|
15
|
-
const client = new GraphQLClient(
|
|
15
|
+
const client = new GraphQLClient(`${endpoint}/api`);
|
|
16
16
|
const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout));
|
|
17
17
|
|
|
18
18
|
(async () => {
|
|
@@ -29,7 +29,7 @@ const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout)
|
|
|
29
29
|
const declare = async (wallet, moniker) => {
|
|
30
30
|
const hash = await client.declare({ moniker: `user_${moniker}`, wallet });
|
|
31
31
|
console.log(`${moniker}.declare.result`, hash);
|
|
32
|
-
console.log(`${moniker}.account.detail`, `${endpoint}/
|
|
32
|
+
console.log(`${moniker}.account.detail`, `${endpoint}/explorer/accounts/${wallet.address}`);
|
|
33
33
|
};
|
|
34
34
|
|
|
35
35
|
const checkin = async (wallet, moniker) => {
|
|
@@ -59,6 +59,10 @@ const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout)
|
|
|
59
59
|
typeUrl: 'fg:t:exchange',
|
|
60
60
|
rules: [],
|
|
61
61
|
},
|
|
62
|
+
{
|
|
63
|
+
typeUrl: 'fg:t:exchange_v2',
|
|
64
|
+
rules: [],
|
|
65
|
+
},
|
|
62
66
|
],
|
|
63
67
|
});
|
|
64
68
|
console.log('alice.delegate.hash', hash);
|
|
@@ -77,16 +81,16 @@ const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout)
|
|
|
77
81
|
wallet: bob,
|
|
78
82
|
});
|
|
79
83
|
console.log('create_asset.result', hash, assetAddress);
|
|
80
|
-
console.log('view asset', `${endpoint}/
|
|
84
|
+
console.log('view asset', `${endpoint}/explorer/assets/${assetAddress}`);
|
|
81
85
|
await sleep(3000);
|
|
82
86
|
|
|
83
87
|
// 4.1 Sender: encode and sign the transaction
|
|
84
88
|
const tx1 = await client.prepareExchange({
|
|
85
|
-
receiver: bob.
|
|
89
|
+
receiver: bob.address,
|
|
86
90
|
offerToken: 5,
|
|
87
91
|
demandAssets: [assetAddress],
|
|
88
92
|
wallet: betty,
|
|
89
|
-
delegator: alice.
|
|
93
|
+
delegator: alice.address,
|
|
90
94
|
});
|
|
91
95
|
|
|
92
96
|
// 4.2 Receiver: do the multi sig
|
|
@@ -102,7 +106,7 @@ const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout)
|
|
|
102
106
|
});
|
|
103
107
|
|
|
104
108
|
console.log('exchange hash', hashExchange);
|
|
105
|
-
console.log('view exchange', `${endpoint}/
|
|
109
|
+
console.log('view exchange', `${endpoint}/explorer/txs/${hashExchange}`);
|
|
106
110
|
} catch (err) {
|
|
107
111
|
console.error(err);
|
|
108
112
|
console.log(JSON.stringify(err.errors));
|
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
const GraphQLClient = require('@ocap/client');
|
|
11
11
|
const { fromRandom } = require('@ocap/wallet');
|
|
12
12
|
|
|
13
|
-
const endpoint = process.env.
|
|
13
|
+
const endpoint = process.env.OCAP_API_HOST || 'http://127.0.0.1:4000'; // testnet
|
|
14
14
|
|
|
15
|
-
const client = new GraphQLClient(
|
|
15
|
+
const client = new GraphQLClient(`${endpoint}/api`);
|
|
16
16
|
const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout));
|
|
17
17
|
|
|
18
18
|
(async () => {
|
|
@@ -29,7 +29,7 @@ const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout)
|
|
|
29
29
|
const declare = async (wallet, moniker) => {
|
|
30
30
|
const hash = await client.declare({ moniker: `user_${moniker}`, wallet });
|
|
31
31
|
console.log(`${moniker}.declare.result`, hash);
|
|
32
|
-
console.log(`${moniker}.account.detail`, `${endpoint}/
|
|
32
|
+
console.log(`${moniker}.account.detail`, `${endpoint}/explorer/accounts/${wallet.address}`);
|
|
33
33
|
};
|
|
34
34
|
|
|
35
35
|
const checkin = async (wallet, moniker) => {
|
|
@@ -51,10 +51,14 @@ const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout)
|
|
|
51
51
|
// await checkin(betty, 'betty');
|
|
52
52
|
|
|
53
53
|
// delegate from alice to betty
|
|
54
|
-
const [hash] = await client.delegate({
|
|
54
|
+
const [hash, address] = await client.delegate({
|
|
55
55
|
from: alice,
|
|
56
56
|
to: betty,
|
|
57
57
|
privileges: [
|
|
58
|
+
{
|
|
59
|
+
typeUrl: 'fg:t:transfer_v2',
|
|
60
|
+
rules: [],
|
|
61
|
+
},
|
|
58
62
|
{
|
|
59
63
|
typeUrl: 'fg:t:transfer',
|
|
60
64
|
rules: [],
|
|
@@ -62,12 +66,14 @@ const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout)
|
|
|
62
66
|
],
|
|
63
67
|
});
|
|
64
68
|
console.log('alice.delegate.hash', hash);
|
|
69
|
+
const { state } = await client.getDelegateState({ address });
|
|
70
|
+
console.log(JSON.stringify(state, null, 2));
|
|
65
71
|
|
|
66
72
|
// transfer from alice to bob by betty
|
|
67
73
|
const hash2 = await client.transfer({
|
|
68
|
-
to: bob.
|
|
74
|
+
to: bob.address,
|
|
69
75
|
token: 1,
|
|
70
|
-
delegator: alice.
|
|
76
|
+
delegator: alice.address,
|
|
71
77
|
wallet: betty,
|
|
72
78
|
});
|
|
73
79
|
console.log('betty.transfer.hash', hash2);
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/* eslint-disable import/no-extraneous-dependencies */
|
|
2
|
+
/* eslint no-console:"off" */
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* This script demonstrates how to do exchange tx with graphql-client
|
|
6
|
+
* Since exchange tx requires multi-parti-signature, it's complicated
|
|
7
|
+
*
|
|
8
|
+
* How to do a multisig?
|
|
9
|
+
* First of all, for a tx that you received, generate a new structure `Multisig`.
|
|
10
|
+
* Add `signer` (the address of the signer) and `data` field
|
|
11
|
+
* (if no extra data, please keep it as default value - `nil`).
|
|
12
|
+
* Then put the new structure into the 1st element of the `tx.signatures`.
|
|
13
|
+
* Then encode the entire tx and sign it with private key as normal.
|
|
14
|
+
* Then put the signed result into the `signature` field of the `Multisig` structure
|
|
15
|
+
* of the 1st element of `tx.signatures`.
|
|
16
|
+
*
|
|
17
|
+
* Run script with: `DEBUG=@ocap/client node examples/exchange.js`
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
const GraphQLClient = require('@ocap/client');
|
|
21
|
+
const { fromRandom } = require('@ocap/wallet');
|
|
22
|
+
|
|
23
|
+
const endpoint = process.env.OCAP_API_HOST || 'http://127.0.0.1:4000'; // testnet
|
|
24
|
+
|
|
25
|
+
const client = new GraphQLClient(`${endpoint}/api`);
|
|
26
|
+
const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout));
|
|
27
|
+
|
|
28
|
+
(async () => {
|
|
29
|
+
try {
|
|
30
|
+
const sender = fromRandom();
|
|
31
|
+
const receiver = fromRandom();
|
|
32
|
+
console.log({
|
|
33
|
+
sender: sender.address,
|
|
34
|
+
receiver: receiver.address,
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
// 1. declare sender
|
|
38
|
+
let hash = await client.declare({ moniker: 'sender', wallet: sender });
|
|
39
|
+
console.log('declare.sender.result', hash);
|
|
40
|
+
console.log('view sender account', `${endpoint}/explorer/accounts/${sender.address}`);
|
|
41
|
+
|
|
42
|
+
// 2. declare receiver
|
|
43
|
+
hash = await client.declare({ moniker: 'receiver', wallet: receiver });
|
|
44
|
+
console.log('declare.receiver.result', hash);
|
|
45
|
+
console.log('view receiver account', `${endpoint}/explorer/accounts/${receiver.address}`);
|
|
46
|
+
|
|
47
|
+
// 2.1 receiver checkin
|
|
48
|
+
|
|
49
|
+
// 3. create token
|
|
50
|
+
let tokenAddress;
|
|
51
|
+
// eslint-disable-next-line prefer-const
|
|
52
|
+
[hash, tokenAddress] = await client.createToken({
|
|
53
|
+
name: 'demo token',
|
|
54
|
+
description: 'demo token',
|
|
55
|
+
symbol: `DT_${Math.floor(Math.random() * 10000)}`,
|
|
56
|
+
unit: 'D',
|
|
57
|
+
decimal: 10,
|
|
58
|
+
totalSupply: 1000,
|
|
59
|
+
wallet: sender,
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
console.log('create_asset.result', hash, tokenAddress);
|
|
63
|
+
await sleep(3000);
|
|
64
|
+
|
|
65
|
+
hash = await client.transfer({
|
|
66
|
+
to: receiver.address,
|
|
67
|
+
tokens: [{ address: tokenAddress, value: 500 }],
|
|
68
|
+
memo: 'this is the transfer secondary note',
|
|
69
|
+
wallet: sender,
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
// 4.1 Sender: encode and sign the transaction
|
|
73
|
+
const tx1 = await client.prepareExchange({
|
|
74
|
+
receiver: receiver.address,
|
|
75
|
+
offerTokens: [{ address: tokenAddress, value: 2.1 }],
|
|
76
|
+
demandTokens: [{ address: tokenAddress, value: 2.3 }],
|
|
77
|
+
wallet: sender,
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
// 4.2 Receiver: do the multi sig
|
|
81
|
+
const tx2 = await client.finalizeExchange({
|
|
82
|
+
tx: tx1,
|
|
83
|
+
wallet: receiver,
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
console.log({ tx1, tx2 });
|
|
87
|
+
|
|
88
|
+
// 4.3 Send the exchange tx
|
|
89
|
+
hash = await client.exchange({
|
|
90
|
+
tx: tx2,
|
|
91
|
+
wallet: sender,
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
console.log('exchange hash', hash);
|
|
95
|
+
console.log('exchange tx', `${endpoint}/explorer/txs/${hash}`);
|
|
96
|
+
} catch (err) {
|
|
97
|
+
console.error(err);
|
|
98
|
+
console.log(JSON.stringify(err.errors));
|
|
99
|
+
}
|
|
100
|
+
})();
|
package/examples/exchange.js
CHANGED
|
@@ -20,9 +20,9 @@
|
|
|
20
20
|
const GraphQLClient = require('@ocap/client');
|
|
21
21
|
const { fromRandom } = require('@ocap/wallet');
|
|
22
22
|
|
|
23
|
-
const endpoint = process.env.
|
|
23
|
+
const endpoint = process.env.OCAP_API_HOST || 'http://127.0.0.1:4000'; // testnet
|
|
24
24
|
|
|
25
|
-
const client = new GraphQLClient(
|
|
25
|
+
const client = new GraphQLClient(`${endpoint}/api`);
|
|
26
26
|
const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout));
|
|
27
27
|
|
|
28
28
|
(async () => {
|
|
@@ -30,19 +30,19 @@ const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout)
|
|
|
30
30
|
const sender = fromRandom();
|
|
31
31
|
const receiver = fromRandom();
|
|
32
32
|
console.log({
|
|
33
|
-
sender: sender.
|
|
34
|
-
receiver: receiver.
|
|
33
|
+
sender: sender.address,
|
|
34
|
+
receiver: receiver.address,
|
|
35
35
|
});
|
|
36
36
|
|
|
37
37
|
// 1. declare sender
|
|
38
38
|
let hash = await client.declare({ moniker: 'sender', wallet: sender });
|
|
39
39
|
console.log('declare.sender.result', hash);
|
|
40
|
-
console.log('view sender account', `${endpoint}/
|
|
40
|
+
console.log('view sender account', `${endpoint}/explorer/accounts/${sender.address}`);
|
|
41
41
|
|
|
42
42
|
// 2. declare receiver
|
|
43
43
|
hash = await client.declare({ moniker: 'receiver', wallet: receiver });
|
|
44
44
|
console.log('declare.receiver.result', hash);
|
|
45
|
-
console.log('view receiver account', `${endpoint}/
|
|
45
|
+
console.log('view receiver account', `${endpoint}/explorer/accounts/${receiver.address}`);
|
|
46
46
|
|
|
47
47
|
// 2.1 receiver checkin
|
|
48
48
|
await client.checkin({ wallet: receiver });
|
|
@@ -63,12 +63,12 @@ const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout)
|
|
|
63
63
|
wallet: sender,
|
|
64
64
|
});
|
|
65
65
|
console.log('create_asset.result', hash, assetAddress);
|
|
66
|
-
console.log('view asset', `${endpoint}/
|
|
66
|
+
console.log('view asset', `${endpoint}/explorer/assets/${assetAddress}`);
|
|
67
67
|
await sleep(2000);
|
|
68
68
|
|
|
69
69
|
// 4.1 Sender: encode and sign the transaction
|
|
70
70
|
const tx1 = await client.prepareExchange({
|
|
71
|
-
receiver: receiver.
|
|
71
|
+
receiver: receiver.address,
|
|
72
72
|
offerAssets: [assetAddress],
|
|
73
73
|
demandToken: 5,
|
|
74
74
|
wallet: sender,
|
|
@@ -89,7 +89,7 @@ const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout)
|
|
|
89
89
|
});
|
|
90
90
|
|
|
91
91
|
console.log('exchange hash', hash);
|
|
92
|
-
console.log('exchange tx', `${endpoint}/
|
|
92
|
+
console.log('exchange tx', `${endpoint}/explorer/txs/${hash}`);
|
|
93
93
|
} catch (err) {
|
|
94
94
|
console.error(err);
|
|
95
95
|
console.log(JSON.stringify(err.errors));
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
const GraphqlClient = require('@ocap/client');
|
|
10
10
|
const { fromRandom } = require('@ocap/wallet');
|
|
11
11
|
|
|
12
|
-
const endpoint = process.env.
|
|
12
|
+
const endpoint = process.env.OCAP_API_HOST || 'http://127.0.0.1:4000'; // testnet
|
|
13
13
|
|
|
14
14
|
const client = new GraphqlClient(`${endpoint}/api`);
|
|
15
15
|
const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout));
|
|
@@ -25,8 +25,8 @@ const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout)
|
|
|
25
25
|
wallet: migrateFrom,
|
|
26
26
|
});
|
|
27
27
|
|
|
28
|
-
console.log('from account', `${endpoint}/
|
|
29
|
-
console.log('from account tx', `${endpoint}/
|
|
28
|
+
console.log('from account', `${endpoint}/explorer/accounts/${migrateFrom.address}`);
|
|
29
|
+
console.log('from account tx', `${endpoint}/explorer/txs/${hash}`);
|
|
30
30
|
await sleep(3000);
|
|
31
31
|
|
|
32
32
|
// 2. migrate: with from's pk/sk
|
|
@@ -35,8 +35,8 @@ const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout)
|
|
|
35
35
|
to: migrateTo,
|
|
36
36
|
});
|
|
37
37
|
|
|
38
|
-
console.log('migrate tx', `${endpoint}/
|
|
39
|
-
console.log('to account', `${endpoint}/
|
|
38
|
+
console.log('migrate tx', `${endpoint}/explorer/txs/${hash}`);
|
|
39
|
+
console.log('to account', `${endpoint}/explorer/accounts/${migrateTo.address}`);
|
|
40
40
|
} catch (err) {
|
|
41
41
|
console.error(err);
|
|
42
42
|
console.log(JSON.stringify(err.errors));
|
package/examples/run-no-debug.sh
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
OCAP_API_HOST=http://localhost:4000 node declare.js
|
|
2
|
+
OCAP_API_HOST=http://localhost:4000 node transfer_asset.js
|
|
3
|
+
OCAP_API_HOST=http://localhost:4000 node transfer_token.js
|
|
4
|
+
OCAP_API_HOST=http://localhost:4000 node exchange.js
|
|
5
|
+
OCAP_API_HOST=http://localhost:4000 node delegate_exchange.js
|
|
6
|
+
OCAP_API_HOST=http://localhost:4000 node delegate_exchange_both.js
|
|
7
|
+
OCAP_API_HOST=http://localhost:4000 node migrate_account.js
|
|
8
|
+
OCAP_API_HOST=http://localhost:4000 node delegate_transfer.js
|
package/examples/run.sh
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
DEBUG=@ocap/*
|
|
2
|
-
DEBUG=@ocap/*
|
|
3
|
-
DEBUG=@ocap/*
|
|
4
|
-
DEBUG=@ocap/*
|
|
5
|
-
DEBUG=@ocap/*
|
|
6
|
-
DEBUG=@ocap/*
|
|
7
|
-
DEBUG=@ocap/*
|
|
8
|
-
DEBUG=@ocap/*
|
|
1
|
+
DEBUG=@ocap/* OCAP_API_HOST=http://localhost:4000 node declare.js
|
|
2
|
+
DEBUG=@ocap/* OCAP_API_HOST=http://localhost:4000 node transfer_asset.js
|
|
3
|
+
DEBUG=@ocap/* OCAP_API_HOST=http://localhost:4000 node transfer_token.js
|
|
4
|
+
DEBUG=@ocap/* OCAP_API_HOST=http://localhost:4000 node exchange.js
|
|
5
|
+
DEBUG=@ocap/* OCAP_API_HOST=http://localhost:4000 node delegate_exchange.js
|
|
6
|
+
DEBUG=@ocap/* OCAP_API_HOST=http://localhost:4000 node delegate_exchange_both.js
|
|
7
|
+
DEBUG=@ocap/* OCAP_API_HOST=http://localhost:4000 node migrate_account.js
|
|
8
|
+
DEBUG=@ocap/* OCAP_API_HOST=http://localhost:4000 node delegate_transfer.js
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
3
|
+
const Client = require('@ocap/client');
|
|
4
|
+
const { fromRandom } = require('@ocap/wallet');
|
|
5
|
+
|
|
6
|
+
const client = new Client('http://127.0.0.1:56611');
|
|
7
|
+
|
|
8
|
+
client.subscribe('tx.create', (tx) => {
|
|
9
|
+
console.log('tx.create', tx);
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
console.log('socketEndpoint', client.config.socketEndpoint());
|
|
13
|
+
client._socketClient.on('error', console.error);
|
|
14
|
+
|
|
15
|
+
const user = fromRandom();
|
|
16
|
+
client.declare({ moniker: 'user', wallet: user }).then((hash) => console.log('declared', hash));
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
const GraphqlClient = require('@ocap/client');
|
|
11
11
|
const { fromRandom } = require('@ocap/wallet');
|
|
12
12
|
|
|
13
|
-
const endpoint = process.env.
|
|
13
|
+
const endpoint = process.env.OCAP_API_HOST || 'http://127.0.0.1:4000'; // testnet
|
|
14
14
|
|
|
15
15
|
const client = new GraphqlClient(`${endpoint}/api`);
|
|
16
16
|
const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout));
|
|
@@ -20,19 +20,19 @@ const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout)
|
|
|
20
20
|
const sender = fromRandom();
|
|
21
21
|
const receiver = fromRandom();
|
|
22
22
|
console.log({
|
|
23
|
-
sender: sender.
|
|
24
|
-
receiver: receiver.
|
|
23
|
+
sender: sender.address,
|
|
24
|
+
receiver: receiver.address,
|
|
25
25
|
});
|
|
26
26
|
|
|
27
27
|
// 1. declare sender
|
|
28
28
|
let hash = await client.declare({ moniker: 'sender', wallet: sender });
|
|
29
|
-
console.log('view sender account', `${endpoint}/
|
|
30
|
-
console.log('view sender tx', `${endpoint}/
|
|
29
|
+
console.log('view sender account', `${endpoint}/explorer/accounts/${sender.address}`);
|
|
30
|
+
console.log('view sender tx', `${endpoint}/explorer/txs/${hash}`);
|
|
31
31
|
|
|
32
32
|
// 2. declare receiver
|
|
33
33
|
hash = await client.declare({ moniker: 'receiver', wallet: receiver });
|
|
34
|
-
console.log('view receiver account', `${endpoint}/
|
|
35
|
-
console.log('view receiver tx', `${endpoint}/
|
|
34
|
+
console.log('view receiver account', `${endpoint}/explorer/accounts/${receiver.address}`);
|
|
35
|
+
console.log('view receiver tx', `${endpoint}/explorer/txs/${hash}`);
|
|
36
36
|
await sleep(3000);
|
|
37
37
|
|
|
38
38
|
// 3. create asset for sender
|
|
@@ -49,18 +49,18 @@ const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout)
|
|
|
49
49
|
},
|
|
50
50
|
wallet: sender,
|
|
51
51
|
});
|
|
52
|
-
console.log('created asset', `${endpoint}/
|
|
53
|
-
console.log('created asset tx', `${endpoint}/
|
|
52
|
+
console.log('created asset', `${endpoint}/explorer/assets/${assetAddress}`);
|
|
53
|
+
console.log('created asset tx', `${endpoint}/explorer/txs/${hash}`);
|
|
54
54
|
|
|
55
55
|
// 4. transfer asset to receiver
|
|
56
56
|
await sleep(3000);
|
|
57
57
|
hash = await client.transfer({
|
|
58
|
-
to: receiver.
|
|
58
|
+
to: receiver.address,
|
|
59
59
|
assets: [assetAddress],
|
|
60
60
|
memo: 'this is the transfer note',
|
|
61
61
|
wallet: sender,
|
|
62
62
|
});
|
|
63
|
-
console.log('view transfer tx', `${endpoint}/
|
|
63
|
+
console.log('view transfer tx', `${endpoint}/explorer/txs/${hash}`);
|
|
64
64
|
} catch (err) {
|
|
65
65
|
console.error(err);
|
|
66
66
|
console.log(JSON.stringify(err.errors));
|