@ocap/client 1.6.3 → 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 +997 -590
- 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 +9048 -4442
- package/dist/schema/graphql.txt +2 -2
- package/dist/types.js +2143 -1924
- package/dist/types.js.map +1 -1
- package/docs/QUERIES.md +1547 -1494
- package/docs/README.md +3269 -3138
- 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 +997 -590
- package/lib/node.js +0 -6
- package/lib/node.js.map +1 -1
- package/lib/schema/graphql.json +9048 -4442
- package/lib/schema/graphql.txt +2 -2
- package/lib/types.js +2143 -1924
- 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
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
/* eslint-disable import/no-extraneous-dependencies */
|
|
2
|
-
/* eslint no-console:"off" */
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* This script demonstrates how to do atomic swap between two chains
|
|
6
|
-
* This script requires 2 running chain
|
|
7
|
-
*
|
|
8
|
-
* Run script with: `DEBUG=@ocap/client node examples/atomic_swap.js`
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
const GraphQLClient = require('@ocap/client');
|
|
12
|
-
const { getRandomBytes, Hasher } = require('@ocap/mcrypto');
|
|
13
|
-
const { fromRandom } = require('@ocap/wallet');
|
|
14
|
-
|
|
15
|
-
const appChain = new GraphQLClient({ endpoint: 'http://localhost:8210/api' });
|
|
16
|
-
const assetChain = new GraphQLClient({ endpoint: 'http://localhost:8211/api' });
|
|
17
|
-
|
|
18
|
-
const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout));
|
|
19
|
-
|
|
20
|
-
(async () => {
|
|
21
|
-
try {
|
|
22
|
-
const alice = fromRandom(); // buyer
|
|
23
|
-
const bob = fromRandom(); // seller
|
|
24
|
-
const betty = fromRandom();
|
|
25
|
-
const lily = fromRandom();
|
|
26
|
-
console.log({
|
|
27
|
-
alice: alice.toAddress(),
|
|
28
|
-
bob: bob.toAddress(),
|
|
29
|
-
betty: betty.toAddress(),
|
|
30
|
-
lily: lily.toAddress(),
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
const declare = async (wallet, moniker) => {
|
|
34
|
-
let hash = await appChain.declare({ moniker, wallet });
|
|
35
|
-
console.log(`declare.appChain.${moniker}`, hash);
|
|
36
|
-
|
|
37
|
-
hash = await assetChain.declare({ moniker, wallet });
|
|
38
|
-
console.log(`declare.assetChain.${moniker}`, hash);
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
const delegate = async (from, to) => {
|
|
42
|
-
const params = {
|
|
43
|
-
from,
|
|
44
|
-
to,
|
|
45
|
-
privileges: [
|
|
46
|
-
{ typeUrl: 'fg:t:setup_swap', rules: [] },
|
|
47
|
-
{ typeUrl: 'fg:t:revoke_swap', rules: [] },
|
|
48
|
-
{ typeUrl: 'fg:t:retrieve_swap', rules: [] },
|
|
49
|
-
],
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
let [hash] = await appChain.delegate(params);
|
|
53
|
-
console.log('delegate.appChain.hash', hash);
|
|
54
|
-
|
|
55
|
-
[hash] = await assetChain.delegate(params);
|
|
56
|
-
console.log('delegate.assetChain.hash', hash);
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
// declare
|
|
60
|
-
await declare(alice, 'user_alice');
|
|
61
|
-
await declare(bob, 'user_bob');
|
|
62
|
-
await declare(betty, 'user_betty');
|
|
63
|
-
await declare(lily, 'user_lily');
|
|
64
|
-
await sleep(3000);
|
|
65
|
-
|
|
66
|
-
// delegate
|
|
67
|
-
await delegate(alice, betty);
|
|
68
|
-
await delegate(bob, lily);
|
|
69
|
-
await sleep(3000);
|
|
70
|
-
|
|
71
|
-
// 3. ensure asset for seller on app chain
|
|
72
|
-
const ensureSellerAsset = async () => {
|
|
73
|
-
const [hash, address] = await appChain.createAsset({
|
|
74
|
-
moniker: 'asset',
|
|
75
|
-
data: {
|
|
76
|
-
typeUrl: 'json',
|
|
77
|
-
value: {
|
|
78
|
-
key: 'value2',
|
|
79
|
-
sn: Math.random(),
|
|
80
|
-
},
|
|
81
|
-
},
|
|
82
|
-
wallet: bob,
|
|
83
|
-
});
|
|
84
|
-
console.log('ensureSellerAsset', hash, address);
|
|
85
|
-
return address;
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
// ensure token for buyer on asset chain
|
|
89
|
-
const ensureBuyerToken = async () => {
|
|
90
|
-
const hash = await assetChain.checkin({ wallet: alice });
|
|
91
|
-
console.log('ensureSellerAsset', hash);
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
// setup swap on asset chain
|
|
95
|
-
const doBuyerSetup = async (asset, hashlock) => {
|
|
96
|
-
const hash = await assetChain.setupSwap({
|
|
97
|
-
token: 10,
|
|
98
|
-
assets: [],
|
|
99
|
-
receiver: bob.toAddress(),
|
|
100
|
-
delegator: alice.toAddress(),
|
|
101
|
-
hashlock,
|
|
102
|
-
wallet: betty,
|
|
103
|
-
});
|
|
104
|
-
console.log('doBuyerSetup', hash);
|
|
105
|
-
return hash;
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
// setup swap on app chain
|
|
109
|
-
const doSellerSetup = async (asset, hashlock) => {
|
|
110
|
-
const hash = await appChain.setupSwap({
|
|
111
|
-
token: 0,
|
|
112
|
-
assets: [asset],
|
|
113
|
-
receiver: alice.toAddress(),
|
|
114
|
-
delegator: bob.toAddress(),
|
|
115
|
-
hashlock,
|
|
116
|
-
wallet: lily,
|
|
117
|
-
});
|
|
118
|
-
console.log('doSellerSetup', hash);
|
|
119
|
-
return hash;
|
|
120
|
-
};
|
|
121
|
-
|
|
122
|
-
// retrieve swap on app chain
|
|
123
|
-
const doBuyerRetrieve = async (address, hashkey) => {
|
|
124
|
-
const hash = await appChain.retrieveSwap({
|
|
125
|
-
address,
|
|
126
|
-
hashkey,
|
|
127
|
-
delegator: alice.toAddress(),
|
|
128
|
-
wallet: betty,
|
|
129
|
-
});
|
|
130
|
-
console.log('doBuyerRetrieve', hash);
|
|
131
|
-
};
|
|
132
|
-
|
|
133
|
-
// retrieve swap on asset chain
|
|
134
|
-
const doSellerRetrieve = async (address, hashkey) => {
|
|
135
|
-
const hash = await assetChain.retrieveSwap({
|
|
136
|
-
address,
|
|
137
|
-
hashkey,
|
|
138
|
-
delegator: bob.toAddress(),
|
|
139
|
-
wallet: lily,
|
|
140
|
-
});
|
|
141
|
-
console.log('doSellerRetrieve', hash);
|
|
142
|
-
};
|
|
143
|
-
|
|
144
|
-
// token and asset
|
|
145
|
-
const asset = await ensureSellerAsset();
|
|
146
|
-
console.log('asset', asset);
|
|
147
|
-
await ensureBuyerToken();
|
|
148
|
-
await sleep(3000);
|
|
149
|
-
|
|
150
|
-
// Setup swap by buyer
|
|
151
|
-
const hashkey = getRandomBytes(32);
|
|
152
|
-
const hashlock = Hasher.SHA3.hash256(hashkey);
|
|
153
|
-
const [buyerSetupHash, buyerSwapAddress] = await doBuyerSetup(asset, hashlock);
|
|
154
|
-
const [sellerSetupHash, sellerSwapAddress] = await doSellerSetup(asset, hashlock);
|
|
155
|
-
console.log('setup', {
|
|
156
|
-
hashkey,
|
|
157
|
-
hashlock,
|
|
158
|
-
buyerSetupHash,
|
|
159
|
-
buyerSwapAddress,
|
|
160
|
-
sellerSetupHash,
|
|
161
|
-
sellerSwapAddress,
|
|
162
|
-
});
|
|
163
|
-
await sleep(5000);
|
|
164
|
-
|
|
165
|
-
// Inspect swap
|
|
166
|
-
const buyerSwapState = await assetChain.getSwapState({ address: buyerSwapAddress });
|
|
167
|
-
const sellerSwapState = await appChain.getSwapState({ address: sellerSwapAddress });
|
|
168
|
-
console.log('buyerSwapState', buyerSwapState);
|
|
169
|
-
console.log('sellerSwapState', sellerSwapState);
|
|
170
|
-
|
|
171
|
-
await doBuyerRetrieve(sellerSwapAddress, hashkey);
|
|
172
|
-
await doSellerRetrieve(buyerSwapAddress, hashkey);
|
|
173
|
-
} catch (err) {
|
|
174
|
-
console.error(err);
|
|
175
|
-
console.log(JSON.stringify(err.errors));
|
|
176
|
-
}
|
|
177
|
-
})();
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/* eslint-disable import/no-extraneous-dependencies */
|
|
2
|
-
/* eslint no-console:"off" */
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* This script demonstrates how to declare account and get some free token for the account
|
|
6
|
-
*
|
|
7
|
-
* Run script with: `DEBUG=@ocap/client node examples/get_free_token.js`
|
|
8
|
-
*/
|
|
9
|
-
const GraphqlClient = require('@ocap/client');
|
|
10
|
-
const { fromRandom } = require('@ocap/wallet');
|
|
11
|
-
|
|
12
|
-
const endpoint = process.env.FORGE_API_HOST || 'http://127.0.0.1:8210'; // testnet
|
|
13
|
-
|
|
14
|
-
const client = new GraphqlClient(`${endpoint}/api`);
|
|
15
|
-
(async () => {
|
|
16
|
-
try {
|
|
17
|
-
const wallet = fromRandom();
|
|
18
|
-
let res = await client.declare({
|
|
19
|
-
moniker: `poke_user_${Math.round(Math.random() * 10000)}`,
|
|
20
|
-
wallet,
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
console.log('declare.result', res);
|
|
24
|
-
console.log('view account', `${endpoint}/node/explorer/accounts/${wallet.toAddress()}`);
|
|
25
|
-
|
|
26
|
-
res = await client.checkin({ wallet });
|
|
27
|
-
console.log('poke.result', res);
|
|
28
|
-
console.log('view tx', `${endpoint}/node/explorer/txs/${res}`);
|
|
29
|
-
} catch (err) {
|
|
30
|
-
console.error(err);
|
|
31
|
-
console.log(JSON.stringify(err.errors));
|
|
32
|
-
}
|
|
33
|
-
})();
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/* eslint-disable import/no-extraneous-dependencies */
|
|
2
|
-
/* eslint no-console:"off" */
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* This script demonstrates how to subscribe a transfer
|
|
6
|
-
*
|
|
7
|
-
* Run script with: `DEBUG=@ocap/client node examples/subscribe_new_block.js`
|
|
8
|
-
*/
|
|
9
|
-
const GraphqlClient = require('../lib/node');
|
|
10
|
-
|
|
11
|
-
const endpoint = process.env.FORGE_API_HOST || 'http://127.0.0.1:8210';
|
|
12
|
-
// const endpoint = process.env.FORGE_API_HOST || 'https://xenon.abtnetwork.io';
|
|
13
|
-
// const endpoint = process.env.FORGE_API_HOST || 'https://playground.network.arcblockio.cn';
|
|
14
|
-
|
|
15
|
-
const client = new GraphqlClient(`${endpoint}/api`);
|
|
16
|
-
|
|
17
|
-
(async () => {
|
|
18
|
-
try {
|
|
19
|
-
const subscription = await client.doRawSubscription(`
|
|
20
|
-
subscription {
|
|
21
|
-
subscribe(topic: "end_block") {
|
|
22
|
-
topic
|
|
23
|
-
endBlock {
|
|
24
|
-
height
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
`);
|
|
29
|
-
|
|
30
|
-
subscription.on('data', (d) => console.log('onNewBlock', d));
|
|
31
|
-
subscription.on('error', console.error);
|
|
32
|
-
} catch (err) {
|
|
33
|
-
console.error(err);
|
|
34
|
-
console.log(JSON.stringify(err.errors));
|
|
35
|
-
}
|
|
36
|
-
})();
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/* eslint-disable import/no-extraneous-dependencies */
|
|
2
|
-
/* eslint no-console:"off" */
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* This script demonstrates how to subscribe a transfer
|
|
6
|
-
*
|
|
7
|
-
* Run script with: `DEBUG=@ocap/client node examples/subscribe_transfer.js`
|
|
8
|
-
*/
|
|
9
|
-
const { fromRandom } = require('@ocap/wallet');
|
|
10
|
-
const GraphqlClient = require('../lib/node');
|
|
11
|
-
|
|
12
|
-
const endpoint = process.env.FORGE_API_HOST || 'http://127.0.0.1:8210';
|
|
13
|
-
// const endpoint = process.env.FORGE_API_HOST || 'https://xenon.abtnetwork.io';
|
|
14
|
-
// const endpoint = process.env.FORGE_API_HOST || 'https://playground.network.arcblockio.cn';
|
|
15
|
-
|
|
16
|
-
const client = new GraphqlClient(`${endpoint}/api`);
|
|
17
|
-
const sleep = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout));
|
|
18
|
-
|
|
19
|
-
(async () => {
|
|
20
|
-
try {
|
|
21
|
-
const subscription = await client.doRawSubscription(`
|
|
22
|
-
subscription {
|
|
23
|
-
subscribe(topic: "transfer") {
|
|
24
|
-
topic
|
|
25
|
-
transfer {
|
|
26
|
-
chainId
|
|
27
|
-
delegator
|
|
28
|
-
from
|
|
29
|
-
itxJson
|
|
30
|
-
nonce
|
|
31
|
-
pk
|
|
32
|
-
signature
|
|
33
|
-
signatures {
|
|
34
|
-
delegator
|
|
35
|
-
pk
|
|
36
|
-
signature
|
|
37
|
-
signer
|
|
38
|
-
data {
|
|
39
|
-
typeUrl
|
|
40
|
-
value
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
`);
|
|
47
|
-
|
|
48
|
-
subscription.on('data', (d) => console.log('onTransfer', d));
|
|
49
|
-
subscription.on('error', console.error);
|
|
50
|
-
|
|
51
|
-
const sender = fromRandom();
|
|
52
|
-
const receiver = fromRandom();
|
|
53
|
-
console.log({ sender: sender.toJSON() });
|
|
54
|
-
console.log({ receiver: receiver.toJSON() });
|
|
55
|
-
|
|
56
|
-
const declare = async (wallet, name) => client.declare({ moniker: name, wallet });
|
|
57
|
-
const checkin = async (wallet) => client.checkin({ wallet });
|
|
58
|
-
|
|
59
|
-
// 1. declare user
|
|
60
|
-
console.log('declare sender', await declare(sender, 'sender'));
|
|
61
|
-
console.log('declare receiver', await declare(receiver, 'receiver'));
|
|
62
|
-
await sleep(3000);
|
|
63
|
-
|
|
64
|
-
// 2. checkin
|
|
65
|
-
console.log('checkin sender', await checkin(sender));
|
|
66
|
-
console.log('checkin receiver', await checkin(receiver));
|
|
67
|
-
await sleep(3000);
|
|
68
|
-
|
|
69
|
-
// 5. Transfer token
|
|
70
|
-
const hash = await client.transfer({
|
|
71
|
-
to: receiver.toAddress(),
|
|
72
|
-
token: 10,
|
|
73
|
-
wallet: sender,
|
|
74
|
-
});
|
|
75
|
-
console.log('transfer.hash', hash);
|
|
76
|
-
} catch (err) {
|
|
77
|
-
console.error(err);
|
|
78
|
-
console.log(JSON.stringify(err.errors));
|
|
79
|
-
}
|
|
80
|
-
})();
|