-
Notifications
You must be signed in to change notification settings - Fork 42
/
constants.js
158 lines (140 loc) · 5.54 KB
/
constants.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
/* eslint-disable prettier/prettier */
import BigNumber from 'bignumber.js';
import { TxBuilder } from '@aeternity/aepp-sdk/es';
import { TX_TYPE, VM_VERSIONS, ABI_VERSIONS } from '@aeternity/aepp-sdk/es/tx/builder/schema';
export const MAGNITUDE = 18;
export const MAGNITUDE_EXA = 18;
export const MAGNITUDE_GIGA = 9;
export const MAGNITUDE_MICRO = -6;
export const MAGNITUDE_PICO = -12;
export const MINPASSWORDLENGTH = 8;
export const TX_TYPES = {
'txSign':TX_TYPE.spend,
'contractCall':TX_TYPE.contractCall,
'contractCreate':TX_TYPE.contractCreate,
'namePreClaim': TX_TYPE.namePreClaim,
'nameClaim': TX_TYPE.nameClaim,
'nameBid': TX_TYPE.nameClaim,
'nameUpdate': TX_TYPE.nameUpdate
}
export const HDWALLET_METHODS = [
'unlockWallet',
'generateWallet',
'getKeypair',
'getAccount',
'isLoggedIn'
]
export const AEX2_METHODS = {
CHANGE_ACCOUNT:'CHANGE_ACCOUNT',
ADD_ACCOUNT: 'ADD_ACCOUNT',
SWITCH_NETWORK: 'SWITCH_NETWORK',
LOGOUT: 'LOGOUT',
INIT_RPC_WALLET: 'INIT_RPC_WALLET'
}
export const NOTIFICATION_METHODS = {
SWITCH_NETWORK: 'SWITCH_NETWORK'
}
export const CONNECTION_TYPES = {
EXTENSION: "EXTENSION",
POPUP: "POPUP",
OTHER: "OTHER"
}
const STUB_ADDRESS = 'ak_enAPooFqpTQKkhJmU47J16QZu9HbPQQPwWBVeGnzDbDnv9dxp';
const STUB_CALLDATA = 'cb_AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACDJfUrsdAtW6IZtMvhp0+eVDUiQivrquyBwXrl/ujPLcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUEMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJvjRF'
export const MAX_UINT256 = BigNumber(2).exponentiatedBy(256).minus(1);
const MIN_SPEND_TX_FEE_STRING = TxBuilder.calculateMinFee(
'spendTx', {
params: {
senderId: STUB_ADDRESS,
recipientId: STUB_ADDRESS,
amount: MAX_UINT256,
ttl: MAX_UINT256,
nonce: MAX_UINT256,
},
}
);
export const calculateFee = (type,params) => {
const MIN_FEE = TxBuilder.calculateMinFee(type, {
params: {
senderId: STUB_ADDRESS,
recipientId: STUB_ADDRESS,
amount: MAX_UINT256,
ttl: MAX_UINT256,
nonce: MAX_UINT256,
ctVersion:{abiVersion:ABI_VERSIONS.SOPHIA,vmVersion:VM_VERSIONS.SOPHIA},
abiVersion:ABI_VERSIONS.SOPHIA,
callData: STUB_CALLDATA,
...params
}
})
const min = BigNumber(MIN_FEE).shiftedBy(-MAGNITUDE)
const max = min.multipliedBy(10);
return {
min,
max
}
}
export const MIN_SPEND_TX_FEE = BigNumber(MIN_SPEND_TX_FEE_STRING).shiftedBy(-MAGNITUDE);
export const MAX_REASONABLE_FEE = MIN_SPEND_TX_FEE.multipliedBy(10);
export const toMicro = value => value.shiftedBy(-MAGNITUDE_MICRO).toFixed();
export const MIN_SPEND_TX_FEE_MICRO = toMicro(MIN_SPEND_TX_FEE);
export const MAX_REASONABLE_FEE_MICRO = toMicro(MAX_REASONABLE_FEE);
export const DEFAULT_NETWORK = typeof process.env.NETWORK !== 'undefined' ? process.env.NETWORK.trim() : 'Mainnet'
export const networks = {
Testnet: {
url: 'https://testnet.aeternal.io',
internalUrl: 'https://testnet.aeternal.io',
networkId: 'ae_uat',
middlewareUrl: 'https://testnet.aeternal.io',
explorerUrl: 'https://testnet.aeternal.io',
compilerUrl: 'https://latest.compiler.aepps.com',
tokenRegistry: 'ct_UAzV9RcXEMsFcUCmrPN4iphbZroM7EHk3wvdidDYgZGGBo3hV',
tokenRegistryLima: 'ct_Dnwribmd21YrxSQnqXCB5vTFPrgYJx2eg2TrbLvbdyEbTMejw',
tipContract: "ct_2AfnEfCSZCTEkxL5Yoi4Yfq6fF7YapHRaFKDJK3THMXMBspp5z"
},
Mainnet: {
url: 'https://mainnet.aeternal.io',
internalUrl: 'https://mainnet.aeternal.io',
networkId: 'ae_mainnet',
middlewareUrl: 'https://mainnet.aeternal.io/',
explorerUrl: 'https://mainnet.aeternal.io',
compilerUrl: 'https://compiler.aepps.com',
tokenRegistry: 'ct_UAzV9RcXEMsFcUCmrPN4iphbZroM7EHk3wvdidDYgZGGBo3hV',
tokenRegistryLima: 'ct_UAzV9RcXEMsFcUCmrPN4iphbZroM7EHk3wvdidDYgZGGBo3hV',
tipContract: 'ct_2AfnEfCSZCTEkxL5Yoi4Yfq6fF7YapHRaFKDJK3THMXMBspp5z'
}
}
export const BACKEND_URL = 'https://raendom-backend.z52da5wt.xyz';
export const TIP_SERVICE = `${BACKEND_URL}/claim/submit`;
export const NO_POPUP_AEPPS = [
'youdonotneedacapetobeahero.com',
'superhero.com',
'localhost'
];
export const BLACKLIST_AEPPS = [
'coronanews.org'
];
export const TX_LIMIT_PER_DAY = 2000
export const TIPPING_CONTRACT =
`@compiler >= 4
include "List.aes"
include "Func.aes"
include "Option.aes"
contract OracleService =
record success_claim = { success : bool, caller : address, percentage : int }
stateful entrypoint check_persist_claim : (string, address, bool) => success_claim
payable stateful entrypoint query_oracle : (string, address) => unit
contract Tipping =
type tip_id = int
type url_id = int
type retip_id = int
type url = string
type claim_gen = int
record tip = { sender : address, title : string, claim_gen : claim_gen, timestamp : int, url_id : url_id, amount : int }
record retip = { sender : address, amount : int, claim_gen : claim_gen, tip_id : tip_id }
record state = { urls : map(url, url_id), claims : map(url_id, claim_gen * int), url_index : map(url_id, url), tips : map(tip_id, tip), retips : map(retip_id, retip), owner : address, oracle_service : OracleService }
payable stateful entrypoint tip : (string, string) => unit
payable stateful entrypoint retip : (tip_id) => unit
payable stateful entrypoint pre_claim : (string, address) => unit
stateful entrypoint claim : (string, address, bool) => unit
entrypoint get_state : () => state`