@meshsdk/common 1.0.0-alpha.1 → 1.0.0-alpha.12

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.
Files changed (151) hide show
  1. package/dist/cjs/builder/data/index.d.ts +4 -0
  2. package/dist/cjs/builder/data/index.js +20 -0
  3. package/dist/cjs/builder/data/mesh.d.ts +8 -0
  4. package/dist/cjs/builder/data/mesh.js +34 -0
  5. package/dist/cjs/builder/data/parser.d.ts +5 -0
  6. package/dist/cjs/builder/data/parser.js +11 -0
  7. package/dist/cjs/builder/data/plutus.d.ts +69 -0
  8. package/dist/cjs/builder/data/plutus.js +116 -0
  9. package/dist/cjs/builder/data/plutus.spec.d.ts +1 -0
  10. package/dist/cjs/builder/data/plutus.spec.js +98 -0
  11. package/dist/cjs/builder/data/time.d.ts +11 -0
  12. package/dist/cjs/builder/data/time.js +32 -0
  13. package/dist/cjs/builder/index.d.ts +3 -0
  14. package/dist/cjs/builder/index.js +19 -0
  15. package/dist/cjs/builder/serializer.d.ts +7 -0
  16. package/dist/cjs/builder/serializer.js +20 -0
  17. package/dist/cjs/builder/types.d.ts +142 -0
  18. package/dist/cjs/builder/types.js +2 -0
  19. package/dist/cjs/cip/CIP25.d.ts +19 -0
  20. package/dist/cjs/cip/CIP25.js +2 -0
  21. package/dist/cjs/cip/CIP27.d.ts +4 -0
  22. package/dist/cjs/cip/CIP27.js +2 -0
  23. package/dist/cjs/cip/CPS9.d.ts +2 -0
  24. package/dist/cjs/cip/CPS9.js +115 -0
  25. package/dist/cjs/cip/index.d.ts +3 -0
  26. package/dist/cjs/cip/index.js +19 -0
  27. package/dist/cjs/constants.d.ts +1 -1
  28. package/dist/cjs/index.d.ts +3 -0
  29. package/dist/cjs/index.js +3 -0
  30. package/dist/cjs/types/Account.d.ts +5 -0
  31. package/dist/cjs/types/Account.js +2 -0
  32. package/dist/cjs/types/AccountInfo.d.ts +7 -0
  33. package/dist/cjs/types/AccountInfo.js +2 -0
  34. package/dist/cjs/types/Action.d.ts +12 -0
  35. package/dist/cjs/types/Action.js +2 -0
  36. package/dist/cjs/types/Asset.d.ts +7 -0
  37. package/dist/cjs/types/Asset.js +17 -0
  38. package/dist/cjs/types/AssetExtended.d.ts +8 -0
  39. package/dist/cjs/types/AssetExtended.js +2 -0
  40. package/dist/cjs/types/AssetMetadata.d.ts +24 -0
  41. package/dist/cjs/types/AssetMetadata.js +2 -0
  42. package/dist/cjs/types/BlockInfo.d.ts +17 -0
  43. package/dist/cjs/types/BlockInfo.js +2 -0
  44. package/dist/cjs/types/Data.d.ts +4 -0
  45. package/dist/cjs/types/Data.js +2 -0
  46. package/dist/cjs/types/DataSignature.d.ts +4 -0
  47. package/dist/cjs/types/DataSignature.js +2 -0
  48. package/dist/cjs/types/Era.d.ts +1 -0
  49. package/dist/cjs/types/Era.js +2 -0
  50. package/dist/cjs/types/Mint.d.ts +10 -0
  51. package/dist/cjs/types/Mint.js +2 -0
  52. package/dist/cjs/types/NativeScript.d.ts +14 -0
  53. package/dist/cjs/types/NativeScript.js +2 -0
  54. package/dist/cjs/types/Network.d.ts +4 -0
  55. package/dist/cjs/types/Network.js +8 -0
  56. package/dist/cjs/types/PlutusScript.d.ts +5 -0
  57. package/dist/cjs/types/PlutusScript.js +2 -0
  58. package/dist/cjs/types/PoolParams.d.ts +16 -0
  59. package/dist/cjs/types/PoolParams.js +2 -0
  60. package/dist/cjs/types/Protocol.d.ts +22 -0
  61. package/dist/cjs/types/Protocol.js +2 -0
  62. package/dist/cjs/types/Recipient.d.ts +11 -0
  63. package/dist/cjs/types/Recipient.js +2 -0
  64. package/dist/cjs/types/Relay.d.ts +13 -0
  65. package/dist/cjs/types/Relay.js +2 -0
  66. package/dist/cjs/types/Token.d.ts +2 -0
  67. package/dist/cjs/types/Token.js +2 -0
  68. package/dist/cjs/types/TransactionInfo.d.ts +11 -0
  69. package/dist/cjs/types/TransactionInfo.js +2 -0
  70. package/dist/cjs/types/UTxO.d.ts +15 -0
  71. package/dist/cjs/types/UTxO.js +2 -0
  72. package/dist/cjs/types/Wallet.d.ts +5 -0
  73. package/dist/cjs/types/Wallet.js +2 -0
  74. package/dist/cjs/types/index.d.ts +22 -0
  75. package/dist/cjs/types/index.js +38 -0
  76. package/dist/mjs/builder/data/index.d.ts +4 -0
  77. package/dist/mjs/builder/data/index.js +4 -0
  78. package/dist/mjs/builder/data/mesh.d.ts +8 -0
  79. package/dist/mjs/builder/data/mesh.js +24 -0
  80. package/dist/mjs/builder/data/parser.d.ts +5 -0
  81. package/dist/mjs/builder/data/parser.js +4 -0
  82. package/dist/mjs/builder/data/plutus.d.ts +69 -0
  83. package/dist/mjs/builder/data/plutus.js +90 -0
  84. package/dist/mjs/builder/data/plutus.spec.d.ts +1 -0
  85. package/dist/mjs/builder/data/plutus.spec.js +96 -0
  86. package/dist/mjs/builder/data/time.d.ts +11 -0
  87. package/dist/mjs/builder/data/time.js +27 -0
  88. package/dist/mjs/builder/index.d.ts +3 -0
  89. package/dist/mjs/builder/index.js +3 -0
  90. package/dist/mjs/builder/serializer.d.ts +7 -0
  91. package/dist/mjs/builder/serializer.js +16 -0
  92. package/dist/mjs/builder/types.d.ts +142 -0
  93. package/dist/mjs/builder/types.js +1 -0
  94. package/dist/mjs/cip/CIP25.d.ts +19 -0
  95. package/dist/mjs/cip/CIP25.js +1 -0
  96. package/dist/mjs/cip/CIP27.d.ts +4 -0
  97. package/dist/mjs/cip/CIP27.js +1 -0
  98. package/dist/mjs/cip/CPS9.d.ts +2 -0
  99. package/dist/mjs/cip/CPS9.js +111 -0
  100. package/dist/mjs/cip/index.d.ts +3 -0
  101. package/dist/mjs/cip/index.js +3 -0
  102. package/dist/mjs/constants.d.ts +1 -1
  103. package/dist/mjs/index.d.ts +3 -0
  104. package/dist/mjs/index.js +3 -0
  105. package/dist/mjs/types/Account.d.ts +5 -0
  106. package/dist/mjs/types/Account.js +1 -0
  107. package/dist/mjs/types/AccountInfo.d.ts +7 -0
  108. package/dist/mjs/types/AccountInfo.js +1 -0
  109. package/dist/mjs/types/Action.d.ts +12 -0
  110. package/dist/mjs/types/Action.js +1 -0
  111. package/dist/mjs/types/Asset.d.ts +7 -0
  112. package/dist/mjs/types/Asset.js +13 -0
  113. package/dist/mjs/types/AssetExtended.d.ts +8 -0
  114. package/dist/mjs/types/AssetExtended.js +1 -0
  115. package/dist/mjs/types/AssetMetadata.d.ts +24 -0
  116. package/dist/mjs/types/AssetMetadata.js +1 -0
  117. package/dist/mjs/types/BlockInfo.d.ts +17 -0
  118. package/dist/mjs/types/BlockInfo.js +1 -0
  119. package/dist/mjs/types/Data.d.ts +4 -0
  120. package/dist/mjs/types/Data.js +1 -0
  121. package/dist/mjs/types/DataSignature.d.ts +4 -0
  122. package/dist/mjs/types/DataSignature.js +1 -0
  123. package/dist/mjs/types/Era.d.ts +1 -0
  124. package/dist/mjs/types/Era.js +1 -0
  125. package/dist/mjs/types/Mint.d.ts +10 -0
  126. package/dist/mjs/types/Mint.js +1 -0
  127. package/dist/mjs/types/NativeScript.d.ts +14 -0
  128. package/dist/mjs/types/NativeScript.js +1 -0
  129. package/dist/mjs/types/Network.d.ts +4 -0
  130. package/dist/mjs/types/Network.js +4 -0
  131. package/dist/mjs/types/PlutusScript.d.ts +5 -0
  132. package/dist/mjs/types/PlutusScript.js +1 -0
  133. package/dist/mjs/types/PoolParams.d.ts +16 -0
  134. package/dist/mjs/types/PoolParams.js +1 -0
  135. package/dist/mjs/types/Protocol.d.ts +22 -0
  136. package/dist/mjs/types/Protocol.js +1 -0
  137. package/dist/mjs/types/Recipient.d.ts +11 -0
  138. package/dist/mjs/types/Recipient.js +1 -0
  139. package/dist/mjs/types/Relay.d.ts +13 -0
  140. package/dist/mjs/types/Relay.js +1 -0
  141. package/dist/mjs/types/Token.d.ts +2 -0
  142. package/dist/mjs/types/Token.js +1 -0
  143. package/dist/mjs/types/TransactionInfo.d.ts +11 -0
  144. package/dist/mjs/types/TransactionInfo.js +1 -0
  145. package/dist/mjs/types/UTxO.d.ts +15 -0
  146. package/dist/mjs/types/UTxO.js +1 -0
  147. package/dist/mjs/types/Wallet.d.ts +5 -0
  148. package/dist/mjs/types/Wallet.js +1 -0
  149. package/dist/mjs/types/index.d.ts +22 -0
  150. package/dist/mjs/types/index.js +22 -0
  151. package/package.json +2 -2
@@ -0,0 +1,4 @@
1
+ export * from './mesh';
2
+ export * from './plutus';
3
+ export * from './parser';
4
+ export * from './time';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./mesh"), exports);
18
+ __exportStar(require("./plutus"), exports);
19
+ __exportStar(require("./parser"), exports);
20
+ __exportStar(require("./time"), exports);
@@ -0,0 +1,8 @@
1
+ import { Data } from '../../types';
2
+ export declare const mConStr: <T extends Data[]>(alternative: number, fields: T) => Data;
3
+ export declare const mConStr0: <T extends Data[]>(fields: T) => Data;
4
+ export declare const mConStr1: <T extends Data[]>(fields: T) => Data;
5
+ export declare const mConStr2: <T extends Data[]>(fields: T) => Data;
6
+ export declare const mMaybeStakingHash: (stakeCredential: string) => Data;
7
+ export declare const mPubKeyAddress: (bytes: string, stakeCredential?: string) => Data;
8
+ export declare const mScriptAddress: (bytes: string, stakeCredential?: string) => Data;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mScriptAddress = exports.mPubKeyAddress = exports.mMaybeStakingHash = exports.mConStr2 = exports.mConStr1 = exports.mConStr0 = exports.mConStr = void 0;
4
+ const mConStr = (alternative, fields) => ({
5
+ alternative,
6
+ fields,
7
+ });
8
+ exports.mConStr = mConStr;
9
+ const mConStr0 = (fields) => ({
10
+ alternative: 0,
11
+ fields,
12
+ });
13
+ exports.mConStr0 = mConStr0;
14
+ const mConStr1 = (fields) => ({
15
+ alternative: 1,
16
+ fields,
17
+ });
18
+ exports.mConStr1 = mConStr1;
19
+ const mConStr2 = (fields) => ({
20
+ alternative: 2,
21
+ fields,
22
+ });
23
+ exports.mConStr2 = mConStr2;
24
+ const mMaybeStakingHash = (stakeCredential) => {
25
+ if (stakeCredential === '') {
26
+ return (0, exports.mConStr1)([]);
27
+ }
28
+ return (0, exports.mConStr0)([(0, exports.mConStr0)([(0, exports.mConStr0)([stakeCredential])])]);
29
+ };
30
+ exports.mMaybeStakingHash = mMaybeStakingHash;
31
+ const mPubKeyAddress = (bytes, stakeCredential) => (0, exports.mConStr0)([{ alternative: 0, fields: [bytes] }, (0, exports.mMaybeStakingHash)(stakeCredential || '')]);
32
+ exports.mPubKeyAddress = mPubKeyAddress;
33
+ const mScriptAddress = (bytes, stakeCredential) => (0, exports.mConStr0)([{ alternative: 1, fields: [bytes] }, (0, exports.mMaybeStakingHash)(stakeCredential || '')]);
34
+ exports.mScriptAddress = mScriptAddress;
@@ -0,0 +1,5 @@
1
+ /// <reference types="node" />
2
+ export declare const bytesToHex: (bytes: ArrayBuffer) => string;
3
+ export declare const hexToBytes: (hex: string) => Buffer;
4
+ export declare const stringToHex: (str: string) => string;
5
+ export declare const hexToString: (hex: string) => string;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hexToString = exports.stringToHex = exports.hexToBytes = exports.bytesToHex = void 0;
4
+ const bytesToHex = (bytes) => Buffer.from(bytes).toString('hex');
5
+ exports.bytesToHex = bytesToHex;
6
+ const hexToBytes = (hex) => Buffer.from(hex, 'hex');
7
+ exports.hexToBytes = hexToBytes;
8
+ const stringToHex = (str) => Buffer.from(str, 'utf8').toString('hex');
9
+ exports.stringToHex = stringToHex;
10
+ const hexToString = (hex) => Buffer.from(hex, 'hex').toString('utf8');
11
+ exports.hexToString = hexToString;
@@ -0,0 +1,69 @@
1
+ import { Asset } from '../../types';
2
+ export type ConStr<N = any, T = any> = {
3
+ constructor: N;
4
+ fields: T;
5
+ };
6
+ export type ConStr0<T = any> = ConStr<0, T>;
7
+ export type ConStr1<T = any> = ConStr<1, T>;
8
+ export type ConStr2<T = any> = ConStr<2, T>;
9
+ export type Bool = ConStr0<[]> | ConStr1<[]>;
10
+ export type BuiltinByteString = {
11
+ bytes: string;
12
+ };
13
+ export type Integer = {
14
+ int: number;
15
+ };
16
+ export type List = {
17
+ list: PlutusData[];
18
+ };
19
+ export type ValidatorHash = BuiltinByteString;
20
+ export type PaymentPubKeyHash = BuiltinByteString;
21
+ export type PubKeyHash = PaymentPubKeyHash;
22
+ export type POSIXTime = Integer;
23
+ export type CurrencySymbol = BuiltinByteString;
24
+ export type TokenName = BuiltinByteString;
25
+ export type MaybeStakingHash = ConStr1<[]> | ConStr0<[ConStr0<[ConStr0<[BuiltinByteString]>]>]> | ConStr0<[ConStr0<[ConStr1<[BuiltinByteString]>]>]>;
26
+ export type PubKeyAddress = ConStr0<[ConStr0<[PubKeyHash]>, MaybeStakingHash]>;
27
+ export type ScriptAddress = ConStr0<[ConStr1<[ValidatorHash]>, MaybeStakingHash]>;
28
+ export type AssetClass = ConStr0<[CurrencySymbol, TokenName]>;
29
+ export type TxOutRef = ConStr0<[ConStr0<[BuiltinByteString]>, Integer]>;
30
+ export type AssocMapItem<K, V> = {
31
+ k: K;
32
+ v: V;
33
+ };
34
+ export type DictItem<K, V> = {
35
+ k: K;
36
+ v: V;
37
+ };
38
+ export type AssocMap<K, V> = {
39
+ map: AssocMapItem<K, V>[];
40
+ };
41
+ export type Dict<K, V> = {
42
+ map: DictItem<K, V>[];
43
+ };
44
+ export type Tuple<K, V> = ConStr0<[K, V]>;
45
+ export type Value = AssocMap<CurrencySymbol, AssocMap<TokenName, Integer>>;
46
+ export type PlutusData = BuiltinByteString | Integer | MaybeStakingHash | PubKeyAddress | ScriptAddress | AssetClass | PaymentPubKeyHash | PubKeyHash | POSIXTime | TxOutRef | AssocMap<any, any> | Dict<any, any> | Tuple<any, any> | Value;
47
+ export declare const conStr: <N, T>(constructor: N, fields: T) => ConStr<N, T>;
48
+ export declare const conStr0: <T>(fields: T) => ConStr0<T>;
49
+ export declare const conStr1: <T>(fields: T) => ConStr1<T>;
50
+ export declare const conStr2: <T>(fields: T) => ConStr2<T>;
51
+ export declare const bool: (b: boolean) => Bool;
52
+ export declare const builtinByteString: (bytes: string) => BuiltinByteString;
53
+ export declare const integer: (int: number) => Integer;
54
+ export declare const list: (pList: PlutusData[]) => List;
55
+ export declare const currencySymbol: (bytes: string) => CurrencySymbol;
56
+ export declare const tokenName: (bytes: string) => TokenName;
57
+ export declare const maybeStakingHash: (stakeCredential: string, isScriptCredential?: boolean) => MaybeStakingHash;
58
+ export declare const pubKeyAddress: (bytes: string, stakeCredential?: string, isScriptCredential?: boolean) => PubKeyAddress;
59
+ export declare const scriptAddress: (bytes: string, stakeCredential?: string, isScriptCredential?: boolean) => ScriptAddress;
60
+ export declare const assetClass: (policyId: string, assetName: string) => AssetClass;
61
+ export declare const txOutRef: (txHash: string, index: number) => TxOutRef;
62
+ export declare const paymentPubKeyHash: (bytes: string) => PaymentPubKeyHash;
63
+ export declare const pubKeyHash: (bytes: string) => PubKeyHash;
64
+ export declare const posixTime: (int: number) => POSIXTime;
65
+ export declare const assocMap: <K, V>(itemsMap: [K, V][]) => AssocMap<K, V>;
66
+ export declare const dict: <K, V>(itemsMap: [K, V][]) => AssocMap<K, V>;
67
+ export declare const tuple: <K, V>(key: K, value: V) => Tuple<K, V>;
68
+ export declare const value: (assets: Asset[]) => Value;
69
+ export declare const parsePlutusValueToAssets: (plutusValue: Value) => Asset[];
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parsePlutusValueToAssets = exports.value = exports.tuple = exports.dict = exports.assocMap = exports.posixTime = exports.pubKeyHash = exports.paymentPubKeyHash = exports.txOutRef = exports.assetClass = exports.scriptAddress = exports.pubKeyAddress = exports.maybeStakingHash = exports.tokenName = exports.currencySymbol = exports.list = exports.integer = exports.builtinByteString = exports.bool = exports.conStr2 = exports.conStr1 = exports.conStr0 = exports.conStr = void 0;
4
+ const conStr = (constructor, fields) => ({
5
+ constructor,
6
+ fields,
7
+ });
8
+ exports.conStr = conStr;
9
+ const conStr0 = (fields) => (0, exports.conStr)(0, fields);
10
+ exports.conStr0 = conStr0;
11
+ const conStr1 = (fields) => (0, exports.conStr)(1, fields);
12
+ exports.conStr1 = conStr1;
13
+ const conStr2 = (fields) => (0, exports.conStr)(2, fields);
14
+ exports.conStr2 = conStr2;
15
+ const bool = (b) => (b ? (0, exports.conStr1)([]) : (0, exports.conStr0)([]));
16
+ exports.bool = bool;
17
+ const builtinByteString = (bytes) => ({
18
+ bytes,
19
+ });
20
+ exports.builtinByteString = builtinByteString;
21
+ const integer = (int) => ({ int });
22
+ exports.integer = integer;
23
+ const list = (pList) => ({ list: pList });
24
+ exports.list = list;
25
+ const currencySymbol = (bytes) => (0, exports.builtinByteString)(bytes);
26
+ exports.currencySymbol = currencySymbol;
27
+ const tokenName = (bytes) => (0, exports.builtinByteString)(bytes);
28
+ exports.tokenName = tokenName;
29
+ const maybeStakingHash = (stakeCredential, isScriptCredential = false) => {
30
+ if (stakeCredential === '') {
31
+ return (0, exports.conStr1)([]);
32
+ }
33
+ if (isScriptCredential) {
34
+ return (0, exports.conStr0)([
35
+ (0, exports.conStr0)([(0, exports.conStr1)([(0, exports.builtinByteString)(stakeCredential)])]),
36
+ ]);
37
+ }
38
+ return (0, exports.conStr0)([
39
+ (0, exports.conStr0)([(0, exports.conStr0)([(0, exports.builtinByteString)(stakeCredential)])]),
40
+ ]);
41
+ };
42
+ exports.maybeStakingHash = maybeStakingHash;
43
+ const pubKeyAddress = (bytes, stakeCredential, isScriptCredential = false) => (0, exports.conStr0)([
44
+ (0, exports.conStr0)([(0, exports.builtinByteString)(bytes)]),
45
+ (0, exports.maybeStakingHash)(stakeCredential || '', isScriptCredential),
46
+ ]);
47
+ exports.pubKeyAddress = pubKeyAddress;
48
+ const scriptAddress = (bytes, stakeCredential, isScriptCredential = false) => (0, exports.conStr0)([
49
+ (0, exports.conStr1)([(0, exports.builtinByteString)(bytes)]),
50
+ (0, exports.maybeStakingHash)(stakeCredential || '', isScriptCredential),
51
+ ]);
52
+ exports.scriptAddress = scriptAddress;
53
+ const assetClass = (policyId, assetName) => (0, exports.conStr0)([(0, exports.currencySymbol)(policyId), (0, exports.tokenName)(assetName)]);
54
+ exports.assetClass = assetClass;
55
+ const txOutRef = (txHash, index) => (0, exports.conStr0)([(0, exports.conStr0)([(0, exports.builtinByteString)(txHash)]), (0, exports.integer)(index)]);
56
+ exports.txOutRef = txOutRef;
57
+ const paymentPubKeyHash = (bytes) => (0, exports.builtinByteString)(bytes);
58
+ exports.paymentPubKeyHash = paymentPubKeyHash;
59
+ const pubKeyHash = (bytes) => (0, exports.builtinByteString)(bytes);
60
+ exports.pubKeyHash = pubKeyHash;
61
+ const posixTime = (int) => ({ int });
62
+ exports.posixTime = posixTime;
63
+ const assocMap = (itemsMap) => ({
64
+ map: itemsMap.map(([k, v]) => ({ k, v })),
65
+ });
66
+ exports.assocMap = assocMap;
67
+ const dict = (itemsMap) => ({
68
+ map: itemsMap.map(([k, v]) => ({ k, v })),
69
+ });
70
+ exports.dict = dict;
71
+ const tuple = (key, value) => (0, exports.conStr0)([key, value]);
72
+ exports.tuple = tuple;
73
+ const value = (assets) => {
74
+ const valueMapToParse = [];
75
+ const valueMap = {};
76
+ assets.forEach((asset) => {
77
+ const sanitizedName = asset.unit.replace('lovelace', '');
78
+ const policy = sanitizedName.slice(0, 56) || '';
79
+ const token = sanitizedName.slice(56) || '';
80
+ if (!valueMap[policy]) {
81
+ valueMap[policy] = {};
82
+ }
83
+ if (!valueMap[policy][token]) {
84
+ valueMap[policy][token] = Number(asset.quantity);
85
+ }
86
+ else {
87
+ valueMap[policy][token] += Number(asset.quantity);
88
+ }
89
+ });
90
+ Object.keys(valueMap).forEach((policy) => {
91
+ const policyByte = (0, exports.currencySymbol)(policy);
92
+ const tokens = Object.keys(valueMap[policy]).map((name) => [
93
+ (0, exports.tokenName)(name),
94
+ (0, exports.integer)(valueMap[policy][name]),
95
+ ]);
96
+ const policyMap = (0, exports.assocMap)(tokens);
97
+ valueMapToParse.push([policyByte, policyMap]);
98
+ });
99
+ return (0, exports.assocMap)(valueMapToParse);
100
+ };
101
+ exports.value = value;
102
+ const parsePlutusValueToAssets = (plutusValue) => {
103
+ const assets = [];
104
+ plutusValue.map.forEach((policyMap) => {
105
+ const policy = policyMap.k.bytes;
106
+ policyMap.v.map.forEach((tokenMap) => {
107
+ const token = tokenMap.k.bytes;
108
+ const quantity = tokenMap.v.int.toString();
109
+ const unsanitizedUnit = policy + token;
110
+ const unit = unsanitizedUnit === '' ? 'lovelace' : unsanitizedUnit;
111
+ assets.push({ unit, quantity });
112
+ });
113
+ });
114
+ return assets;
115
+ };
116
+ exports.parsePlutusValueToAssets = parsePlutusValueToAssets;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const _1 = require(".");
4
+ describe('Plutus data type', () => {
5
+ describe('Value', () => {
6
+ test('Simple ADA Value', () => {
7
+ const val = [{ unit: 'lovelace', quantity: '1000000' }];
8
+ const datum = (0, _1.value)(val);
9
+ const nameMap = (0, _1.dict)([
10
+ [(0, _1.builtinByteString)(''), (0, _1.integer)(1000000)],
11
+ ]);
12
+ const valMap = (0, _1.dict)([
13
+ [(0, _1.builtinByteString)(''), nameMap],
14
+ ]);
15
+ expect(JSON.stringify(datum)).toBe(JSON.stringify(valMap));
16
+ });
17
+ test('Simple token Value', () => {
18
+ const val = [
19
+ {
20
+ unit: 'baefdc6c5b191be372a794cd8d40d839ec0dbdd3c28957267dc8170074657374696e676e657777616c2e616461',
21
+ quantity: '345',
22
+ },
23
+ ];
24
+ const datum = (0, _1.value)(val);
25
+ const nameMap = (0, _1.dict)([
26
+ [(0, _1.builtinByteString)('74657374696e676e657777616c2e616461'), (0, _1.integer)(345)],
27
+ ]);
28
+ const valMap = (0, _1.dict)([
29
+ [
30
+ (0, _1.builtinByteString)('baefdc6c5b191be372a794cd8d40d839ec0dbdd3c28957267dc81700'),
31
+ nameMap,
32
+ ],
33
+ ]);
34
+ expect(JSON.stringify(datum)).toBe(JSON.stringify(valMap));
35
+ });
36
+ test('Complex Value', () => {
37
+ const val = [
38
+ { unit: 'lovelace', quantity: '1000000' },
39
+ {
40
+ unit: 'baefdc6c5b191be372a794cd8d40d839ec0dbdd3c28957267dc8170074657374696e676e657777616c2e616461',
41
+ quantity: '345',
42
+ },
43
+ {
44
+ unit: 'baefdc6c5b191be372a794cd8d40d839ec0dbdd3c28957267dc817001234',
45
+ quantity: '567',
46
+ },
47
+ ];
48
+ const datum = (0, _1.value)(val);
49
+ const nameMap = (0, _1.dict)([
50
+ [(0, _1.builtinByteString)('1234'), (0, _1.integer)(567)],
51
+ [(0, _1.builtinByteString)('74657374696e676e657777616c2e616461'), (0, _1.integer)(345)],
52
+ ]);
53
+ const valMap = (0, _1.dict)([
54
+ [(0, _1.builtinByteString)(''), (0, _1.dict)([[(0, _1.builtinByteString)(''), (0, _1.integer)(1000000)]])],
55
+ [
56
+ (0, _1.builtinByteString)('baefdc6c5b191be372a794cd8d40d839ec0dbdd3c28957267dc81700'),
57
+ nameMap,
58
+ ],
59
+ ]);
60
+ expect(JSON.stringify(datum)).toBe(JSON.stringify(valMap));
61
+ });
62
+ });
63
+ });
64
+ describe('Value', () => {
65
+ test('Simple ADA Value', () => {
66
+ const val = [{ unit: 'lovelace', quantity: '1000000' }];
67
+ const plutusValue = (0, _1.value)(val);
68
+ const assets = (0, _1.parsePlutusValueToAssets)(plutusValue);
69
+ expect(JSON.stringify(val)).toBe(JSON.stringify(assets));
70
+ });
71
+ test('Simple token Value', () => {
72
+ const val = [
73
+ {
74
+ unit: 'baefdc6c5b191be372a794cd8d40d839ec0dbdd3c28957267dc8170074657374696e676e657777616c2e616461',
75
+ quantity: '345',
76
+ },
77
+ ];
78
+ const plutusValue = (0, _1.value)(val);
79
+ const assets = (0, _1.parsePlutusValueToAssets)(plutusValue);
80
+ expect(JSON.stringify(val)).toBe(JSON.stringify(assets));
81
+ });
82
+ test('Complex Value', () => {
83
+ const val = [
84
+ { unit: 'lovelace', quantity: '1000000' },
85
+ {
86
+ unit: 'baefdc6c5b191be372a794cd8d40d839ec0dbdd3c28957267dc817001234',
87
+ quantity: '567',
88
+ },
89
+ {
90
+ unit: 'baefdc6c5b191be372a794cd8d40d839ec0dbdd3c28957267dc8170074657374696e676e657777616c2e616461',
91
+ quantity: '345',
92
+ },
93
+ ];
94
+ const plutusValue = (0, _1.value)(val);
95
+ const assets = (0, _1.parsePlutusValueToAssets)(plutusValue);
96
+ expect(JSON.stringify(val)).toBe(JSON.stringify(assets));
97
+ });
98
+ });
@@ -0,0 +1,11 @@
1
+ import { Network } from '../../types';
2
+ export type Slot = number;
3
+ export type UnixTime = number;
4
+ export type SlotConfig = {
5
+ zeroTime: UnixTime;
6
+ zeroSlot: Slot;
7
+ slotLength: number;
8
+ };
9
+ export declare const SLOT_CONFIG_NETWORK: Record<Network, SlotConfig>;
10
+ export declare const slotToBeginUnixTime: (slot: Slot, slotConfig: SlotConfig) => UnixTime;
11
+ export declare const unixTimeToEnclosingSlot: (unixTime: UnixTime, slotConfig: SlotConfig) => Slot;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.unixTimeToEnclosingSlot = exports.slotToBeginUnixTime = exports.SLOT_CONFIG_NETWORK = void 0;
4
+ exports.SLOT_CONFIG_NETWORK = {
5
+ mainnet: { zeroTime: 1596059091000, zeroSlot: 4492800, slotLength: 1000 }, // Starting at Shelley era
6
+ preview: { zeroTime: 1666656000000, zeroSlot: 0, slotLength: 1000 }, // Starting at Shelley era
7
+ preprod: {
8
+ zeroTime: 1654041600000 + 1728000000,
9
+ zeroSlot: 86400,
10
+ slotLength: 1000,
11
+ }, // Starting at Shelley era
12
+ /** Customizable slot config (Initialized with 0 values). */
13
+ testnet: { zeroTime: 0, zeroSlot: 0, slotLength: 0 },
14
+ };
15
+ const slotToBeginUnixTime = (slot, slotConfig) => {
16
+ const msAfterBegin = (slot - slotConfig.zeroSlot) * slotConfig.slotLength;
17
+ return slotConfig.zeroTime + msAfterBegin;
18
+ };
19
+ exports.slotToBeginUnixTime = slotToBeginUnixTime;
20
+ // slotToBeginUnixTime and slotToEndUnixTime are identical when slotLength == 1. So we don't need to worry about this now.
21
+ // function slotToEndUnixTime(slot: Slot, slotConfig: SlotConfig): UnixTime {
22
+ // return slotToBeginUnixTime(slot, slotConfig) + (slotConfig.slotLength - 1);
23
+ // }
24
+ const unixTimeToEnclosingSlot = (unixTime, slotConfig) => {
25
+ const timePassed = unixTime - slotConfig.zeroTime;
26
+ const slotsPassed = Math.floor(timePassed / slotConfig.slotLength);
27
+ return slotsPassed + slotConfig.zeroSlot;
28
+ };
29
+ exports.unixTimeToEnclosingSlot = unixTimeToEnclosingSlot;
30
+ // const timeNow = new Date().getTime();
31
+ // console.log(timeNow);
32
+ // console.log(unixTimeToEnclosingSlot(timeNow, SLOT_CONFIG_NETWORK.Preprod));
@@ -0,0 +1,3 @@
1
+ export * from './serializer';
2
+ export * from './types';
3
+ export * from './data';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./serializer"), exports);
18
+ __exportStar(require("./types"), exports);
19
+ __exportStar(require("./data"), exports);
@@ -0,0 +1,7 @@
1
+ import { MeshTxBuilderBody } from './types';
2
+ import { Protocol } from '../types';
3
+ export declare const emptyTxBuilderBody: () => MeshTxBuilderBody;
4
+ export interface IMeshSerializer {
5
+ serializeTxBody(txBody: MeshTxBuilderBody, protocolParams: Protocol): string;
6
+ addSigningKeys(txHex: string, signingKeys: string[]): string;
7
+ }
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.emptyTxBuilderBody = void 0;
4
+ const emptyTxBuilderBody = () => ({
5
+ inputs: [],
6
+ outputs: [],
7
+ extraInputs: [],
8
+ selectionThreshold: 0,
9
+ collaterals: [],
10
+ requiredSignatures: [],
11
+ referenceInputs: [],
12
+ mints: [],
13
+ changeAddress: '',
14
+ metadata: [],
15
+ validityRange: {},
16
+ certificates: [],
17
+ signingKey: [],
18
+ withdrawals: [],
19
+ });
20
+ exports.emptyTxBuilderBody = emptyTxBuilderBody;
@@ -0,0 +1,142 @@
1
+ import { Asset, Budget, Data, LanguageVersion, PlutusScript, UTxO, PoolParams } from '../types';
2
+ export type MeshTxBuilderBody = {
3
+ inputs: TxIn[];
4
+ outputs: Output[];
5
+ collaterals: PubKeyTxIn[];
6
+ requiredSignatures: string[];
7
+ referenceInputs: RefTxIn[];
8
+ withdrawals: Withdrawal[];
9
+ mints: MintItem[];
10
+ changeAddress: string;
11
+ changeDatum?: BuilderData;
12
+ metadata: Metadata[];
13
+ validityRange: ValidityRange;
14
+ certificates: Certificate[];
15
+ signingKey: string[];
16
+ extraInputs: UTxO[];
17
+ selectionThreshold: number;
18
+ };
19
+ export type TxIn = PubKeyTxIn | ScriptTxIn;
20
+ export type PubKeyTxIn = {
21
+ type: 'PubKey';
22
+ txIn: TxInParameter;
23
+ };
24
+ export type TxInParameter = {
25
+ txHash: string;
26
+ txIndex: number;
27
+ amount?: Asset[];
28
+ address?: string;
29
+ };
30
+ export type ScriptTxIn = {
31
+ type: 'Script';
32
+ txIn: TxInParameter;
33
+ scriptTxIn: ScriptTxInParameter;
34
+ };
35
+ export type ScriptTxInParameter = {
36
+ scriptSource?: ScriptSource;
37
+ datumSource?: {
38
+ type: 'Provided';
39
+ data: BuilderData;
40
+ } | {
41
+ type: 'Inline';
42
+ txHash: string;
43
+ txIndex: number;
44
+ };
45
+ redeemer?: Redeemer;
46
+ };
47
+ export type ScriptSource = {
48
+ type: 'Provided';
49
+ script: PlutusScript;
50
+ } | {
51
+ type: 'Inline';
52
+ txInInfo: ScriptSourceInfo;
53
+ };
54
+ export type ScriptSourceInfo = {
55
+ txHash: string;
56
+ txIndex: number;
57
+ spendingScriptHash?: string;
58
+ version: LanguageVersion;
59
+ };
60
+ export type RefTxIn = {
61
+ txHash: string;
62
+ txIndex: number;
63
+ };
64
+ export type Output = {
65
+ address: string;
66
+ amount: Asset[];
67
+ datum?: {
68
+ type: 'Hash' | 'Inline';
69
+ data: BuilderData;
70
+ };
71
+ referenceScript?: PlutusScript;
72
+ };
73
+ export type MintItem = {
74
+ type: 'Plutus' | 'Native';
75
+ policyId: string;
76
+ assetName: string;
77
+ amount: string;
78
+ redeemer?: Redeemer;
79
+ scriptSource?: {
80
+ type: 'Provided';
81
+ script: PlutusScript;
82
+ } | {
83
+ type: 'Reference Script';
84
+ txHash: string;
85
+ txIndex: number;
86
+ version: LanguageVersion;
87
+ };
88
+ };
89
+ export type ValidityRange = {
90
+ invalidBefore?: number;
91
+ invalidHereafter?: number;
92
+ };
93
+ export type BuilderData = {
94
+ type: 'Mesh';
95
+ content: Data;
96
+ } | {
97
+ type: 'JSON';
98
+ content: string;
99
+ } | {
100
+ type: 'CBOR';
101
+ content: string;
102
+ };
103
+ export type Redeemer = {
104
+ data: BuilderData;
105
+ exUnits: Budget;
106
+ };
107
+ export type Metadata = {
108
+ tag: string;
109
+ metadata: object;
110
+ };
111
+ export type Certificate = {
112
+ type: 'RegisterPool';
113
+ poolParams: PoolParams;
114
+ } | {
115
+ type: 'RegisterStake';
116
+ stakeKeyHash: string;
117
+ } | {
118
+ type: 'DelegateStake';
119
+ stakeKeyHash: string;
120
+ poolId: string;
121
+ } | {
122
+ type: 'DeregisterStake';
123
+ stakeKeyHash: string;
124
+ } | {
125
+ type: 'RetirePool';
126
+ poolId: string;
127
+ epoch: number;
128
+ };
129
+ export type Withdrawal = {
130
+ type: 'PubKeyWithdrawal';
131
+ address: string;
132
+ coin: number;
133
+ } | {
134
+ type: 'PlutusScriptWithdrawal';
135
+ address: string;
136
+ coin: number;
137
+ scriptSource?: ScriptSource;
138
+ redeemer?: Redeemer;
139
+ };
140
+ export type RequiredWith<T, K extends keyof T> = Required<T> & {
141
+ [P in K]: Required<T[P]>;
142
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,19 @@
1
+ export type MetadataStandard = {
2
+ name: string;
3
+ image: `${string}://${string}`;
4
+ mediaType?: `image/${string}`;
5
+ description?: string | string[];
6
+ instagram?: `https://instagram.com/${string}`;
7
+ twitter?: `https://twitter.com/${string}`;
8
+ discord?: `https://discord.gg/${string}`;
9
+ website?: `https://${string}`;
10
+ };
11
+ export type Files = {
12
+ files?: [
13
+ {
14
+ name: string;
15
+ src: `${string}://${string}`;
16
+ mediaType: `${string}/${string}`;
17
+ }
18
+ ];
19
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,4 @@
1
+ export type RoyaltiesStandard = {
2
+ rate: string;
3
+ address: string;
4
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ import type { Quantity, UTxO, Unit } from '../types';
2
+ export declare const selectUtxos: (inputs: UTxO[], requiredAssets: Map<Unit, Quantity>, threshold: Quantity) => UTxO[];