|
1 |
| -// @nearfile out |
2 |
| -// tslint:disable as-variables |
| 1 | +//@nearfile out |
3 | 2 | import { context, storage, ContractPromise, near, logging } from "near-runtime-ts";
|
4 | 3 |
|
5 | 4 | import { PromiseArgs, InputPromiseArgs, MyCallbackResult, MyContractPromiseResult } from "./model";
|
6 |
| -import { u128 } from 'bignum'; |
7 | 5 |
|
| 6 | +import { u128 } from "bignum"; |
8 | 7 |
|
9 | 8 | export function hello(name: string): string {
|
10 | 9 |
|
@@ -146,48 +145,43 @@ export function callPromise(args: PromiseArgs): void {
|
146 | 145 | let promise = ContractPromise.create(
|
147 | 146 | args.receiver,
|
148 | 147 | args.methodName,
|
149 |
| - //@ts-ignore |
150 |
| - // tslint:disable-next-line: no-unsafe-any |
151 |
| - inputArgs.serialize(), |
| 148 | + inputArgs.encode().serialize(), |
| 149 | + args.gas, |
152 | 150 | new u128(args.balance));
|
153 | 151 | if (args.callback) {
|
154 | 152 | inputArgs.args = args.callbackArgs;
|
155 |
| - let callbackBalance = new u128(args.callbackBalance as u64); |
| 153 | + let callbackBalance = args.callbackBalance as u64; |
| 154 | + |
156 | 155 | promise = promise.then(
|
| 156 | + context.contractName, |
157 | 157 | args.callback,
|
158 |
| - "Method name", //TODO |
159 |
| - //@ts-ignore |
160 |
| - // tslint:disable-next-line: no-unsafe-any |
161 |
| - inputArgs.serialize(), |
162 |
| - //@ts-ignore |
163 |
| - // tslint:disable-next-line: no-unsafe-any |
164 |
| - callbackBalance |
| 158 | + inputArgs.encode().serialize(), |
| 159 | + args.callbackGas, |
| 160 | + new u128(callbackBalance) |
165 | 161 | );
|
166 | 162 | }
|
167 | 163 | promise.returnAsResult();
|
168 | 164 | }
|
169 | 165 |
|
170 |
| -// export function callbackWithName(args: PromiseArgs): MyCallbackResult { |
171 |
| -// let contractResults = ContractPromise.getResults(); |
172 |
| -// let allRes = Array.create<MyContractPromiseResult>(contractResults.length); |
173 |
| -// for (let i = 0; i < contractResults.length; ++i) { |
174 |
| -// let res = contractResults[i]; |
175 |
| -// allRes[i] = new MyContractPromiseResult(); |
176 |
| -// allRes[i].ok = res.success; |
177 |
| -// if (allRes[i].ok && res.buffer != null && res.buffer.length > 0) { |
178 |
| -// allRes[i].r = decode<MyCallbackResult>(res.buffer); |
179 |
| -// } |
180 |
| -// } |
181 |
| -// let result: MyCallbackResult = { |
182 |
| -// rs: allRes, |
183 |
| -// n: context.contractName, |
184 |
| -// }; |
185 |
| -// let bytes = result.serialize(); |
186 |
| -// storage.setBytes("lastResult", bytes); |
187 |
| -// return result; |
188 |
| -// } |
| 166 | +export function callbackWithName(args: PromiseArgs): MyCallbackResult { |
| 167 | + let contractResults = ContractPromise.getResults(); |
| 168 | + let allRes = Array.create<MyContractPromiseResult>(contractResults.length); |
| 169 | + for (let i = 0; i < contractResults.length; ++i) { |
| 170 | + allRes[i] = new MyContractPromiseResult(); |
| 171 | + allRes[i].ok = (contractResults[i].status == 1); |
| 172 | + if (allRes[i].ok && contractResults[i].buffer != null && contractResults[i].buffer.length > 0) { |
| 173 | + allRes[i].r = MyCallbackResult.decode(contractResults[i].buffer); |
| 174 | + } |
| 175 | + } |
| 176 | + let result: MyCallbackResult = { |
| 177 | + rs: allRes, |
| 178 | + n: context.contractName, |
| 179 | + }; |
| 180 | + let bytes = result.encode().serialize(); |
| 181 | + storage.setBytes("lastResult", bytes); |
| 182 | + return result; |
| 183 | +} |
189 | 184 |
|
190 | 185 | export function getLastResult(): MyCallbackResult {
|
191 | 186 | return MyCallbackResult.decode(storage.getBytes("lastResult"));
|
192 | 187 | }
|
193 |
| - |
0 commit comments