@functionland/react-native-fula 1.14.8 → 1.19.0
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/LICENSE +20 -20
- package/README.md +226 -214
- package/android/build.gradle +110 -110
- package/android/gradle.properties +5 -5
- package/android/src/main/AndroidManifest.xml +3 -3
- package/android/src/main/AndroidManifestNew.xml +2 -2
- package/android/src/main/java/land/fx/fula/ConfigRef.java +7 -7
- package/android/src/main/java/land/fx/fula/Cryptography.java +62 -62
- package/android/src/main/java/land/fx/fula/FulaModule.java +1435 -1466
- package/android/src/main/java/land/fx/fula/FulaPackage.java +32 -32
- package/android/src/main/java/land/fx/fula/SharedPreferenceHelper.java +65 -65
- package/android/src/main/java/land/fx/fula/StaticHelper.java +13 -13
- package/android/src/main/java/land/fx/fula/ThreadUtils.java +42 -42
- package/ios/Cryptography.swift +49 -49
- package/ios/Fula-Bridging-Header.h +3 -3
- package/ios/Fula.mm +197 -199
- package/ios/Fula.swift +1221 -1221
- package/ios/UserDataHelper.swift +143 -143
- package/lib/commonjs/index.js +2 -2
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/interfaces/augment-api-errors.js +4 -0
- package/lib/commonjs/interfaces/augment-api-errors.js.map +1 -0
- package/lib/commonjs/interfaces/augment-api-rpc.js +4 -0
- package/lib/commonjs/interfaces/augment-api-rpc.js.map +1 -0
- package/lib/commonjs/interfaces/augment-api-runtime.js +4 -0
- package/lib/commonjs/interfaces/augment-api-runtime.js.map +1 -0
- package/lib/commonjs/interfaces/augment-api.js +10 -0
- package/lib/commonjs/interfaces/augment-api.js.map +1 -0
- package/lib/commonjs/interfaces/augment-types.js +4 -0
- package/lib/commonjs/interfaces/augment-types.js.map +1 -0
- package/lib/commonjs/interfaces/fulaNativeModule.js +1 -2
- package/lib/commonjs/interfaces/fulaNativeModule.js.map +1 -1
- package/lib/commonjs/interfaces/index.js +6 -0
- package/lib/commonjs/interfaces/index.js.map +1 -0
- package/lib/commonjs/interfaces/{api-lookup.js → lookup.js} +623 -382
- package/lib/commonjs/interfaces/lookup.js.map +1 -0
- package/lib/commonjs/interfaces/registry.js +4 -0
- package/lib/commonjs/interfaces/registry.js.map +1 -0
- package/lib/commonjs/interfaces/types-lookup.js +4 -0
- package/lib/commonjs/interfaces/types-lookup.js.map +1 -0
- package/lib/commonjs/interfaces/types.js +4 -0
- package/lib/commonjs/interfaces/types.js.map +1 -0
- package/lib/commonjs/protocols/blockchain.js +123 -76
- package/lib/commonjs/protocols/blockchain.js.map +1 -1
- package/lib/commonjs/protocols/chain-api.js +151 -37
- package/lib/commonjs/protocols/chain-api.js.map +1 -1
- package/lib/commonjs/protocols/fula.js +195 -99
- package/lib/commonjs/protocols/fula.js.map +1 -1
- package/lib/commonjs/protocols/fxblox.js +3 -3
- package/lib/commonjs/protocols/fxblox.js.map +1 -1
- package/lib/commonjs/types/blockchain.js.map +1 -1
- package/lib/commonjs/types/fxblox.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/interfaces/augment-api-errors.js +9 -0
- package/lib/module/interfaces/augment-api-errors.js.map +1 -0
- package/lib/module/interfaces/augment-api-rpc.js +9 -0
- package/lib/module/interfaces/augment-api-rpc.js.map +1 -0
- package/lib/module/interfaces/augment-api-runtime.js +9 -0
- package/lib/module/interfaces/augment-api-runtime.js.map +1 -0
- package/lib/module/interfaces/augment-api.js +11 -0
- package/lib/module/interfaces/augment-api.js.map +1 -0
- package/lib/module/interfaces/augment-types.js +9 -0
- package/lib/module/interfaces/augment-types.js.map +1 -0
- package/lib/module/interfaces/fulaNativeModule.js.map +1 -1
- package/lib/module/interfaces/index.js +5 -0
- package/lib/module/interfaces/index.js.map +1 -0
- package/lib/module/interfaces/{api-lookup.js → lookup.js} +622 -380
- package/lib/module/interfaces/lookup.js.map +1 -0
- package/lib/module/interfaces/registry.js +9 -0
- package/lib/module/interfaces/registry.js.map +1 -0
- package/lib/module/interfaces/types-lookup.js +9 -0
- package/lib/module/interfaces/types-lookup.js.map +1 -0
- package/lib/module/interfaces/types.js +3 -0
- package/lib/module/interfaces/types.js.map +1 -0
- package/lib/module/protocols/blockchain.js +120 -75
- package/lib/module/protocols/blockchain.js.map +1 -1
- package/lib/module/protocols/chain-api.js +142 -31
- package/lib/module/protocols/chain-api.js.map +1 -1
- package/lib/module/protocols/fula.js +191 -99
- package/lib/module/protocols/fula.js.map +1 -1
- package/lib/module/protocols/fxblox.js +3 -3
- package/lib/module/protocols/fxblox.js.map +1 -1
- package/lib/module/types/blockchain.js.map +1 -1
- package/lib/module/types/fxblox.js.map +1 -1
- package/lib/typescript/interfaces/augment-api-errors.d.ts +442 -0
- package/lib/typescript/interfaces/augment-api-errors.d.ts.map +1 -0
- package/lib/typescript/interfaces/augment-api-rpc.d.ts +680 -0
- package/lib/typescript/interfaces/augment-api-rpc.d.ts.map +1 -0
- package/lib/typescript/interfaces/augment-api-runtime.d.ts +248 -0
- package/lib/typescript/interfaces/augment-api-runtime.d.ts.map +1 -0
- package/lib/typescript/interfaces/augment-api.d.ts +8 -0
- package/lib/typescript/interfaces/augment-api.d.ts.map +1 -0
- package/lib/typescript/interfaces/augment-types.d.ts +1224 -0
- package/lib/typescript/interfaces/augment-types.d.ts.map +1 -0
- package/lib/typescript/interfaces/fulaNativeModule.d.ts +7 -3
- package/lib/typescript/interfaces/fulaNativeModule.d.ts.map +1 -1
- package/lib/typescript/interfaces/index.d.ts +1 -0
- package/lib/typescript/interfaces/index.d.ts.map +1 -0
- package/lib/typescript/interfaces/{api-lookup.d.ts → lookup.d.ts} +441 -199
- package/lib/typescript/interfaces/lookup.d.ts.map +1 -0
- package/lib/typescript/interfaces/registry.d.ts +146 -0
- package/lib/typescript/interfaces/registry.d.ts.map +1 -0
- package/lib/typescript/interfaces/types-lookup.d.ts +1910 -0
- package/lib/typescript/interfaces/types-lookup.d.ts.map +1 -0
- package/lib/typescript/interfaces/types.d.ts +1 -0
- package/lib/typescript/interfaces/types.d.ts.map +1 -0
- package/lib/typescript/protocols/blockchain.d.ts +5 -3
- package/lib/typescript/protocols/blockchain.d.ts.map +1 -1
- package/lib/typescript/protocols/chain-api.d.ts +5 -0
- package/lib/typescript/protocols/chain-api.d.ts.map +1 -1
- package/lib/typescript/protocols/fula.d.ts +16 -0
- package/lib/typescript/protocols/fula.d.ts.map +1 -1
- package/lib/typescript/types/blockchain.d.ts +6 -0
- package/lib/typescript/types/blockchain.d.ts.map +1 -1
- package/package.json +178 -172
- package/react-native-fula.podspec +47 -47
- package/src/index.tsx +4 -4
- package/src/interfaces/augment-api-errors.ts +449 -0
- package/src/interfaces/augment-api-rpc.ts +617 -0
- package/src/interfaces/augment-api-runtime.ts +224 -0
- package/src/interfaces/augment-api.ts +10 -0
- package/src/interfaces/augment-types.ts +1230 -0
- package/src/interfaces/fulaNativeModule.ts +130 -122
- package/src/interfaces/index.ts +4 -0
- package/src/interfaces/{api-lookup.ts → lookup.ts} +1889 -1647
- package/src/interfaces/registry.ts +152 -0
- package/src/interfaces/types-lookup.ts +2043 -0
- package/src/interfaces/types.ts +3 -0
- package/src/protocols/blockchain.ts +549 -504
- package/src/protocols/chain-api.ts +148 -24
- package/src/protocols/fula.ts +419 -314
- package/src/protocols/fxblox.ts +49 -49
- package/src/types/blockchain.ts +89 -81
- package/src/types/fxblox.ts +8 -8
- package/ios/Fula.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- package/ios/Fula.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- package/ios/Fula.xcodeproj/project.xcworkspace/xcuserdata/user246549.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/ios/Fula.xcodeproj/xcuserdata/user246549.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
- package/lib/commonjs/interfaces/api-lookup.js.map +0 -1
- package/lib/module/interfaces/api-lookup.js.map +0 -1
- package/lib/typescript/interfaces/api-lookup.d.ts.map +0 -1
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import { default as EventTypes } from '../interfaces/
|
|
1
|
+
import { default as EventTypes } from '../interfaces/lookup';
|
|
2
2
|
import { ApiPromise, WsProvider } from '@polkadot/api';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
import { Keyring } from '@polkadot/keyring';
|
|
4
|
+
const {
|
|
5
|
+
cryptoWaitReady
|
|
6
|
+
} = require('@polkadot/util-crypto');
|
|
5
7
|
const types = {
|
|
6
8
|
FulaPoolPool: EventTypes.FulaPoolPool
|
|
7
9
|
};
|
|
8
10
|
export const init = async function () {
|
|
9
|
-
let wsAddress = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'wss://node3.functionyard.
|
|
11
|
+
let wsAddress = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'wss://node3.functionyard.fula.network';
|
|
10
12
|
const provider = new WsProvider(wsAddress);
|
|
11
13
|
const api = await ApiPromise.create({
|
|
12
14
|
types,
|
|
@@ -21,43 +23,106 @@ export const disconnectApi = async api => {
|
|
|
21
23
|
await api.disconnect();
|
|
22
24
|
};
|
|
23
25
|
|
|
26
|
+
/*function addDoubleSlashToSeed(seed: string): string {
|
|
27
|
+
return seed.startsWith('//') ? seed : '//' + seed;
|
|
28
|
+
}*/
|
|
29
|
+
|
|
24
30
|
/*
|
|
25
|
-
|
|
31
|
+
createManifest: This function batch uploads manifests
|
|
26
32
|
*/
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
33
|
+
function serialize(obj) {
|
|
34
|
+
return JSON.stringify(obj);
|
|
35
|
+
}
|
|
36
|
+
function createManifest(cids, poolId) {
|
|
37
|
+
let replicationFactor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 4;
|
|
38
|
+
const manifest_metadata = cids.map(cid => ({
|
|
39
|
+
job: {
|
|
40
|
+
work: 'Storage',
|
|
41
|
+
engine: 'IPFS',
|
|
42
|
+
uri: cid
|
|
43
|
+
}
|
|
44
|
+
}));
|
|
45
|
+
|
|
46
|
+
// Serialize manifest_metadata to Uint8Array or string
|
|
47
|
+
const serializedManifest = manifest_metadata.map(item => serialize(item)); // Implement `serialize` accordingly
|
|
48
|
+
|
|
49
|
+
// Serialize cids to Uint8Array or string
|
|
50
|
+
const serializedCids = cids.map(cid => serialize(cid)); // Implement `serialize` accordingly
|
|
51
|
+
|
|
52
|
+
// Create arrays for `poolId` and `replicationFactor`
|
|
53
|
+
const poolIds = new Array(cids.length).fill(poolId);
|
|
54
|
+
const replicationFactors = new Array(cids.length).fill(replicationFactor);
|
|
55
|
+
const batchUploadManifest = {
|
|
56
|
+
manifest: serializedManifest,
|
|
57
|
+
cids: serializedCids,
|
|
58
|
+
poolId: poolIds,
|
|
59
|
+
replicationFactor: replicationFactors
|
|
60
|
+
};
|
|
61
|
+
return batchUploadManifest;
|
|
62
|
+
}
|
|
63
|
+
export const batchUploadManifest = async function (api, seed, cids_i, poolId_i) {
|
|
64
|
+
let replicationFactor_i = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 4;
|
|
65
|
+
const {
|
|
66
|
+
manifest,
|
|
67
|
+
cids,
|
|
68
|
+
poolId,
|
|
69
|
+
replicationFactor
|
|
70
|
+
} = createManifest(cids_i, poolId_i, replicationFactor_i);
|
|
32
71
|
console.log('uploadManifest in react-native started');
|
|
33
72
|
try {
|
|
73
|
+
var _api;
|
|
34
74
|
if (api === undefined) {
|
|
35
75
|
api = await init();
|
|
36
76
|
}
|
|
37
77
|
|
|
38
78
|
// Simple transaction
|
|
39
|
-
const keyring = new Keyring({
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
79
|
+
const keyring = new Keyring({
|
|
80
|
+
type: 'sr25519'
|
|
81
|
+
});
|
|
82
|
+
const userKey = keyring.addFromUri(seed, {
|
|
83
|
+
name: 'account'
|
|
84
|
+
}, 'sr25519');
|
|
85
|
+
console.log(`${userKey.meta.name}: has address ${userKey.address} with publicKey [${userKey.publicKey}]`);
|
|
86
|
+
if ((_api = api) !== null && _api !== void 0 && (_api = _api.tx) !== null && _api !== void 0 && (_api = _api.fula) !== null && _api !== void 0 && _api.batchUploadManifest) {
|
|
87
|
+
const submitExtrinsic = api.tx.fula.batchUploadManifest(manifest, cids, poolId, replicationFactor);
|
|
88
|
+
let unsub; // Define a variable to hold the unsub function
|
|
89
|
+
|
|
90
|
+
if (submitExtrinsic) {
|
|
91
|
+
return new Promise((resolve, reject) => {
|
|
92
|
+
submitExtrinsic.signAndSend(userKey, _ref => {
|
|
93
|
+
let {
|
|
94
|
+
status
|
|
95
|
+
} = _ref;
|
|
96
|
+
if (status.isInBlock || status.isFinalized) {
|
|
97
|
+
if (unsub) {
|
|
98
|
+
unsub(); // Call unsub before resolving the promise
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
resolve({
|
|
102
|
+
hash: status.asInBlock.toString()
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}).then(unsubFn => {
|
|
106
|
+
unsub = unsubFn; // Store the unsub function once it becomes available
|
|
107
|
+
}).catch(error => {
|
|
108
|
+
if (unsub) {
|
|
109
|
+
unsub(); // Call unsub before rejecting the promise
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
console.log(':( transaction failed', error);
|
|
113
|
+
reject(error);
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
} else {
|
|
117
|
+
return Promise.reject(new TypeError('submitExtrinsic not constructed'));
|
|
118
|
+
}
|
|
119
|
+
} else {
|
|
120
|
+
return Promise.reject(new TypeError('api not initialized'));
|
|
121
|
+
}
|
|
57
122
|
} catch (err) {
|
|
58
123
|
return Promise.reject(err);
|
|
59
124
|
}
|
|
60
|
-
}
|
|
125
|
+
};
|
|
61
126
|
|
|
62
127
|
/*
|
|
63
128
|
listPools: This function takes start index and length and returns a promise of an object that contains a list of pools. Each pool in the list contains the poolID, owner, poolName, parent, and participants of the pool
|
|
@@ -67,11 +132,12 @@ export const listPools = async function (api) {
|
|
|
67
132
|
let length = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;
|
|
68
133
|
console.log('listPools in react-native started');
|
|
69
134
|
try {
|
|
135
|
+
var _api2, _api3;
|
|
70
136
|
if (api === undefined) {
|
|
71
137
|
api = await init();
|
|
72
138
|
}
|
|
73
139
|
// Type guard to assure TypeScript that api is not undefined
|
|
74
|
-
if (!api
|
|
140
|
+
if (!((_api2 = api) !== null && _api2 !== void 0 && (_api2 = _api2.query) !== null && _api2 !== void 0 && (_api2 = _api2.pool) !== null && _api2 !== void 0 && _api2.lastPoolId) || !((_api3 = api) !== null && _api3 !== void 0 && (_api3 = _api3.query) !== null && _api3 !== void 0 && (_api3 = _api3.pool) !== null && _api3 !== void 0 && _api3.pools)) {
|
|
75
141
|
throw new Error('Failed to initialize api or api.query.pool');
|
|
76
142
|
}
|
|
77
143
|
const pools = {
|
|
@@ -104,11 +170,12 @@ export const listPools = async function (api) {
|
|
|
104
170
|
export const checkJoinRequest = async (api, poolId, accountId) => {
|
|
105
171
|
console.log('checkJoinRequest in react-native started');
|
|
106
172
|
try {
|
|
173
|
+
var _api4;
|
|
107
174
|
if (api === undefined) {
|
|
108
175
|
api = await init();
|
|
109
176
|
}
|
|
110
177
|
// Type guard to assure TypeScript that api is not undefined
|
|
111
|
-
if (!api
|
|
178
|
+
if (!((_api4 = api) !== null && _api4 !== void 0 && (_api4 = _api4.query) !== null && _api4 !== void 0 && (_api4 = _api4.pool) !== null && _api4 !== void 0 && _api4.poolRequests)) {
|
|
112
179
|
throw new Error('Failed to initialize api or api.query.pool');
|
|
113
180
|
}
|
|
114
181
|
const poolRequest = await api.query.pool.poolRequests(poolId, accountId);
|
|
@@ -121,4 +188,48 @@ export const checkJoinRequest = async (api, poolId, accountId) => {
|
|
|
121
188
|
return Promise.reject(err);
|
|
122
189
|
}
|
|
123
190
|
};
|
|
191
|
+
function isAccountInfo(obj) {
|
|
192
|
+
return 'data' in obj && 'free' in obj.data;
|
|
193
|
+
}
|
|
194
|
+
/*
|
|
195
|
+
checkAccountExsists: This function takes accountId and checks if the account exists
|
|
196
|
+
*/
|
|
197
|
+
export const checkAccountBalance = async (api, accountId) => {
|
|
198
|
+
console.log('checkAcocuntExsists in react-native started');
|
|
199
|
+
try {
|
|
200
|
+
var _api5;
|
|
201
|
+
if (api === undefined) {
|
|
202
|
+
api = await init();
|
|
203
|
+
}
|
|
204
|
+
// Type guard to assure TypeScript that api is not undefined
|
|
205
|
+
if (!((_api5 = api) !== null && _api5 !== void 0 && (_api5 = _api5.query) !== null && _api5 !== void 0 && (_api5 = _api5.system) !== null && _api5 !== void 0 && _api5.account)) {
|
|
206
|
+
throw new Error('Failed to initialize api or api.query.account');
|
|
207
|
+
}
|
|
208
|
+
let balance;
|
|
209
|
+
let accountInfo = await api.query.system.account(accountId);
|
|
210
|
+
if (isAccountInfo(accountInfo)) {
|
|
211
|
+
balance = accountInfo.data.free;
|
|
212
|
+
}
|
|
213
|
+
if (balance && balance !== '0' && balance > 0) {
|
|
214
|
+
return Promise.resolve(balance.toHuman());
|
|
215
|
+
}
|
|
216
|
+
return Promise.resolve('0');
|
|
217
|
+
} catch (err) {
|
|
218
|
+
return Promise.reject(err);
|
|
219
|
+
}
|
|
220
|
+
};
|
|
221
|
+
export const getAccountIdFromSeed = async seed => {
|
|
222
|
+
try {
|
|
223
|
+
await cryptoWaitReady();
|
|
224
|
+
const keyring = new Keyring({
|
|
225
|
+
type: 'sr25519'
|
|
226
|
+
});
|
|
227
|
+
const account = keyring.addFromUri(seed, {
|
|
228
|
+
name: 'account'
|
|
229
|
+
}, 'sr25519');
|
|
230
|
+
return Promise.resolve(account.address);
|
|
231
|
+
} catch (err) {
|
|
232
|
+
return Promise.reject(err);
|
|
233
|
+
}
|
|
234
|
+
};
|
|
124
235
|
//# sourceMappingURL=chain-api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["default","EventTypes","ApiPromise","WsProvider","types","FulaPoolPool","init","wsAddress","arguments","length","undefined","provider","api","create","catch","err","console","log","Promise","reject","disconnectApi","disconnect","listPools","start","query","pool","lastPoolId","pools","Error","finalReturnedId","Number","toHuman","i","poolInfo","formattedPoolInfo","
|
|
1
|
+
{"version":3,"names":["default","EventTypes","ApiPromise","WsProvider","Keyring","cryptoWaitReady","require","types","FulaPoolPool","init","wsAddress","arguments","length","undefined","provider","api","create","catch","err","console","log","Promise","reject","disconnectApi","disconnect","serialize","obj","JSON","stringify","createManifest","cids","poolId","replicationFactor","manifest_metadata","map","cid","job","work","engine","uri","serializedManifest","item","serializedCids","poolIds","Array","fill","replicationFactors","batchUploadManifest","manifest","seed","cids_i","poolId_i","replicationFactor_i","_api","keyring","type","userKey","addFromUri","name","meta","address","publicKey","tx","fula","submitExtrinsic","unsub","resolve","signAndSend","_ref","status","isInBlock","isFinalized","hash","asInBlock","toString","then","unsubFn","error","TypeError","listPools","start","_api2","_api3","query","pool","lastPoolId","pools","Error","finalReturnedId","Number","toHuman","i","poolInfo","formattedPoolInfo","parse","push","checkJoinRequest","accountId","_api4","poolRequests","poolRequest","formattedPoolRequest","isAccountInfo","data","checkAccountBalance","_api5","system","account","balance","accountInfo","free","getAccountIdFromSeed"],"sourceRoot":"..\\..\\..\\src","sources":["protocols/chain-api.ts"],"mappings":"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"}
|