@helium/lazy-distributor-sdk 0.0.5 → 0.0.7
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/lib/cjs/functions/distributeCompressionRewards.js +51 -0
- package/lib/cjs/functions/distributeCompressionRewards.js.map +1 -0
- package/lib/cjs/functions/initializeCompressionRecipient.js +47 -0
- package/lib/cjs/functions/initializeCompressionRecipient.js.map +1 -0
- package/lib/cjs/index.js +8 -4
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/pdas.js +12 -1
- package/lib/cjs/pdas.js.map +1 -1
- package/lib/cjs/resolvers.js +61 -8
- package/lib/cjs/resolvers.js.map +1 -1
- package/lib/esm/src/functions/distributeCompressionRewards.js +36 -0
- package/lib/esm/src/functions/distributeCompressionRewards.js.map +1 -0
- package/lib/esm/src/functions/initializeCompressionRecipient.js +32 -0
- package/lib/esm/src/functions/initializeCompressionRecipient.js.map +1 -0
- package/lib/esm/src/index.js +5 -3
- package/lib/esm/src/index.js.map +1 -1
- package/lib/esm/src/pdas.js +10 -0
- package/lib/esm/src/pdas.js.map +1 -1
- package/lib/esm/src/resolvers.js +62 -9
- package/lib/esm/src/resolvers.js.map +1 -1
- package/lib/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/types/src/functions/distributeCompressionRewards.d.ts +134 -0
- package/lib/types/src/functions/distributeCompressionRewards.d.ts.map +1 -0
- package/lib/types/src/functions/initializeCompressionRecipient.d.ts +109 -0
- package/lib/types/src/functions/initializeCompressionRecipient.d.ts.map +1 -0
- package/lib/types/src/index.d.ts +3 -1
- package/lib/types/src/index.d.ts.map +1 -1
- package/lib/types/src/pdas.d.ts +1 -0
- package/lib/types/src/pdas.d.ts.map +1 -1
- package/lib/types/src/resolvers.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.distributeCompressionRewards = void 0;
|
|
13
|
+
const spl_utils_1 = require("@helium/spl-utils");
|
|
14
|
+
function distributeCompressionRewards({ program, assetId, lazyDistributor, getAssetFn = spl_utils_1.getAsset, getAssetProofFn = spl_utils_1.getAssetProof, }) {
|
|
15
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16
|
+
// @ts-ignore
|
|
17
|
+
const endpoint = program.provider.connection._rpcEndpoint;
|
|
18
|
+
const asset = yield getAssetFn(endpoint, assetId);
|
|
19
|
+
if (!asset) {
|
|
20
|
+
throw new Error("No asset with ID " + assetId.toBase58());
|
|
21
|
+
}
|
|
22
|
+
const assetProof = yield getAssetProofFn(endpoint, assetId);
|
|
23
|
+
if (!assetProof) {
|
|
24
|
+
throw new Error("No asset proof with ID " + assetId.toBase58());
|
|
25
|
+
}
|
|
26
|
+
const { root, proof, leaf, treeId, nodeIndex } = assetProof;
|
|
27
|
+
const { ownership: { owner } } = asset;
|
|
28
|
+
return program.methods
|
|
29
|
+
.distributeCompressionRewardsV0({
|
|
30
|
+
hash: leaf.toBuffer().toJSON().data,
|
|
31
|
+
root: root.toBuffer().toJSON().data,
|
|
32
|
+
index: nodeIndex,
|
|
33
|
+
})
|
|
34
|
+
.accounts({
|
|
35
|
+
common: {
|
|
36
|
+
lazyDistributor,
|
|
37
|
+
owner,
|
|
38
|
+
},
|
|
39
|
+
merkleTree: treeId,
|
|
40
|
+
})
|
|
41
|
+
.remainingAccounts(proof.map((p) => {
|
|
42
|
+
return {
|
|
43
|
+
pubkey: p,
|
|
44
|
+
isWritable: false,
|
|
45
|
+
isSigner: false,
|
|
46
|
+
};
|
|
47
|
+
}));
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
exports.distributeCompressionRewards = distributeCompressionRewards;
|
|
51
|
+
//# sourceMappingURL=distributeCompressionRewards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"distributeCompressionRewards.js","sourceRoot":"","sources":["../../../src/functions/distributeCompressionRewards.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,iDAA+E;AAI/E,SAAsB,4BAA4B,CAAkB,EAClE,OAAO,EACP,OAAO,EACP,eAAe,EACf,UAAU,GAAG,oBAAQ,EACrB,eAAe,GAAG,yBAAa,GAQhC;;QACC,aAAa;QACb,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC;QAC1D,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC3D;QACD,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;SACjE;QACD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;QAC5D,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC;QAEvC,OAAO,OAAO,CAAC,OAAO;aACnB,8BAA8B,CAAC;YAC9B,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI;YACnC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI;YACnC,KAAK,EAAE,SAAS;SACjB,CAAC;aACD,QAAQ,CAAC;YACR,MAAM,EAAE;gBACN,eAAe;gBACf,KAAK;aACN;YACD,UAAU,EAAE,MAAM;SACnB,CAAC;aACD,iBAAiB,CAChB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACd,OAAO;gBACL,MAAM,EAAE,CAAC;gBACT,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,KAAK;aAChB,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;IACN,CAAC;CAAA;AAjDD,oEAiDC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.initializeCompressionRecipient = void 0;
|
|
13
|
+
const spl_utils_1 = require("@helium/spl-utils");
|
|
14
|
+
function initializeCompressionRecipient({ program, assetId, lazyDistributor,
|
|
15
|
+
// @ts-ignore
|
|
16
|
+
owner = program.provider.wallet.publicKey, getAssetProofFn = spl_utils_1.getAssetProof, }) {
|
|
17
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
18
|
+
// @ts-ignore
|
|
19
|
+
const endpoint = program.provider.connection._rpcEndpoint;
|
|
20
|
+
const asset = yield getAssetProofFn(endpoint, assetId);
|
|
21
|
+
if (!asset) {
|
|
22
|
+
throw new Error("No asset with ID " + assetId.toBase58());
|
|
23
|
+
}
|
|
24
|
+
const { root, proof, leaf, treeId, nodeIndex } = asset;
|
|
25
|
+
return program.methods
|
|
26
|
+
.initializeCompressionRecipientV0({
|
|
27
|
+
hash: leaf.toBuffer().toJSON().data,
|
|
28
|
+
root: root.toBuffer().toJSON().data,
|
|
29
|
+
index: nodeIndex,
|
|
30
|
+
})
|
|
31
|
+
.accounts({
|
|
32
|
+
lazyDistributor,
|
|
33
|
+
merkleTree: treeId,
|
|
34
|
+
owner: owner,
|
|
35
|
+
delegate: owner,
|
|
36
|
+
})
|
|
37
|
+
.remainingAccounts(proof.map((p) => {
|
|
38
|
+
return {
|
|
39
|
+
pubkey: p,
|
|
40
|
+
isWritable: false,
|
|
41
|
+
isSigner: false,
|
|
42
|
+
};
|
|
43
|
+
}));
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
exports.initializeCompressionRecipient = initializeCompressionRecipient;
|
|
47
|
+
//# sourceMappingURL=initializeCompressionRecipient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initializeCompressionRecipient.js","sourceRoot":"","sources":["../../../src/functions/initializeCompressionRecipient.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,iDAA8D;AAM9D,SAAsB,8BAA8B,CAAC,EACnD,OAAO,EACP,OAAO,EACP,eAAe;AACf,aAAa;AACb,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EACzC,eAAe,GAAG,yBAAa,GAOhC;;QACC,aAAa;QACb,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC;QAC1D,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC3D;QACD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAEvD,OAAO,OAAO,CAAC,OAAO;aACnB,gCAAgC,CAAC;YAChC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI;YACnC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI;YACnC,KAAK,EAAE,SAAS;SACjB,CAAC;aACD,QAAQ,CAAC;YACR,eAAe;YACf,UAAU,EAAE,MAAM;YAClB,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,KAAK;SAChB,CAAC;aACD,iBAAiB,CAChB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACd,OAAO;gBACL,MAAM,EAAE,CAAC;gBACT,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,KAAK;aAChB,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;IACN,CAAC;CAAA;AA3CD,wEA2CC"}
|
package/lib/cjs/index.js
CHANGED
|
@@ -23,10 +23,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
23
23
|
});
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.init = void 0;
|
|
26
|
+
exports.init = exports.initializeCompressionRecipient = exports.distributeCompressionRewards = void 0;
|
|
27
27
|
const anchor_1 = require("@project-serum/anchor");
|
|
28
28
|
const constants_1 = require("./constants");
|
|
29
29
|
const resolvers_1 = require("./resolvers");
|
|
30
|
+
var distributeCompressionRewards_1 = require("./functions/distributeCompressionRewards");
|
|
31
|
+
Object.defineProperty(exports, "distributeCompressionRewards", { enumerable: true, get: function () { return distributeCompressionRewards_1.distributeCompressionRewards; } });
|
|
32
|
+
var initializeCompressionRecipient_1 = require("./functions/initializeCompressionRecipient");
|
|
33
|
+
Object.defineProperty(exports, "initializeCompressionRecipient", { enumerable: true, get: function () { return initializeCompressionRecipient_1.initializeCompressionRecipient; } });
|
|
34
|
+
__exportStar(require("./constants"), exports);
|
|
35
|
+
__exportStar(require("./pdas"), exports);
|
|
36
|
+
__exportStar(require("./resolvers"), exports);
|
|
30
37
|
function init(provider, programId = constants_1.PROGRAM_ID, idl) {
|
|
31
38
|
return __awaiter(this, void 0, void 0, function* () {
|
|
32
39
|
if (!idl) {
|
|
@@ -39,7 +46,4 @@ function init(provider, programId = constants_1.PROGRAM_ID, idl) {
|
|
|
39
46
|
});
|
|
40
47
|
}
|
|
41
48
|
exports.init = init;
|
|
42
|
-
__exportStar(require("./constants"), exports);
|
|
43
|
-
__exportStar(require("./pdas"), exports);
|
|
44
|
-
__exportStar(require("./resolvers"), exports);
|
|
45
49
|
//# sourceMappingURL=index.js.map
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,kDAAqE;AAErE,2CAAyC;AACzC,2CAAuD;AAEvD,SAAsB,IAAI,CACxB,QAAwB,EACxB,YAAuB,sBAAU,EACjC,GAAgB;;QAEhB,IAAI,CAAC,GAAG,EAAE;YACR,GAAG,GAAG,MAAM,gBAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;SACnD;QACD,MAAM,eAAe,GAAG,IAAI,gBAAO,CACjC,GAAsB,EACtB,SAAS,EACT,QAAQ,EACR,SAAS,EACT,GAAG,EAAE;YACH,OAAO,oCAAwB,CAAC;QAClC,CAAC,CAC0B,CAAC;QAC9B,OAAO,eAAe,CAAC;IACzB,CAAC;CAAA;AAlBD,oBAkBC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,kDAAqE;AAErE,2CAAyC;AACzC,2CAAuD;AAEvD,yFAAwF;AAA/E,4IAAA,4BAA4B,OAAA;AACrC,6FAA4F;AAAnF,gJAAA,8BAA8B,OAAA;AAEvC,8CAA4B;AAC5B,yCAAuB;AACvB,8CAA4B;AAE5B,SAAsB,IAAI,CACxB,QAAwB,EACxB,YAAuB,sBAAU,EACjC,GAAgB;;QAEhB,IAAI,CAAC,GAAG,EAAE;YACR,GAAG,GAAG,MAAM,gBAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;SACnD;QACD,MAAM,eAAe,GAAG,IAAI,gBAAO,CACjC,GAAsB,EACtB,SAAS,EACT,QAAQ,EACR,SAAS,EACT,GAAG,EAAE;YACH,OAAO,oCAAwB,CAAC;QAClC,CAAC,CAC0B,CAAC;QAC9B,OAAO,eAAe,CAAC;IACzB,CAAC;CAAA;AAlBD,oBAkBC"}
|
package/lib/cjs/pdas.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.recipientKey = exports.lazyDistributorKey = void 0;
|
|
3
|
+
exports.compressedRecipientKey = exports.recipientKey = exports.lazyDistributorKey = void 0;
|
|
4
4
|
const web3_js_1 = require("@solana/web3.js");
|
|
5
5
|
const constants_1 = require("./constants");
|
|
6
6
|
function lazyDistributorKey(mint, programId = constants_1.PROGRAM_ID) {
|
|
@@ -11,4 +11,15 @@ function recipientKey(lazyDistributor, mint, programId = constants_1.PROGRAM_ID)
|
|
|
11
11
|
return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("recipient", "utf-8"), lazyDistributor.toBuffer(), mint.toBuffer()], programId);
|
|
12
12
|
}
|
|
13
13
|
exports.recipientKey = recipientKey;
|
|
14
|
+
function compressedRecipientKey(lazyDistributor, merkleTree, index, programId = constants_1.PROGRAM_ID) {
|
|
15
|
+
const indexBuf = Buffer.alloc(4);
|
|
16
|
+
indexBuf.writeInt32LE(index);
|
|
17
|
+
return web3_js_1.PublicKey.findProgramAddressSync([
|
|
18
|
+
Buffer.from("recipient", "utf-8"),
|
|
19
|
+
lazyDistributor.toBuffer(),
|
|
20
|
+
merkleTree.toBuffer(),
|
|
21
|
+
indexBuf
|
|
22
|
+
], programId);
|
|
23
|
+
}
|
|
24
|
+
exports.compressedRecipientKey = compressedRecipientKey;
|
|
14
25
|
//# sourceMappingURL=pdas.js.map
|
package/lib/cjs/pdas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdas.js","sourceRoot":"","sources":["../../src/pdas.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAC5C,2CAAyC;AAGzC,SAAgB,kBAAkB,CAChC,IAAe,EACf,YAAuB,sBAAU;IAEjC,OAAO,mBAAS,CAAC,sBAAsB,CACrC,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAC3D,SAAS,CACV,CAAC;AACJ,CAAC;AARD,gDAQC;AAED,SAAgB,YAAY,CAC1B,eAA0B,EAC1B,IAAe,EACf,YAAuB,sBAAU;IAEjC,OAAO,mBAAS,CAAC,sBAAsB,CACrC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAChF,SAAS,CACV,CAAC;AACJ,CAAC;AATD,oCASC"}
|
|
1
|
+
{"version":3,"file":"pdas.js","sourceRoot":"","sources":["../../src/pdas.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAC5C,2CAAyC;AAGzC,SAAgB,kBAAkB,CAChC,IAAe,EACf,YAAuB,sBAAU;IAEjC,OAAO,mBAAS,CAAC,sBAAsB,CACrC,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAC3D,SAAS,CACV,CAAC;AACJ,CAAC;AARD,gDAQC;AAED,SAAgB,YAAY,CAC1B,eAA0B,EAC1B,IAAe,EACf,YAAuB,sBAAU;IAEjC,OAAO,mBAAS,CAAC,sBAAsB,CACrC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAChF,SAAS,CACV,CAAC;AACJ,CAAC;AATD,oCASC;AAED,SAAgB,sBAAsB,CACpC,eAA0B,EAC1B,UAAqB,EACrB,KAAa,EACb,YAAuB,sBAAU;IAEjC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,mBAAS,CAAC,sBAAsB,CACrC;QACE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC;QACjC,eAAe,CAAC,QAAQ,EAAE;QAC1B,UAAU,CAAC,QAAQ,EAAE;QACrB,QAAQ;KACT,EACD,SAAS,CACV,CAAC;AACJ,CAAC;AAjBD,wDAiBC"}
|
package/lib/cjs/resolvers.js
CHANGED
|
@@ -15,11 +15,35 @@ const mpl_token_metadata_1 = require("@metaplex-foundation/mpl-token-metadata");
|
|
|
15
15
|
const spl_token_1 = require("@solana/spl-token");
|
|
16
16
|
const web3_js_1 = require("@solana/web3.js");
|
|
17
17
|
const circuit_breaker_sdk_1 = require("@helium/circuit-breaker-sdk");
|
|
18
|
-
|
|
18
|
+
const pdas_1 = require("./pdas");
|
|
19
|
+
exports.lazyDistributorResolvers = (0, spl_utils_1.combineResolvers)((0, spl_utils_1.resolveIndividual)(({ path }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
20
|
+
switch (path[path.length - 1]) {
|
|
21
|
+
case "tokenMetadataProgram":
|
|
22
|
+
return new web3_js_1.PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s");
|
|
23
|
+
case "bubblegumProgram":
|
|
24
|
+
return new web3_js_1.PublicKey("BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY");
|
|
25
|
+
case "compressionProgram":
|
|
26
|
+
return new web3_js_1.PublicKey("cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK");
|
|
27
|
+
case "logWrapper":
|
|
28
|
+
return new web3_js_1.PublicKey("noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV");
|
|
29
|
+
default:
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
})), (0, spl_utils_1.ataResolver)({
|
|
19
33
|
instruction: "initializeLazyDistributorV0",
|
|
20
34
|
account: "rewardsEscrow",
|
|
21
35
|
mint: "rewardsMint",
|
|
22
36
|
owner: "lazyDistributor",
|
|
37
|
+
}), (0, spl_utils_1.ataResolver)({
|
|
38
|
+
instruction: "distributeRewardsV0",
|
|
39
|
+
account: "common.destinationAccount",
|
|
40
|
+
mint: "common.rewardsMint",
|
|
41
|
+
owner: "common.owner",
|
|
42
|
+
}), (0, spl_utils_1.ataResolver)({
|
|
43
|
+
instruction: "distributeCompressionRewardsV0",
|
|
44
|
+
account: "common.destinationAccount",
|
|
45
|
+
mint: "common.rewardsMint",
|
|
46
|
+
owner: "common.owner",
|
|
23
47
|
}), circuit_breaker_sdk_1.circuitBreakerResolvers, (0, spl_utils_1.resolveIndividual)(({ path, accounts, idlIx }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
24
48
|
if (path[path.length - 1] === "targetMetadata") {
|
|
25
49
|
if (!accounts.mint) {
|
|
@@ -31,20 +55,49 @@ exports.lazyDistributorResolvers = (0, spl_utils_1.combineResolvers)((0, spl_uti
|
|
|
31
55
|
accounts.mint.toBuffer(),
|
|
32
56
|
], mpl_token_metadata_1.PROGRAM_ID))[0];
|
|
33
57
|
}
|
|
34
|
-
})), ({ accounts,
|
|
58
|
+
})), ({ accounts, idlIx, args }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
59
|
+
let resolved = 0;
|
|
60
|
+
const common = accounts.common;
|
|
61
|
+
if (idlIx.name === "distributeCompressionRewardsV0" &&
|
|
62
|
+
accounts.merkleTree &&
|
|
63
|
+
common.lazyDistributor &&
|
|
64
|
+
!common.recipient) {
|
|
65
|
+
common.recipient = (0, pdas_1.compressedRecipientKey)(common.lazyDistributor, accounts.merkleTree, args[2])[0];
|
|
66
|
+
resolved++;
|
|
67
|
+
}
|
|
68
|
+
if (idlIx.name === "distributeRewardsV0" &&
|
|
69
|
+
accounts.mint &&
|
|
70
|
+
accounts.lazyDistributor &&
|
|
71
|
+
!common.recipient) {
|
|
72
|
+
common.recipient = (0, pdas_1.recipientKey)(common.lazyDistributor, accounts.mint)[0];
|
|
73
|
+
resolved++;
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
resolved,
|
|
77
|
+
accounts,
|
|
78
|
+
};
|
|
79
|
+
}), ({ accounts, provider, idlIx }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
35
80
|
let resolved = 0;
|
|
36
81
|
if (idlIx.name === "distributeRewardsV0" &&
|
|
82
|
+
// @ts-ignore
|
|
37
83
|
(!accounts.recipientMintAccount ||
|
|
38
|
-
|
|
39
|
-
!accounts.
|
|
40
|
-
|
|
84
|
+
// @ts-ignore
|
|
85
|
+
!accounts.common.destinationAccount ||
|
|
86
|
+
// @ts-ignore
|
|
87
|
+
!accounts.common.owner)) {
|
|
88
|
+
// @ts-ignore
|
|
89
|
+
const recipient = accounts.common.recipient;
|
|
41
90
|
const recipientAcc = yield provider.connection.getAccountInfo(recipient);
|
|
42
91
|
const recipientMint = new web3_js_1.PublicKey(recipientAcc.data.subarray(8 + 32, 8 + 32 + 32));
|
|
43
92
|
const recipientMintAccount = (yield provider.connection.getTokenLargestAccounts(recipientMint)).value[0].address;
|
|
44
93
|
const recipientMintTokenAccount = yield (0, spl_token_1.getAccount)(provider.connection, recipientMintAccount);
|
|
45
|
-
const destinationAccount = yield (0, spl_token_1.getAssociatedTokenAddress)(
|
|
46
|
-
|
|
47
|
-
accounts.
|
|
94
|
+
const destinationAccount = yield (0, spl_token_1.getAssociatedTokenAddress)(
|
|
95
|
+
// @ts-ignore
|
|
96
|
+
accounts.common.rewardsMint, recipientMintTokenAccount.owner);
|
|
97
|
+
// @ts-ignore
|
|
98
|
+
accounts.common.owner = recipientMintTokenAccount.owner;
|
|
99
|
+
// @ts-ignore
|
|
100
|
+
accounts.common.destinationAccount = destinationAccount;
|
|
48
101
|
accounts.recipientMintAccount = recipientMintAccount;
|
|
49
102
|
resolved += 1;
|
|
50
103
|
}
|
package/lib/cjs/resolvers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../../src/resolvers.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAI2B;AAC3B,gFAAkG;AAClG,iDAA0E;AAC1E,6CAA4C;AAC5C,qEAAsE;
|
|
1
|
+
{"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../../src/resolvers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { getAsset, getAssetProof } from "@helium/spl-utils";
|
|
2
|
+
export async function distributeCompressionRewards({ program, assetId, lazyDistributor, getAssetFn = getAsset, getAssetProofFn = getAssetProof, }) {
|
|
3
|
+
// @ts-ignore
|
|
4
|
+
const endpoint = program.provider.connection._rpcEndpoint;
|
|
5
|
+
const asset = await getAssetFn(endpoint, assetId);
|
|
6
|
+
if (!asset) {
|
|
7
|
+
throw new Error("No asset with ID " + assetId.toBase58());
|
|
8
|
+
}
|
|
9
|
+
const assetProof = await getAssetProofFn(endpoint, assetId);
|
|
10
|
+
if (!assetProof) {
|
|
11
|
+
throw new Error("No asset proof with ID " + assetId.toBase58());
|
|
12
|
+
}
|
|
13
|
+
const { root, proof, leaf, treeId, nodeIndex } = assetProof;
|
|
14
|
+
const { ownership: { owner } } = asset;
|
|
15
|
+
return program.methods
|
|
16
|
+
.distributeCompressionRewardsV0({
|
|
17
|
+
hash: leaf.toBuffer().toJSON().data,
|
|
18
|
+
root: root.toBuffer().toJSON().data,
|
|
19
|
+
index: nodeIndex,
|
|
20
|
+
})
|
|
21
|
+
.accounts({
|
|
22
|
+
common: {
|
|
23
|
+
lazyDistributor,
|
|
24
|
+
owner,
|
|
25
|
+
},
|
|
26
|
+
merkleTree: treeId,
|
|
27
|
+
})
|
|
28
|
+
.remainingAccounts(proof.map((p) => {
|
|
29
|
+
return {
|
|
30
|
+
pubkey: p,
|
|
31
|
+
isWritable: false,
|
|
32
|
+
isSigner: false,
|
|
33
|
+
};
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=distributeCompressionRewards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"distributeCompressionRewards.js","sourceRoot":"","sources":["../../../../src/functions/distributeCompressionRewards.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,QAAQ,EAAE,aAAa,EAAc,MAAM,mBAAmB,CAAC;AAI/E,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAkB,EAClE,OAAO,EACP,OAAO,EACP,eAAe,EACf,UAAU,GAAG,QAAQ,EACrB,eAAe,GAAG,aAAa,GAQhC;IACC,aAAa;IACb,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC;IAC1D,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;KAC3D;IACD,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;KACjE;IACD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;IAC5D,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC;IAEvC,OAAO,OAAO,CAAC,OAAO;SACnB,8BAA8B,CAAC;QAC9B,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI;QACnC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI;QACnC,KAAK,EAAE,SAAS;KACjB,CAAC;SACD,QAAQ,CAAC;QACR,MAAM,EAAE;YACN,eAAe;YACf,KAAK;SACN;QACD,UAAU,EAAE,MAAM;KACnB,CAAC;SACD,iBAAiB,CAChB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACd,OAAO;YACL,MAAM,EAAE,CAAC;YACT,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,KAAK;SAChB,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { getAssetProof } from "@helium/spl-utils";
|
|
2
|
+
export async function initializeCompressionRecipient({ program, assetId, lazyDistributor,
|
|
3
|
+
// @ts-ignore
|
|
4
|
+
owner = program.provider.wallet.publicKey, getAssetProofFn = getAssetProof, }) {
|
|
5
|
+
// @ts-ignore
|
|
6
|
+
const endpoint = program.provider.connection._rpcEndpoint;
|
|
7
|
+
const asset = await getAssetProofFn(endpoint, assetId);
|
|
8
|
+
if (!asset) {
|
|
9
|
+
throw new Error("No asset with ID " + assetId.toBase58());
|
|
10
|
+
}
|
|
11
|
+
const { root, proof, leaf, treeId, nodeIndex } = asset;
|
|
12
|
+
return program.methods
|
|
13
|
+
.initializeCompressionRecipientV0({
|
|
14
|
+
hash: leaf.toBuffer().toJSON().data,
|
|
15
|
+
root: root.toBuffer().toJSON().data,
|
|
16
|
+
index: nodeIndex,
|
|
17
|
+
})
|
|
18
|
+
.accounts({
|
|
19
|
+
lazyDistributor,
|
|
20
|
+
merkleTree: treeId,
|
|
21
|
+
owner: owner,
|
|
22
|
+
delegate: owner,
|
|
23
|
+
})
|
|
24
|
+
.remainingAccounts(proof.map((p) => {
|
|
25
|
+
return {
|
|
26
|
+
pubkey: p,
|
|
27
|
+
isWritable: false,
|
|
28
|
+
isSigner: false,
|
|
29
|
+
};
|
|
30
|
+
}));
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=initializeCompressionRecipient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initializeCompressionRecipient.js","sourceRoot":"","sources":["../../../../src/functions/initializeCompressionRecipient.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAM9D,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,EACnD,OAAO,EACP,OAAO,EACP,eAAe;AACf,aAAa;AACb,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EACzC,eAAe,GAAG,aAAa,GAOhC;IACC,aAAa;IACb,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC;IAC1D,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACvD,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;KAC3D;IACD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAEvD,OAAO,OAAO,CAAC,OAAO;SACnB,gCAAgC,CAAC;QAChC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI;QACnC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI;QACnC,KAAK,EAAE,SAAS;KACjB,CAAC;SACD,QAAQ,CAAC;QACR,eAAe;QACf,UAAU,EAAE,MAAM;QAClB,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,KAAK;KAChB,CAAC;SACD,iBAAiB,CAChB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACd,OAAO;YACL,MAAM,EAAE,CAAC;YACT,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,KAAK;SAChB,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACN,CAAC"}
|
package/lib/esm/src/index.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { Program } from "@project-serum/anchor";
|
|
2
2
|
import { PROGRAM_ID } from "./constants";
|
|
3
3
|
import { lazyDistributorResolvers } from "./resolvers";
|
|
4
|
+
export { distributeCompressionRewards } from "./functions/distributeCompressionRewards";
|
|
5
|
+
export { initializeCompressionRecipient } from "./functions/initializeCompressionRecipient";
|
|
6
|
+
export * from "./constants";
|
|
7
|
+
export * from "./pdas";
|
|
8
|
+
export * from "./resolvers";
|
|
4
9
|
export async function init(provider, programId = PROGRAM_ID, idl) {
|
|
5
10
|
if (!idl) {
|
|
6
11
|
idl = await Program.fetchIdl(programId, provider);
|
|
@@ -10,7 +15,4 @@ export async function init(provider, programId = PROGRAM_ID, idl) {
|
|
|
10
15
|
});
|
|
11
16
|
return lazyDistributor;
|
|
12
17
|
}
|
|
13
|
-
export * from "./constants";
|
|
14
|
-
export * from "./pdas";
|
|
15
|
-
export * from "./resolvers";
|
|
16
18
|
//# sourceMappingURL=index.js.map
|
package/lib/esm/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,QAAwB,EACxB,YAAuB,UAAU,EACjC,GAAgB;IAEhB,IAAI,CAAC,GAAG,EAAE;QACR,GAAG,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;KACnD;IACD,MAAM,eAAe,GAAG,IAAI,OAAO,CACjC,GAAsB,EACtB,SAAS,EACT,QAAQ,EACR,SAAS,EACT,GAAG,EAAE;QACH,OAAO,wBAAwB,CAAC;IAClC,CAAC,CAC0B,CAAC;IAC9B,OAAO,eAAe,CAAC;AACzB,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,4BAA4B,EAAE,MAAM,0CAA0C,CAAC;AACxF,OAAO,EAAE,8BAA8B,EAAE,MAAM,4CAA4C,CAAC;AAE5F,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAE5B,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,QAAwB,EACxB,YAAuB,UAAU,EACjC,GAAgB;IAEhB,IAAI,CAAC,GAAG,EAAE;QACR,GAAG,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;KACnD;IACD,MAAM,eAAe,GAAG,IAAI,OAAO,CACjC,GAAsB,EACtB,SAAS,EACT,QAAQ,EACR,SAAS,EACT,GAAG,EAAE;QACH,OAAO,wBAAwB,CAAC;IAClC,CAAC,CAC0B,CAAC;IAC9B,OAAO,eAAe,CAAC;AACzB,CAAC"}
|
package/lib/esm/src/pdas.js
CHANGED
|
@@ -6,4 +6,14 @@ export function lazyDistributorKey(mint, programId = PROGRAM_ID) {
|
|
|
6
6
|
export function recipientKey(lazyDistributor, mint, programId = PROGRAM_ID) {
|
|
7
7
|
return PublicKey.findProgramAddressSync([Buffer.from("recipient", "utf-8"), lazyDistributor.toBuffer(), mint.toBuffer()], programId);
|
|
8
8
|
}
|
|
9
|
+
export function compressedRecipientKey(lazyDistributor, merkleTree, index, programId = PROGRAM_ID) {
|
|
10
|
+
const indexBuf = Buffer.alloc(4);
|
|
11
|
+
indexBuf.writeInt32LE(index);
|
|
12
|
+
return PublicKey.findProgramAddressSync([
|
|
13
|
+
Buffer.from("recipient", "utf-8"),
|
|
14
|
+
lazyDistributor.toBuffer(),
|
|
15
|
+
merkleTree.toBuffer(),
|
|
16
|
+
indexBuf
|
|
17
|
+
], programId);
|
|
18
|
+
}
|
|
9
19
|
//# sourceMappingURL=pdas.js.map
|
package/lib/esm/src/pdas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdas.js","sourceRoot":"","sources":["../../../src/pdas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,UAAU,kBAAkB,CAChC,IAAe,EACf,YAAuB,UAAU;IAEjC,OAAO,SAAS,CAAC,sBAAsB,CACrC,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAC3D,SAAS,CACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,eAA0B,EAC1B,IAAe,EACf,YAAuB,UAAU;IAEjC,OAAO,SAAS,CAAC,sBAAsB,CACrC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAChF,SAAS,CACV,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"pdas.js","sourceRoot":"","sources":["../../../src/pdas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,UAAU,kBAAkB,CAChC,IAAe,EACf,YAAuB,UAAU;IAEjC,OAAO,SAAS,CAAC,sBAAsB,CACrC,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAC3D,SAAS,CACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,eAA0B,EAC1B,IAAe,EACf,YAAuB,UAAU;IAEjC,OAAO,SAAS,CAAC,sBAAsB,CACrC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAChF,SAAS,CACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,eAA0B,EAC1B,UAAqB,EACrB,KAAa,EACb,YAAuB,UAAU;IAEjC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,SAAS,CAAC,sBAAsB,CACrC;QACE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC;QACjC,eAAe,CAAC,QAAQ,EAAE;QAC1B,UAAU,CAAC,QAAQ,EAAE;QACrB,QAAQ;KACT,EACD,SAAS,CACV,CAAC;AACJ,CAAC"}
|
package/lib/esm/src/resolvers.js
CHANGED
|
@@ -1,13 +1,37 @@
|
|
|
1
|
-
import { ataResolver, combineResolvers, resolveIndividual } from "@helium/spl-utils";
|
|
1
|
+
import { ataResolver, combineResolvers, resolveIndividual, } from "@helium/spl-utils";
|
|
2
2
|
import { PROGRAM_ID as TOKEN_METADATA_PROGRAM_ID } from "@metaplex-foundation/mpl-token-metadata";
|
|
3
3
|
import { getAccount, getAssociatedTokenAddress } from "@solana/spl-token";
|
|
4
4
|
import { PublicKey } from "@solana/web3.js";
|
|
5
5
|
import { circuitBreakerResolvers } from "@helium/circuit-breaker-sdk";
|
|
6
|
-
|
|
6
|
+
import { compressedRecipientKey, recipientKey } from "./pdas";
|
|
7
|
+
export const lazyDistributorResolvers = combineResolvers(resolveIndividual(async ({ path }) => {
|
|
8
|
+
switch (path[path.length - 1]) {
|
|
9
|
+
case "tokenMetadataProgram":
|
|
10
|
+
return new PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s");
|
|
11
|
+
case "bubblegumProgram":
|
|
12
|
+
return new PublicKey("BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY");
|
|
13
|
+
case "compressionProgram":
|
|
14
|
+
return new PublicKey("cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK");
|
|
15
|
+
case "logWrapper":
|
|
16
|
+
return new PublicKey("noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV");
|
|
17
|
+
default:
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
}), ataResolver({
|
|
7
21
|
instruction: "initializeLazyDistributorV0",
|
|
8
22
|
account: "rewardsEscrow",
|
|
9
23
|
mint: "rewardsMint",
|
|
10
24
|
owner: "lazyDistributor",
|
|
25
|
+
}), ataResolver({
|
|
26
|
+
instruction: "distributeRewardsV0",
|
|
27
|
+
account: "common.destinationAccount",
|
|
28
|
+
mint: "common.rewardsMint",
|
|
29
|
+
owner: "common.owner",
|
|
30
|
+
}), ataResolver({
|
|
31
|
+
instruction: "distributeCompressionRewardsV0",
|
|
32
|
+
account: "common.destinationAccount",
|
|
33
|
+
mint: "common.rewardsMint",
|
|
34
|
+
owner: "common.owner",
|
|
11
35
|
}), circuitBreakerResolvers, resolveIndividual(async ({ path, accounts, idlIx }) => {
|
|
12
36
|
if (path[path.length - 1] === "targetMetadata") {
|
|
13
37
|
if (!accounts.mint) {
|
|
@@ -19,20 +43,49 @@ export const lazyDistributorResolvers = combineResolvers(ataResolver({
|
|
|
19
43
|
accounts.mint.toBuffer(),
|
|
20
44
|
], TOKEN_METADATA_PROGRAM_ID))[0];
|
|
21
45
|
}
|
|
22
|
-
}), async ({ accounts,
|
|
46
|
+
}), async ({ accounts, idlIx, args }) => {
|
|
47
|
+
let resolved = 0;
|
|
48
|
+
const common = accounts.common;
|
|
49
|
+
if (idlIx.name === "distributeCompressionRewardsV0" &&
|
|
50
|
+
accounts.merkleTree &&
|
|
51
|
+
common.lazyDistributor &&
|
|
52
|
+
!common.recipient) {
|
|
53
|
+
common.recipient = compressedRecipientKey(common.lazyDistributor, accounts.merkleTree, args[2])[0];
|
|
54
|
+
resolved++;
|
|
55
|
+
}
|
|
56
|
+
if (idlIx.name === "distributeRewardsV0" &&
|
|
57
|
+
accounts.mint &&
|
|
58
|
+
accounts.lazyDistributor &&
|
|
59
|
+
!common.recipient) {
|
|
60
|
+
common.recipient = recipientKey(common.lazyDistributor, accounts.mint)[0];
|
|
61
|
+
resolved++;
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
resolved,
|
|
65
|
+
accounts,
|
|
66
|
+
};
|
|
67
|
+
}, async ({ accounts, provider, idlIx }) => {
|
|
23
68
|
let resolved = 0;
|
|
24
69
|
if (idlIx.name === "distributeRewardsV0" &&
|
|
70
|
+
// @ts-ignore
|
|
25
71
|
(!accounts.recipientMintAccount ||
|
|
26
|
-
|
|
27
|
-
!accounts.
|
|
28
|
-
|
|
72
|
+
// @ts-ignore
|
|
73
|
+
!accounts.common.destinationAccount ||
|
|
74
|
+
// @ts-ignore
|
|
75
|
+
!accounts.common.owner)) {
|
|
76
|
+
// @ts-ignore
|
|
77
|
+
const recipient = accounts.common.recipient;
|
|
29
78
|
const recipientAcc = await provider.connection.getAccountInfo(recipient);
|
|
30
79
|
const recipientMint = new PublicKey(recipientAcc.data.subarray(8 + 32, 8 + 32 + 32));
|
|
31
80
|
const recipientMintAccount = (await provider.connection.getTokenLargestAccounts(recipientMint)).value[0].address;
|
|
32
81
|
const recipientMintTokenAccount = await getAccount(provider.connection, recipientMintAccount);
|
|
33
|
-
const destinationAccount = await getAssociatedTokenAddress(
|
|
34
|
-
|
|
35
|
-
accounts.
|
|
82
|
+
const destinationAccount = await getAssociatedTokenAddress(
|
|
83
|
+
// @ts-ignore
|
|
84
|
+
accounts.common.rewardsMint, recipientMintTokenAccount.owner);
|
|
85
|
+
// @ts-ignore
|
|
86
|
+
accounts.common.owner = recipientMintTokenAccount.owner;
|
|
87
|
+
// @ts-ignore
|
|
88
|
+
accounts.common.destinationAccount = destinationAccount;
|
|
36
89
|
accounts.recipientMintAccount = recipientMintAccount;
|
|
37
90
|
resolved += 1;
|
|
38
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../../../src/resolvers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../../../src/resolvers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,IAAI,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAClG,OAAO,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAG9D,MAAM,CAAC,MAAM,wBAAwB,GAAG,gBAAgB,CACtD,iBAAiB,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACnC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;QAC7B,KAAK,sBAAsB;YACzB,OAAO,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;QACtE,KAAK,kBAAkB;YACrB,OAAO,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;QACvE,KAAK,oBAAoB;YACvB,OAAO,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;QACtE,KAAK,YAAY;YACf,OAAO,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;QACtE;YACE,OAAO;KACV;AACH,CAAC,CAAC,EACF,WAAW,CAAC;IACV,WAAW,EAAE,6BAA6B;IAC1C,OAAO,EAAE,eAAe;IACxB,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,iBAAiB;CACzB,CAAC,EACF,WAAW,CAAC;IACV,WAAW,EAAE,qBAAqB;IAClC,OAAO,EAAE,2BAA2B;IACpC,IAAI,EAAE,oBAAoB;IAC1B,KAAK,EAAE,cAAc;CACtB,CAAC,EACF,WAAW,CAAC;IACV,WAAW,EAAE,gCAAgC;IAC7C,OAAO,EAAE,2BAA2B;IACpC,IAAI,EAAE,oBAAoB;IAC1B,KAAK,EAAE,cAAc;CACtB,CAAC,EACF,uBAAuB,EACvB,iBAAiB,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;IACpD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,gBAAgB,EAAE;QAC9C,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;YAClB,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;SACpC;QACD,OAAO,CACL,MAAM,SAAS,CAAC,kBAAkB,CAChC;YACE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;YAChC,yBAAyB,CAAC,QAAQ,EAAE;YACnC,QAAQ,CAAC,IAAkB,CAAC,QAAQ,EAAE;SACxC,EACD,yBAAyB,CAC1B,CACF,CAAC,CAAC,CAAC,CAAC;KACN;AACH,CAAC,CAAC,EACF,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;IAClC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAkB,CAAC;IAC3C,IACE,KAAK,CAAC,IAAI,KAAK,gCAAgC;QAC/C,QAAQ,CAAC,UAAU;QACnB,MAAM,CAAC,eAAe;QACtB,CAAC,MAAM,CAAC,SAAS,EACjB;QACA,MAAM,CAAC,SAAS,GAAG,sBAAsB,CACvC,MAAM,CAAC,eAA4B,EACnC,QAAQ,CAAC,UAAuB,EAChC,IAAI,CAAC,CAAC,CAAC,CACR,CAAC,CAAC,CAAC,CAAC;QACL,QAAQ,EAAE,CAAC;KACZ;IACD,IACE,KAAK,CAAC,IAAI,KAAK,qBAAqB;QACpC,QAAQ,CAAC,IAAI;QACb,QAAQ,CAAC,eAAe;QACxB,CAAC,MAAM,CAAC,SAAS,EACjB;QACA,MAAM,CAAC,SAAS,GAAG,YAAY,CAC7B,MAAM,CAAC,eAA4B,EACnC,QAAQ,CAAC,IAAiB,CAC3B,CAAC,CAAC,CAAC,CAAC;QACL,QAAQ,EAAE,CAAC;KACZ;IAED,OAAO;QACL,QAAQ;QACR,QAAQ;KACT,CAAC;AACJ,CAAC,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;IACtC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IACE,KAAK,CAAC,IAAI,KAAK,qBAAqB;QACpC,aAAa;QACb,CAAC,CAAC,QAAQ,CAAC,oBAAoB;YAC7B,aAAa;YACb,CAAC,QAAQ,CAAC,MAAM,CAAC,kBAAkB;YACnC,aAAa;YACb,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EACzB;QACA,aAAa;QACb,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAsB,CAAC;QACzD,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACzE,MAAM,aAAa,GAAG,IAAI,SAAS,CACjC,YAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CACjD,CAAC;QACF,MAAM,oBAAoB,GAAG,CAC3B,MAAM,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC,aAAa,CAAC,CACjE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACnB,MAAM,yBAAyB,GAAG,MAAM,UAAU,CAChD,QAAQ,CAAC,UAAU,EACnB,oBAAoB,CACrB,CAAC;QACF,MAAM,kBAAkB,GAAG,MAAM,yBAAyB;QACxD,aAAa;QACb,QAAQ,CAAC,MAAM,CAAC,WAAwB,EACxC,yBAAyB,CAAC,KAAK,CAChC,CAAC;QACF,aAAa;QACb,QAAQ,CAAC,MAAM,CAAC,KAAK,GAAG,yBAAyB,CAAC,KAAK,CAAC;QACxD,aAAa;QACb,QAAQ,CAAC,MAAM,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QACxD,QAAQ,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACrD,QAAQ,IAAI,CAAC,CAAC;KACf;IAED,OAAO;QACL,QAAQ;QACR,QAAQ;KACT,CAAC;AACJ,CAAC,CACF,CAAC"}
|